deserializers.go 453 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088
  1. // Code generated by smithy-go-codegen DO NOT EDIT.
  2. package costexplorer
  3. import (
  4. "bytes"
  5. "context"
  6. "encoding/json"
  7. "fmt"
  8. "github.com/aws/aws-sdk-go-v2/aws/protocol/restjson"
  9. "github.com/aws/aws-sdk-go-v2/service/costexplorer/types"
  10. smithy "github.com/aws/smithy-go"
  11. smithyio "github.com/aws/smithy-go/io"
  12. "github.com/aws/smithy-go/middleware"
  13. "github.com/aws/smithy-go/ptr"
  14. "github.com/aws/smithy-go/tracing"
  15. smithyhttp "github.com/aws/smithy-go/transport/http"
  16. "io"
  17. "math"
  18. "strings"
  19. )
  20. type awsAwsjson11_deserializeOpCreateAnomalyMonitor struct {
  21. }
  22. func (*awsAwsjson11_deserializeOpCreateAnomalyMonitor) ID() string {
  23. return "OperationDeserializer"
  24. }
  25. func (m *awsAwsjson11_deserializeOpCreateAnomalyMonitor) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  26. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  27. ) {
  28. out, metadata, err = next.HandleDeserialize(ctx, in)
  29. if err != nil {
  30. return out, metadata, err
  31. }
  32. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  33. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  34. defer endTimer()
  35. defer span.End()
  36. response, ok := out.RawResponse.(*smithyhttp.Response)
  37. if !ok {
  38. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  39. }
  40. if response.StatusCode < 200 || response.StatusCode >= 300 {
  41. return out, metadata, awsAwsjson11_deserializeOpErrorCreateAnomalyMonitor(response, &metadata)
  42. }
  43. output := &CreateAnomalyMonitorOutput{}
  44. out.Result = output
  45. var buff [1024]byte
  46. ringBuffer := smithyio.NewRingBuffer(buff[:])
  47. body := io.TeeReader(response.Body, ringBuffer)
  48. decoder := json.NewDecoder(body)
  49. decoder.UseNumber()
  50. var shape interface{}
  51. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  52. var snapshot bytes.Buffer
  53. io.Copy(&snapshot, ringBuffer)
  54. err = &smithy.DeserializationError{
  55. Err: fmt.Errorf("failed to decode response body, %w", err),
  56. Snapshot: snapshot.Bytes(),
  57. }
  58. return out, metadata, err
  59. }
  60. err = awsAwsjson11_deserializeOpDocumentCreateAnomalyMonitorOutput(&output, shape)
  61. if err != nil {
  62. var snapshot bytes.Buffer
  63. io.Copy(&snapshot, ringBuffer)
  64. err = &smithy.DeserializationError{
  65. Err: fmt.Errorf("failed to decode response body, %w", err),
  66. Snapshot: snapshot.Bytes(),
  67. }
  68. return out, metadata, err
  69. }
  70. return out, metadata, err
  71. }
  72. func awsAwsjson11_deserializeOpErrorCreateAnomalyMonitor(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  73. var errorBuffer bytes.Buffer
  74. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  75. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  76. }
  77. errorBody := bytes.NewReader(errorBuffer.Bytes())
  78. errorCode := "UnknownError"
  79. errorMessage := errorCode
  80. headerCode := response.Header.Get("X-Amzn-ErrorType")
  81. var buff [1024]byte
  82. ringBuffer := smithyio.NewRingBuffer(buff[:])
  83. body := io.TeeReader(errorBody, ringBuffer)
  84. decoder := json.NewDecoder(body)
  85. decoder.UseNumber()
  86. bodyInfo, err := getProtocolErrorInfo(decoder)
  87. if err != nil {
  88. var snapshot bytes.Buffer
  89. io.Copy(&snapshot, ringBuffer)
  90. err = &smithy.DeserializationError{
  91. Err: fmt.Errorf("failed to decode response body, %w", err),
  92. Snapshot: snapshot.Bytes(),
  93. }
  94. return err
  95. }
  96. errorBody.Seek(0, io.SeekStart)
  97. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  98. errorCode = restjson.SanitizeErrorCode(typ)
  99. }
  100. if len(bodyInfo.Message) != 0 {
  101. errorMessage = bodyInfo.Message
  102. }
  103. switch {
  104. case strings.EqualFold("LimitExceededException", errorCode):
  105. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  106. default:
  107. genericError := &smithy.GenericAPIError{
  108. Code: errorCode,
  109. Message: errorMessage,
  110. }
  111. return genericError
  112. }
  113. }
  114. type awsAwsjson11_deserializeOpCreateAnomalySubscription struct {
  115. }
  116. func (*awsAwsjson11_deserializeOpCreateAnomalySubscription) ID() string {
  117. return "OperationDeserializer"
  118. }
  119. func (m *awsAwsjson11_deserializeOpCreateAnomalySubscription) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  120. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  121. ) {
  122. out, metadata, err = next.HandleDeserialize(ctx, in)
  123. if err != nil {
  124. return out, metadata, err
  125. }
  126. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  127. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  128. defer endTimer()
  129. defer span.End()
  130. response, ok := out.RawResponse.(*smithyhttp.Response)
  131. if !ok {
  132. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  133. }
  134. if response.StatusCode < 200 || response.StatusCode >= 300 {
  135. return out, metadata, awsAwsjson11_deserializeOpErrorCreateAnomalySubscription(response, &metadata)
  136. }
  137. output := &CreateAnomalySubscriptionOutput{}
  138. out.Result = output
  139. var buff [1024]byte
  140. ringBuffer := smithyio.NewRingBuffer(buff[:])
  141. body := io.TeeReader(response.Body, ringBuffer)
  142. decoder := json.NewDecoder(body)
  143. decoder.UseNumber()
  144. var shape interface{}
  145. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  146. var snapshot bytes.Buffer
  147. io.Copy(&snapshot, ringBuffer)
  148. err = &smithy.DeserializationError{
  149. Err: fmt.Errorf("failed to decode response body, %w", err),
  150. Snapshot: snapshot.Bytes(),
  151. }
  152. return out, metadata, err
  153. }
  154. err = awsAwsjson11_deserializeOpDocumentCreateAnomalySubscriptionOutput(&output, shape)
  155. if err != nil {
  156. var snapshot bytes.Buffer
  157. io.Copy(&snapshot, ringBuffer)
  158. err = &smithy.DeserializationError{
  159. Err: fmt.Errorf("failed to decode response body, %w", err),
  160. Snapshot: snapshot.Bytes(),
  161. }
  162. return out, metadata, err
  163. }
  164. return out, metadata, err
  165. }
  166. func awsAwsjson11_deserializeOpErrorCreateAnomalySubscription(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  167. var errorBuffer bytes.Buffer
  168. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  169. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  170. }
  171. errorBody := bytes.NewReader(errorBuffer.Bytes())
  172. errorCode := "UnknownError"
  173. errorMessage := errorCode
  174. headerCode := response.Header.Get("X-Amzn-ErrorType")
  175. var buff [1024]byte
  176. ringBuffer := smithyio.NewRingBuffer(buff[:])
  177. body := io.TeeReader(errorBody, ringBuffer)
  178. decoder := json.NewDecoder(body)
  179. decoder.UseNumber()
  180. bodyInfo, err := getProtocolErrorInfo(decoder)
  181. if err != nil {
  182. var snapshot bytes.Buffer
  183. io.Copy(&snapshot, ringBuffer)
  184. err = &smithy.DeserializationError{
  185. Err: fmt.Errorf("failed to decode response body, %w", err),
  186. Snapshot: snapshot.Bytes(),
  187. }
  188. return err
  189. }
  190. errorBody.Seek(0, io.SeekStart)
  191. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  192. errorCode = restjson.SanitizeErrorCode(typ)
  193. }
  194. if len(bodyInfo.Message) != 0 {
  195. errorMessage = bodyInfo.Message
  196. }
  197. switch {
  198. case strings.EqualFold("LimitExceededException", errorCode):
  199. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  200. case strings.EqualFold("UnknownMonitorException", errorCode):
  201. return awsAwsjson11_deserializeErrorUnknownMonitorException(response, errorBody)
  202. default:
  203. genericError := &smithy.GenericAPIError{
  204. Code: errorCode,
  205. Message: errorMessage,
  206. }
  207. return genericError
  208. }
  209. }
  210. type awsAwsjson11_deserializeOpCreateCostCategoryDefinition struct {
  211. }
  212. func (*awsAwsjson11_deserializeOpCreateCostCategoryDefinition) ID() string {
  213. return "OperationDeserializer"
  214. }
  215. func (m *awsAwsjson11_deserializeOpCreateCostCategoryDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  216. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  217. ) {
  218. out, metadata, err = next.HandleDeserialize(ctx, in)
  219. if err != nil {
  220. return out, metadata, err
  221. }
  222. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  223. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  224. defer endTimer()
  225. defer span.End()
  226. response, ok := out.RawResponse.(*smithyhttp.Response)
  227. if !ok {
  228. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  229. }
  230. if response.StatusCode < 200 || response.StatusCode >= 300 {
  231. return out, metadata, awsAwsjson11_deserializeOpErrorCreateCostCategoryDefinition(response, &metadata)
  232. }
  233. output := &CreateCostCategoryDefinitionOutput{}
  234. out.Result = output
  235. var buff [1024]byte
  236. ringBuffer := smithyio.NewRingBuffer(buff[:])
  237. body := io.TeeReader(response.Body, ringBuffer)
  238. decoder := json.NewDecoder(body)
  239. decoder.UseNumber()
  240. var shape interface{}
  241. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  242. var snapshot bytes.Buffer
  243. io.Copy(&snapshot, ringBuffer)
  244. err = &smithy.DeserializationError{
  245. Err: fmt.Errorf("failed to decode response body, %w", err),
  246. Snapshot: snapshot.Bytes(),
  247. }
  248. return out, metadata, err
  249. }
  250. err = awsAwsjson11_deserializeOpDocumentCreateCostCategoryDefinitionOutput(&output, shape)
  251. if err != nil {
  252. var snapshot bytes.Buffer
  253. io.Copy(&snapshot, ringBuffer)
  254. err = &smithy.DeserializationError{
  255. Err: fmt.Errorf("failed to decode response body, %w", err),
  256. Snapshot: snapshot.Bytes(),
  257. }
  258. return out, metadata, err
  259. }
  260. return out, metadata, err
  261. }
  262. func awsAwsjson11_deserializeOpErrorCreateCostCategoryDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  263. var errorBuffer bytes.Buffer
  264. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  265. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  266. }
  267. errorBody := bytes.NewReader(errorBuffer.Bytes())
  268. errorCode := "UnknownError"
  269. errorMessage := errorCode
  270. headerCode := response.Header.Get("X-Amzn-ErrorType")
  271. var buff [1024]byte
  272. ringBuffer := smithyio.NewRingBuffer(buff[:])
  273. body := io.TeeReader(errorBody, ringBuffer)
  274. decoder := json.NewDecoder(body)
  275. decoder.UseNumber()
  276. bodyInfo, err := getProtocolErrorInfo(decoder)
  277. if err != nil {
  278. var snapshot bytes.Buffer
  279. io.Copy(&snapshot, ringBuffer)
  280. err = &smithy.DeserializationError{
  281. Err: fmt.Errorf("failed to decode response body, %w", err),
  282. Snapshot: snapshot.Bytes(),
  283. }
  284. return err
  285. }
  286. errorBody.Seek(0, io.SeekStart)
  287. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  288. errorCode = restjson.SanitizeErrorCode(typ)
  289. }
  290. if len(bodyInfo.Message) != 0 {
  291. errorMessage = bodyInfo.Message
  292. }
  293. switch {
  294. case strings.EqualFold("LimitExceededException", errorCode):
  295. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  296. case strings.EqualFold("ServiceQuotaExceededException", errorCode):
  297. return awsAwsjson11_deserializeErrorServiceQuotaExceededException(response, errorBody)
  298. default:
  299. genericError := &smithy.GenericAPIError{
  300. Code: errorCode,
  301. Message: errorMessage,
  302. }
  303. return genericError
  304. }
  305. }
  306. type awsAwsjson11_deserializeOpDeleteAnomalyMonitor struct {
  307. }
  308. func (*awsAwsjson11_deserializeOpDeleteAnomalyMonitor) ID() string {
  309. return "OperationDeserializer"
  310. }
  311. func (m *awsAwsjson11_deserializeOpDeleteAnomalyMonitor) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  312. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  313. ) {
  314. out, metadata, err = next.HandleDeserialize(ctx, in)
  315. if err != nil {
  316. return out, metadata, err
  317. }
  318. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  319. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  320. defer endTimer()
  321. defer span.End()
  322. response, ok := out.RawResponse.(*smithyhttp.Response)
  323. if !ok {
  324. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  325. }
  326. if response.StatusCode < 200 || response.StatusCode >= 300 {
  327. return out, metadata, awsAwsjson11_deserializeOpErrorDeleteAnomalyMonitor(response, &metadata)
  328. }
  329. output := &DeleteAnomalyMonitorOutput{}
  330. out.Result = output
  331. var buff [1024]byte
  332. ringBuffer := smithyio.NewRingBuffer(buff[:])
  333. body := io.TeeReader(response.Body, ringBuffer)
  334. decoder := json.NewDecoder(body)
  335. decoder.UseNumber()
  336. var shape interface{}
  337. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  338. var snapshot bytes.Buffer
  339. io.Copy(&snapshot, ringBuffer)
  340. err = &smithy.DeserializationError{
  341. Err: fmt.Errorf("failed to decode response body, %w", err),
  342. Snapshot: snapshot.Bytes(),
  343. }
  344. return out, metadata, err
  345. }
  346. err = awsAwsjson11_deserializeOpDocumentDeleteAnomalyMonitorOutput(&output, shape)
  347. if err != nil {
  348. var snapshot bytes.Buffer
  349. io.Copy(&snapshot, ringBuffer)
  350. err = &smithy.DeserializationError{
  351. Err: fmt.Errorf("failed to decode response body, %w", err),
  352. Snapshot: snapshot.Bytes(),
  353. }
  354. return out, metadata, err
  355. }
  356. return out, metadata, err
  357. }
  358. func awsAwsjson11_deserializeOpErrorDeleteAnomalyMonitor(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  359. var errorBuffer bytes.Buffer
  360. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  361. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  362. }
  363. errorBody := bytes.NewReader(errorBuffer.Bytes())
  364. errorCode := "UnknownError"
  365. errorMessage := errorCode
  366. headerCode := response.Header.Get("X-Amzn-ErrorType")
  367. var buff [1024]byte
  368. ringBuffer := smithyio.NewRingBuffer(buff[:])
  369. body := io.TeeReader(errorBody, ringBuffer)
  370. decoder := json.NewDecoder(body)
  371. decoder.UseNumber()
  372. bodyInfo, err := getProtocolErrorInfo(decoder)
  373. if err != nil {
  374. var snapshot bytes.Buffer
  375. io.Copy(&snapshot, ringBuffer)
  376. err = &smithy.DeserializationError{
  377. Err: fmt.Errorf("failed to decode response body, %w", err),
  378. Snapshot: snapshot.Bytes(),
  379. }
  380. return err
  381. }
  382. errorBody.Seek(0, io.SeekStart)
  383. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  384. errorCode = restjson.SanitizeErrorCode(typ)
  385. }
  386. if len(bodyInfo.Message) != 0 {
  387. errorMessage = bodyInfo.Message
  388. }
  389. switch {
  390. case strings.EqualFold("LimitExceededException", errorCode):
  391. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  392. case strings.EqualFold("UnknownMonitorException", errorCode):
  393. return awsAwsjson11_deserializeErrorUnknownMonitorException(response, errorBody)
  394. default:
  395. genericError := &smithy.GenericAPIError{
  396. Code: errorCode,
  397. Message: errorMessage,
  398. }
  399. return genericError
  400. }
  401. }
  402. type awsAwsjson11_deserializeOpDeleteAnomalySubscription struct {
  403. }
  404. func (*awsAwsjson11_deserializeOpDeleteAnomalySubscription) ID() string {
  405. return "OperationDeserializer"
  406. }
  407. func (m *awsAwsjson11_deserializeOpDeleteAnomalySubscription) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  408. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  409. ) {
  410. out, metadata, err = next.HandleDeserialize(ctx, in)
  411. if err != nil {
  412. return out, metadata, err
  413. }
  414. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  415. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  416. defer endTimer()
  417. defer span.End()
  418. response, ok := out.RawResponse.(*smithyhttp.Response)
  419. if !ok {
  420. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  421. }
  422. if response.StatusCode < 200 || response.StatusCode >= 300 {
  423. return out, metadata, awsAwsjson11_deserializeOpErrorDeleteAnomalySubscription(response, &metadata)
  424. }
  425. output := &DeleteAnomalySubscriptionOutput{}
  426. out.Result = output
  427. var buff [1024]byte
  428. ringBuffer := smithyio.NewRingBuffer(buff[:])
  429. body := io.TeeReader(response.Body, ringBuffer)
  430. decoder := json.NewDecoder(body)
  431. decoder.UseNumber()
  432. var shape interface{}
  433. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  434. var snapshot bytes.Buffer
  435. io.Copy(&snapshot, ringBuffer)
  436. err = &smithy.DeserializationError{
  437. Err: fmt.Errorf("failed to decode response body, %w", err),
  438. Snapshot: snapshot.Bytes(),
  439. }
  440. return out, metadata, err
  441. }
  442. err = awsAwsjson11_deserializeOpDocumentDeleteAnomalySubscriptionOutput(&output, shape)
  443. if err != nil {
  444. var snapshot bytes.Buffer
  445. io.Copy(&snapshot, ringBuffer)
  446. err = &smithy.DeserializationError{
  447. Err: fmt.Errorf("failed to decode response body, %w", err),
  448. Snapshot: snapshot.Bytes(),
  449. }
  450. return out, metadata, err
  451. }
  452. return out, metadata, err
  453. }
  454. func awsAwsjson11_deserializeOpErrorDeleteAnomalySubscription(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  455. var errorBuffer bytes.Buffer
  456. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  457. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  458. }
  459. errorBody := bytes.NewReader(errorBuffer.Bytes())
  460. errorCode := "UnknownError"
  461. errorMessage := errorCode
  462. headerCode := response.Header.Get("X-Amzn-ErrorType")
  463. var buff [1024]byte
  464. ringBuffer := smithyio.NewRingBuffer(buff[:])
  465. body := io.TeeReader(errorBody, ringBuffer)
  466. decoder := json.NewDecoder(body)
  467. decoder.UseNumber()
  468. bodyInfo, err := getProtocolErrorInfo(decoder)
  469. if err != nil {
  470. var snapshot bytes.Buffer
  471. io.Copy(&snapshot, ringBuffer)
  472. err = &smithy.DeserializationError{
  473. Err: fmt.Errorf("failed to decode response body, %w", err),
  474. Snapshot: snapshot.Bytes(),
  475. }
  476. return err
  477. }
  478. errorBody.Seek(0, io.SeekStart)
  479. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  480. errorCode = restjson.SanitizeErrorCode(typ)
  481. }
  482. if len(bodyInfo.Message) != 0 {
  483. errorMessage = bodyInfo.Message
  484. }
  485. switch {
  486. case strings.EqualFold("LimitExceededException", errorCode):
  487. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  488. case strings.EqualFold("UnknownSubscriptionException", errorCode):
  489. return awsAwsjson11_deserializeErrorUnknownSubscriptionException(response, errorBody)
  490. default:
  491. genericError := &smithy.GenericAPIError{
  492. Code: errorCode,
  493. Message: errorMessage,
  494. }
  495. return genericError
  496. }
  497. }
  498. type awsAwsjson11_deserializeOpDeleteCostCategoryDefinition struct {
  499. }
  500. func (*awsAwsjson11_deserializeOpDeleteCostCategoryDefinition) ID() string {
  501. return "OperationDeserializer"
  502. }
  503. func (m *awsAwsjson11_deserializeOpDeleteCostCategoryDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  504. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  505. ) {
  506. out, metadata, err = next.HandleDeserialize(ctx, in)
  507. if err != nil {
  508. return out, metadata, err
  509. }
  510. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  511. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  512. defer endTimer()
  513. defer span.End()
  514. response, ok := out.RawResponse.(*smithyhttp.Response)
  515. if !ok {
  516. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  517. }
  518. if response.StatusCode < 200 || response.StatusCode >= 300 {
  519. return out, metadata, awsAwsjson11_deserializeOpErrorDeleteCostCategoryDefinition(response, &metadata)
  520. }
  521. output := &DeleteCostCategoryDefinitionOutput{}
  522. out.Result = output
  523. var buff [1024]byte
  524. ringBuffer := smithyio.NewRingBuffer(buff[:])
  525. body := io.TeeReader(response.Body, ringBuffer)
  526. decoder := json.NewDecoder(body)
  527. decoder.UseNumber()
  528. var shape interface{}
  529. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  530. var snapshot bytes.Buffer
  531. io.Copy(&snapshot, ringBuffer)
  532. err = &smithy.DeserializationError{
  533. Err: fmt.Errorf("failed to decode response body, %w", err),
  534. Snapshot: snapshot.Bytes(),
  535. }
  536. return out, metadata, err
  537. }
  538. err = awsAwsjson11_deserializeOpDocumentDeleteCostCategoryDefinitionOutput(&output, shape)
  539. if err != nil {
  540. var snapshot bytes.Buffer
  541. io.Copy(&snapshot, ringBuffer)
  542. err = &smithy.DeserializationError{
  543. Err: fmt.Errorf("failed to decode response body, %w", err),
  544. Snapshot: snapshot.Bytes(),
  545. }
  546. return out, metadata, err
  547. }
  548. return out, metadata, err
  549. }
  550. func awsAwsjson11_deserializeOpErrorDeleteCostCategoryDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  551. var errorBuffer bytes.Buffer
  552. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  553. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  554. }
  555. errorBody := bytes.NewReader(errorBuffer.Bytes())
  556. errorCode := "UnknownError"
  557. errorMessage := errorCode
  558. headerCode := response.Header.Get("X-Amzn-ErrorType")
  559. var buff [1024]byte
  560. ringBuffer := smithyio.NewRingBuffer(buff[:])
  561. body := io.TeeReader(errorBody, ringBuffer)
  562. decoder := json.NewDecoder(body)
  563. decoder.UseNumber()
  564. bodyInfo, err := getProtocolErrorInfo(decoder)
  565. if err != nil {
  566. var snapshot bytes.Buffer
  567. io.Copy(&snapshot, ringBuffer)
  568. err = &smithy.DeserializationError{
  569. Err: fmt.Errorf("failed to decode response body, %w", err),
  570. Snapshot: snapshot.Bytes(),
  571. }
  572. return err
  573. }
  574. errorBody.Seek(0, io.SeekStart)
  575. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  576. errorCode = restjson.SanitizeErrorCode(typ)
  577. }
  578. if len(bodyInfo.Message) != 0 {
  579. errorMessage = bodyInfo.Message
  580. }
  581. switch {
  582. case strings.EqualFold("LimitExceededException", errorCode):
  583. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  584. case strings.EqualFold("ResourceNotFoundException", errorCode):
  585. return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody)
  586. default:
  587. genericError := &smithy.GenericAPIError{
  588. Code: errorCode,
  589. Message: errorMessage,
  590. }
  591. return genericError
  592. }
  593. }
  594. type awsAwsjson11_deserializeOpDescribeCostCategoryDefinition struct {
  595. }
  596. func (*awsAwsjson11_deserializeOpDescribeCostCategoryDefinition) ID() string {
  597. return "OperationDeserializer"
  598. }
  599. func (m *awsAwsjson11_deserializeOpDescribeCostCategoryDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  600. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  601. ) {
  602. out, metadata, err = next.HandleDeserialize(ctx, in)
  603. if err != nil {
  604. return out, metadata, err
  605. }
  606. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  607. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  608. defer endTimer()
  609. defer span.End()
  610. response, ok := out.RawResponse.(*smithyhttp.Response)
  611. if !ok {
  612. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  613. }
  614. if response.StatusCode < 200 || response.StatusCode >= 300 {
  615. return out, metadata, awsAwsjson11_deserializeOpErrorDescribeCostCategoryDefinition(response, &metadata)
  616. }
  617. output := &DescribeCostCategoryDefinitionOutput{}
  618. out.Result = output
  619. var buff [1024]byte
  620. ringBuffer := smithyio.NewRingBuffer(buff[:])
  621. body := io.TeeReader(response.Body, ringBuffer)
  622. decoder := json.NewDecoder(body)
  623. decoder.UseNumber()
  624. var shape interface{}
  625. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  626. var snapshot bytes.Buffer
  627. io.Copy(&snapshot, ringBuffer)
  628. err = &smithy.DeserializationError{
  629. Err: fmt.Errorf("failed to decode response body, %w", err),
  630. Snapshot: snapshot.Bytes(),
  631. }
  632. return out, metadata, err
  633. }
  634. err = awsAwsjson11_deserializeOpDocumentDescribeCostCategoryDefinitionOutput(&output, shape)
  635. if err != nil {
  636. var snapshot bytes.Buffer
  637. io.Copy(&snapshot, ringBuffer)
  638. err = &smithy.DeserializationError{
  639. Err: fmt.Errorf("failed to decode response body, %w", err),
  640. Snapshot: snapshot.Bytes(),
  641. }
  642. return out, metadata, err
  643. }
  644. return out, metadata, err
  645. }
  646. func awsAwsjson11_deserializeOpErrorDescribeCostCategoryDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  647. var errorBuffer bytes.Buffer
  648. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  649. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  650. }
  651. errorBody := bytes.NewReader(errorBuffer.Bytes())
  652. errorCode := "UnknownError"
  653. errorMessage := errorCode
  654. headerCode := response.Header.Get("X-Amzn-ErrorType")
  655. var buff [1024]byte
  656. ringBuffer := smithyio.NewRingBuffer(buff[:])
  657. body := io.TeeReader(errorBody, ringBuffer)
  658. decoder := json.NewDecoder(body)
  659. decoder.UseNumber()
  660. bodyInfo, err := getProtocolErrorInfo(decoder)
  661. if err != nil {
  662. var snapshot bytes.Buffer
  663. io.Copy(&snapshot, ringBuffer)
  664. err = &smithy.DeserializationError{
  665. Err: fmt.Errorf("failed to decode response body, %w", err),
  666. Snapshot: snapshot.Bytes(),
  667. }
  668. return err
  669. }
  670. errorBody.Seek(0, io.SeekStart)
  671. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  672. errorCode = restjson.SanitizeErrorCode(typ)
  673. }
  674. if len(bodyInfo.Message) != 0 {
  675. errorMessage = bodyInfo.Message
  676. }
  677. switch {
  678. case strings.EqualFold("LimitExceededException", errorCode):
  679. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  680. case strings.EqualFold("ResourceNotFoundException", errorCode):
  681. return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody)
  682. default:
  683. genericError := &smithy.GenericAPIError{
  684. Code: errorCode,
  685. Message: errorMessage,
  686. }
  687. return genericError
  688. }
  689. }
  690. type awsAwsjson11_deserializeOpGetAnomalies struct {
  691. }
  692. func (*awsAwsjson11_deserializeOpGetAnomalies) ID() string {
  693. return "OperationDeserializer"
  694. }
  695. func (m *awsAwsjson11_deserializeOpGetAnomalies) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  696. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  697. ) {
  698. out, metadata, err = next.HandleDeserialize(ctx, in)
  699. if err != nil {
  700. return out, metadata, err
  701. }
  702. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  703. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  704. defer endTimer()
  705. defer span.End()
  706. response, ok := out.RawResponse.(*smithyhttp.Response)
  707. if !ok {
  708. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  709. }
  710. if response.StatusCode < 200 || response.StatusCode >= 300 {
  711. return out, metadata, awsAwsjson11_deserializeOpErrorGetAnomalies(response, &metadata)
  712. }
  713. output := &GetAnomaliesOutput{}
  714. out.Result = output
  715. var buff [1024]byte
  716. ringBuffer := smithyio.NewRingBuffer(buff[:])
  717. body := io.TeeReader(response.Body, ringBuffer)
  718. decoder := json.NewDecoder(body)
  719. decoder.UseNumber()
  720. var shape interface{}
  721. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  722. var snapshot bytes.Buffer
  723. io.Copy(&snapshot, ringBuffer)
  724. err = &smithy.DeserializationError{
  725. Err: fmt.Errorf("failed to decode response body, %w", err),
  726. Snapshot: snapshot.Bytes(),
  727. }
  728. return out, metadata, err
  729. }
  730. err = awsAwsjson11_deserializeOpDocumentGetAnomaliesOutput(&output, shape)
  731. if err != nil {
  732. var snapshot bytes.Buffer
  733. io.Copy(&snapshot, ringBuffer)
  734. err = &smithy.DeserializationError{
  735. Err: fmt.Errorf("failed to decode response body, %w", err),
  736. Snapshot: snapshot.Bytes(),
  737. }
  738. return out, metadata, err
  739. }
  740. return out, metadata, err
  741. }
  742. func awsAwsjson11_deserializeOpErrorGetAnomalies(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  743. var errorBuffer bytes.Buffer
  744. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  745. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  746. }
  747. errorBody := bytes.NewReader(errorBuffer.Bytes())
  748. errorCode := "UnknownError"
  749. errorMessage := errorCode
  750. headerCode := response.Header.Get("X-Amzn-ErrorType")
  751. var buff [1024]byte
  752. ringBuffer := smithyio.NewRingBuffer(buff[:])
  753. body := io.TeeReader(errorBody, ringBuffer)
  754. decoder := json.NewDecoder(body)
  755. decoder.UseNumber()
  756. bodyInfo, err := getProtocolErrorInfo(decoder)
  757. if err != nil {
  758. var snapshot bytes.Buffer
  759. io.Copy(&snapshot, ringBuffer)
  760. err = &smithy.DeserializationError{
  761. Err: fmt.Errorf("failed to decode response body, %w", err),
  762. Snapshot: snapshot.Bytes(),
  763. }
  764. return err
  765. }
  766. errorBody.Seek(0, io.SeekStart)
  767. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  768. errorCode = restjson.SanitizeErrorCode(typ)
  769. }
  770. if len(bodyInfo.Message) != 0 {
  771. errorMessage = bodyInfo.Message
  772. }
  773. switch {
  774. case strings.EqualFold("InvalidNextTokenException", errorCode):
  775. return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody)
  776. case strings.EqualFold("LimitExceededException", errorCode):
  777. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  778. default:
  779. genericError := &smithy.GenericAPIError{
  780. Code: errorCode,
  781. Message: errorMessage,
  782. }
  783. return genericError
  784. }
  785. }
  786. type awsAwsjson11_deserializeOpGetAnomalyMonitors struct {
  787. }
  788. func (*awsAwsjson11_deserializeOpGetAnomalyMonitors) ID() string {
  789. return "OperationDeserializer"
  790. }
  791. func (m *awsAwsjson11_deserializeOpGetAnomalyMonitors) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  792. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  793. ) {
  794. out, metadata, err = next.HandleDeserialize(ctx, in)
  795. if err != nil {
  796. return out, metadata, err
  797. }
  798. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  799. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  800. defer endTimer()
  801. defer span.End()
  802. response, ok := out.RawResponse.(*smithyhttp.Response)
  803. if !ok {
  804. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  805. }
  806. if response.StatusCode < 200 || response.StatusCode >= 300 {
  807. return out, metadata, awsAwsjson11_deserializeOpErrorGetAnomalyMonitors(response, &metadata)
  808. }
  809. output := &GetAnomalyMonitorsOutput{}
  810. out.Result = output
  811. var buff [1024]byte
  812. ringBuffer := smithyio.NewRingBuffer(buff[:])
  813. body := io.TeeReader(response.Body, ringBuffer)
  814. decoder := json.NewDecoder(body)
  815. decoder.UseNumber()
  816. var shape interface{}
  817. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  818. var snapshot bytes.Buffer
  819. io.Copy(&snapshot, ringBuffer)
  820. err = &smithy.DeserializationError{
  821. Err: fmt.Errorf("failed to decode response body, %w", err),
  822. Snapshot: snapshot.Bytes(),
  823. }
  824. return out, metadata, err
  825. }
  826. err = awsAwsjson11_deserializeOpDocumentGetAnomalyMonitorsOutput(&output, shape)
  827. if err != nil {
  828. var snapshot bytes.Buffer
  829. io.Copy(&snapshot, ringBuffer)
  830. err = &smithy.DeserializationError{
  831. Err: fmt.Errorf("failed to decode response body, %w", err),
  832. Snapshot: snapshot.Bytes(),
  833. }
  834. return out, metadata, err
  835. }
  836. return out, metadata, err
  837. }
  838. func awsAwsjson11_deserializeOpErrorGetAnomalyMonitors(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  839. var errorBuffer bytes.Buffer
  840. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  841. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  842. }
  843. errorBody := bytes.NewReader(errorBuffer.Bytes())
  844. errorCode := "UnknownError"
  845. errorMessage := errorCode
  846. headerCode := response.Header.Get("X-Amzn-ErrorType")
  847. var buff [1024]byte
  848. ringBuffer := smithyio.NewRingBuffer(buff[:])
  849. body := io.TeeReader(errorBody, ringBuffer)
  850. decoder := json.NewDecoder(body)
  851. decoder.UseNumber()
  852. bodyInfo, err := getProtocolErrorInfo(decoder)
  853. if err != nil {
  854. var snapshot bytes.Buffer
  855. io.Copy(&snapshot, ringBuffer)
  856. err = &smithy.DeserializationError{
  857. Err: fmt.Errorf("failed to decode response body, %w", err),
  858. Snapshot: snapshot.Bytes(),
  859. }
  860. return err
  861. }
  862. errorBody.Seek(0, io.SeekStart)
  863. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  864. errorCode = restjson.SanitizeErrorCode(typ)
  865. }
  866. if len(bodyInfo.Message) != 0 {
  867. errorMessage = bodyInfo.Message
  868. }
  869. switch {
  870. case strings.EqualFold("InvalidNextTokenException", errorCode):
  871. return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody)
  872. case strings.EqualFold("LimitExceededException", errorCode):
  873. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  874. case strings.EqualFold("UnknownMonitorException", errorCode):
  875. return awsAwsjson11_deserializeErrorUnknownMonitorException(response, errorBody)
  876. default:
  877. genericError := &smithy.GenericAPIError{
  878. Code: errorCode,
  879. Message: errorMessage,
  880. }
  881. return genericError
  882. }
  883. }
  884. type awsAwsjson11_deserializeOpGetAnomalySubscriptions struct {
  885. }
  886. func (*awsAwsjson11_deserializeOpGetAnomalySubscriptions) ID() string {
  887. return "OperationDeserializer"
  888. }
  889. func (m *awsAwsjson11_deserializeOpGetAnomalySubscriptions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  890. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  891. ) {
  892. out, metadata, err = next.HandleDeserialize(ctx, in)
  893. if err != nil {
  894. return out, metadata, err
  895. }
  896. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  897. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  898. defer endTimer()
  899. defer span.End()
  900. response, ok := out.RawResponse.(*smithyhttp.Response)
  901. if !ok {
  902. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  903. }
  904. if response.StatusCode < 200 || response.StatusCode >= 300 {
  905. return out, metadata, awsAwsjson11_deserializeOpErrorGetAnomalySubscriptions(response, &metadata)
  906. }
  907. output := &GetAnomalySubscriptionsOutput{}
  908. out.Result = output
  909. var buff [1024]byte
  910. ringBuffer := smithyio.NewRingBuffer(buff[:])
  911. body := io.TeeReader(response.Body, ringBuffer)
  912. decoder := json.NewDecoder(body)
  913. decoder.UseNumber()
  914. var shape interface{}
  915. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  916. var snapshot bytes.Buffer
  917. io.Copy(&snapshot, ringBuffer)
  918. err = &smithy.DeserializationError{
  919. Err: fmt.Errorf("failed to decode response body, %w", err),
  920. Snapshot: snapshot.Bytes(),
  921. }
  922. return out, metadata, err
  923. }
  924. err = awsAwsjson11_deserializeOpDocumentGetAnomalySubscriptionsOutput(&output, shape)
  925. if err != nil {
  926. var snapshot bytes.Buffer
  927. io.Copy(&snapshot, ringBuffer)
  928. err = &smithy.DeserializationError{
  929. Err: fmt.Errorf("failed to decode response body, %w", err),
  930. Snapshot: snapshot.Bytes(),
  931. }
  932. return out, metadata, err
  933. }
  934. return out, metadata, err
  935. }
  936. func awsAwsjson11_deserializeOpErrorGetAnomalySubscriptions(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  937. var errorBuffer bytes.Buffer
  938. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  939. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  940. }
  941. errorBody := bytes.NewReader(errorBuffer.Bytes())
  942. errorCode := "UnknownError"
  943. errorMessage := errorCode
  944. headerCode := response.Header.Get("X-Amzn-ErrorType")
  945. var buff [1024]byte
  946. ringBuffer := smithyio.NewRingBuffer(buff[:])
  947. body := io.TeeReader(errorBody, ringBuffer)
  948. decoder := json.NewDecoder(body)
  949. decoder.UseNumber()
  950. bodyInfo, err := getProtocolErrorInfo(decoder)
  951. if err != nil {
  952. var snapshot bytes.Buffer
  953. io.Copy(&snapshot, ringBuffer)
  954. err = &smithy.DeserializationError{
  955. Err: fmt.Errorf("failed to decode response body, %w", err),
  956. Snapshot: snapshot.Bytes(),
  957. }
  958. return err
  959. }
  960. errorBody.Seek(0, io.SeekStart)
  961. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  962. errorCode = restjson.SanitizeErrorCode(typ)
  963. }
  964. if len(bodyInfo.Message) != 0 {
  965. errorMessage = bodyInfo.Message
  966. }
  967. switch {
  968. case strings.EqualFold("InvalidNextTokenException", errorCode):
  969. return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody)
  970. case strings.EqualFold("LimitExceededException", errorCode):
  971. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  972. case strings.EqualFold("UnknownSubscriptionException", errorCode):
  973. return awsAwsjson11_deserializeErrorUnknownSubscriptionException(response, errorBody)
  974. default:
  975. genericError := &smithy.GenericAPIError{
  976. Code: errorCode,
  977. Message: errorMessage,
  978. }
  979. return genericError
  980. }
  981. }
  982. type awsAwsjson11_deserializeOpGetApproximateUsageRecords struct {
  983. }
  984. func (*awsAwsjson11_deserializeOpGetApproximateUsageRecords) ID() string {
  985. return "OperationDeserializer"
  986. }
  987. func (m *awsAwsjson11_deserializeOpGetApproximateUsageRecords) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  988. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  989. ) {
  990. out, metadata, err = next.HandleDeserialize(ctx, in)
  991. if err != nil {
  992. return out, metadata, err
  993. }
  994. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  995. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  996. defer endTimer()
  997. defer span.End()
  998. response, ok := out.RawResponse.(*smithyhttp.Response)
  999. if !ok {
  1000. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  1001. }
  1002. if response.StatusCode < 200 || response.StatusCode >= 300 {
  1003. return out, metadata, awsAwsjson11_deserializeOpErrorGetApproximateUsageRecords(response, &metadata)
  1004. }
  1005. output := &GetApproximateUsageRecordsOutput{}
  1006. out.Result = output
  1007. var buff [1024]byte
  1008. ringBuffer := smithyio.NewRingBuffer(buff[:])
  1009. body := io.TeeReader(response.Body, ringBuffer)
  1010. decoder := json.NewDecoder(body)
  1011. decoder.UseNumber()
  1012. var shape interface{}
  1013. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  1014. var snapshot bytes.Buffer
  1015. io.Copy(&snapshot, ringBuffer)
  1016. err = &smithy.DeserializationError{
  1017. Err: fmt.Errorf("failed to decode response body, %w", err),
  1018. Snapshot: snapshot.Bytes(),
  1019. }
  1020. return out, metadata, err
  1021. }
  1022. err = awsAwsjson11_deserializeOpDocumentGetApproximateUsageRecordsOutput(&output, shape)
  1023. if err != nil {
  1024. var snapshot bytes.Buffer
  1025. io.Copy(&snapshot, ringBuffer)
  1026. err = &smithy.DeserializationError{
  1027. Err: fmt.Errorf("failed to decode response body, %w", err),
  1028. Snapshot: snapshot.Bytes(),
  1029. }
  1030. return out, metadata, err
  1031. }
  1032. return out, metadata, err
  1033. }
  1034. func awsAwsjson11_deserializeOpErrorGetApproximateUsageRecords(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  1035. var errorBuffer bytes.Buffer
  1036. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  1037. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  1038. }
  1039. errorBody := bytes.NewReader(errorBuffer.Bytes())
  1040. errorCode := "UnknownError"
  1041. errorMessage := errorCode
  1042. headerCode := response.Header.Get("X-Amzn-ErrorType")
  1043. var buff [1024]byte
  1044. ringBuffer := smithyio.NewRingBuffer(buff[:])
  1045. body := io.TeeReader(errorBody, ringBuffer)
  1046. decoder := json.NewDecoder(body)
  1047. decoder.UseNumber()
  1048. bodyInfo, err := getProtocolErrorInfo(decoder)
  1049. if err != nil {
  1050. var snapshot bytes.Buffer
  1051. io.Copy(&snapshot, ringBuffer)
  1052. err = &smithy.DeserializationError{
  1053. Err: fmt.Errorf("failed to decode response body, %w", err),
  1054. Snapshot: snapshot.Bytes(),
  1055. }
  1056. return err
  1057. }
  1058. errorBody.Seek(0, io.SeekStart)
  1059. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  1060. errorCode = restjson.SanitizeErrorCode(typ)
  1061. }
  1062. if len(bodyInfo.Message) != 0 {
  1063. errorMessage = bodyInfo.Message
  1064. }
  1065. switch {
  1066. case strings.EqualFold("DataUnavailableException", errorCode):
  1067. return awsAwsjson11_deserializeErrorDataUnavailableException(response, errorBody)
  1068. case strings.EqualFold("LimitExceededException", errorCode):
  1069. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  1070. default:
  1071. genericError := &smithy.GenericAPIError{
  1072. Code: errorCode,
  1073. Message: errorMessage,
  1074. }
  1075. return genericError
  1076. }
  1077. }
  1078. type awsAwsjson11_deserializeOpGetCommitmentPurchaseAnalysis struct {
  1079. }
  1080. func (*awsAwsjson11_deserializeOpGetCommitmentPurchaseAnalysis) ID() string {
  1081. return "OperationDeserializer"
  1082. }
  1083. func (m *awsAwsjson11_deserializeOpGetCommitmentPurchaseAnalysis) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  1084. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  1085. ) {
  1086. out, metadata, err = next.HandleDeserialize(ctx, in)
  1087. if err != nil {
  1088. return out, metadata, err
  1089. }
  1090. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  1091. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  1092. defer endTimer()
  1093. defer span.End()
  1094. response, ok := out.RawResponse.(*smithyhttp.Response)
  1095. if !ok {
  1096. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  1097. }
  1098. if response.StatusCode < 200 || response.StatusCode >= 300 {
  1099. return out, metadata, awsAwsjson11_deserializeOpErrorGetCommitmentPurchaseAnalysis(response, &metadata)
  1100. }
  1101. output := &GetCommitmentPurchaseAnalysisOutput{}
  1102. out.Result = output
  1103. var buff [1024]byte
  1104. ringBuffer := smithyio.NewRingBuffer(buff[:])
  1105. body := io.TeeReader(response.Body, ringBuffer)
  1106. decoder := json.NewDecoder(body)
  1107. decoder.UseNumber()
  1108. var shape interface{}
  1109. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  1110. var snapshot bytes.Buffer
  1111. io.Copy(&snapshot, ringBuffer)
  1112. err = &smithy.DeserializationError{
  1113. Err: fmt.Errorf("failed to decode response body, %w", err),
  1114. Snapshot: snapshot.Bytes(),
  1115. }
  1116. return out, metadata, err
  1117. }
  1118. err = awsAwsjson11_deserializeOpDocumentGetCommitmentPurchaseAnalysisOutput(&output, shape)
  1119. if err != nil {
  1120. var snapshot bytes.Buffer
  1121. io.Copy(&snapshot, ringBuffer)
  1122. err = &smithy.DeserializationError{
  1123. Err: fmt.Errorf("failed to decode response body, %w", err),
  1124. Snapshot: snapshot.Bytes(),
  1125. }
  1126. return out, metadata, err
  1127. }
  1128. return out, metadata, err
  1129. }
  1130. func awsAwsjson11_deserializeOpErrorGetCommitmentPurchaseAnalysis(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  1131. var errorBuffer bytes.Buffer
  1132. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  1133. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  1134. }
  1135. errorBody := bytes.NewReader(errorBuffer.Bytes())
  1136. errorCode := "UnknownError"
  1137. errorMessage := errorCode
  1138. headerCode := response.Header.Get("X-Amzn-ErrorType")
  1139. var buff [1024]byte
  1140. ringBuffer := smithyio.NewRingBuffer(buff[:])
  1141. body := io.TeeReader(errorBody, ringBuffer)
  1142. decoder := json.NewDecoder(body)
  1143. decoder.UseNumber()
  1144. bodyInfo, err := getProtocolErrorInfo(decoder)
  1145. if err != nil {
  1146. var snapshot bytes.Buffer
  1147. io.Copy(&snapshot, ringBuffer)
  1148. err = &smithy.DeserializationError{
  1149. Err: fmt.Errorf("failed to decode response body, %w", err),
  1150. Snapshot: snapshot.Bytes(),
  1151. }
  1152. return err
  1153. }
  1154. errorBody.Seek(0, io.SeekStart)
  1155. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  1156. errorCode = restjson.SanitizeErrorCode(typ)
  1157. }
  1158. if len(bodyInfo.Message) != 0 {
  1159. errorMessage = bodyInfo.Message
  1160. }
  1161. switch {
  1162. case strings.EqualFold("AnalysisNotFoundException", errorCode):
  1163. return awsAwsjson11_deserializeErrorAnalysisNotFoundException(response, errorBody)
  1164. case strings.EqualFold("DataUnavailableException", errorCode):
  1165. return awsAwsjson11_deserializeErrorDataUnavailableException(response, errorBody)
  1166. case strings.EqualFold("LimitExceededException", errorCode):
  1167. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  1168. default:
  1169. genericError := &smithy.GenericAPIError{
  1170. Code: errorCode,
  1171. Message: errorMessage,
  1172. }
  1173. return genericError
  1174. }
  1175. }
  1176. type awsAwsjson11_deserializeOpGetCostAndUsage struct {
  1177. }
  1178. func (*awsAwsjson11_deserializeOpGetCostAndUsage) ID() string {
  1179. return "OperationDeserializer"
  1180. }
  1181. func (m *awsAwsjson11_deserializeOpGetCostAndUsage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  1182. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  1183. ) {
  1184. out, metadata, err = next.HandleDeserialize(ctx, in)
  1185. if err != nil {
  1186. return out, metadata, err
  1187. }
  1188. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  1189. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  1190. defer endTimer()
  1191. defer span.End()
  1192. response, ok := out.RawResponse.(*smithyhttp.Response)
  1193. if !ok {
  1194. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  1195. }
  1196. if response.StatusCode < 200 || response.StatusCode >= 300 {
  1197. return out, metadata, awsAwsjson11_deserializeOpErrorGetCostAndUsage(response, &metadata)
  1198. }
  1199. output := &GetCostAndUsageOutput{}
  1200. out.Result = output
  1201. var buff [1024]byte
  1202. ringBuffer := smithyio.NewRingBuffer(buff[:])
  1203. body := io.TeeReader(response.Body, ringBuffer)
  1204. decoder := json.NewDecoder(body)
  1205. decoder.UseNumber()
  1206. var shape interface{}
  1207. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  1208. var snapshot bytes.Buffer
  1209. io.Copy(&snapshot, ringBuffer)
  1210. err = &smithy.DeserializationError{
  1211. Err: fmt.Errorf("failed to decode response body, %w", err),
  1212. Snapshot: snapshot.Bytes(),
  1213. }
  1214. return out, metadata, err
  1215. }
  1216. err = awsAwsjson11_deserializeOpDocumentGetCostAndUsageOutput(&output, shape)
  1217. if err != nil {
  1218. var snapshot bytes.Buffer
  1219. io.Copy(&snapshot, ringBuffer)
  1220. err = &smithy.DeserializationError{
  1221. Err: fmt.Errorf("failed to decode response body, %w", err),
  1222. Snapshot: snapshot.Bytes(),
  1223. }
  1224. return out, metadata, err
  1225. }
  1226. return out, metadata, err
  1227. }
  1228. func awsAwsjson11_deserializeOpErrorGetCostAndUsage(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  1229. var errorBuffer bytes.Buffer
  1230. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  1231. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  1232. }
  1233. errorBody := bytes.NewReader(errorBuffer.Bytes())
  1234. errorCode := "UnknownError"
  1235. errorMessage := errorCode
  1236. headerCode := response.Header.Get("X-Amzn-ErrorType")
  1237. var buff [1024]byte
  1238. ringBuffer := smithyio.NewRingBuffer(buff[:])
  1239. body := io.TeeReader(errorBody, ringBuffer)
  1240. decoder := json.NewDecoder(body)
  1241. decoder.UseNumber()
  1242. bodyInfo, err := getProtocolErrorInfo(decoder)
  1243. if err != nil {
  1244. var snapshot bytes.Buffer
  1245. io.Copy(&snapshot, ringBuffer)
  1246. err = &smithy.DeserializationError{
  1247. Err: fmt.Errorf("failed to decode response body, %w", err),
  1248. Snapshot: snapshot.Bytes(),
  1249. }
  1250. return err
  1251. }
  1252. errorBody.Seek(0, io.SeekStart)
  1253. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  1254. errorCode = restjson.SanitizeErrorCode(typ)
  1255. }
  1256. if len(bodyInfo.Message) != 0 {
  1257. errorMessage = bodyInfo.Message
  1258. }
  1259. switch {
  1260. case strings.EqualFold("BillExpirationException", errorCode):
  1261. return awsAwsjson11_deserializeErrorBillExpirationException(response, errorBody)
  1262. case strings.EqualFold("BillingViewHealthStatusException", errorCode):
  1263. return awsAwsjson11_deserializeErrorBillingViewHealthStatusException(response, errorBody)
  1264. case strings.EqualFold("DataUnavailableException", errorCode):
  1265. return awsAwsjson11_deserializeErrorDataUnavailableException(response, errorBody)
  1266. case strings.EqualFold("InvalidNextTokenException", errorCode):
  1267. return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody)
  1268. case strings.EqualFold("LimitExceededException", errorCode):
  1269. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  1270. case strings.EqualFold("RequestChangedException", errorCode):
  1271. return awsAwsjson11_deserializeErrorRequestChangedException(response, errorBody)
  1272. case strings.EqualFold("ResourceNotFoundException", errorCode):
  1273. return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody)
  1274. default:
  1275. genericError := &smithy.GenericAPIError{
  1276. Code: errorCode,
  1277. Message: errorMessage,
  1278. }
  1279. return genericError
  1280. }
  1281. }
  1282. type awsAwsjson11_deserializeOpGetCostAndUsageComparisons struct {
  1283. }
  1284. func (*awsAwsjson11_deserializeOpGetCostAndUsageComparisons) ID() string {
  1285. return "OperationDeserializer"
  1286. }
  1287. func (m *awsAwsjson11_deserializeOpGetCostAndUsageComparisons) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  1288. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  1289. ) {
  1290. out, metadata, err = next.HandleDeserialize(ctx, in)
  1291. if err != nil {
  1292. return out, metadata, err
  1293. }
  1294. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  1295. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  1296. defer endTimer()
  1297. defer span.End()
  1298. response, ok := out.RawResponse.(*smithyhttp.Response)
  1299. if !ok {
  1300. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  1301. }
  1302. if response.StatusCode < 200 || response.StatusCode >= 300 {
  1303. return out, metadata, awsAwsjson11_deserializeOpErrorGetCostAndUsageComparisons(response, &metadata)
  1304. }
  1305. output := &GetCostAndUsageComparisonsOutput{}
  1306. out.Result = output
  1307. var buff [1024]byte
  1308. ringBuffer := smithyio.NewRingBuffer(buff[:])
  1309. body := io.TeeReader(response.Body, ringBuffer)
  1310. decoder := json.NewDecoder(body)
  1311. decoder.UseNumber()
  1312. var shape interface{}
  1313. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  1314. var snapshot bytes.Buffer
  1315. io.Copy(&snapshot, ringBuffer)
  1316. err = &smithy.DeserializationError{
  1317. Err: fmt.Errorf("failed to decode response body, %w", err),
  1318. Snapshot: snapshot.Bytes(),
  1319. }
  1320. return out, metadata, err
  1321. }
  1322. err = awsAwsjson11_deserializeOpDocumentGetCostAndUsageComparisonsOutput(&output, shape)
  1323. if err != nil {
  1324. var snapshot bytes.Buffer
  1325. io.Copy(&snapshot, ringBuffer)
  1326. err = &smithy.DeserializationError{
  1327. Err: fmt.Errorf("failed to decode response body, %w", err),
  1328. Snapshot: snapshot.Bytes(),
  1329. }
  1330. return out, metadata, err
  1331. }
  1332. return out, metadata, err
  1333. }
  1334. func awsAwsjson11_deserializeOpErrorGetCostAndUsageComparisons(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  1335. var errorBuffer bytes.Buffer
  1336. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  1337. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  1338. }
  1339. errorBody := bytes.NewReader(errorBuffer.Bytes())
  1340. errorCode := "UnknownError"
  1341. errorMessage := errorCode
  1342. headerCode := response.Header.Get("X-Amzn-ErrorType")
  1343. var buff [1024]byte
  1344. ringBuffer := smithyio.NewRingBuffer(buff[:])
  1345. body := io.TeeReader(errorBody, ringBuffer)
  1346. decoder := json.NewDecoder(body)
  1347. decoder.UseNumber()
  1348. bodyInfo, err := getProtocolErrorInfo(decoder)
  1349. if err != nil {
  1350. var snapshot bytes.Buffer
  1351. io.Copy(&snapshot, ringBuffer)
  1352. err = &smithy.DeserializationError{
  1353. Err: fmt.Errorf("failed to decode response body, %w", err),
  1354. Snapshot: snapshot.Bytes(),
  1355. }
  1356. return err
  1357. }
  1358. errorBody.Seek(0, io.SeekStart)
  1359. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  1360. errorCode = restjson.SanitizeErrorCode(typ)
  1361. }
  1362. if len(bodyInfo.Message) != 0 {
  1363. errorMessage = bodyInfo.Message
  1364. }
  1365. switch {
  1366. case strings.EqualFold("BillingViewHealthStatusException", errorCode):
  1367. return awsAwsjson11_deserializeErrorBillingViewHealthStatusException(response, errorBody)
  1368. case strings.EqualFold("DataUnavailableException", errorCode):
  1369. return awsAwsjson11_deserializeErrorDataUnavailableException(response, errorBody)
  1370. case strings.EqualFold("InvalidNextTokenException", errorCode):
  1371. return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody)
  1372. case strings.EqualFold("LimitExceededException", errorCode):
  1373. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  1374. case strings.EqualFold("ResourceNotFoundException", errorCode):
  1375. return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody)
  1376. default:
  1377. genericError := &smithy.GenericAPIError{
  1378. Code: errorCode,
  1379. Message: errorMessage,
  1380. }
  1381. return genericError
  1382. }
  1383. }
  1384. type awsAwsjson11_deserializeOpGetCostAndUsageWithResources struct {
  1385. }
  1386. func (*awsAwsjson11_deserializeOpGetCostAndUsageWithResources) ID() string {
  1387. return "OperationDeserializer"
  1388. }
  1389. func (m *awsAwsjson11_deserializeOpGetCostAndUsageWithResources) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  1390. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  1391. ) {
  1392. out, metadata, err = next.HandleDeserialize(ctx, in)
  1393. if err != nil {
  1394. return out, metadata, err
  1395. }
  1396. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  1397. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  1398. defer endTimer()
  1399. defer span.End()
  1400. response, ok := out.RawResponse.(*smithyhttp.Response)
  1401. if !ok {
  1402. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  1403. }
  1404. if response.StatusCode < 200 || response.StatusCode >= 300 {
  1405. return out, metadata, awsAwsjson11_deserializeOpErrorGetCostAndUsageWithResources(response, &metadata)
  1406. }
  1407. output := &GetCostAndUsageWithResourcesOutput{}
  1408. out.Result = output
  1409. var buff [1024]byte
  1410. ringBuffer := smithyio.NewRingBuffer(buff[:])
  1411. body := io.TeeReader(response.Body, ringBuffer)
  1412. decoder := json.NewDecoder(body)
  1413. decoder.UseNumber()
  1414. var shape interface{}
  1415. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  1416. var snapshot bytes.Buffer
  1417. io.Copy(&snapshot, ringBuffer)
  1418. err = &smithy.DeserializationError{
  1419. Err: fmt.Errorf("failed to decode response body, %w", err),
  1420. Snapshot: snapshot.Bytes(),
  1421. }
  1422. return out, metadata, err
  1423. }
  1424. err = awsAwsjson11_deserializeOpDocumentGetCostAndUsageWithResourcesOutput(&output, shape)
  1425. if err != nil {
  1426. var snapshot bytes.Buffer
  1427. io.Copy(&snapshot, ringBuffer)
  1428. err = &smithy.DeserializationError{
  1429. Err: fmt.Errorf("failed to decode response body, %w", err),
  1430. Snapshot: snapshot.Bytes(),
  1431. }
  1432. return out, metadata, err
  1433. }
  1434. return out, metadata, err
  1435. }
  1436. func awsAwsjson11_deserializeOpErrorGetCostAndUsageWithResources(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  1437. var errorBuffer bytes.Buffer
  1438. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  1439. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  1440. }
  1441. errorBody := bytes.NewReader(errorBuffer.Bytes())
  1442. errorCode := "UnknownError"
  1443. errorMessage := errorCode
  1444. headerCode := response.Header.Get("X-Amzn-ErrorType")
  1445. var buff [1024]byte
  1446. ringBuffer := smithyio.NewRingBuffer(buff[:])
  1447. body := io.TeeReader(errorBody, ringBuffer)
  1448. decoder := json.NewDecoder(body)
  1449. decoder.UseNumber()
  1450. bodyInfo, err := getProtocolErrorInfo(decoder)
  1451. if err != nil {
  1452. var snapshot bytes.Buffer
  1453. io.Copy(&snapshot, ringBuffer)
  1454. err = &smithy.DeserializationError{
  1455. Err: fmt.Errorf("failed to decode response body, %w", err),
  1456. Snapshot: snapshot.Bytes(),
  1457. }
  1458. return err
  1459. }
  1460. errorBody.Seek(0, io.SeekStart)
  1461. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  1462. errorCode = restjson.SanitizeErrorCode(typ)
  1463. }
  1464. if len(bodyInfo.Message) != 0 {
  1465. errorMessage = bodyInfo.Message
  1466. }
  1467. switch {
  1468. case strings.EqualFold("BillExpirationException", errorCode):
  1469. return awsAwsjson11_deserializeErrorBillExpirationException(response, errorBody)
  1470. case strings.EqualFold("BillingViewHealthStatusException", errorCode):
  1471. return awsAwsjson11_deserializeErrorBillingViewHealthStatusException(response, errorBody)
  1472. case strings.EqualFold("DataUnavailableException", errorCode):
  1473. return awsAwsjson11_deserializeErrorDataUnavailableException(response, errorBody)
  1474. case strings.EqualFold("InvalidNextTokenException", errorCode):
  1475. return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody)
  1476. case strings.EqualFold("LimitExceededException", errorCode):
  1477. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  1478. case strings.EqualFold("RequestChangedException", errorCode):
  1479. return awsAwsjson11_deserializeErrorRequestChangedException(response, errorBody)
  1480. case strings.EqualFold("ResourceNotFoundException", errorCode):
  1481. return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody)
  1482. default:
  1483. genericError := &smithy.GenericAPIError{
  1484. Code: errorCode,
  1485. Message: errorMessage,
  1486. }
  1487. return genericError
  1488. }
  1489. }
  1490. type awsAwsjson11_deserializeOpGetCostCategories struct {
  1491. }
  1492. func (*awsAwsjson11_deserializeOpGetCostCategories) ID() string {
  1493. return "OperationDeserializer"
  1494. }
  1495. func (m *awsAwsjson11_deserializeOpGetCostCategories) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  1496. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  1497. ) {
  1498. out, metadata, err = next.HandleDeserialize(ctx, in)
  1499. if err != nil {
  1500. return out, metadata, err
  1501. }
  1502. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  1503. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  1504. defer endTimer()
  1505. defer span.End()
  1506. response, ok := out.RawResponse.(*smithyhttp.Response)
  1507. if !ok {
  1508. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  1509. }
  1510. if response.StatusCode < 200 || response.StatusCode >= 300 {
  1511. return out, metadata, awsAwsjson11_deserializeOpErrorGetCostCategories(response, &metadata)
  1512. }
  1513. output := &GetCostCategoriesOutput{}
  1514. out.Result = output
  1515. var buff [1024]byte
  1516. ringBuffer := smithyio.NewRingBuffer(buff[:])
  1517. body := io.TeeReader(response.Body, ringBuffer)
  1518. decoder := json.NewDecoder(body)
  1519. decoder.UseNumber()
  1520. var shape interface{}
  1521. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  1522. var snapshot bytes.Buffer
  1523. io.Copy(&snapshot, ringBuffer)
  1524. err = &smithy.DeserializationError{
  1525. Err: fmt.Errorf("failed to decode response body, %w", err),
  1526. Snapshot: snapshot.Bytes(),
  1527. }
  1528. return out, metadata, err
  1529. }
  1530. err = awsAwsjson11_deserializeOpDocumentGetCostCategoriesOutput(&output, shape)
  1531. if err != nil {
  1532. var snapshot bytes.Buffer
  1533. io.Copy(&snapshot, ringBuffer)
  1534. err = &smithy.DeserializationError{
  1535. Err: fmt.Errorf("failed to decode response body, %w", err),
  1536. Snapshot: snapshot.Bytes(),
  1537. }
  1538. return out, metadata, err
  1539. }
  1540. return out, metadata, err
  1541. }
  1542. func awsAwsjson11_deserializeOpErrorGetCostCategories(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  1543. var errorBuffer bytes.Buffer
  1544. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  1545. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  1546. }
  1547. errorBody := bytes.NewReader(errorBuffer.Bytes())
  1548. errorCode := "UnknownError"
  1549. errorMessage := errorCode
  1550. headerCode := response.Header.Get("X-Amzn-ErrorType")
  1551. var buff [1024]byte
  1552. ringBuffer := smithyio.NewRingBuffer(buff[:])
  1553. body := io.TeeReader(errorBody, ringBuffer)
  1554. decoder := json.NewDecoder(body)
  1555. decoder.UseNumber()
  1556. bodyInfo, err := getProtocolErrorInfo(decoder)
  1557. if err != nil {
  1558. var snapshot bytes.Buffer
  1559. io.Copy(&snapshot, ringBuffer)
  1560. err = &smithy.DeserializationError{
  1561. Err: fmt.Errorf("failed to decode response body, %w", err),
  1562. Snapshot: snapshot.Bytes(),
  1563. }
  1564. return err
  1565. }
  1566. errorBody.Seek(0, io.SeekStart)
  1567. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  1568. errorCode = restjson.SanitizeErrorCode(typ)
  1569. }
  1570. if len(bodyInfo.Message) != 0 {
  1571. errorMessage = bodyInfo.Message
  1572. }
  1573. switch {
  1574. case strings.EqualFold("BillExpirationException", errorCode):
  1575. return awsAwsjson11_deserializeErrorBillExpirationException(response, errorBody)
  1576. case strings.EqualFold("BillingViewHealthStatusException", errorCode):
  1577. return awsAwsjson11_deserializeErrorBillingViewHealthStatusException(response, errorBody)
  1578. case strings.EqualFold("DataUnavailableException", errorCode):
  1579. return awsAwsjson11_deserializeErrorDataUnavailableException(response, errorBody)
  1580. case strings.EqualFold("InvalidNextTokenException", errorCode):
  1581. return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody)
  1582. case strings.EqualFold("LimitExceededException", errorCode):
  1583. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  1584. case strings.EqualFold("RequestChangedException", errorCode):
  1585. return awsAwsjson11_deserializeErrorRequestChangedException(response, errorBody)
  1586. case strings.EqualFold("ResourceNotFoundException", errorCode):
  1587. return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody)
  1588. default:
  1589. genericError := &smithy.GenericAPIError{
  1590. Code: errorCode,
  1591. Message: errorMessage,
  1592. }
  1593. return genericError
  1594. }
  1595. }
  1596. type awsAwsjson11_deserializeOpGetCostComparisonDrivers struct {
  1597. }
  1598. func (*awsAwsjson11_deserializeOpGetCostComparisonDrivers) ID() string {
  1599. return "OperationDeserializer"
  1600. }
  1601. func (m *awsAwsjson11_deserializeOpGetCostComparisonDrivers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  1602. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  1603. ) {
  1604. out, metadata, err = next.HandleDeserialize(ctx, in)
  1605. if err != nil {
  1606. return out, metadata, err
  1607. }
  1608. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  1609. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  1610. defer endTimer()
  1611. defer span.End()
  1612. response, ok := out.RawResponse.(*smithyhttp.Response)
  1613. if !ok {
  1614. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  1615. }
  1616. if response.StatusCode < 200 || response.StatusCode >= 300 {
  1617. return out, metadata, awsAwsjson11_deserializeOpErrorGetCostComparisonDrivers(response, &metadata)
  1618. }
  1619. output := &GetCostComparisonDriversOutput{}
  1620. out.Result = output
  1621. var buff [1024]byte
  1622. ringBuffer := smithyio.NewRingBuffer(buff[:])
  1623. body := io.TeeReader(response.Body, ringBuffer)
  1624. decoder := json.NewDecoder(body)
  1625. decoder.UseNumber()
  1626. var shape interface{}
  1627. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  1628. var snapshot bytes.Buffer
  1629. io.Copy(&snapshot, ringBuffer)
  1630. err = &smithy.DeserializationError{
  1631. Err: fmt.Errorf("failed to decode response body, %w", err),
  1632. Snapshot: snapshot.Bytes(),
  1633. }
  1634. return out, metadata, err
  1635. }
  1636. err = awsAwsjson11_deserializeOpDocumentGetCostComparisonDriversOutput(&output, shape)
  1637. if err != nil {
  1638. var snapshot bytes.Buffer
  1639. io.Copy(&snapshot, ringBuffer)
  1640. err = &smithy.DeserializationError{
  1641. Err: fmt.Errorf("failed to decode response body, %w", err),
  1642. Snapshot: snapshot.Bytes(),
  1643. }
  1644. return out, metadata, err
  1645. }
  1646. return out, metadata, err
  1647. }
  1648. func awsAwsjson11_deserializeOpErrorGetCostComparisonDrivers(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  1649. var errorBuffer bytes.Buffer
  1650. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  1651. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  1652. }
  1653. errorBody := bytes.NewReader(errorBuffer.Bytes())
  1654. errorCode := "UnknownError"
  1655. errorMessage := errorCode
  1656. headerCode := response.Header.Get("X-Amzn-ErrorType")
  1657. var buff [1024]byte
  1658. ringBuffer := smithyio.NewRingBuffer(buff[:])
  1659. body := io.TeeReader(errorBody, ringBuffer)
  1660. decoder := json.NewDecoder(body)
  1661. decoder.UseNumber()
  1662. bodyInfo, err := getProtocolErrorInfo(decoder)
  1663. if err != nil {
  1664. var snapshot bytes.Buffer
  1665. io.Copy(&snapshot, ringBuffer)
  1666. err = &smithy.DeserializationError{
  1667. Err: fmt.Errorf("failed to decode response body, %w", err),
  1668. Snapshot: snapshot.Bytes(),
  1669. }
  1670. return err
  1671. }
  1672. errorBody.Seek(0, io.SeekStart)
  1673. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  1674. errorCode = restjson.SanitizeErrorCode(typ)
  1675. }
  1676. if len(bodyInfo.Message) != 0 {
  1677. errorMessage = bodyInfo.Message
  1678. }
  1679. switch {
  1680. case strings.EqualFold("BillingViewHealthStatusException", errorCode):
  1681. return awsAwsjson11_deserializeErrorBillingViewHealthStatusException(response, errorBody)
  1682. case strings.EqualFold("DataUnavailableException", errorCode):
  1683. return awsAwsjson11_deserializeErrorDataUnavailableException(response, errorBody)
  1684. case strings.EqualFold("InvalidNextTokenException", errorCode):
  1685. return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody)
  1686. case strings.EqualFold("LimitExceededException", errorCode):
  1687. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  1688. case strings.EqualFold("ResourceNotFoundException", errorCode):
  1689. return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody)
  1690. default:
  1691. genericError := &smithy.GenericAPIError{
  1692. Code: errorCode,
  1693. Message: errorMessage,
  1694. }
  1695. return genericError
  1696. }
  1697. }
  1698. type awsAwsjson11_deserializeOpGetCostForecast struct {
  1699. }
  1700. func (*awsAwsjson11_deserializeOpGetCostForecast) ID() string {
  1701. return "OperationDeserializer"
  1702. }
  1703. func (m *awsAwsjson11_deserializeOpGetCostForecast) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  1704. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  1705. ) {
  1706. out, metadata, err = next.HandleDeserialize(ctx, in)
  1707. if err != nil {
  1708. return out, metadata, err
  1709. }
  1710. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  1711. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  1712. defer endTimer()
  1713. defer span.End()
  1714. response, ok := out.RawResponse.(*smithyhttp.Response)
  1715. if !ok {
  1716. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  1717. }
  1718. if response.StatusCode < 200 || response.StatusCode >= 300 {
  1719. return out, metadata, awsAwsjson11_deserializeOpErrorGetCostForecast(response, &metadata)
  1720. }
  1721. output := &GetCostForecastOutput{}
  1722. out.Result = output
  1723. var buff [1024]byte
  1724. ringBuffer := smithyio.NewRingBuffer(buff[:])
  1725. body := io.TeeReader(response.Body, ringBuffer)
  1726. decoder := json.NewDecoder(body)
  1727. decoder.UseNumber()
  1728. var shape interface{}
  1729. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  1730. var snapshot bytes.Buffer
  1731. io.Copy(&snapshot, ringBuffer)
  1732. err = &smithy.DeserializationError{
  1733. Err: fmt.Errorf("failed to decode response body, %w", err),
  1734. Snapshot: snapshot.Bytes(),
  1735. }
  1736. return out, metadata, err
  1737. }
  1738. err = awsAwsjson11_deserializeOpDocumentGetCostForecastOutput(&output, shape)
  1739. if err != nil {
  1740. var snapshot bytes.Buffer
  1741. io.Copy(&snapshot, ringBuffer)
  1742. err = &smithy.DeserializationError{
  1743. Err: fmt.Errorf("failed to decode response body, %w", err),
  1744. Snapshot: snapshot.Bytes(),
  1745. }
  1746. return out, metadata, err
  1747. }
  1748. return out, metadata, err
  1749. }
  1750. func awsAwsjson11_deserializeOpErrorGetCostForecast(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  1751. var errorBuffer bytes.Buffer
  1752. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  1753. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  1754. }
  1755. errorBody := bytes.NewReader(errorBuffer.Bytes())
  1756. errorCode := "UnknownError"
  1757. errorMessage := errorCode
  1758. headerCode := response.Header.Get("X-Amzn-ErrorType")
  1759. var buff [1024]byte
  1760. ringBuffer := smithyio.NewRingBuffer(buff[:])
  1761. body := io.TeeReader(errorBody, ringBuffer)
  1762. decoder := json.NewDecoder(body)
  1763. decoder.UseNumber()
  1764. bodyInfo, err := getProtocolErrorInfo(decoder)
  1765. if err != nil {
  1766. var snapshot bytes.Buffer
  1767. io.Copy(&snapshot, ringBuffer)
  1768. err = &smithy.DeserializationError{
  1769. Err: fmt.Errorf("failed to decode response body, %w", err),
  1770. Snapshot: snapshot.Bytes(),
  1771. }
  1772. return err
  1773. }
  1774. errorBody.Seek(0, io.SeekStart)
  1775. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  1776. errorCode = restjson.SanitizeErrorCode(typ)
  1777. }
  1778. if len(bodyInfo.Message) != 0 {
  1779. errorMessage = bodyInfo.Message
  1780. }
  1781. switch {
  1782. case strings.EqualFold("BillingViewHealthStatusException", errorCode):
  1783. return awsAwsjson11_deserializeErrorBillingViewHealthStatusException(response, errorBody)
  1784. case strings.EqualFold("DataUnavailableException", errorCode):
  1785. return awsAwsjson11_deserializeErrorDataUnavailableException(response, errorBody)
  1786. case strings.EqualFold("LimitExceededException", errorCode):
  1787. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  1788. case strings.EqualFold("ResourceNotFoundException", errorCode):
  1789. return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody)
  1790. default:
  1791. genericError := &smithy.GenericAPIError{
  1792. Code: errorCode,
  1793. Message: errorMessage,
  1794. }
  1795. return genericError
  1796. }
  1797. }
  1798. type awsAwsjson11_deserializeOpGetDimensionValues struct {
  1799. }
  1800. func (*awsAwsjson11_deserializeOpGetDimensionValues) ID() string {
  1801. return "OperationDeserializer"
  1802. }
  1803. func (m *awsAwsjson11_deserializeOpGetDimensionValues) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  1804. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  1805. ) {
  1806. out, metadata, err = next.HandleDeserialize(ctx, in)
  1807. if err != nil {
  1808. return out, metadata, err
  1809. }
  1810. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  1811. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  1812. defer endTimer()
  1813. defer span.End()
  1814. response, ok := out.RawResponse.(*smithyhttp.Response)
  1815. if !ok {
  1816. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  1817. }
  1818. if response.StatusCode < 200 || response.StatusCode >= 300 {
  1819. return out, metadata, awsAwsjson11_deserializeOpErrorGetDimensionValues(response, &metadata)
  1820. }
  1821. output := &GetDimensionValuesOutput{}
  1822. out.Result = output
  1823. var buff [1024]byte
  1824. ringBuffer := smithyio.NewRingBuffer(buff[:])
  1825. body := io.TeeReader(response.Body, ringBuffer)
  1826. decoder := json.NewDecoder(body)
  1827. decoder.UseNumber()
  1828. var shape interface{}
  1829. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  1830. var snapshot bytes.Buffer
  1831. io.Copy(&snapshot, ringBuffer)
  1832. err = &smithy.DeserializationError{
  1833. Err: fmt.Errorf("failed to decode response body, %w", err),
  1834. Snapshot: snapshot.Bytes(),
  1835. }
  1836. return out, metadata, err
  1837. }
  1838. err = awsAwsjson11_deserializeOpDocumentGetDimensionValuesOutput(&output, shape)
  1839. if err != nil {
  1840. var snapshot bytes.Buffer
  1841. io.Copy(&snapshot, ringBuffer)
  1842. err = &smithy.DeserializationError{
  1843. Err: fmt.Errorf("failed to decode response body, %w", err),
  1844. Snapshot: snapshot.Bytes(),
  1845. }
  1846. return out, metadata, err
  1847. }
  1848. return out, metadata, err
  1849. }
  1850. func awsAwsjson11_deserializeOpErrorGetDimensionValues(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  1851. var errorBuffer bytes.Buffer
  1852. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  1853. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  1854. }
  1855. errorBody := bytes.NewReader(errorBuffer.Bytes())
  1856. errorCode := "UnknownError"
  1857. errorMessage := errorCode
  1858. headerCode := response.Header.Get("X-Amzn-ErrorType")
  1859. var buff [1024]byte
  1860. ringBuffer := smithyio.NewRingBuffer(buff[:])
  1861. body := io.TeeReader(errorBody, ringBuffer)
  1862. decoder := json.NewDecoder(body)
  1863. decoder.UseNumber()
  1864. bodyInfo, err := getProtocolErrorInfo(decoder)
  1865. if err != nil {
  1866. var snapshot bytes.Buffer
  1867. io.Copy(&snapshot, ringBuffer)
  1868. err = &smithy.DeserializationError{
  1869. Err: fmt.Errorf("failed to decode response body, %w", err),
  1870. Snapshot: snapshot.Bytes(),
  1871. }
  1872. return err
  1873. }
  1874. errorBody.Seek(0, io.SeekStart)
  1875. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  1876. errorCode = restjson.SanitizeErrorCode(typ)
  1877. }
  1878. if len(bodyInfo.Message) != 0 {
  1879. errorMessage = bodyInfo.Message
  1880. }
  1881. switch {
  1882. case strings.EqualFold("BillExpirationException", errorCode):
  1883. return awsAwsjson11_deserializeErrorBillExpirationException(response, errorBody)
  1884. case strings.EqualFold("BillingViewHealthStatusException", errorCode):
  1885. return awsAwsjson11_deserializeErrorBillingViewHealthStatusException(response, errorBody)
  1886. case strings.EqualFold("DataUnavailableException", errorCode):
  1887. return awsAwsjson11_deserializeErrorDataUnavailableException(response, errorBody)
  1888. case strings.EqualFold("InvalidNextTokenException", errorCode):
  1889. return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody)
  1890. case strings.EqualFold("LimitExceededException", errorCode):
  1891. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  1892. case strings.EqualFold("RequestChangedException", errorCode):
  1893. return awsAwsjson11_deserializeErrorRequestChangedException(response, errorBody)
  1894. case strings.EqualFold("ResourceNotFoundException", errorCode):
  1895. return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody)
  1896. default:
  1897. genericError := &smithy.GenericAPIError{
  1898. Code: errorCode,
  1899. Message: errorMessage,
  1900. }
  1901. return genericError
  1902. }
  1903. }
  1904. type awsAwsjson11_deserializeOpGetReservationCoverage struct {
  1905. }
  1906. func (*awsAwsjson11_deserializeOpGetReservationCoverage) ID() string {
  1907. return "OperationDeserializer"
  1908. }
  1909. func (m *awsAwsjson11_deserializeOpGetReservationCoverage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  1910. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  1911. ) {
  1912. out, metadata, err = next.HandleDeserialize(ctx, in)
  1913. if err != nil {
  1914. return out, metadata, err
  1915. }
  1916. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  1917. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  1918. defer endTimer()
  1919. defer span.End()
  1920. response, ok := out.RawResponse.(*smithyhttp.Response)
  1921. if !ok {
  1922. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  1923. }
  1924. if response.StatusCode < 200 || response.StatusCode >= 300 {
  1925. return out, metadata, awsAwsjson11_deserializeOpErrorGetReservationCoverage(response, &metadata)
  1926. }
  1927. output := &GetReservationCoverageOutput{}
  1928. out.Result = output
  1929. var buff [1024]byte
  1930. ringBuffer := smithyio.NewRingBuffer(buff[:])
  1931. body := io.TeeReader(response.Body, ringBuffer)
  1932. decoder := json.NewDecoder(body)
  1933. decoder.UseNumber()
  1934. var shape interface{}
  1935. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  1936. var snapshot bytes.Buffer
  1937. io.Copy(&snapshot, ringBuffer)
  1938. err = &smithy.DeserializationError{
  1939. Err: fmt.Errorf("failed to decode response body, %w", err),
  1940. Snapshot: snapshot.Bytes(),
  1941. }
  1942. return out, metadata, err
  1943. }
  1944. err = awsAwsjson11_deserializeOpDocumentGetReservationCoverageOutput(&output, shape)
  1945. if err != nil {
  1946. var snapshot bytes.Buffer
  1947. io.Copy(&snapshot, ringBuffer)
  1948. err = &smithy.DeserializationError{
  1949. Err: fmt.Errorf("failed to decode response body, %w", err),
  1950. Snapshot: snapshot.Bytes(),
  1951. }
  1952. return out, metadata, err
  1953. }
  1954. return out, metadata, err
  1955. }
  1956. func awsAwsjson11_deserializeOpErrorGetReservationCoverage(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  1957. var errorBuffer bytes.Buffer
  1958. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  1959. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  1960. }
  1961. errorBody := bytes.NewReader(errorBuffer.Bytes())
  1962. errorCode := "UnknownError"
  1963. errorMessage := errorCode
  1964. headerCode := response.Header.Get("X-Amzn-ErrorType")
  1965. var buff [1024]byte
  1966. ringBuffer := smithyio.NewRingBuffer(buff[:])
  1967. body := io.TeeReader(errorBody, ringBuffer)
  1968. decoder := json.NewDecoder(body)
  1969. decoder.UseNumber()
  1970. bodyInfo, err := getProtocolErrorInfo(decoder)
  1971. if err != nil {
  1972. var snapshot bytes.Buffer
  1973. io.Copy(&snapshot, ringBuffer)
  1974. err = &smithy.DeserializationError{
  1975. Err: fmt.Errorf("failed to decode response body, %w", err),
  1976. Snapshot: snapshot.Bytes(),
  1977. }
  1978. return err
  1979. }
  1980. errorBody.Seek(0, io.SeekStart)
  1981. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  1982. errorCode = restjson.SanitizeErrorCode(typ)
  1983. }
  1984. if len(bodyInfo.Message) != 0 {
  1985. errorMessage = bodyInfo.Message
  1986. }
  1987. switch {
  1988. case strings.EqualFold("DataUnavailableException", errorCode):
  1989. return awsAwsjson11_deserializeErrorDataUnavailableException(response, errorBody)
  1990. case strings.EqualFold("InvalidNextTokenException", errorCode):
  1991. return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody)
  1992. case strings.EqualFold("LimitExceededException", errorCode):
  1993. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  1994. default:
  1995. genericError := &smithy.GenericAPIError{
  1996. Code: errorCode,
  1997. Message: errorMessage,
  1998. }
  1999. return genericError
  2000. }
  2001. }
  2002. type awsAwsjson11_deserializeOpGetReservationPurchaseRecommendation struct {
  2003. }
  2004. func (*awsAwsjson11_deserializeOpGetReservationPurchaseRecommendation) ID() string {
  2005. return "OperationDeserializer"
  2006. }
  2007. func (m *awsAwsjson11_deserializeOpGetReservationPurchaseRecommendation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  2008. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  2009. ) {
  2010. out, metadata, err = next.HandleDeserialize(ctx, in)
  2011. if err != nil {
  2012. return out, metadata, err
  2013. }
  2014. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  2015. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  2016. defer endTimer()
  2017. defer span.End()
  2018. response, ok := out.RawResponse.(*smithyhttp.Response)
  2019. if !ok {
  2020. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  2021. }
  2022. if response.StatusCode < 200 || response.StatusCode >= 300 {
  2023. return out, metadata, awsAwsjson11_deserializeOpErrorGetReservationPurchaseRecommendation(response, &metadata)
  2024. }
  2025. output := &GetReservationPurchaseRecommendationOutput{}
  2026. out.Result = output
  2027. var buff [1024]byte
  2028. ringBuffer := smithyio.NewRingBuffer(buff[:])
  2029. body := io.TeeReader(response.Body, ringBuffer)
  2030. decoder := json.NewDecoder(body)
  2031. decoder.UseNumber()
  2032. var shape interface{}
  2033. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  2034. var snapshot bytes.Buffer
  2035. io.Copy(&snapshot, ringBuffer)
  2036. err = &smithy.DeserializationError{
  2037. Err: fmt.Errorf("failed to decode response body, %w", err),
  2038. Snapshot: snapshot.Bytes(),
  2039. }
  2040. return out, metadata, err
  2041. }
  2042. err = awsAwsjson11_deserializeOpDocumentGetReservationPurchaseRecommendationOutput(&output, shape)
  2043. if err != nil {
  2044. var snapshot bytes.Buffer
  2045. io.Copy(&snapshot, ringBuffer)
  2046. err = &smithy.DeserializationError{
  2047. Err: fmt.Errorf("failed to decode response body, %w", err),
  2048. Snapshot: snapshot.Bytes(),
  2049. }
  2050. return out, metadata, err
  2051. }
  2052. return out, metadata, err
  2053. }
  2054. func awsAwsjson11_deserializeOpErrorGetReservationPurchaseRecommendation(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  2055. var errorBuffer bytes.Buffer
  2056. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  2057. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  2058. }
  2059. errorBody := bytes.NewReader(errorBuffer.Bytes())
  2060. errorCode := "UnknownError"
  2061. errorMessage := errorCode
  2062. headerCode := response.Header.Get("X-Amzn-ErrorType")
  2063. var buff [1024]byte
  2064. ringBuffer := smithyio.NewRingBuffer(buff[:])
  2065. body := io.TeeReader(errorBody, ringBuffer)
  2066. decoder := json.NewDecoder(body)
  2067. decoder.UseNumber()
  2068. bodyInfo, err := getProtocolErrorInfo(decoder)
  2069. if err != nil {
  2070. var snapshot bytes.Buffer
  2071. io.Copy(&snapshot, ringBuffer)
  2072. err = &smithy.DeserializationError{
  2073. Err: fmt.Errorf("failed to decode response body, %w", err),
  2074. Snapshot: snapshot.Bytes(),
  2075. }
  2076. return err
  2077. }
  2078. errorBody.Seek(0, io.SeekStart)
  2079. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  2080. errorCode = restjson.SanitizeErrorCode(typ)
  2081. }
  2082. if len(bodyInfo.Message) != 0 {
  2083. errorMessage = bodyInfo.Message
  2084. }
  2085. switch {
  2086. case strings.EqualFold("DataUnavailableException", errorCode):
  2087. return awsAwsjson11_deserializeErrorDataUnavailableException(response, errorBody)
  2088. case strings.EqualFold("InvalidNextTokenException", errorCode):
  2089. return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody)
  2090. case strings.EqualFold("LimitExceededException", errorCode):
  2091. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  2092. default:
  2093. genericError := &smithy.GenericAPIError{
  2094. Code: errorCode,
  2095. Message: errorMessage,
  2096. }
  2097. return genericError
  2098. }
  2099. }
  2100. type awsAwsjson11_deserializeOpGetReservationUtilization struct {
  2101. }
  2102. func (*awsAwsjson11_deserializeOpGetReservationUtilization) ID() string {
  2103. return "OperationDeserializer"
  2104. }
  2105. func (m *awsAwsjson11_deserializeOpGetReservationUtilization) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  2106. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  2107. ) {
  2108. out, metadata, err = next.HandleDeserialize(ctx, in)
  2109. if err != nil {
  2110. return out, metadata, err
  2111. }
  2112. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  2113. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  2114. defer endTimer()
  2115. defer span.End()
  2116. response, ok := out.RawResponse.(*smithyhttp.Response)
  2117. if !ok {
  2118. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  2119. }
  2120. if response.StatusCode < 200 || response.StatusCode >= 300 {
  2121. return out, metadata, awsAwsjson11_deserializeOpErrorGetReservationUtilization(response, &metadata)
  2122. }
  2123. output := &GetReservationUtilizationOutput{}
  2124. out.Result = output
  2125. var buff [1024]byte
  2126. ringBuffer := smithyio.NewRingBuffer(buff[:])
  2127. body := io.TeeReader(response.Body, ringBuffer)
  2128. decoder := json.NewDecoder(body)
  2129. decoder.UseNumber()
  2130. var shape interface{}
  2131. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  2132. var snapshot bytes.Buffer
  2133. io.Copy(&snapshot, ringBuffer)
  2134. err = &smithy.DeserializationError{
  2135. Err: fmt.Errorf("failed to decode response body, %w", err),
  2136. Snapshot: snapshot.Bytes(),
  2137. }
  2138. return out, metadata, err
  2139. }
  2140. err = awsAwsjson11_deserializeOpDocumentGetReservationUtilizationOutput(&output, shape)
  2141. if err != nil {
  2142. var snapshot bytes.Buffer
  2143. io.Copy(&snapshot, ringBuffer)
  2144. err = &smithy.DeserializationError{
  2145. Err: fmt.Errorf("failed to decode response body, %w", err),
  2146. Snapshot: snapshot.Bytes(),
  2147. }
  2148. return out, metadata, err
  2149. }
  2150. return out, metadata, err
  2151. }
  2152. func awsAwsjson11_deserializeOpErrorGetReservationUtilization(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  2153. var errorBuffer bytes.Buffer
  2154. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  2155. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  2156. }
  2157. errorBody := bytes.NewReader(errorBuffer.Bytes())
  2158. errorCode := "UnknownError"
  2159. errorMessage := errorCode
  2160. headerCode := response.Header.Get("X-Amzn-ErrorType")
  2161. var buff [1024]byte
  2162. ringBuffer := smithyio.NewRingBuffer(buff[:])
  2163. body := io.TeeReader(errorBody, ringBuffer)
  2164. decoder := json.NewDecoder(body)
  2165. decoder.UseNumber()
  2166. bodyInfo, err := getProtocolErrorInfo(decoder)
  2167. if err != nil {
  2168. var snapshot bytes.Buffer
  2169. io.Copy(&snapshot, ringBuffer)
  2170. err = &smithy.DeserializationError{
  2171. Err: fmt.Errorf("failed to decode response body, %w", err),
  2172. Snapshot: snapshot.Bytes(),
  2173. }
  2174. return err
  2175. }
  2176. errorBody.Seek(0, io.SeekStart)
  2177. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  2178. errorCode = restjson.SanitizeErrorCode(typ)
  2179. }
  2180. if len(bodyInfo.Message) != 0 {
  2181. errorMessage = bodyInfo.Message
  2182. }
  2183. switch {
  2184. case strings.EqualFold("DataUnavailableException", errorCode):
  2185. return awsAwsjson11_deserializeErrorDataUnavailableException(response, errorBody)
  2186. case strings.EqualFold("InvalidNextTokenException", errorCode):
  2187. return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody)
  2188. case strings.EqualFold("LimitExceededException", errorCode):
  2189. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  2190. default:
  2191. genericError := &smithy.GenericAPIError{
  2192. Code: errorCode,
  2193. Message: errorMessage,
  2194. }
  2195. return genericError
  2196. }
  2197. }
  2198. type awsAwsjson11_deserializeOpGetRightsizingRecommendation struct {
  2199. }
  2200. func (*awsAwsjson11_deserializeOpGetRightsizingRecommendation) ID() string {
  2201. return "OperationDeserializer"
  2202. }
  2203. func (m *awsAwsjson11_deserializeOpGetRightsizingRecommendation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  2204. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  2205. ) {
  2206. out, metadata, err = next.HandleDeserialize(ctx, in)
  2207. if err != nil {
  2208. return out, metadata, err
  2209. }
  2210. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  2211. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  2212. defer endTimer()
  2213. defer span.End()
  2214. response, ok := out.RawResponse.(*smithyhttp.Response)
  2215. if !ok {
  2216. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  2217. }
  2218. if response.StatusCode < 200 || response.StatusCode >= 300 {
  2219. return out, metadata, awsAwsjson11_deserializeOpErrorGetRightsizingRecommendation(response, &metadata)
  2220. }
  2221. output := &GetRightsizingRecommendationOutput{}
  2222. out.Result = output
  2223. var buff [1024]byte
  2224. ringBuffer := smithyio.NewRingBuffer(buff[:])
  2225. body := io.TeeReader(response.Body, ringBuffer)
  2226. decoder := json.NewDecoder(body)
  2227. decoder.UseNumber()
  2228. var shape interface{}
  2229. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  2230. var snapshot bytes.Buffer
  2231. io.Copy(&snapshot, ringBuffer)
  2232. err = &smithy.DeserializationError{
  2233. Err: fmt.Errorf("failed to decode response body, %w", err),
  2234. Snapshot: snapshot.Bytes(),
  2235. }
  2236. return out, metadata, err
  2237. }
  2238. err = awsAwsjson11_deserializeOpDocumentGetRightsizingRecommendationOutput(&output, shape)
  2239. if err != nil {
  2240. var snapshot bytes.Buffer
  2241. io.Copy(&snapshot, ringBuffer)
  2242. err = &smithy.DeserializationError{
  2243. Err: fmt.Errorf("failed to decode response body, %w", err),
  2244. Snapshot: snapshot.Bytes(),
  2245. }
  2246. return out, metadata, err
  2247. }
  2248. return out, metadata, err
  2249. }
  2250. func awsAwsjson11_deserializeOpErrorGetRightsizingRecommendation(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  2251. var errorBuffer bytes.Buffer
  2252. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  2253. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  2254. }
  2255. errorBody := bytes.NewReader(errorBuffer.Bytes())
  2256. errorCode := "UnknownError"
  2257. errorMessage := errorCode
  2258. headerCode := response.Header.Get("X-Amzn-ErrorType")
  2259. var buff [1024]byte
  2260. ringBuffer := smithyio.NewRingBuffer(buff[:])
  2261. body := io.TeeReader(errorBody, ringBuffer)
  2262. decoder := json.NewDecoder(body)
  2263. decoder.UseNumber()
  2264. bodyInfo, err := getProtocolErrorInfo(decoder)
  2265. if err != nil {
  2266. var snapshot bytes.Buffer
  2267. io.Copy(&snapshot, ringBuffer)
  2268. err = &smithy.DeserializationError{
  2269. Err: fmt.Errorf("failed to decode response body, %w", err),
  2270. Snapshot: snapshot.Bytes(),
  2271. }
  2272. return err
  2273. }
  2274. errorBody.Seek(0, io.SeekStart)
  2275. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  2276. errorCode = restjson.SanitizeErrorCode(typ)
  2277. }
  2278. if len(bodyInfo.Message) != 0 {
  2279. errorMessage = bodyInfo.Message
  2280. }
  2281. switch {
  2282. case strings.EqualFold("InvalidNextTokenException", errorCode):
  2283. return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody)
  2284. case strings.EqualFold("LimitExceededException", errorCode):
  2285. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  2286. default:
  2287. genericError := &smithy.GenericAPIError{
  2288. Code: errorCode,
  2289. Message: errorMessage,
  2290. }
  2291. return genericError
  2292. }
  2293. }
  2294. type awsAwsjson11_deserializeOpGetSavingsPlanPurchaseRecommendationDetails struct {
  2295. }
  2296. func (*awsAwsjson11_deserializeOpGetSavingsPlanPurchaseRecommendationDetails) ID() string {
  2297. return "OperationDeserializer"
  2298. }
  2299. func (m *awsAwsjson11_deserializeOpGetSavingsPlanPurchaseRecommendationDetails) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  2300. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  2301. ) {
  2302. out, metadata, err = next.HandleDeserialize(ctx, in)
  2303. if err != nil {
  2304. return out, metadata, err
  2305. }
  2306. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  2307. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  2308. defer endTimer()
  2309. defer span.End()
  2310. response, ok := out.RawResponse.(*smithyhttp.Response)
  2311. if !ok {
  2312. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  2313. }
  2314. if response.StatusCode < 200 || response.StatusCode >= 300 {
  2315. return out, metadata, awsAwsjson11_deserializeOpErrorGetSavingsPlanPurchaseRecommendationDetails(response, &metadata)
  2316. }
  2317. output := &GetSavingsPlanPurchaseRecommendationDetailsOutput{}
  2318. out.Result = output
  2319. var buff [1024]byte
  2320. ringBuffer := smithyio.NewRingBuffer(buff[:])
  2321. body := io.TeeReader(response.Body, ringBuffer)
  2322. decoder := json.NewDecoder(body)
  2323. decoder.UseNumber()
  2324. var shape interface{}
  2325. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  2326. var snapshot bytes.Buffer
  2327. io.Copy(&snapshot, ringBuffer)
  2328. err = &smithy.DeserializationError{
  2329. Err: fmt.Errorf("failed to decode response body, %w", err),
  2330. Snapshot: snapshot.Bytes(),
  2331. }
  2332. return out, metadata, err
  2333. }
  2334. err = awsAwsjson11_deserializeOpDocumentGetSavingsPlanPurchaseRecommendationDetailsOutput(&output, shape)
  2335. if err != nil {
  2336. var snapshot bytes.Buffer
  2337. io.Copy(&snapshot, ringBuffer)
  2338. err = &smithy.DeserializationError{
  2339. Err: fmt.Errorf("failed to decode response body, %w", err),
  2340. Snapshot: snapshot.Bytes(),
  2341. }
  2342. return out, metadata, err
  2343. }
  2344. return out, metadata, err
  2345. }
  2346. func awsAwsjson11_deserializeOpErrorGetSavingsPlanPurchaseRecommendationDetails(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  2347. var errorBuffer bytes.Buffer
  2348. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  2349. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  2350. }
  2351. errorBody := bytes.NewReader(errorBuffer.Bytes())
  2352. errorCode := "UnknownError"
  2353. errorMessage := errorCode
  2354. headerCode := response.Header.Get("X-Amzn-ErrorType")
  2355. var buff [1024]byte
  2356. ringBuffer := smithyio.NewRingBuffer(buff[:])
  2357. body := io.TeeReader(errorBody, ringBuffer)
  2358. decoder := json.NewDecoder(body)
  2359. decoder.UseNumber()
  2360. bodyInfo, err := getProtocolErrorInfo(decoder)
  2361. if err != nil {
  2362. var snapshot bytes.Buffer
  2363. io.Copy(&snapshot, ringBuffer)
  2364. err = &smithy.DeserializationError{
  2365. Err: fmt.Errorf("failed to decode response body, %w", err),
  2366. Snapshot: snapshot.Bytes(),
  2367. }
  2368. return err
  2369. }
  2370. errorBody.Seek(0, io.SeekStart)
  2371. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  2372. errorCode = restjson.SanitizeErrorCode(typ)
  2373. }
  2374. if len(bodyInfo.Message) != 0 {
  2375. errorMessage = bodyInfo.Message
  2376. }
  2377. switch {
  2378. case strings.EqualFold("DataUnavailableException", errorCode):
  2379. return awsAwsjson11_deserializeErrorDataUnavailableException(response, errorBody)
  2380. case strings.EqualFold("LimitExceededException", errorCode):
  2381. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  2382. default:
  2383. genericError := &smithy.GenericAPIError{
  2384. Code: errorCode,
  2385. Message: errorMessage,
  2386. }
  2387. return genericError
  2388. }
  2389. }
  2390. type awsAwsjson11_deserializeOpGetSavingsPlansCoverage struct {
  2391. }
  2392. func (*awsAwsjson11_deserializeOpGetSavingsPlansCoverage) ID() string {
  2393. return "OperationDeserializer"
  2394. }
  2395. func (m *awsAwsjson11_deserializeOpGetSavingsPlansCoverage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  2396. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  2397. ) {
  2398. out, metadata, err = next.HandleDeserialize(ctx, in)
  2399. if err != nil {
  2400. return out, metadata, err
  2401. }
  2402. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  2403. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  2404. defer endTimer()
  2405. defer span.End()
  2406. response, ok := out.RawResponse.(*smithyhttp.Response)
  2407. if !ok {
  2408. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  2409. }
  2410. if response.StatusCode < 200 || response.StatusCode >= 300 {
  2411. return out, metadata, awsAwsjson11_deserializeOpErrorGetSavingsPlansCoverage(response, &metadata)
  2412. }
  2413. output := &GetSavingsPlansCoverageOutput{}
  2414. out.Result = output
  2415. var buff [1024]byte
  2416. ringBuffer := smithyio.NewRingBuffer(buff[:])
  2417. body := io.TeeReader(response.Body, ringBuffer)
  2418. decoder := json.NewDecoder(body)
  2419. decoder.UseNumber()
  2420. var shape interface{}
  2421. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  2422. var snapshot bytes.Buffer
  2423. io.Copy(&snapshot, ringBuffer)
  2424. err = &smithy.DeserializationError{
  2425. Err: fmt.Errorf("failed to decode response body, %w", err),
  2426. Snapshot: snapshot.Bytes(),
  2427. }
  2428. return out, metadata, err
  2429. }
  2430. err = awsAwsjson11_deserializeOpDocumentGetSavingsPlansCoverageOutput(&output, shape)
  2431. if err != nil {
  2432. var snapshot bytes.Buffer
  2433. io.Copy(&snapshot, ringBuffer)
  2434. err = &smithy.DeserializationError{
  2435. Err: fmt.Errorf("failed to decode response body, %w", err),
  2436. Snapshot: snapshot.Bytes(),
  2437. }
  2438. return out, metadata, err
  2439. }
  2440. return out, metadata, err
  2441. }
  2442. func awsAwsjson11_deserializeOpErrorGetSavingsPlansCoverage(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  2443. var errorBuffer bytes.Buffer
  2444. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  2445. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  2446. }
  2447. errorBody := bytes.NewReader(errorBuffer.Bytes())
  2448. errorCode := "UnknownError"
  2449. errorMessage := errorCode
  2450. headerCode := response.Header.Get("X-Amzn-ErrorType")
  2451. var buff [1024]byte
  2452. ringBuffer := smithyio.NewRingBuffer(buff[:])
  2453. body := io.TeeReader(errorBody, ringBuffer)
  2454. decoder := json.NewDecoder(body)
  2455. decoder.UseNumber()
  2456. bodyInfo, err := getProtocolErrorInfo(decoder)
  2457. if err != nil {
  2458. var snapshot bytes.Buffer
  2459. io.Copy(&snapshot, ringBuffer)
  2460. err = &smithy.DeserializationError{
  2461. Err: fmt.Errorf("failed to decode response body, %w", err),
  2462. Snapshot: snapshot.Bytes(),
  2463. }
  2464. return err
  2465. }
  2466. errorBody.Seek(0, io.SeekStart)
  2467. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  2468. errorCode = restjson.SanitizeErrorCode(typ)
  2469. }
  2470. if len(bodyInfo.Message) != 0 {
  2471. errorMessage = bodyInfo.Message
  2472. }
  2473. switch {
  2474. case strings.EqualFold("DataUnavailableException", errorCode):
  2475. return awsAwsjson11_deserializeErrorDataUnavailableException(response, errorBody)
  2476. case strings.EqualFold("InvalidNextTokenException", errorCode):
  2477. return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody)
  2478. case strings.EqualFold("LimitExceededException", errorCode):
  2479. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  2480. default:
  2481. genericError := &smithy.GenericAPIError{
  2482. Code: errorCode,
  2483. Message: errorMessage,
  2484. }
  2485. return genericError
  2486. }
  2487. }
  2488. type awsAwsjson11_deserializeOpGetSavingsPlansPurchaseRecommendation struct {
  2489. }
  2490. func (*awsAwsjson11_deserializeOpGetSavingsPlansPurchaseRecommendation) ID() string {
  2491. return "OperationDeserializer"
  2492. }
  2493. func (m *awsAwsjson11_deserializeOpGetSavingsPlansPurchaseRecommendation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  2494. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  2495. ) {
  2496. out, metadata, err = next.HandleDeserialize(ctx, in)
  2497. if err != nil {
  2498. return out, metadata, err
  2499. }
  2500. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  2501. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  2502. defer endTimer()
  2503. defer span.End()
  2504. response, ok := out.RawResponse.(*smithyhttp.Response)
  2505. if !ok {
  2506. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  2507. }
  2508. if response.StatusCode < 200 || response.StatusCode >= 300 {
  2509. return out, metadata, awsAwsjson11_deserializeOpErrorGetSavingsPlansPurchaseRecommendation(response, &metadata)
  2510. }
  2511. output := &GetSavingsPlansPurchaseRecommendationOutput{}
  2512. out.Result = output
  2513. var buff [1024]byte
  2514. ringBuffer := smithyio.NewRingBuffer(buff[:])
  2515. body := io.TeeReader(response.Body, ringBuffer)
  2516. decoder := json.NewDecoder(body)
  2517. decoder.UseNumber()
  2518. var shape interface{}
  2519. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  2520. var snapshot bytes.Buffer
  2521. io.Copy(&snapshot, ringBuffer)
  2522. err = &smithy.DeserializationError{
  2523. Err: fmt.Errorf("failed to decode response body, %w", err),
  2524. Snapshot: snapshot.Bytes(),
  2525. }
  2526. return out, metadata, err
  2527. }
  2528. err = awsAwsjson11_deserializeOpDocumentGetSavingsPlansPurchaseRecommendationOutput(&output, shape)
  2529. if err != nil {
  2530. var snapshot bytes.Buffer
  2531. io.Copy(&snapshot, ringBuffer)
  2532. err = &smithy.DeserializationError{
  2533. Err: fmt.Errorf("failed to decode response body, %w", err),
  2534. Snapshot: snapshot.Bytes(),
  2535. }
  2536. return out, metadata, err
  2537. }
  2538. return out, metadata, err
  2539. }
  2540. func awsAwsjson11_deserializeOpErrorGetSavingsPlansPurchaseRecommendation(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  2541. var errorBuffer bytes.Buffer
  2542. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  2543. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  2544. }
  2545. errorBody := bytes.NewReader(errorBuffer.Bytes())
  2546. errorCode := "UnknownError"
  2547. errorMessage := errorCode
  2548. headerCode := response.Header.Get("X-Amzn-ErrorType")
  2549. var buff [1024]byte
  2550. ringBuffer := smithyio.NewRingBuffer(buff[:])
  2551. body := io.TeeReader(errorBody, ringBuffer)
  2552. decoder := json.NewDecoder(body)
  2553. decoder.UseNumber()
  2554. bodyInfo, err := getProtocolErrorInfo(decoder)
  2555. if err != nil {
  2556. var snapshot bytes.Buffer
  2557. io.Copy(&snapshot, ringBuffer)
  2558. err = &smithy.DeserializationError{
  2559. Err: fmt.Errorf("failed to decode response body, %w", err),
  2560. Snapshot: snapshot.Bytes(),
  2561. }
  2562. return err
  2563. }
  2564. errorBody.Seek(0, io.SeekStart)
  2565. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  2566. errorCode = restjson.SanitizeErrorCode(typ)
  2567. }
  2568. if len(bodyInfo.Message) != 0 {
  2569. errorMessage = bodyInfo.Message
  2570. }
  2571. switch {
  2572. case strings.EqualFold("InvalidNextTokenException", errorCode):
  2573. return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody)
  2574. case strings.EqualFold("LimitExceededException", errorCode):
  2575. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  2576. default:
  2577. genericError := &smithy.GenericAPIError{
  2578. Code: errorCode,
  2579. Message: errorMessage,
  2580. }
  2581. return genericError
  2582. }
  2583. }
  2584. type awsAwsjson11_deserializeOpGetSavingsPlansUtilization struct {
  2585. }
  2586. func (*awsAwsjson11_deserializeOpGetSavingsPlansUtilization) ID() string {
  2587. return "OperationDeserializer"
  2588. }
  2589. func (m *awsAwsjson11_deserializeOpGetSavingsPlansUtilization) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  2590. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  2591. ) {
  2592. out, metadata, err = next.HandleDeserialize(ctx, in)
  2593. if err != nil {
  2594. return out, metadata, err
  2595. }
  2596. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  2597. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  2598. defer endTimer()
  2599. defer span.End()
  2600. response, ok := out.RawResponse.(*smithyhttp.Response)
  2601. if !ok {
  2602. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  2603. }
  2604. if response.StatusCode < 200 || response.StatusCode >= 300 {
  2605. return out, metadata, awsAwsjson11_deserializeOpErrorGetSavingsPlansUtilization(response, &metadata)
  2606. }
  2607. output := &GetSavingsPlansUtilizationOutput{}
  2608. out.Result = output
  2609. var buff [1024]byte
  2610. ringBuffer := smithyio.NewRingBuffer(buff[:])
  2611. body := io.TeeReader(response.Body, ringBuffer)
  2612. decoder := json.NewDecoder(body)
  2613. decoder.UseNumber()
  2614. var shape interface{}
  2615. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  2616. var snapshot bytes.Buffer
  2617. io.Copy(&snapshot, ringBuffer)
  2618. err = &smithy.DeserializationError{
  2619. Err: fmt.Errorf("failed to decode response body, %w", err),
  2620. Snapshot: snapshot.Bytes(),
  2621. }
  2622. return out, metadata, err
  2623. }
  2624. err = awsAwsjson11_deserializeOpDocumentGetSavingsPlansUtilizationOutput(&output, shape)
  2625. if err != nil {
  2626. var snapshot bytes.Buffer
  2627. io.Copy(&snapshot, ringBuffer)
  2628. err = &smithy.DeserializationError{
  2629. Err: fmt.Errorf("failed to decode response body, %w", err),
  2630. Snapshot: snapshot.Bytes(),
  2631. }
  2632. return out, metadata, err
  2633. }
  2634. return out, metadata, err
  2635. }
  2636. func awsAwsjson11_deserializeOpErrorGetSavingsPlansUtilization(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  2637. var errorBuffer bytes.Buffer
  2638. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  2639. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  2640. }
  2641. errorBody := bytes.NewReader(errorBuffer.Bytes())
  2642. errorCode := "UnknownError"
  2643. errorMessage := errorCode
  2644. headerCode := response.Header.Get("X-Amzn-ErrorType")
  2645. var buff [1024]byte
  2646. ringBuffer := smithyio.NewRingBuffer(buff[:])
  2647. body := io.TeeReader(errorBody, ringBuffer)
  2648. decoder := json.NewDecoder(body)
  2649. decoder.UseNumber()
  2650. bodyInfo, err := getProtocolErrorInfo(decoder)
  2651. if err != nil {
  2652. var snapshot bytes.Buffer
  2653. io.Copy(&snapshot, ringBuffer)
  2654. err = &smithy.DeserializationError{
  2655. Err: fmt.Errorf("failed to decode response body, %w", err),
  2656. Snapshot: snapshot.Bytes(),
  2657. }
  2658. return err
  2659. }
  2660. errorBody.Seek(0, io.SeekStart)
  2661. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  2662. errorCode = restjson.SanitizeErrorCode(typ)
  2663. }
  2664. if len(bodyInfo.Message) != 0 {
  2665. errorMessage = bodyInfo.Message
  2666. }
  2667. switch {
  2668. case strings.EqualFold("DataUnavailableException", errorCode):
  2669. return awsAwsjson11_deserializeErrorDataUnavailableException(response, errorBody)
  2670. case strings.EqualFold("LimitExceededException", errorCode):
  2671. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  2672. default:
  2673. genericError := &smithy.GenericAPIError{
  2674. Code: errorCode,
  2675. Message: errorMessage,
  2676. }
  2677. return genericError
  2678. }
  2679. }
  2680. type awsAwsjson11_deserializeOpGetSavingsPlansUtilizationDetails struct {
  2681. }
  2682. func (*awsAwsjson11_deserializeOpGetSavingsPlansUtilizationDetails) ID() string {
  2683. return "OperationDeserializer"
  2684. }
  2685. func (m *awsAwsjson11_deserializeOpGetSavingsPlansUtilizationDetails) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  2686. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  2687. ) {
  2688. out, metadata, err = next.HandleDeserialize(ctx, in)
  2689. if err != nil {
  2690. return out, metadata, err
  2691. }
  2692. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  2693. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  2694. defer endTimer()
  2695. defer span.End()
  2696. response, ok := out.RawResponse.(*smithyhttp.Response)
  2697. if !ok {
  2698. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  2699. }
  2700. if response.StatusCode < 200 || response.StatusCode >= 300 {
  2701. return out, metadata, awsAwsjson11_deserializeOpErrorGetSavingsPlansUtilizationDetails(response, &metadata)
  2702. }
  2703. output := &GetSavingsPlansUtilizationDetailsOutput{}
  2704. out.Result = output
  2705. var buff [1024]byte
  2706. ringBuffer := smithyio.NewRingBuffer(buff[:])
  2707. body := io.TeeReader(response.Body, ringBuffer)
  2708. decoder := json.NewDecoder(body)
  2709. decoder.UseNumber()
  2710. var shape interface{}
  2711. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  2712. var snapshot bytes.Buffer
  2713. io.Copy(&snapshot, ringBuffer)
  2714. err = &smithy.DeserializationError{
  2715. Err: fmt.Errorf("failed to decode response body, %w", err),
  2716. Snapshot: snapshot.Bytes(),
  2717. }
  2718. return out, metadata, err
  2719. }
  2720. err = awsAwsjson11_deserializeOpDocumentGetSavingsPlansUtilizationDetailsOutput(&output, shape)
  2721. if err != nil {
  2722. var snapshot bytes.Buffer
  2723. io.Copy(&snapshot, ringBuffer)
  2724. err = &smithy.DeserializationError{
  2725. Err: fmt.Errorf("failed to decode response body, %w", err),
  2726. Snapshot: snapshot.Bytes(),
  2727. }
  2728. return out, metadata, err
  2729. }
  2730. return out, metadata, err
  2731. }
  2732. func awsAwsjson11_deserializeOpErrorGetSavingsPlansUtilizationDetails(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  2733. var errorBuffer bytes.Buffer
  2734. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  2735. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  2736. }
  2737. errorBody := bytes.NewReader(errorBuffer.Bytes())
  2738. errorCode := "UnknownError"
  2739. errorMessage := errorCode
  2740. headerCode := response.Header.Get("X-Amzn-ErrorType")
  2741. var buff [1024]byte
  2742. ringBuffer := smithyio.NewRingBuffer(buff[:])
  2743. body := io.TeeReader(errorBody, ringBuffer)
  2744. decoder := json.NewDecoder(body)
  2745. decoder.UseNumber()
  2746. bodyInfo, err := getProtocolErrorInfo(decoder)
  2747. if err != nil {
  2748. var snapshot bytes.Buffer
  2749. io.Copy(&snapshot, ringBuffer)
  2750. err = &smithy.DeserializationError{
  2751. Err: fmt.Errorf("failed to decode response body, %w", err),
  2752. Snapshot: snapshot.Bytes(),
  2753. }
  2754. return err
  2755. }
  2756. errorBody.Seek(0, io.SeekStart)
  2757. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  2758. errorCode = restjson.SanitizeErrorCode(typ)
  2759. }
  2760. if len(bodyInfo.Message) != 0 {
  2761. errorMessage = bodyInfo.Message
  2762. }
  2763. switch {
  2764. case strings.EqualFold("DataUnavailableException", errorCode):
  2765. return awsAwsjson11_deserializeErrorDataUnavailableException(response, errorBody)
  2766. case strings.EqualFold("InvalidNextTokenException", errorCode):
  2767. return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody)
  2768. case strings.EqualFold("LimitExceededException", errorCode):
  2769. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  2770. default:
  2771. genericError := &smithy.GenericAPIError{
  2772. Code: errorCode,
  2773. Message: errorMessage,
  2774. }
  2775. return genericError
  2776. }
  2777. }
  2778. type awsAwsjson11_deserializeOpGetTags struct {
  2779. }
  2780. func (*awsAwsjson11_deserializeOpGetTags) ID() string {
  2781. return "OperationDeserializer"
  2782. }
  2783. func (m *awsAwsjson11_deserializeOpGetTags) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  2784. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  2785. ) {
  2786. out, metadata, err = next.HandleDeserialize(ctx, in)
  2787. if err != nil {
  2788. return out, metadata, err
  2789. }
  2790. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  2791. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  2792. defer endTimer()
  2793. defer span.End()
  2794. response, ok := out.RawResponse.(*smithyhttp.Response)
  2795. if !ok {
  2796. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  2797. }
  2798. if response.StatusCode < 200 || response.StatusCode >= 300 {
  2799. return out, metadata, awsAwsjson11_deserializeOpErrorGetTags(response, &metadata)
  2800. }
  2801. output := &GetTagsOutput{}
  2802. out.Result = output
  2803. var buff [1024]byte
  2804. ringBuffer := smithyio.NewRingBuffer(buff[:])
  2805. body := io.TeeReader(response.Body, ringBuffer)
  2806. decoder := json.NewDecoder(body)
  2807. decoder.UseNumber()
  2808. var shape interface{}
  2809. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  2810. var snapshot bytes.Buffer
  2811. io.Copy(&snapshot, ringBuffer)
  2812. err = &smithy.DeserializationError{
  2813. Err: fmt.Errorf("failed to decode response body, %w", err),
  2814. Snapshot: snapshot.Bytes(),
  2815. }
  2816. return out, metadata, err
  2817. }
  2818. err = awsAwsjson11_deserializeOpDocumentGetTagsOutput(&output, shape)
  2819. if err != nil {
  2820. var snapshot bytes.Buffer
  2821. io.Copy(&snapshot, ringBuffer)
  2822. err = &smithy.DeserializationError{
  2823. Err: fmt.Errorf("failed to decode response body, %w", err),
  2824. Snapshot: snapshot.Bytes(),
  2825. }
  2826. return out, metadata, err
  2827. }
  2828. return out, metadata, err
  2829. }
  2830. func awsAwsjson11_deserializeOpErrorGetTags(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  2831. var errorBuffer bytes.Buffer
  2832. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  2833. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  2834. }
  2835. errorBody := bytes.NewReader(errorBuffer.Bytes())
  2836. errorCode := "UnknownError"
  2837. errorMessage := errorCode
  2838. headerCode := response.Header.Get("X-Amzn-ErrorType")
  2839. var buff [1024]byte
  2840. ringBuffer := smithyio.NewRingBuffer(buff[:])
  2841. body := io.TeeReader(errorBody, ringBuffer)
  2842. decoder := json.NewDecoder(body)
  2843. decoder.UseNumber()
  2844. bodyInfo, err := getProtocolErrorInfo(decoder)
  2845. if err != nil {
  2846. var snapshot bytes.Buffer
  2847. io.Copy(&snapshot, ringBuffer)
  2848. err = &smithy.DeserializationError{
  2849. Err: fmt.Errorf("failed to decode response body, %w", err),
  2850. Snapshot: snapshot.Bytes(),
  2851. }
  2852. return err
  2853. }
  2854. errorBody.Seek(0, io.SeekStart)
  2855. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  2856. errorCode = restjson.SanitizeErrorCode(typ)
  2857. }
  2858. if len(bodyInfo.Message) != 0 {
  2859. errorMessage = bodyInfo.Message
  2860. }
  2861. switch {
  2862. case strings.EqualFold("BillExpirationException", errorCode):
  2863. return awsAwsjson11_deserializeErrorBillExpirationException(response, errorBody)
  2864. case strings.EqualFold("BillingViewHealthStatusException", errorCode):
  2865. return awsAwsjson11_deserializeErrorBillingViewHealthStatusException(response, errorBody)
  2866. case strings.EqualFold("DataUnavailableException", errorCode):
  2867. return awsAwsjson11_deserializeErrorDataUnavailableException(response, errorBody)
  2868. case strings.EqualFold("InvalidNextTokenException", errorCode):
  2869. return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody)
  2870. case strings.EqualFold("LimitExceededException", errorCode):
  2871. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  2872. case strings.EqualFold("RequestChangedException", errorCode):
  2873. return awsAwsjson11_deserializeErrorRequestChangedException(response, errorBody)
  2874. case strings.EqualFold("ResourceNotFoundException", errorCode):
  2875. return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody)
  2876. default:
  2877. genericError := &smithy.GenericAPIError{
  2878. Code: errorCode,
  2879. Message: errorMessage,
  2880. }
  2881. return genericError
  2882. }
  2883. }
  2884. type awsAwsjson11_deserializeOpGetUsageForecast struct {
  2885. }
  2886. func (*awsAwsjson11_deserializeOpGetUsageForecast) ID() string {
  2887. return "OperationDeserializer"
  2888. }
  2889. func (m *awsAwsjson11_deserializeOpGetUsageForecast) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  2890. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  2891. ) {
  2892. out, metadata, err = next.HandleDeserialize(ctx, in)
  2893. if err != nil {
  2894. return out, metadata, err
  2895. }
  2896. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  2897. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  2898. defer endTimer()
  2899. defer span.End()
  2900. response, ok := out.RawResponse.(*smithyhttp.Response)
  2901. if !ok {
  2902. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  2903. }
  2904. if response.StatusCode < 200 || response.StatusCode >= 300 {
  2905. return out, metadata, awsAwsjson11_deserializeOpErrorGetUsageForecast(response, &metadata)
  2906. }
  2907. output := &GetUsageForecastOutput{}
  2908. out.Result = output
  2909. var buff [1024]byte
  2910. ringBuffer := smithyio.NewRingBuffer(buff[:])
  2911. body := io.TeeReader(response.Body, ringBuffer)
  2912. decoder := json.NewDecoder(body)
  2913. decoder.UseNumber()
  2914. var shape interface{}
  2915. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  2916. var snapshot bytes.Buffer
  2917. io.Copy(&snapshot, ringBuffer)
  2918. err = &smithy.DeserializationError{
  2919. Err: fmt.Errorf("failed to decode response body, %w", err),
  2920. Snapshot: snapshot.Bytes(),
  2921. }
  2922. return out, metadata, err
  2923. }
  2924. err = awsAwsjson11_deserializeOpDocumentGetUsageForecastOutput(&output, shape)
  2925. if err != nil {
  2926. var snapshot bytes.Buffer
  2927. io.Copy(&snapshot, ringBuffer)
  2928. err = &smithy.DeserializationError{
  2929. Err: fmt.Errorf("failed to decode response body, %w", err),
  2930. Snapshot: snapshot.Bytes(),
  2931. }
  2932. return out, metadata, err
  2933. }
  2934. return out, metadata, err
  2935. }
  2936. func awsAwsjson11_deserializeOpErrorGetUsageForecast(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  2937. var errorBuffer bytes.Buffer
  2938. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  2939. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  2940. }
  2941. errorBody := bytes.NewReader(errorBuffer.Bytes())
  2942. errorCode := "UnknownError"
  2943. errorMessage := errorCode
  2944. headerCode := response.Header.Get("X-Amzn-ErrorType")
  2945. var buff [1024]byte
  2946. ringBuffer := smithyio.NewRingBuffer(buff[:])
  2947. body := io.TeeReader(errorBody, ringBuffer)
  2948. decoder := json.NewDecoder(body)
  2949. decoder.UseNumber()
  2950. bodyInfo, err := getProtocolErrorInfo(decoder)
  2951. if err != nil {
  2952. var snapshot bytes.Buffer
  2953. io.Copy(&snapshot, ringBuffer)
  2954. err = &smithy.DeserializationError{
  2955. Err: fmt.Errorf("failed to decode response body, %w", err),
  2956. Snapshot: snapshot.Bytes(),
  2957. }
  2958. return err
  2959. }
  2960. errorBody.Seek(0, io.SeekStart)
  2961. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  2962. errorCode = restjson.SanitizeErrorCode(typ)
  2963. }
  2964. if len(bodyInfo.Message) != 0 {
  2965. errorMessage = bodyInfo.Message
  2966. }
  2967. switch {
  2968. case strings.EqualFold("BillingViewHealthStatusException", errorCode):
  2969. return awsAwsjson11_deserializeErrorBillingViewHealthStatusException(response, errorBody)
  2970. case strings.EqualFold("DataUnavailableException", errorCode):
  2971. return awsAwsjson11_deserializeErrorDataUnavailableException(response, errorBody)
  2972. case strings.EqualFold("LimitExceededException", errorCode):
  2973. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  2974. case strings.EqualFold("ResourceNotFoundException", errorCode):
  2975. return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody)
  2976. case strings.EqualFold("UnresolvableUsageUnitException", errorCode):
  2977. return awsAwsjson11_deserializeErrorUnresolvableUsageUnitException(response, errorBody)
  2978. default:
  2979. genericError := &smithy.GenericAPIError{
  2980. Code: errorCode,
  2981. Message: errorMessage,
  2982. }
  2983. return genericError
  2984. }
  2985. }
  2986. type awsAwsjson11_deserializeOpListCommitmentPurchaseAnalyses struct {
  2987. }
  2988. func (*awsAwsjson11_deserializeOpListCommitmentPurchaseAnalyses) ID() string {
  2989. return "OperationDeserializer"
  2990. }
  2991. func (m *awsAwsjson11_deserializeOpListCommitmentPurchaseAnalyses) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  2992. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  2993. ) {
  2994. out, metadata, err = next.HandleDeserialize(ctx, in)
  2995. if err != nil {
  2996. return out, metadata, err
  2997. }
  2998. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  2999. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  3000. defer endTimer()
  3001. defer span.End()
  3002. response, ok := out.RawResponse.(*smithyhttp.Response)
  3003. if !ok {
  3004. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  3005. }
  3006. if response.StatusCode < 200 || response.StatusCode >= 300 {
  3007. return out, metadata, awsAwsjson11_deserializeOpErrorListCommitmentPurchaseAnalyses(response, &metadata)
  3008. }
  3009. output := &ListCommitmentPurchaseAnalysesOutput{}
  3010. out.Result = output
  3011. var buff [1024]byte
  3012. ringBuffer := smithyio.NewRingBuffer(buff[:])
  3013. body := io.TeeReader(response.Body, ringBuffer)
  3014. decoder := json.NewDecoder(body)
  3015. decoder.UseNumber()
  3016. var shape interface{}
  3017. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  3018. var snapshot bytes.Buffer
  3019. io.Copy(&snapshot, ringBuffer)
  3020. err = &smithy.DeserializationError{
  3021. Err: fmt.Errorf("failed to decode response body, %w", err),
  3022. Snapshot: snapshot.Bytes(),
  3023. }
  3024. return out, metadata, err
  3025. }
  3026. err = awsAwsjson11_deserializeOpDocumentListCommitmentPurchaseAnalysesOutput(&output, shape)
  3027. if err != nil {
  3028. var snapshot bytes.Buffer
  3029. io.Copy(&snapshot, ringBuffer)
  3030. err = &smithy.DeserializationError{
  3031. Err: fmt.Errorf("failed to decode response body, %w", err),
  3032. Snapshot: snapshot.Bytes(),
  3033. }
  3034. return out, metadata, err
  3035. }
  3036. return out, metadata, err
  3037. }
  3038. func awsAwsjson11_deserializeOpErrorListCommitmentPurchaseAnalyses(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  3039. var errorBuffer bytes.Buffer
  3040. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  3041. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  3042. }
  3043. errorBody := bytes.NewReader(errorBuffer.Bytes())
  3044. errorCode := "UnknownError"
  3045. errorMessage := errorCode
  3046. headerCode := response.Header.Get("X-Amzn-ErrorType")
  3047. var buff [1024]byte
  3048. ringBuffer := smithyio.NewRingBuffer(buff[:])
  3049. body := io.TeeReader(errorBody, ringBuffer)
  3050. decoder := json.NewDecoder(body)
  3051. decoder.UseNumber()
  3052. bodyInfo, err := getProtocolErrorInfo(decoder)
  3053. if err != nil {
  3054. var snapshot bytes.Buffer
  3055. io.Copy(&snapshot, ringBuffer)
  3056. err = &smithy.DeserializationError{
  3057. Err: fmt.Errorf("failed to decode response body, %w", err),
  3058. Snapshot: snapshot.Bytes(),
  3059. }
  3060. return err
  3061. }
  3062. errorBody.Seek(0, io.SeekStart)
  3063. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  3064. errorCode = restjson.SanitizeErrorCode(typ)
  3065. }
  3066. if len(bodyInfo.Message) != 0 {
  3067. errorMessage = bodyInfo.Message
  3068. }
  3069. switch {
  3070. case strings.EqualFold("DataUnavailableException", errorCode):
  3071. return awsAwsjson11_deserializeErrorDataUnavailableException(response, errorBody)
  3072. case strings.EqualFold("InvalidNextTokenException", errorCode):
  3073. return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody)
  3074. case strings.EqualFold("LimitExceededException", errorCode):
  3075. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  3076. default:
  3077. genericError := &smithy.GenericAPIError{
  3078. Code: errorCode,
  3079. Message: errorMessage,
  3080. }
  3081. return genericError
  3082. }
  3083. }
  3084. type awsAwsjson11_deserializeOpListCostAllocationTagBackfillHistory struct {
  3085. }
  3086. func (*awsAwsjson11_deserializeOpListCostAllocationTagBackfillHistory) ID() string {
  3087. return "OperationDeserializer"
  3088. }
  3089. func (m *awsAwsjson11_deserializeOpListCostAllocationTagBackfillHistory) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  3090. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  3091. ) {
  3092. out, metadata, err = next.HandleDeserialize(ctx, in)
  3093. if err != nil {
  3094. return out, metadata, err
  3095. }
  3096. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  3097. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  3098. defer endTimer()
  3099. defer span.End()
  3100. response, ok := out.RawResponse.(*smithyhttp.Response)
  3101. if !ok {
  3102. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  3103. }
  3104. if response.StatusCode < 200 || response.StatusCode >= 300 {
  3105. return out, metadata, awsAwsjson11_deserializeOpErrorListCostAllocationTagBackfillHistory(response, &metadata)
  3106. }
  3107. output := &ListCostAllocationTagBackfillHistoryOutput{}
  3108. out.Result = output
  3109. var buff [1024]byte
  3110. ringBuffer := smithyio.NewRingBuffer(buff[:])
  3111. body := io.TeeReader(response.Body, ringBuffer)
  3112. decoder := json.NewDecoder(body)
  3113. decoder.UseNumber()
  3114. var shape interface{}
  3115. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  3116. var snapshot bytes.Buffer
  3117. io.Copy(&snapshot, ringBuffer)
  3118. err = &smithy.DeserializationError{
  3119. Err: fmt.Errorf("failed to decode response body, %w", err),
  3120. Snapshot: snapshot.Bytes(),
  3121. }
  3122. return out, metadata, err
  3123. }
  3124. err = awsAwsjson11_deserializeOpDocumentListCostAllocationTagBackfillHistoryOutput(&output, shape)
  3125. if err != nil {
  3126. var snapshot bytes.Buffer
  3127. io.Copy(&snapshot, ringBuffer)
  3128. err = &smithy.DeserializationError{
  3129. Err: fmt.Errorf("failed to decode response body, %w", err),
  3130. Snapshot: snapshot.Bytes(),
  3131. }
  3132. return out, metadata, err
  3133. }
  3134. return out, metadata, err
  3135. }
  3136. func awsAwsjson11_deserializeOpErrorListCostAllocationTagBackfillHistory(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  3137. var errorBuffer bytes.Buffer
  3138. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  3139. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  3140. }
  3141. errorBody := bytes.NewReader(errorBuffer.Bytes())
  3142. errorCode := "UnknownError"
  3143. errorMessage := errorCode
  3144. headerCode := response.Header.Get("X-Amzn-ErrorType")
  3145. var buff [1024]byte
  3146. ringBuffer := smithyio.NewRingBuffer(buff[:])
  3147. body := io.TeeReader(errorBody, ringBuffer)
  3148. decoder := json.NewDecoder(body)
  3149. decoder.UseNumber()
  3150. bodyInfo, err := getProtocolErrorInfo(decoder)
  3151. if err != nil {
  3152. var snapshot bytes.Buffer
  3153. io.Copy(&snapshot, ringBuffer)
  3154. err = &smithy.DeserializationError{
  3155. Err: fmt.Errorf("failed to decode response body, %w", err),
  3156. Snapshot: snapshot.Bytes(),
  3157. }
  3158. return err
  3159. }
  3160. errorBody.Seek(0, io.SeekStart)
  3161. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  3162. errorCode = restjson.SanitizeErrorCode(typ)
  3163. }
  3164. if len(bodyInfo.Message) != 0 {
  3165. errorMessage = bodyInfo.Message
  3166. }
  3167. switch {
  3168. case strings.EqualFold("InvalidNextTokenException", errorCode):
  3169. return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody)
  3170. case strings.EqualFold("LimitExceededException", errorCode):
  3171. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  3172. default:
  3173. genericError := &smithy.GenericAPIError{
  3174. Code: errorCode,
  3175. Message: errorMessage,
  3176. }
  3177. return genericError
  3178. }
  3179. }
  3180. type awsAwsjson11_deserializeOpListCostAllocationTags struct {
  3181. }
  3182. func (*awsAwsjson11_deserializeOpListCostAllocationTags) ID() string {
  3183. return "OperationDeserializer"
  3184. }
  3185. func (m *awsAwsjson11_deserializeOpListCostAllocationTags) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  3186. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  3187. ) {
  3188. out, metadata, err = next.HandleDeserialize(ctx, in)
  3189. if err != nil {
  3190. return out, metadata, err
  3191. }
  3192. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  3193. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  3194. defer endTimer()
  3195. defer span.End()
  3196. response, ok := out.RawResponse.(*smithyhttp.Response)
  3197. if !ok {
  3198. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  3199. }
  3200. if response.StatusCode < 200 || response.StatusCode >= 300 {
  3201. return out, metadata, awsAwsjson11_deserializeOpErrorListCostAllocationTags(response, &metadata)
  3202. }
  3203. output := &ListCostAllocationTagsOutput{}
  3204. out.Result = output
  3205. var buff [1024]byte
  3206. ringBuffer := smithyio.NewRingBuffer(buff[:])
  3207. body := io.TeeReader(response.Body, ringBuffer)
  3208. decoder := json.NewDecoder(body)
  3209. decoder.UseNumber()
  3210. var shape interface{}
  3211. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  3212. var snapshot bytes.Buffer
  3213. io.Copy(&snapshot, ringBuffer)
  3214. err = &smithy.DeserializationError{
  3215. Err: fmt.Errorf("failed to decode response body, %w", err),
  3216. Snapshot: snapshot.Bytes(),
  3217. }
  3218. return out, metadata, err
  3219. }
  3220. err = awsAwsjson11_deserializeOpDocumentListCostAllocationTagsOutput(&output, shape)
  3221. if err != nil {
  3222. var snapshot bytes.Buffer
  3223. io.Copy(&snapshot, ringBuffer)
  3224. err = &smithy.DeserializationError{
  3225. Err: fmt.Errorf("failed to decode response body, %w", err),
  3226. Snapshot: snapshot.Bytes(),
  3227. }
  3228. return out, metadata, err
  3229. }
  3230. return out, metadata, err
  3231. }
  3232. func awsAwsjson11_deserializeOpErrorListCostAllocationTags(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  3233. var errorBuffer bytes.Buffer
  3234. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  3235. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  3236. }
  3237. errorBody := bytes.NewReader(errorBuffer.Bytes())
  3238. errorCode := "UnknownError"
  3239. errorMessage := errorCode
  3240. headerCode := response.Header.Get("X-Amzn-ErrorType")
  3241. var buff [1024]byte
  3242. ringBuffer := smithyio.NewRingBuffer(buff[:])
  3243. body := io.TeeReader(errorBody, ringBuffer)
  3244. decoder := json.NewDecoder(body)
  3245. decoder.UseNumber()
  3246. bodyInfo, err := getProtocolErrorInfo(decoder)
  3247. if err != nil {
  3248. var snapshot bytes.Buffer
  3249. io.Copy(&snapshot, ringBuffer)
  3250. err = &smithy.DeserializationError{
  3251. Err: fmt.Errorf("failed to decode response body, %w", err),
  3252. Snapshot: snapshot.Bytes(),
  3253. }
  3254. return err
  3255. }
  3256. errorBody.Seek(0, io.SeekStart)
  3257. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  3258. errorCode = restjson.SanitizeErrorCode(typ)
  3259. }
  3260. if len(bodyInfo.Message) != 0 {
  3261. errorMessage = bodyInfo.Message
  3262. }
  3263. switch {
  3264. case strings.EqualFold("InvalidNextTokenException", errorCode):
  3265. return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody)
  3266. case strings.EqualFold("LimitExceededException", errorCode):
  3267. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  3268. default:
  3269. genericError := &smithy.GenericAPIError{
  3270. Code: errorCode,
  3271. Message: errorMessage,
  3272. }
  3273. return genericError
  3274. }
  3275. }
  3276. type awsAwsjson11_deserializeOpListCostCategoryDefinitions struct {
  3277. }
  3278. func (*awsAwsjson11_deserializeOpListCostCategoryDefinitions) ID() string {
  3279. return "OperationDeserializer"
  3280. }
  3281. func (m *awsAwsjson11_deserializeOpListCostCategoryDefinitions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  3282. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  3283. ) {
  3284. out, metadata, err = next.HandleDeserialize(ctx, in)
  3285. if err != nil {
  3286. return out, metadata, err
  3287. }
  3288. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  3289. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  3290. defer endTimer()
  3291. defer span.End()
  3292. response, ok := out.RawResponse.(*smithyhttp.Response)
  3293. if !ok {
  3294. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  3295. }
  3296. if response.StatusCode < 200 || response.StatusCode >= 300 {
  3297. return out, metadata, awsAwsjson11_deserializeOpErrorListCostCategoryDefinitions(response, &metadata)
  3298. }
  3299. output := &ListCostCategoryDefinitionsOutput{}
  3300. out.Result = output
  3301. var buff [1024]byte
  3302. ringBuffer := smithyio.NewRingBuffer(buff[:])
  3303. body := io.TeeReader(response.Body, ringBuffer)
  3304. decoder := json.NewDecoder(body)
  3305. decoder.UseNumber()
  3306. var shape interface{}
  3307. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  3308. var snapshot bytes.Buffer
  3309. io.Copy(&snapshot, ringBuffer)
  3310. err = &smithy.DeserializationError{
  3311. Err: fmt.Errorf("failed to decode response body, %w", err),
  3312. Snapshot: snapshot.Bytes(),
  3313. }
  3314. return out, metadata, err
  3315. }
  3316. err = awsAwsjson11_deserializeOpDocumentListCostCategoryDefinitionsOutput(&output, shape)
  3317. if err != nil {
  3318. var snapshot bytes.Buffer
  3319. io.Copy(&snapshot, ringBuffer)
  3320. err = &smithy.DeserializationError{
  3321. Err: fmt.Errorf("failed to decode response body, %w", err),
  3322. Snapshot: snapshot.Bytes(),
  3323. }
  3324. return out, metadata, err
  3325. }
  3326. return out, metadata, err
  3327. }
  3328. func awsAwsjson11_deserializeOpErrorListCostCategoryDefinitions(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  3329. var errorBuffer bytes.Buffer
  3330. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  3331. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  3332. }
  3333. errorBody := bytes.NewReader(errorBuffer.Bytes())
  3334. errorCode := "UnknownError"
  3335. errorMessage := errorCode
  3336. headerCode := response.Header.Get("X-Amzn-ErrorType")
  3337. var buff [1024]byte
  3338. ringBuffer := smithyio.NewRingBuffer(buff[:])
  3339. body := io.TeeReader(errorBody, ringBuffer)
  3340. decoder := json.NewDecoder(body)
  3341. decoder.UseNumber()
  3342. bodyInfo, err := getProtocolErrorInfo(decoder)
  3343. if err != nil {
  3344. var snapshot bytes.Buffer
  3345. io.Copy(&snapshot, ringBuffer)
  3346. err = &smithy.DeserializationError{
  3347. Err: fmt.Errorf("failed to decode response body, %w", err),
  3348. Snapshot: snapshot.Bytes(),
  3349. }
  3350. return err
  3351. }
  3352. errorBody.Seek(0, io.SeekStart)
  3353. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  3354. errorCode = restjson.SanitizeErrorCode(typ)
  3355. }
  3356. if len(bodyInfo.Message) != 0 {
  3357. errorMessage = bodyInfo.Message
  3358. }
  3359. switch {
  3360. case strings.EqualFold("LimitExceededException", errorCode):
  3361. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  3362. default:
  3363. genericError := &smithy.GenericAPIError{
  3364. Code: errorCode,
  3365. Message: errorMessage,
  3366. }
  3367. return genericError
  3368. }
  3369. }
  3370. type awsAwsjson11_deserializeOpListCostCategoryResourceAssociations struct {
  3371. }
  3372. func (*awsAwsjson11_deserializeOpListCostCategoryResourceAssociations) ID() string {
  3373. return "OperationDeserializer"
  3374. }
  3375. func (m *awsAwsjson11_deserializeOpListCostCategoryResourceAssociations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  3376. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  3377. ) {
  3378. out, metadata, err = next.HandleDeserialize(ctx, in)
  3379. if err != nil {
  3380. return out, metadata, err
  3381. }
  3382. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  3383. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  3384. defer endTimer()
  3385. defer span.End()
  3386. response, ok := out.RawResponse.(*smithyhttp.Response)
  3387. if !ok {
  3388. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  3389. }
  3390. if response.StatusCode < 200 || response.StatusCode >= 300 {
  3391. return out, metadata, awsAwsjson11_deserializeOpErrorListCostCategoryResourceAssociations(response, &metadata)
  3392. }
  3393. output := &ListCostCategoryResourceAssociationsOutput{}
  3394. out.Result = output
  3395. var buff [1024]byte
  3396. ringBuffer := smithyio.NewRingBuffer(buff[:])
  3397. body := io.TeeReader(response.Body, ringBuffer)
  3398. decoder := json.NewDecoder(body)
  3399. decoder.UseNumber()
  3400. var shape interface{}
  3401. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  3402. var snapshot bytes.Buffer
  3403. io.Copy(&snapshot, ringBuffer)
  3404. err = &smithy.DeserializationError{
  3405. Err: fmt.Errorf("failed to decode response body, %w", err),
  3406. Snapshot: snapshot.Bytes(),
  3407. }
  3408. return out, metadata, err
  3409. }
  3410. err = awsAwsjson11_deserializeOpDocumentListCostCategoryResourceAssociationsOutput(&output, shape)
  3411. if err != nil {
  3412. var snapshot bytes.Buffer
  3413. io.Copy(&snapshot, ringBuffer)
  3414. err = &smithy.DeserializationError{
  3415. Err: fmt.Errorf("failed to decode response body, %w", err),
  3416. Snapshot: snapshot.Bytes(),
  3417. }
  3418. return out, metadata, err
  3419. }
  3420. return out, metadata, err
  3421. }
  3422. func awsAwsjson11_deserializeOpErrorListCostCategoryResourceAssociations(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  3423. var errorBuffer bytes.Buffer
  3424. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  3425. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  3426. }
  3427. errorBody := bytes.NewReader(errorBuffer.Bytes())
  3428. errorCode := "UnknownError"
  3429. errorMessage := errorCode
  3430. headerCode := response.Header.Get("X-Amzn-ErrorType")
  3431. var buff [1024]byte
  3432. ringBuffer := smithyio.NewRingBuffer(buff[:])
  3433. body := io.TeeReader(errorBody, ringBuffer)
  3434. decoder := json.NewDecoder(body)
  3435. decoder.UseNumber()
  3436. bodyInfo, err := getProtocolErrorInfo(decoder)
  3437. if err != nil {
  3438. var snapshot bytes.Buffer
  3439. io.Copy(&snapshot, ringBuffer)
  3440. err = &smithy.DeserializationError{
  3441. Err: fmt.Errorf("failed to decode response body, %w", err),
  3442. Snapshot: snapshot.Bytes(),
  3443. }
  3444. return err
  3445. }
  3446. errorBody.Seek(0, io.SeekStart)
  3447. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  3448. errorCode = restjson.SanitizeErrorCode(typ)
  3449. }
  3450. if len(bodyInfo.Message) != 0 {
  3451. errorMessage = bodyInfo.Message
  3452. }
  3453. switch {
  3454. case strings.EqualFold("LimitExceededException", errorCode):
  3455. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  3456. case strings.EqualFold("ResourceNotFoundException", errorCode):
  3457. return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody)
  3458. default:
  3459. genericError := &smithy.GenericAPIError{
  3460. Code: errorCode,
  3461. Message: errorMessage,
  3462. }
  3463. return genericError
  3464. }
  3465. }
  3466. type awsAwsjson11_deserializeOpListSavingsPlansPurchaseRecommendationGeneration struct {
  3467. }
  3468. func (*awsAwsjson11_deserializeOpListSavingsPlansPurchaseRecommendationGeneration) ID() string {
  3469. return "OperationDeserializer"
  3470. }
  3471. func (m *awsAwsjson11_deserializeOpListSavingsPlansPurchaseRecommendationGeneration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  3472. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  3473. ) {
  3474. out, metadata, err = next.HandleDeserialize(ctx, in)
  3475. if err != nil {
  3476. return out, metadata, err
  3477. }
  3478. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  3479. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  3480. defer endTimer()
  3481. defer span.End()
  3482. response, ok := out.RawResponse.(*smithyhttp.Response)
  3483. if !ok {
  3484. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  3485. }
  3486. if response.StatusCode < 200 || response.StatusCode >= 300 {
  3487. return out, metadata, awsAwsjson11_deserializeOpErrorListSavingsPlansPurchaseRecommendationGeneration(response, &metadata)
  3488. }
  3489. output := &ListSavingsPlansPurchaseRecommendationGenerationOutput{}
  3490. out.Result = output
  3491. var buff [1024]byte
  3492. ringBuffer := smithyio.NewRingBuffer(buff[:])
  3493. body := io.TeeReader(response.Body, ringBuffer)
  3494. decoder := json.NewDecoder(body)
  3495. decoder.UseNumber()
  3496. var shape interface{}
  3497. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  3498. var snapshot bytes.Buffer
  3499. io.Copy(&snapshot, ringBuffer)
  3500. err = &smithy.DeserializationError{
  3501. Err: fmt.Errorf("failed to decode response body, %w", err),
  3502. Snapshot: snapshot.Bytes(),
  3503. }
  3504. return out, metadata, err
  3505. }
  3506. err = awsAwsjson11_deserializeOpDocumentListSavingsPlansPurchaseRecommendationGenerationOutput(&output, shape)
  3507. if err != nil {
  3508. var snapshot bytes.Buffer
  3509. io.Copy(&snapshot, ringBuffer)
  3510. err = &smithy.DeserializationError{
  3511. Err: fmt.Errorf("failed to decode response body, %w", err),
  3512. Snapshot: snapshot.Bytes(),
  3513. }
  3514. return out, metadata, err
  3515. }
  3516. return out, metadata, err
  3517. }
  3518. func awsAwsjson11_deserializeOpErrorListSavingsPlansPurchaseRecommendationGeneration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  3519. var errorBuffer bytes.Buffer
  3520. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  3521. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  3522. }
  3523. errorBody := bytes.NewReader(errorBuffer.Bytes())
  3524. errorCode := "UnknownError"
  3525. errorMessage := errorCode
  3526. headerCode := response.Header.Get("X-Amzn-ErrorType")
  3527. var buff [1024]byte
  3528. ringBuffer := smithyio.NewRingBuffer(buff[:])
  3529. body := io.TeeReader(errorBody, ringBuffer)
  3530. decoder := json.NewDecoder(body)
  3531. decoder.UseNumber()
  3532. bodyInfo, err := getProtocolErrorInfo(decoder)
  3533. if err != nil {
  3534. var snapshot bytes.Buffer
  3535. io.Copy(&snapshot, ringBuffer)
  3536. err = &smithy.DeserializationError{
  3537. Err: fmt.Errorf("failed to decode response body, %w", err),
  3538. Snapshot: snapshot.Bytes(),
  3539. }
  3540. return err
  3541. }
  3542. errorBody.Seek(0, io.SeekStart)
  3543. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  3544. errorCode = restjson.SanitizeErrorCode(typ)
  3545. }
  3546. if len(bodyInfo.Message) != 0 {
  3547. errorMessage = bodyInfo.Message
  3548. }
  3549. switch {
  3550. case strings.EqualFold("DataUnavailableException", errorCode):
  3551. return awsAwsjson11_deserializeErrorDataUnavailableException(response, errorBody)
  3552. case strings.EqualFold("InvalidNextTokenException", errorCode):
  3553. return awsAwsjson11_deserializeErrorInvalidNextTokenException(response, errorBody)
  3554. case strings.EqualFold("LimitExceededException", errorCode):
  3555. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  3556. default:
  3557. genericError := &smithy.GenericAPIError{
  3558. Code: errorCode,
  3559. Message: errorMessage,
  3560. }
  3561. return genericError
  3562. }
  3563. }
  3564. type awsAwsjson11_deserializeOpListTagsForResource struct {
  3565. }
  3566. func (*awsAwsjson11_deserializeOpListTagsForResource) ID() string {
  3567. return "OperationDeserializer"
  3568. }
  3569. func (m *awsAwsjson11_deserializeOpListTagsForResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  3570. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  3571. ) {
  3572. out, metadata, err = next.HandleDeserialize(ctx, in)
  3573. if err != nil {
  3574. return out, metadata, err
  3575. }
  3576. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  3577. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  3578. defer endTimer()
  3579. defer span.End()
  3580. response, ok := out.RawResponse.(*smithyhttp.Response)
  3581. if !ok {
  3582. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  3583. }
  3584. if response.StatusCode < 200 || response.StatusCode >= 300 {
  3585. return out, metadata, awsAwsjson11_deserializeOpErrorListTagsForResource(response, &metadata)
  3586. }
  3587. output := &ListTagsForResourceOutput{}
  3588. out.Result = output
  3589. var buff [1024]byte
  3590. ringBuffer := smithyio.NewRingBuffer(buff[:])
  3591. body := io.TeeReader(response.Body, ringBuffer)
  3592. decoder := json.NewDecoder(body)
  3593. decoder.UseNumber()
  3594. var shape interface{}
  3595. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  3596. var snapshot bytes.Buffer
  3597. io.Copy(&snapshot, ringBuffer)
  3598. err = &smithy.DeserializationError{
  3599. Err: fmt.Errorf("failed to decode response body, %w", err),
  3600. Snapshot: snapshot.Bytes(),
  3601. }
  3602. return out, metadata, err
  3603. }
  3604. err = awsAwsjson11_deserializeOpDocumentListTagsForResourceOutput(&output, shape)
  3605. if err != nil {
  3606. var snapshot bytes.Buffer
  3607. io.Copy(&snapshot, ringBuffer)
  3608. err = &smithy.DeserializationError{
  3609. Err: fmt.Errorf("failed to decode response body, %w", err),
  3610. Snapshot: snapshot.Bytes(),
  3611. }
  3612. return out, metadata, err
  3613. }
  3614. return out, metadata, err
  3615. }
  3616. func awsAwsjson11_deserializeOpErrorListTagsForResource(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  3617. var errorBuffer bytes.Buffer
  3618. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  3619. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  3620. }
  3621. errorBody := bytes.NewReader(errorBuffer.Bytes())
  3622. errorCode := "UnknownError"
  3623. errorMessage := errorCode
  3624. headerCode := response.Header.Get("X-Amzn-ErrorType")
  3625. var buff [1024]byte
  3626. ringBuffer := smithyio.NewRingBuffer(buff[:])
  3627. body := io.TeeReader(errorBody, ringBuffer)
  3628. decoder := json.NewDecoder(body)
  3629. decoder.UseNumber()
  3630. bodyInfo, err := getProtocolErrorInfo(decoder)
  3631. if err != nil {
  3632. var snapshot bytes.Buffer
  3633. io.Copy(&snapshot, ringBuffer)
  3634. err = &smithy.DeserializationError{
  3635. Err: fmt.Errorf("failed to decode response body, %w", err),
  3636. Snapshot: snapshot.Bytes(),
  3637. }
  3638. return err
  3639. }
  3640. errorBody.Seek(0, io.SeekStart)
  3641. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  3642. errorCode = restjson.SanitizeErrorCode(typ)
  3643. }
  3644. if len(bodyInfo.Message) != 0 {
  3645. errorMessage = bodyInfo.Message
  3646. }
  3647. switch {
  3648. case strings.EqualFold("LimitExceededException", errorCode):
  3649. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  3650. case strings.EqualFold("ResourceNotFoundException", errorCode):
  3651. return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody)
  3652. default:
  3653. genericError := &smithy.GenericAPIError{
  3654. Code: errorCode,
  3655. Message: errorMessage,
  3656. }
  3657. return genericError
  3658. }
  3659. }
  3660. type awsAwsjson11_deserializeOpProvideAnomalyFeedback struct {
  3661. }
  3662. func (*awsAwsjson11_deserializeOpProvideAnomalyFeedback) ID() string {
  3663. return "OperationDeserializer"
  3664. }
  3665. func (m *awsAwsjson11_deserializeOpProvideAnomalyFeedback) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  3666. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  3667. ) {
  3668. out, metadata, err = next.HandleDeserialize(ctx, in)
  3669. if err != nil {
  3670. return out, metadata, err
  3671. }
  3672. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  3673. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  3674. defer endTimer()
  3675. defer span.End()
  3676. response, ok := out.RawResponse.(*smithyhttp.Response)
  3677. if !ok {
  3678. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  3679. }
  3680. if response.StatusCode < 200 || response.StatusCode >= 300 {
  3681. return out, metadata, awsAwsjson11_deserializeOpErrorProvideAnomalyFeedback(response, &metadata)
  3682. }
  3683. output := &ProvideAnomalyFeedbackOutput{}
  3684. out.Result = output
  3685. var buff [1024]byte
  3686. ringBuffer := smithyio.NewRingBuffer(buff[:])
  3687. body := io.TeeReader(response.Body, ringBuffer)
  3688. decoder := json.NewDecoder(body)
  3689. decoder.UseNumber()
  3690. var shape interface{}
  3691. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  3692. var snapshot bytes.Buffer
  3693. io.Copy(&snapshot, ringBuffer)
  3694. err = &smithy.DeserializationError{
  3695. Err: fmt.Errorf("failed to decode response body, %w", err),
  3696. Snapshot: snapshot.Bytes(),
  3697. }
  3698. return out, metadata, err
  3699. }
  3700. err = awsAwsjson11_deserializeOpDocumentProvideAnomalyFeedbackOutput(&output, shape)
  3701. if err != nil {
  3702. var snapshot bytes.Buffer
  3703. io.Copy(&snapshot, ringBuffer)
  3704. err = &smithy.DeserializationError{
  3705. Err: fmt.Errorf("failed to decode response body, %w", err),
  3706. Snapshot: snapshot.Bytes(),
  3707. }
  3708. return out, metadata, err
  3709. }
  3710. return out, metadata, err
  3711. }
  3712. func awsAwsjson11_deserializeOpErrorProvideAnomalyFeedback(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  3713. var errorBuffer bytes.Buffer
  3714. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  3715. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  3716. }
  3717. errorBody := bytes.NewReader(errorBuffer.Bytes())
  3718. errorCode := "UnknownError"
  3719. errorMessage := errorCode
  3720. headerCode := response.Header.Get("X-Amzn-ErrorType")
  3721. var buff [1024]byte
  3722. ringBuffer := smithyio.NewRingBuffer(buff[:])
  3723. body := io.TeeReader(errorBody, ringBuffer)
  3724. decoder := json.NewDecoder(body)
  3725. decoder.UseNumber()
  3726. bodyInfo, err := getProtocolErrorInfo(decoder)
  3727. if err != nil {
  3728. var snapshot bytes.Buffer
  3729. io.Copy(&snapshot, ringBuffer)
  3730. err = &smithy.DeserializationError{
  3731. Err: fmt.Errorf("failed to decode response body, %w", err),
  3732. Snapshot: snapshot.Bytes(),
  3733. }
  3734. return err
  3735. }
  3736. errorBody.Seek(0, io.SeekStart)
  3737. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  3738. errorCode = restjson.SanitizeErrorCode(typ)
  3739. }
  3740. if len(bodyInfo.Message) != 0 {
  3741. errorMessage = bodyInfo.Message
  3742. }
  3743. switch {
  3744. case strings.EqualFold("LimitExceededException", errorCode):
  3745. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  3746. default:
  3747. genericError := &smithy.GenericAPIError{
  3748. Code: errorCode,
  3749. Message: errorMessage,
  3750. }
  3751. return genericError
  3752. }
  3753. }
  3754. type awsAwsjson11_deserializeOpStartCommitmentPurchaseAnalysis struct {
  3755. }
  3756. func (*awsAwsjson11_deserializeOpStartCommitmentPurchaseAnalysis) ID() string {
  3757. return "OperationDeserializer"
  3758. }
  3759. func (m *awsAwsjson11_deserializeOpStartCommitmentPurchaseAnalysis) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  3760. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  3761. ) {
  3762. out, metadata, err = next.HandleDeserialize(ctx, in)
  3763. if err != nil {
  3764. return out, metadata, err
  3765. }
  3766. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  3767. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  3768. defer endTimer()
  3769. defer span.End()
  3770. response, ok := out.RawResponse.(*smithyhttp.Response)
  3771. if !ok {
  3772. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  3773. }
  3774. if response.StatusCode < 200 || response.StatusCode >= 300 {
  3775. return out, metadata, awsAwsjson11_deserializeOpErrorStartCommitmentPurchaseAnalysis(response, &metadata)
  3776. }
  3777. output := &StartCommitmentPurchaseAnalysisOutput{}
  3778. out.Result = output
  3779. var buff [1024]byte
  3780. ringBuffer := smithyio.NewRingBuffer(buff[:])
  3781. body := io.TeeReader(response.Body, ringBuffer)
  3782. decoder := json.NewDecoder(body)
  3783. decoder.UseNumber()
  3784. var shape interface{}
  3785. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  3786. var snapshot bytes.Buffer
  3787. io.Copy(&snapshot, ringBuffer)
  3788. err = &smithy.DeserializationError{
  3789. Err: fmt.Errorf("failed to decode response body, %w", err),
  3790. Snapshot: snapshot.Bytes(),
  3791. }
  3792. return out, metadata, err
  3793. }
  3794. err = awsAwsjson11_deserializeOpDocumentStartCommitmentPurchaseAnalysisOutput(&output, shape)
  3795. if err != nil {
  3796. var snapshot bytes.Buffer
  3797. io.Copy(&snapshot, ringBuffer)
  3798. err = &smithy.DeserializationError{
  3799. Err: fmt.Errorf("failed to decode response body, %w", err),
  3800. Snapshot: snapshot.Bytes(),
  3801. }
  3802. return out, metadata, err
  3803. }
  3804. return out, metadata, err
  3805. }
  3806. func awsAwsjson11_deserializeOpErrorStartCommitmentPurchaseAnalysis(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  3807. var errorBuffer bytes.Buffer
  3808. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  3809. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  3810. }
  3811. errorBody := bytes.NewReader(errorBuffer.Bytes())
  3812. errorCode := "UnknownError"
  3813. errorMessage := errorCode
  3814. headerCode := response.Header.Get("X-Amzn-ErrorType")
  3815. var buff [1024]byte
  3816. ringBuffer := smithyio.NewRingBuffer(buff[:])
  3817. body := io.TeeReader(errorBody, ringBuffer)
  3818. decoder := json.NewDecoder(body)
  3819. decoder.UseNumber()
  3820. bodyInfo, err := getProtocolErrorInfo(decoder)
  3821. if err != nil {
  3822. var snapshot bytes.Buffer
  3823. io.Copy(&snapshot, ringBuffer)
  3824. err = &smithy.DeserializationError{
  3825. Err: fmt.Errorf("failed to decode response body, %w", err),
  3826. Snapshot: snapshot.Bytes(),
  3827. }
  3828. return err
  3829. }
  3830. errorBody.Seek(0, io.SeekStart)
  3831. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  3832. errorCode = restjson.SanitizeErrorCode(typ)
  3833. }
  3834. if len(bodyInfo.Message) != 0 {
  3835. errorMessage = bodyInfo.Message
  3836. }
  3837. switch {
  3838. case strings.EqualFold("DataUnavailableException", errorCode):
  3839. return awsAwsjson11_deserializeErrorDataUnavailableException(response, errorBody)
  3840. case strings.EqualFold("GenerationExistsException", errorCode):
  3841. return awsAwsjson11_deserializeErrorGenerationExistsException(response, errorBody)
  3842. case strings.EqualFold("LimitExceededException", errorCode):
  3843. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  3844. case strings.EqualFold("ServiceQuotaExceededException", errorCode):
  3845. return awsAwsjson11_deserializeErrorServiceQuotaExceededException(response, errorBody)
  3846. default:
  3847. genericError := &smithy.GenericAPIError{
  3848. Code: errorCode,
  3849. Message: errorMessage,
  3850. }
  3851. return genericError
  3852. }
  3853. }
  3854. type awsAwsjson11_deserializeOpStartCostAllocationTagBackfill struct {
  3855. }
  3856. func (*awsAwsjson11_deserializeOpStartCostAllocationTagBackfill) ID() string {
  3857. return "OperationDeserializer"
  3858. }
  3859. func (m *awsAwsjson11_deserializeOpStartCostAllocationTagBackfill) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  3860. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  3861. ) {
  3862. out, metadata, err = next.HandleDeserialize(ctx, in)
  3863. if err != nil {
  3864. return out, metadata, err
  3865. }
  3866. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  3867. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  3868. defer endTimer()
  3869. defer span.End()
  3870. response, ok := out.RawResponse.(*smithyhttp.Response)
  3871. if !ok {
  3872. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  3873. }
  3874. if response.StatusCode < 200 || response.StatusCode >= 300 {
  3875. return out, metadata, awsAwsjson11_deserializeOpErrorStartCostAllocationTagBackfill(response, &metadata)
  3876. }
  3877. output := &StartCostAllocationTagBackfillOutput{}
  3878. out.Result = output
  3879. var buff [1024]byte
  3880. ringBuffer := smithyio.NewRingBuffer(buff[:])
  3881. body := io.TeeReader(response.Body, ringBuffer)
  3882. decoder := json.NewDecoder(body)
  3883. decoder.UseNumber()
  3884. var shape interface{}
  3885. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  3886. var snapshot bytes.Buffer
  3887. io.Copy(&snapshot, ringBuffer)
  3888. err = &smithy.DeserializationError{
  3889. Err: fmt.Errorf("failed to decode response body, %w", err),
  3890. Snapshot: snapshot.Bytes(),
  3891. }
  3892. return out, metadata, err
  3893. }
  3894. err = awsAwsjson11_deserializeOpDocumentStartCostAllocationTagBackfillOutput(&output, shape)
  3895. if err != nil {
  3896. var snapshot bytes.Buffer
  3897. io.Copy(&snapshot, ringBuffer)
  3898. err = &smithy.DeserializationError{
  3899. Err: fmt.Errorf("failed to decode response body, %w", err),
  3900. Snapshot: snapshot.Bytes(),
  3901. }
  3902. return out, metadata, err
  3903. }
  3904. return out, metadata, err
  3905. }
  3906. func awsAwsjson11_deserializeOpErrorStartCostAllocationTagBackfill(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  3907. var errorBuffer bytes.Buffer
  3908. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  3909. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  3910. }
  3911. errorBody := bytes.NewReader(errorBuffer.Bytes())
  3912. errorCode := "UnknownError"
  3913. errorMessage := errorCode
  3914. headerCode := response.Header.Get("X-Amzn-ErrorType")
  3915. var buff [1024]byte
  3916. ringBuffer := smithyio.NewRingBuffer(buff[:])
  3917. body := io.TeeReader(errorBody, ringBuffer)
  3918. decoder := json.NewDecoder(body)
  3919. decoder.UseNumber()
  3920. bodyInfo, err := getProtocolErrorInfo(decoder)
  3921. if err != nil {
  3922. var snapshot bytes.Buffer
  3923. io.Copy(&snapshot, ringBuffer)
  3924. err = &smithy.DeserializationError{
  3925. Err: fmt.Errorf("failed to decode response body, %w", err),
  3926. Snapshot: snapshot.Bytes(),
  3927. }
  3928. return err
  3929. }
  3930. errorBody.Seek(0, io.SeekStart)
  3931. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  3932. errorCode = restjson.SanitizeErrorCode(typ)
  3933. }
  3934. if len(bodyInfo.Message) != 0 {
  3935. errorMessage = bodyInfo.Message
  3936. }
  3937. switch {
  3938. case strings.EqualFold("BackfillLimitExceededException", errorCode):
  3939. return awsAwsjson11_deserializeErrorBackfillLimitExceededException(response, errorBody)
  3940. case strings.EqualFold("LimitExceededException", errorCode):
  3941. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  3942. default:
  3943. genericError := &smithy.GenericAPIError{
  3944. Code: errorCode,
  3945. Message: errorMessage,
  3946. }
  3947. return genericError
  3948. }
  3949. }
  3950. type awsAwsjson11_deserializeOpStartSavingsPlansPurchaseRecommendationGeneration struct {
  3951. }
  3952. func (*awsAwsjson11_deserializeOpStartSavingsPlansPurchaseRecommendationGeneration) ID() string {
  3953. return "OperationDeserializer"
  3954. }
  3955. func (m *awsAwsjson11_deserializeOpStartSavingsPlansPurchaseRecommendationGeneration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  3956. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  3957. ) {
  3958. out, metadata, err = next.HandleDeserialize(ctx, in)
  3959. if err != nil {
  3960. return out, metadata, err
  3961. }
  3962. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  3963. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  3964. defer endTimer()
  3965. defer span.End()
  3966. response, ok := out.RawResponse.(*smithyhttp.Response)
  3967. if !ok {
  3968. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  3969. }
  3970. if response.StatusCode < 200 || response.StatusCode >= 300 {
  3971. return out, metadata, awsAwsjson11_deserializeOpErrorStartSavingsPlansPurchaseRecommendationGeneration(response, &metadata)
  3972. }
  3973. output := &StartSavingsPlansPurchaseRecommendationGenerationOutput{}
  3974. out.Result = output
  3975. var buff [1024]byte
  3976. ringBuffer := smithyio.NewRingBuffer(buff[:])
  3977. body := io.TeeReader(response.Body, ringBuffer)
  3978. decoder := json.NewDecoder(body)
  3979. decoder.UseNumber()
  3980. var shape interface{}
  3981. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  3982. var snapshot bytes.Buffer
  3983. io.Copy(&snapshot, ringBuffer)
  3984. err = &smithy.DeserializationError{
  3985. Err: fmt.Errorf("failed to decode response body, %w", err),
  3986. Snapshot: snapshot.Bytes(),
  3987. }
  3988. return out, metadata, err
  3989. }
  3990. err = awsAwsjson11_deserializeOpDocumentStartSavingsPlansPurchaseRecommendationGenerationOutput(&output, shape)
  3991. if err != nil {
  3992. var snapshot bytes.Buffer
  3993. io.Copy(&snapshot, ringBuffer)
  3994. err = &smithy.DeserializationError{
  3995. Err: fmt.Errorf("failed to decode response body, %w", err),
  3996. Snapshot: snapshot.Bytes(),
  3997. }
  3998. return out, metadata, err
  3999. }
  4000. return out, metadata, err
  4001. }
  4002. func awsAwsjson11_deserializeOpErrorStartSavingsPlansPurchaseRecommendationGeneration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  4003. var errorBuffer bytes.Buffer
  4004. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  4005. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  4006. }
  4007. errorBody := bytes.NewReader(errorBuffer.Bytes())
  4008. errorCode := "UnknownError"
  4009. errorMessage := errorCode
  4010. headerCode := response.Header.Get("X-Amzn-ErrorType")
  4011. var buff [1024]byte
  4012. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4013. body := io.TeeReader(errorBody, ringBuffer)
  4014. decoder := json.NewDecoder(body)
  4015. decoder.UseNumber()
  4016. bodyInfo, err := getProtocolErrorInfo(decoder)
  4017. if err != nil {
  4018. var snapshot bytes.Buffer
  4019. io.Copy(&snapshot, ringBuffer)
  4020. err = &smithy.DeserializationError{
  4021. Err: fmt.Errorf("failed to decode response body, %w", err),
  4022. Snapshot: snapshot.Bytes(),
  4023. }
  4024. return err
  4025. }
  4026. errorBody.Seek(0, io.SeekStart)
  4027. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  4028. errorCode = restjson.SanitizeErrorCode(typ)
  4029. }
  4030. if len(bodyInfo.Message) != 0 {
  4031. errorMessage = bodyInfo.Message
  4032. }
  4033. switch {
  4034. case strings.EqualFold("DataUnavailableException", errorCode):
  4035. return awsAwsjson11_deserializeErrorDataUnavailableException(response, errorBody)
  4036. case strings.EqualFold("GenerationExistsException", errorCode):
  4037. return awsAwsjson11_deserializeErrorGenerationExistsException(response, errorBody)
  4038. case strings.EqualFold("LimitExceededException", errorCode):
  4039. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  4040. case strings.EqualFold("ServiceQuotaExceededException", errorCode):
  4041. return awsAwsjson11_deserializeErrorServiceQuotaExceededException(response, errorBody)
  4042. default:
  4043. genericError := &smithy.GenericAPIError{
  4044. Code: errorCode,
  4045. Message: errorMessage,
  4046. }
  4047. return genericError
  4048. }
  4049. }
  4050. type awsAwsjson11_deserializeOpTagResource struct {
  4051. }
  4052. func (*awsAwsjson11_deserializeOpTagResource) ID() string {
  4053. return "OperationDeserializer"
  4054. }
  4055. func (m *awsAwsjson11_deserializeOpTagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  4056. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  4057. ) {
  4058. out, metadata, err = next.HandleDeserialize(ctx, in)
  4059. if err != nil {
  4060. return out, metadata, err
  4061. }
  4062. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  4063. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  4064. defer endTimer()
  4065. defer span.End()
  4066. response, ok := out.RawResponse.(*smithyhttp.Response)
  4067. if !ok {
  4068. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  4069. }
  4070. if response.StatusCode < 200 || response.StatusCode >= 300 {
  4071. return out, metadata, awsAwsjson11_deserializeOpErrorTagResource(response, &metadata)
  4072. }
  4073. output := &TagResourceOutput{}
  4074. out.Result = output
  4075. var buff [1024]byte
  4076. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4077. body := io.TeeReader(response.Body, ringBuffer)
  4078. decoder := json.NewDecoder(body)
  4079. decoder.UseNumber()
  4080. var shape interface{}
  4081. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  4082. var snapshot bytes.Buffer
  4083. io.Copy(&snapshot, ringBuffer)
  4084. err = &smithy.DeserializationError{
  4085. Err: fmt.Errorf("failed to decode response body, %w", err),
  4086. Snapshot: snapshot.Bytes(),
  4087. }
  4088. return out, metadata, err
  4089. }
  4090. err = awsAwsjson11_deserializeOpDocumentTagResourceOutput(&output, shape)
  4091. if err != nil {
  4092. var snapshot bytes.Buffer
  4093. io.Copy(&snapshot, ringBuffer)
  4094. err = &smithy.DeserializationError{
  4095. Err: fmt.Errorf("failed to decode response body, %w", err),
  4096. Snapshot: snapshot.Bytes(),
  4097. }
  4098. return out, metadata, err
  4099. }
  4100. return out, metadata, err
  4101. }
  4102. func awsAwsjson11_deserializeOpErrorTagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  4103. var errorBuffer bytes.Buffer
  4104. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  4105. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  4106. }
  4107. errorBody := bytes.NewReader(errorBuffer.Bytes())
  4108. errorCode := "UnknownError"
  4109. errorMessage := errorCode
  4110. headerCode := response.Header.Get("X-Amzn-ErrorType")
  4111. var buff [1024]byte
  4112. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4113. body := io.TeeReader(errorBody, ringBuffer)
  4114. decoder := json.NewDecoder(body)
  4115. decoder.UseNumber()
  4116. bodyInfo, err := getProtocolErrorInfo(decoder)
  4117. if err != nil {
  4118. var snapshot bytes.Buffer
  4119. io.Copy(&snapshot, ringBuffer)
  4120. err = &smithy.DeserializationError{
  4121. Err: fmt.Errorf("failed to decode response body, %w", err),
  4122. Snapshot: snapshot.Bytes(),
  4123. }
  4124. return err
  4125. }
  4126. errorBody.Seek(0, io.SeekStart)
  4127. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  4128. errorCode = restjson.SanitizeErrorCode(typ)
  4129. }
  4130. if len(bodyInfo.Message) != 0 {
  4131. errorMessage = bodyInfo.Message
  4132. }
  4133. switch {
  4134. case strings.EqualFold("LimitExceededException", errorCode):
  4135. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  4136. case strings.EqualFold("ResourceNotFoundException", errorCode):
  4137. return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody)
  4138. case strings.EqualFold("TooManyTagsException", errorCode):
  4139. return awsAwsjson11_deserializeErrorTooManyTagsException(response, errorBody)
  4140. default:
  4141. genericError := &smithy.GenericAPIError{
  4142. Code: errorCode,
  4143. Message: errorMessage,
  4144. }
  4145. return genericError
  4146. }
  4147. }
  4148. type awsAwsjson11_deserializeOpUntagResource struct {
  4149. }
  4150. func (*awsAwsjson11_deserializeOpUntagResource) ID() string {
  4151. return "OperationDeserializer"
  4152. }
  4153. func (m *awsAwsjson11_deserializeOpUntagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  4154. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  4155. ) {
  4156. out, metadata, err = next.HandleDeserialize(ctx, in)
  4157. if err != nil {
  4158. return out, metadata, err
  4159. }
  4160. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  4161. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  4162. defer endTimer()
  4163. defer span.End()
  4164. response, ok := out.RawResponse.(*smithyhttp.Response)
  4165. if !ok {
  4166. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  4167. }
  4168. if response.StatusCode < 200 || response.StatusCode >= 300 {
  4169. return out, metadata, awsAwsjson11_deserializeOpErrorUntagResource(response, &metadata)
  4170. }
  4171. output := &UntagResourceOutput{}
  4172. out.Result = output
  4173. var buff [1024]byte
  4174. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4175. body := io.TeeReader(response.Body, ringBuffer)
  4176. decoder := json.NewDecoder(body)
  4177. decoder.UseNumber()
  4178. var shape interface{}
  4179. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  4180. var snapshot bytes.Buffer
  4181. io.Copy(&snapshot, ringBuffer)
  4182. err = &smithy.DeserializationError{
  4183. Err: fmt.Errorf("failed to decode response body, %w", err),
  4184. Snapshot: snapshot.Bytes(),
  4185. }
  4186. return out, metadata, err
  4187. }
  4188. err = awsAwsjson11_deserializeOpDocumentUntagResourceOutput(&output, shape)
  4189. if err != nil {
  4190. var snapshot bytes.Buffer
  4191. io.Copy(&snapshot, ringBuffer)
  4192. err = &smithy.DeserializationError{
  4193. Err: fmt.Errorf("failed to decode response body, %w", err),
  4194. Snapshot: snapshot.Bytes(),
  4195. }
  4196. return out, metadata, err
  4197. }
  4198. return out, metadata, err
  4199. }
  4200. func awsAwsjson11_deserializeOpErrorUntagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  4201. var errorBuffer bytes.Buffer
  4202. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  4203. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  4204. }
  4205. errorBody := bytes.NewReader(errorBuffer.Bytes())
  4206. errorCode := "UnknownError"
  4207. errorMessage := errorCode
  4208. headerCode := response.Header.Get("X-Amzn-ErrorType")
  4209. var buff [1024]byte
  4210. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4211. body := io.TeeReader(errorBody, ringBuffer)
  4212. decoder := json.NewDecoder(body)
  4213. decoder.UseNumber()
  4214. bodyInfo, err := getProtocolErrorInfo(decoder)
  4215. if err != nil {
  4216. var snapshot bytes.Buffer
  4217. io.Copy(&snapshot, ringBuffer)
  4218. err = &smithy.DeserializationError{
  4219. Err: fmt.Errorf("failed to decode response body, %w", err),
  4220. Snapshot: snapshot.Bytes(),
  4221. }
  4222. return err
  4223. }
  4224. errorBody.Seek(0, io.SeekStart)
  4225. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  4226. errorCode = restjson.SanitizeErrorCode(typ)
  4227. }
  4228. if len(bodyInfo.Message) != 0 {
  4229. errorMessage = bodyInfo.Message
  4230. }
  4231. switch {
  4232. case strings.EqualFold("LimitExceededException", errorCode):
  4233. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  4234. case strings.EqualFold("ResourceNotFoundException", errorCode):
  4235. return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody)
  4236. default:
  4237. genericError := &smithy.GenericAPIError{
  4238. Code: errorCode,
  4239. Message: errorMessage,
  4240. }
  4241. return genericError
  4242. }
  4243. }
  4244. type awsAwsjson11_deserializeOpUpdateAnomalyMonitor struct {
  4245. }
  4246. func (*awsAwsjson11_deserializeOpUpdateAnomalyMonitor) ID() string {
  4247. return "OperationDeserializer"
  4248. }
  4249. func (m *awsAwsjson11_deserializeOpUpdateAnomalyMonitor) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  4250. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  4251. ) {
  4252. out, metadata, err = next.HandleDeserialize(ctx, in)
  4253. if err != nil {
  4254. return out, metadata, err
  4255. }
  4256. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  4257. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  4258. defer endTimer()
  4259. defer span.End()
  4260. response, ok := out.RawResponse.(*smithyhttp.Response)
  4261. if !ok {
  4262. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  4263. }
  4264. if response.StatusCode < 200 || response.StatusCode >= 300 {
  4265. return out, metadata, awsAwsjson11_deserializeOpErrorUpdateAnomalyMonitor(response, &metadata)
  4266. }
  4267. output := &UpdateAnomalyMonitorOutput{}
  4268. out.Result = output
  4269. var buff [1024]byte
  4270. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4271. body := io.TeeReader(response.Body, ringBuffer)
  4272. decoder := json.NewDecoder(body)
  4273. decoder.UseNumber()
  4274. var shape interface{}
  4275. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  4276. var snapshot bytes.Buffer
  4277. io.Copy(&snapshot, ringBuffer)
  4278. err = &smithy.DeserializationError{
  4279. Err: fmt.Errorf("failed to decode response body, %w", err),
  4280. Snapshot: snapshot.Bytes(),
  4281. }
  4282. return out, metadata, err
  4283. }
  4284. err = awsAwsjson11_deserializeOpDocumentUpdateAnomalyMonitorOutput(&output, shape)
  4285. if err != nil {
  4286. var snapshot bytes.Buffer
  4287. io.Copy(&snapshot, ringBuffer)
  4288. err = &smithy.DeserializationError{
  4289. Err: fmt.Errorf("failed to decode response body, %w", err),
  4290. Snapshot: snapshot.Bytes(),
  4291. }
  4292. return out, metadata, err
  4293. }
  4294. return out, metadata, err
  4295. }
  4296. func awsAwsjson11_deserializeOpErrorUpdateAnomalyMonitor(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  4297. var errorBuffer bytes.Buffer
  4298. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  4299. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  4300. }
  4301. errorBody := bytes.NewReader(errorBuffer.Bytes())
  4302. errorCode := "UnknownError"
  4303. errorMessage := errorCode
  4304. headerCode := response.Header.Get("X-Amzn-ErrorType")
  4305. var buff [1024]byte
  4306. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4307. body := io.TeeReader(errorBody, ringBuffer)
  4308. decoder := json.NewDecoder(body)
  4309. decoder.UseNumber()
  4310. bodyInfo, err := getProtocolErrorInfo(decoder)
  4311. if err != nil {
  4312. var snapshot bytes.Buffer
  4313. io.Copy(&snapshot, ringBuffer)
  4314. err = &smithy.DeserializationError{
  4315. Err: fmt.Errorf("failed to decode response body, %w", err),
  4316. Snapshot: snapshot.Bytes(),
  4317. }
  4318. return err
  4319. }
  4320. errorBody.Seek(0, io.SeekStart)
  4321. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  4322. errorCode = restjson.SanitizeErrorCode(typ)
  4323. }
  4324. if len(bodyInfo.Message) != 0 {
  4325. errorMessage = bodyInfo.Message
  4326. }
  4327. switch {
  4328. case strings.EqualFold("LimitExceededException", errorCode):
  4329. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  4330. case strings.EqualFold("UnknownMonitorException", errorCode):
  4331. return awsAwsjson11_deserializeErrorUnknownMonitorException(response, errorBody)
  4332. default:
  4333. genericError := &smithy.GenericAPIError{
  4334. Code: errorCode,
  4335. Message: errorMessage,
  4336. }
  4337. return genericError
  4338. }
  4339. }
  4340. type awsAwsjson11_deserializeOpUpdateAnomalySubscription struct {
  4341. }
  4342. func (*awsAwsjson11_deserializeOpUpdateAnomalySubscription) ID() string {
  4343. return "OperationDeserializer"
  4344. }
  4345. func (m *awsAwsjson11_deserializeOpUpdateAnomalySubscription) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  4346. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  4347. ) {
  4348. out, metadata, err = next.HandleDeserialize(ctx, in)
  4349. if err != nil {
  4350. return out, metadata, err
  4351. }
  4352. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  4353. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  4354. defer endTimer()
  4355. defer span.End()
  4356. response, ok := out.RawResponse.(*smithyhttp.Response)
  4357. if !ok {
  4358. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  4359. }
  4360. if response.StatusCode < 200 || response.StatusCode >= 300 {
  4361. return out, metadata, awsAwsjson11_deserializeOpErrorUpdateAnomalySubscription(response, &metadata)
  4362. }
  4363. output := &UpdateAnomalySubscriptionOutput{}
  4364. out.Result = output
  4365. var buff [1024]byte
  4366. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4367. body := io.TeeReader(response.Body, ringBuffer)
  4368. decoder := json.NewDecoder(body)
  4369. decoder.UseNumber()
  4370. var shape interface{}
  4371. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  4372. var snapshot bytes.Buffer
  4373. io.Copy(&snapshot, ringBuffer)
  4374. err = &smithy.DeserializationError{
  4375. Err: fmt.Errorf("failed to decode response body, %w", err),
  4376. Snapshot: snapshot.Bytes(),
  4377. }
  4378. return out, metadata, err
  4379. }
  4380. err = awsAwsjson11_deserializeOpDocumentUpdateAnomalySubscriptionOutput(&output, shape)
  4381. if err != nil {
  4382. var snapshot bytes.Buffer
  4383. io.Copy(&snapshot, ringBuffer)
  4384. err = &smithy.DeserializationError{
  4385. Err: fmt.Errorf("failed to decode response body, %w", err),
  4386. Snapshot: snapshot.Bytes(),
  4387. }
  4388. return out, metadata, err
  4389. }
  4390. return out, metadata, err
  4391. }
  4392. func awsAwsjson11_deserializeOpErrorUpdateAnomalySubscription(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  4393. var errorBuffer bytes.Buffer
  4394. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  4395. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  4396. }
  4397. errorBody := bytes.NewReader(errorBuffer.Bytes())
  4398. errorCode := "UnknownError"
  4399. errorMessage := errorCode
  4400. headerCode := response.Header.Get("X-Amzn-ErrorType")
  4401. var buff [1024]byte
  4402. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4403. body := io.TeeReader(errorBody, ringBuffer)
  4404. decoder := json.NewDecoder(body)
  4405. decoder.UseNumber()
  4406. bodyInfo, err := getProtocolErrorInfo(decoder)
  4407. if err != nil {
  4408. var snapshot bytes.Buffer
  4409. io.Copy(&snapshot, ringBuffer)
  4410. err = &smithy.DeserializationError{
  4411. Err: fmt.Errorf("failed to decode response body, %w", err),
  4412. Snapshot: snapshot.Bytes(),
  4413. }
  4414. return err
  4415. }
  4416. errorBody.Seek(0, io.SeekStart)
  4417. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  4418. errorCode = restjson.SanitizeErrorCode(typ)
  4419. }
  4420. if len(bodyInfo.Message) != 0 {
  4421. errorMessage = bodyInfo.Message
  4422. }
  4423. switch {
  4424. case strings.EqualFold("LimitExceededException", errorCode):
  4425. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  4426. case strings.EqualFold("UnknownMonitorException", errorCode):
  4427. return awsAwsjson11_deserializeErrorUnknownMonitorException(response, errorBody)
  4428. case strings.EqualFold("UnknownSubscriptionException", errorCode):
  4429. return awsAwsjson11_deserializeErrorUnknownSubscriptionException(response, errorBody)
  4430. default:
  4431. genericError := &smithy.GenericAPIError{
  4432. Code: errorCode,
  4433. Message: errorMessage,
  4434. }
  4435. return genericError
  4436. }
  4437. }
  4438. type awsAwsjson11_deserializeOpUpdateCostAllocationTagsStatus struct {
  4439. }
  4440. func (*awsAwsjson11_deserializeOpUpdateCostAllocationTagsStatus) ID() string {
  4441. return "OperationDeserializer"
  4442. }
  4443. func (m *awsAwsjson11_deserializeOpUpdateCostAllocationTagsStatus) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  4444. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  4445. ) {
  4446. out, metadata, err = next.HandleDeserialize(ctx, in)
  4447. if err != nil {
  4448. return out, metadata, err
  4449. }
  4450. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  4451. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  4452. defer endTimer()
  4453. defer span.End()
  4454. response, ok := out.RawResponse.(*smithyhttp.Response)
  4455. if !ok {
  4456. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  4457. }
  4458. if response.StatusCode < 200 || response.StatusCode >= 300 {
  4459. return out, metadata, awsAwsjson11_deserializeOpErrorUpdateCostAllocationTagsStatus(response, &metadata)
  4460. }
  4461. output := &UpdateCostAllocationTagsStatusOutput{}
  4462. out.Result = output
  4463. var buff [1024]byte
  4464. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4465. body := io.TeeReader(response.Body, ringBuffer)
  4466. decoder := json.NewDecoder(body)
  4467. decoder.UseNumber()
  4468. var shape interface{}
  4469. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  4470. var snapshot bytes.Buffer
  4471. io.Copy(&snapshot, ringBuffer)
  4472. err = &smithy.DeserializationError{
  4473. Err: fmt.Errorf("failed to decode response body, %w", err),
  4474. Snapshot: snapshot.Bytes(),
  4475. }
  4476. return out, metadata, err
  4477. }
  4478. err = awsAwsjson11_deserializeOpDocumentUpdateCostAllocationTagsStatusOutput(&output, shape)
  4479. if err != nil {
  4480. var snapshot bytes.Buffer
  4481. io.Copy(&snapshot, ringBuffer)
  4482. err = &smithy.DeserializationError{
  4483. Err: fmt.Errorf("failed to decode response body, %w", err),
  4484. Snapshot: snapshot.Bytes(),
  4485. }
  4486. return out, metadata, err
  4487. }
  4488. return out, metadata, err
  4489. }
  4490. func awsAwsjson11_deserializeOpErrorUpdateCostAllocationTagsStatus(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  4491. var errorBuffer bytes.Buffer
  4492. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  4493. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  4494. }
  4495. errorBody := bytes.NewReader(errorBuffer.Bytes())
  4496. errorCode := "UnknownError"
  4497. errorMessage := errorCode
  4498. headerCode := response.Header.Get("X-Amzn-ErrorType")
  4499. var buff [1024]byte
  4500. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4501. body := io.TeeReader(errorBody, ringBuffer)
  4502. decoder := json.NewDecoder(body)
  4503. decoder.UseNumber()
  4504. bodyInfo, err := getProtocolErrorInfo(decoder)
  4505. if err != nil {
  4506. var snapshot bytes.Buffer
  4507. io.Copy(&snapshot, ringBuffer)
  4508. err = &smithy.DeserializationError{
  4509. Err: fmt.Errorf("failed to decode response body, %w", err),
  4510. Snapshot: snapshot.Bytes(),
  4511. }
  4512. return err
  4513. }
  4514. errorBody.Seek(0, io.SeekStart)
  4515. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  4516. errorCode = restjson.SanitizeErrorCode(typ)
  4517. }
  4518. if len(bodyInfo.Message) != 0 {
  4519. errorMessage = bodyInfo.Message
  4520. }
  4521. switch {
  4522. case strings.EqualFold("LimitExceededException", errorCode):
  4523. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  4524. default:
  4525. genericError := &smithy.GenericAPIError{
  4526. Code: errorCode,
  4527. Message: errorMessage,
  4528. }
  4529. return genericError
  4530. }
  4531. }
  4532. type awsAwsjson11_deserializeOpUpdateCostCategoryDefinition struct {
  4533. }
  4534. func (*awsAwsjson11_deserializeOpUpdateCostCategoryDefinition) ID() string {
  4535. return "OperationDeserializer"
  4536. }
  4537. func (m *awsAwsjson11_deserializeOpUpdateCostCategoryDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  4538. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  4539. ) {
  4540. out, metadata, err = next.HandleDeserialize(ctx, in)
  4541. if err != nil {
  4542. return out, metadata, err
  4543. }
  4544. _, span := tracing.StartSpan(ctx, "OperationDeserializer")
  4545. endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
  4546. defer endTimer()
  4547. defer span.End()
  4548. response, ok := out.RawResponse.(*smithyhttp.Response)
  4549. if !ok {
  4550. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  4551. }
  4552. if response.StatusCode < 200 || response.StatusCode >= 300 {
  4553. return out, metadata, awsAwsjson11_deserializeOpErrorUpdateCostCategoryDefinition(response, &metadata)
  4554. }
  4555. output := &UpdateCostCategoryDefinitionOutput{}
  4556. out.Result = output
  4557. var buff [1024]byte
  4558. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4559. body := io.TeeReader(response.Body, ringBuffer)
  4560. decoder := json.NewDecoder(body)
  4561. decoder.UseNumber()
  4562. var shape interface{}
  4563. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  4564. var snapshot bytes.Buffer
  4565. io.Copy(&snapshot, ringBuffer)
  4566. err = &smithy.DeserializationError{
  4567. Err: fmt.Errorf("failed to decode response body, %w", err),
  4568. Snapshot: snapshot.Bytes(),
  4569. }
  4570. return out, metadata, err
  4571. }
  4572. err = awsAwsjson11_deserializeOpDocumentUpdateCostCategoryDefinitionOutput(&output, shape)
  4573. if err != nil {
  4574. var snapshot bytes.Buffer
  4575. io.Copy(&snapshot, ringBuffer)
  4576. err = &smithy.DeserializationError{
  4577. Err: fmt.Errorf("failed to decode response body, %w", err),
  4578. Snapshot: snapshot.Bytes(),
  4579. }
  4580. return out, metadata, err
  4581. }
  4582. return out, metadata, err
  4583. }
  4584. func awsAwsjson11_deserializeOpErrorUpdateCostCategoryDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  4585. var errorBuffer bytes.Buffer
  4586. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  4587. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  4588. }
  4589. errorBody := bytes.NewReader(errorBuffer.Bytes())
  4590. errorCode := "UnknownError"
  4591. errorMessage := errorCode
  4592. headerCode := response.Header.Get("X-Amzn-ErrorType")
  4593. var buff [1024]byte
  4594. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4595. body := io.TeeReader(errorBody, ringBuffer)
  4596. decoder := json.NewDecoder(body)
  4597. decoder.UseNumber()
  4598. bodyInfo, err := getProtocolErrorInfo(decoder)
  4599. if err != nil {
  4600. var snapshot bytes.Buffer
  4601. io.Copy(&snapshot, ringBuffer)
  4602. err = &smithy.DeserializationError{
  4603. Err: fmt.Errorf("failed to decode response body, %w", err),
  4604. Snapshot: snapshot.Bytes(),
  4605. }
  4606. return err
  4607. }
  4608. errorBody.Seek(0, io.SeekStart)
  4609. if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok {
  4610. errorCode = restjson.SanitizeErrorCode(typ)
  4611. }
  4612. if len(bodyInfo.Message) != 0 {
  4613. errorMessage = bodyInfo.Message
  4614. }
  4615. switch {
  4616. case strings.EqualFold("LimitExceededException", errorCode):
  4617. return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody)
  4618. case strings.EqualFold("ResourceNotFoundException", errorCode):
  4619. return awsAwsjson11_deserializeErrorResourceNotFoundException(response, errorBody)
  4620. case strings.EqualFold("ServiceQuotaExceededException", errorCode):
  4621. return awsAwsjson11_deserializeErrorServiceQuotaExceededException(response, errorBody)
  4622. default:
  4623. genericError := &smithy.GenericAPIError{
  4624. Code: errorCode,
  4625. Message: errorMessage,
  4626. }
  4627. return genericError
  4628. }
  4629. }
  4630. func awsAwsjson11_deserializeErrorAnalysisNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  4631. var buff [1024]byte
  4632. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4633. body := io.TeeReader(errorBody, ringBuffer)
  4634. decoder := json.NewDecoder(body)
  4635. decoder.UseNumber()
  4636. var shape interface{}
  4637. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  4638. var snapshot bytes.Buffer
  4639. io.Copy(&snapshot, ringBuffer)
  4640. err = &smithy.DeserializationError{
  4641. Err: fmt.Errorf("failed to decode response body, %w", err),
  4642. Snapshot: snapshot.Bytes(),
  4643. }
  4644. return err
  4645. }
  4646. output := &types.AnalysisNotFoundException{}
  4647. err := awsAwsjson11_deserializeDocumentAnalysisNotFoundException(&output, shape)
  4648. if err != nil {
  4649. var snapshot bytes.Buffer
  4650. io.Copy(&snapshot, ringBuffer)
  4651. err = &smithy.DeserializationError{
  4652. Err: fmt.Errorf("failed to decode response body, %w", err),
  4653. Snapshot: snapshot.Bytes(),
  4654. }
  4655. return err
  4656. }
  4657. errorBody.Seek(0, io.SeekStart)
  4658. return output
  4659. }
  4660. func awsAwsjson11_deserializeErrorBackfillLimitExceededException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  4661. var buff [1024]byte
  4662. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4663. body := io.TeeReader(errorBody, ringBuffer)
  4664. decoder := json.NewDecoder(body)
  4665. decoder.UseNumber()
  4666. var shape interface{}
  4667. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  4668. var snapshot bytes.Buffer
  4669. io.Copy(&snapshot, ringBuffer)
  4670. err = &smithy.DeserializationError{
  4671. Err: fmt.Errorf("failed to decode response body, %w", err),
  4672. Snapshot: snapshot.Bytes(),
  4673. }
  4674. return err
  4675. }
  4676. output := &types.BackfillLimitExceededException{}
  4677. err := awsAwsjson11_deserializeDocumentBackfillLimitExceededException(&output, shape)
  4678. if err != nil {
  4679. var snapshot bytes.Buffer
  4680. io.Copy(&snapshot, ringBuffer)
  4681. err = &smithy.DeserializationError{
  4682. Err: fmt.Errorf("failed to decode response body, %w", err),
  4683. Snapshot: snapshot.Bytes(),
  4684. }
  4685. return err
  4686. }
  4687. errorBody.Seek(0, io.SeekStart)
  4688. return output
  4689. }
  4690. func awsAwsjson11_deserializeErrorBillExpirationException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  4691. var buff [1024]byte
  4692. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4693. body := io.TeeReader(errorBody, ringBuffer)
  4694. decoder := json.NewDecoder(body)
  4695. decoder.UseNumber()
  4696. var shape interface{}
  4697. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  4698. var snapshot bytes.Buffer
  4699. io.Copy(&snapshot, ringBuffer)
  4700. err = &smithy.DeserializationError{
  4701. Err: fmt.Errorf("failed to decode response body, %w", err),
  4702. Snapshot: snapshot.Bytes(),
  4703. }
  4704. return err
  4705. }
  4706. output := &types.BillExpirationException{}
  4707. err := awsAwsjson11_deserializeDocumentBillExpirationException(&output, shape)
  4708. if err != nil {
  4709. var snapshot bytes.Buffer
  4710. io.Copy(&snapshot, ringBuffer)
  4711. err = &smithy.DeserializationError{
  4712. Err: fmt.Errorf("failed to decode response body, %w", err),
  4713. Snapshot: snapshot.Bytes(),
  4714. }
  4715. return err
  4716. }
  4717. errorBody.Seek(0, io.SeekStart)
  4718. return output
  4719. }
  4720. func awsAwsjson11_deserializeErrorBillingViewHealthStatusException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  4721. var buff [1024]byte
  4722. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4723. body := io.TeeReader(errorBody, ringBuffer)
  4724. decoder := json.NewDecoder(body)
  4725. decoder.UseNumber()
  4726. var shape interface{}
  4727. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  4728. var snapshot bytes.Buffer
  4729. io.Copy(&snapshot, ringBuffer)
  4730. err = &smithy.DeserializationError{
  4731. Err: fmt.Errorf("failed to decode response body, %w", err),
  4732. Snapshot: snapshot.Bytes(),
  4733. }
  4734. return err
  4735. }
  4736. output := &types.BillingViewHealthStatusException{}
  4737. err := awsAwsjson11_deserializeDocumentBillingViewHealthStatusException(&output, shape)
  4738. if err != nil {
  4739. var snapshot bytes.Buffer
  4740. io.Copy(&snapshot, ringBuffer)
  4741. err = &smithy.DeserializationError{
  4742. Err: fmt.Errorf("failed to decode response body, %w", err),
  4743. Snapshot: snapshot.Bytes(),
  4744. }
  4745. return err
  4746. }
  4747. errorBody.Seek(0, io.SeekStart)
  4748. return output
  4749. }
  4750. func awsAwsjson11_deserializeErrorDataUnavailableException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  4751. var buff [1024]byte
  4752. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4753. body := io.TeeReader(errorBody, ringBuffer)
  4754. decoder := json.NewDecoder(body)
  4755. decoder.UseNumber()
  4756. var shape interface{}
  4757. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  4758. var snapshot bytes.Buffer
  4759. io.Copy(&snapshot, ringBuffer)
  4760. err = &smithy.DeserializationError{
  4761. Err: fmt.Errorf("failed to decode response body, %w", err),
  4762. Snapshot: snapshot.Bytes(),
  4763. }
  4764. return err
  4765. }
  4766. output := &types.DataUnavailableException{}
  4767. err := awsAwsjson11_deserializeDocumentDataUnavailableException(&output, shape)
  4768. if err != nil {
  4769. var snapshot bytes.Buffer
  4770. io.Copy(&snapshot, ringBuffer)
  4771. err = &smithy.DeserializationError{
  4772. Err: fmt.Errorf("failed to decode response body, %w", err),
  4773. Snapshot: snapshot.Bytes(),
  4774. }
  4775. return err
  4776. }
  4777. errorBody.Seek(0, io.SeekStart)
  4778. return output
  4779. }
  4780. func awsAwsjson11_deserializeErrorGenerationExistsException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  4781. var buff [1024]byte
  4782. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4783. body := io.TeeReader(errorBody, ringBuffer)
  4784. decoder := json.NewDecoder(body)
  4785. decoder.UseNumber()
  4786. var shape interface{}
  4787. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  4788. var snapshot bytes.Buffer
  4789. io.Copy(&snapshot, ringBuffer)
  4790. err = &smithy.DeserializationError{
  4791. Err: fmt.Errorf("failed to decode response body, %w", err),
  4792. Snapshot: snapshot.Bytes(),
  4793. }
  4794. return err
  4795. }
  4796. output := &types.GenerationExistsException{}
  4797. err := awsAwsjson11_deserializeDocumentGenerationExistsException(&output, shape)
  4798. if err != nil {
  4799. var snapshot bytes.Buffer
  4800. io.Copy(&snapshot, ringBuffer)
  4801. err = &smithy.DeserializationError{
  4802. Err: fmt.Errorf("failed to decode response body, %w", err),
  4803. Snapshot: snapshot.Bytes(),
  4804. }
  4805. return err
  4806. }
  4807. errorBody.Seek(0, io.SeekStart)
  4808. return output
  4809. }
  4810. func awsAwsjson11_deserializeErrorInvalidNextTokenException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  4811. var buff [1024]byte
  4812. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4813. body := io.TeeReader(errorBody, ringBuffer)
  4814. decoder := json.NewDecoder(body)
  4815. decoder.UseNumber()
  4816. var shape interface{}
  4817. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  4818. var snapshot bytes.Buffer
  4819. io.Copy(&snapshot, ringBuffer)
  4820. err = &smithy.DeserializationError{
  4821. Err: fmt.Errorf("failed to decode response body, %w", err),
  4822. Snapshot: snapshot.Bytes(),
  4823. }
  4824. return err
  4825. }
  4826. output := &types.InvalidNextTokenException{}
  4827. err := awsAwsjson11_deserializeDocumentInvalidNextTokenException(&output, shape)
  4828. if err != nil {
  4829. var snapshot bytes.Buffer
  4830. io.Copy(&snapshot, ringBuffer)
  4831. err = &smithy.DeserializationError{
  4832. Err: fmt.Errorf("failed to decode response body, %w", err),
  4833. Snapshot: snapshot.Bytes(),
  4834. }
  4835. return err
  4836. }
  4837. errorBody.Seek(0, io.SeekStart)
  4838. return output
  4839. }
  4840. func awsAwsjson11_deserializeErrorLimitExceededException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  4841. var buff [1024]byte
  4842. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4843. body := io.TeeReader(errorBody, ringBuffer)
  4844. decoder := json.NewDecoder(body)
  4845. decoder.UseNumber()
  4846. var shape interface{}
  4847. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  4848. var snapshot bytes.Buffer
  4849. io.Copy(&snapshot, ringBuffer)
  4850. err = &smithy.DeserializationError{
  4851. Err: fmt.Errorf("failed to decode response body, %w", err),
  4852. Snapshot: snapshot.Bytes(),
  4853. }
  4854. return err
  4855. }
  4856. output := &types.LimitExceededException{}
  4857. err := awsAwsjson11_deserializeDocumentLimitExceededException(&output, shape)
  4858. if err != nil {
  4859. var snapshot bytes.Buffer
  4860. io.Copy(&snapshot, ringBuffer)
  4861. err = &smithy.DeserializationError{
  4862. Err: fmt.Errorf("failed to decode response body, %w", err),
  4863. Snapshot: snapshot.Bytes(),
  4864. }
  4865. return err
  4866. }
  4867. errorBody.Seek(0, io.SeekStart)
  4868. return output
  4869. }
  4870. func awsAwsjson11_deserializeErrorRequestChangedException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  4871. var buff [1024]byte
  4872. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4873. body := io.TeeReader(errorBody, ringBuffer)
  4874. decoder := json.NewDecoder(body)
  4875. decoder.UseNumber()
  4876. var shape interface{}
  4877. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  4878. var snapshot bytes.Buffer
  4879. io.Copy(&snapshot, ringBuffer)
  4880. err = &smithy.DeserializationError{
  4881. Err: fmt.Errorf("failed to decode response body, %w", err),
  4882. Snapshot: snapshot.Bytes(),
  4883. }
  4884. return err
  4885. }
  4886. output := &types.RequestChangedException{}
  4887. err := awsAwsjson11_deserializeDocumentRequestChangedException(&output, shape)
  4888. if err != nil {
  4889. var snapshot bytes.Buffer
  4890. io.Copy(&snapshot, ringBuffer)
  4891. err = &smithy.DeserializationError{
  4892. Err: fmt.Errorf("failed to decode response body, %w", err),
  4893. Snapshot: snapshot.Bytes(),
  4894. }
  4895. return err
  4896. }
  4897. errorBody.Seek(0, io.SeekStart)
  4898. return output
  4899. }
  4900. func awsAwsjson11_deserializeErrorResourceNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  4901. var buff [1024]byte
  4902. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4903. body := io.TeeReader(errorBody, ringBuffer)
  4904. decoder := json.NewDecoder(body)
  4905. decoder.UseNumber()
  4906. var shape interface{}
  4907. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  4908. var snapshot bytes.Buffer
  4909. io.Copy(&snapshot, ringBuffer)
  4910. err = &smithy.DeserializationError{
  4911. Err: fmt.Errorf("failed to decode response body, %w", err),
  4912. Snapshot: snapshot.Bytes(),
  4913. }
  4914. return err
  4915. }
  4916. output := &types.ResourceNotFoundException{}
  4917. err := awsAwsjson11_deserializeDocumentResourceNotFoundException(&output, shape)
  4918. if err != nil {
  4919. var snapshot bytes.Buffer
  4920. io.Copy(&snapshot, ringBuffer)
  4921. err = &smithy.DeserializationError{
  4922. Err: fmt.Errorf("failed to decode response body, %w", err),
  4923. Snapshot: snapshot.Bytes(),
  4924. }
  4925. return err
  4926. }
  4927. errorBody.Seek(0, io.SeekStart)
  4928. return output
  4929. }
  4930. func awsAwsjson11_deserializeErrorServiceQuotaExceededException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  4931. var buff [1024]byte
  4932. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4933. body := io.TeeReader(errorBody, ringBuffer)
  4934. decoder := json.NewDecoder(body)
  4935. decoder.UseNumber()
  4936. var shape interface{}
  4937. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  4938. var snapshot bytes.Buffer
  4939. io.Copy(&snapshot, ringBuffer)
  4940. err = &smithy.DeserializationError{
  4941. Err: fmt.Errorf("failed to decode response body, %w", err),
  4942. Snapshot: snapshot.Bytes(),
  4943. }
  4944. return err
  4945. }
  4946. output := &types.ServiceQuotaExceededException{}
  4947. err := awsAwsjson11_deserializeDocumentServiceQuotaExceededException(&output, shape)
  4948. if err != nil {
  4949. var snapshot bytes.Buffer
  4950. io.Copy(&snapshot, ringBuffer)
  4951. err = &smithy.DeserializationError{
  4952. Err: fmt.Errorf("failed to decode response body, %w", err),
  4953. Snapshot: snapshot.Bytes(),
  4954. }
  4955. return err
  4956. }
  4957. errorBody.Seek(0, io.SeekStart)
  4958. return output
  4959. }
  4960. func awsAwsjson11_deserializeErrorTooManyTagsException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  4961. var buff [1024]byte
  4962. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4963. body := io.TeeReader(errorBody, ringBuffer)
  4964. decoder := json.NewDecoder(body)
  4965. decoder.UseNumber()
  4966. var shape interface{}
  4967. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  4968. var snapshot bytes.Buffer
  4969. io.Copy(&snapshot, ringBuffer)
  4970. err = &smithy.DeserializationError{
  4971. Err: fmt.Errorf("failed to decode response body, %w", err),
  4972. Snapshot: snapshot.Bytes(),
  4973. }
  4974. return err
  4975. }
  4976. output := &types.TooManyTagsException{}
  4977. err := awsAwsjson11_deserializeDocumentTooManyTagsException(&output, shape)
  4978. if err != nil {
  4979. var snapshot bytes.Buffer
  4980. io.Copy(&snapshot, ringBuffer)
  4981. err = &smithy.DeserializationError{
  4982. Err: fmt.Errorf("failed to decode response body, %w", err),
  4983. Snapshot: snapshot.Bytes(),
  4984. }
  4985. return err
  4986. }
  4987. errorBody.Seek(0, io.SeekStart)
  4988. return output
  4989. }
  4990. func awsAwsjson11_deserializeErrorUnknownMonitorException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  4991. var buff [1024]byte
  4992. ringBuffer := smithyio.NewRingBuffer(buff[:])
  4993. body := io.TeeReader(errorBody, ringBuffer)
  4994. decoder := json.NewDecoder(body)
  4995. decoder.UseNumber()
  4996. var shape interface{}
  4997. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  4998. var snapshot bytes.Buffer
  4999. io.Copy(&snapshot, ringBuffer)
  5000. err = &smithy.DeserializationError{
  5001. Err: fmt.Errorf("failed to decode response body, %w", err),
  5002. Snapshot: snapshot.Bytes(),
  5003. }
  5004. return err
  5005. }
  5006. output := &types.UnknownMonitorException{}
  5007. err := awsAwsjson11_deserializeDocumentUnknownMonitorException(&output, shape)
  5008. if err != nil {
  5009. var snapshot bytes.Buffer
  5010. io.Copy(&snapshot, ringBuffer)
  5011. err = &smithy.DeserializationError{
  5012. Err: fmt.Errorf("failed to decode response body, %w", err),
  5013. Snapshot: snapshot.Bytes(),
  5014. }
  5015. return err
  5016. }
  5017. errorBody.Seek(0, io.SeekStart)
  5018. return output
  5019. }
  5020. func awsAwsjson11_deserializeErrorUnknownSubscriptionException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  5021. var buff [1024]byte
  5022. ringBuffer := smithyio.NewRingBuffer(buff[:])
  5023. body := io.TeeReader(errorBody, ringBuffer)
  5024. decoder := json.NewDecoder(body)
  5025. decoder.UseNumber()
  5026. var shape interface{}
  5027. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  5028. var snapshot bytes.Buffer
  5029. io.Copy(&snapshot, ringBuffer)
  5030. err = &smithy.DeserializationError{
  5031. Err: fmt.Errorf("failed to decode response body, %w", err),
  5032. Snapshot: snapshot.Bytes(),
  5033. }
  5034. return err
  5035. }
  5036. output := &types.UnknownSubscriptionException{}
  5037. err := awsAwsjson11_deserializeDocumentUnknownSubscriptionException(&output, shape)
  5038. if err != nil {
  5039. var snapshot bytes.Buffer
  5040. io.Copy(&snapshot, ringBuffer)
  5041. err = &smithy.DeserializationError{
  5042. Err: fmt.Errorf("failed to decode response body, %w", err),
  5043. Snapshot: snapshot.Bytes(),
  5044. }
  5045. return err
  5046. }
  5047. errorBody.Seek(0, io.SeekStart)
  5048. return output
  5049. }
  5050. func awsAwsjson11_deserializeErrorUnresolvableUsageUnitException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  5051. var buff [1024]byte
  5052. ringBuffer := smithyio.NewRingBuffer(buff[:])
  5053. body := io.TeeReader(errorBody, ringBuffer)
  5054. decoder := json.NewDecoder(body)
  5055. decoder.UseNumber()
  5056. var shape interface{}
  5057. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  5058. var snapshot bytes.Buffer
  5059. io.Copy(&snapshot, ringBuffer)
  5060. err = &smithy.DeserializationError{
  5061. Err: fmt.Errorf("failed to decode response body, %w", err),
  5062. Snapshot: snapshot.Bytes(),
  5063. }
  5064. return err
  5065. }
  5066. output := &types.UnresolvableUsageUnitException{}
  5067. err := awsAwsjson11_deserializeDocumentUnresolvableUsageUnitException(&output, shape)
  5068. if err != nil {
  5069. var snapshot bytes.Buffer
  5070. io.Copy(&snapshot, ringBuffer)
  5071. err = &smithy.DeserializationError{
  5072. Err: fmt.Errorf("failed to decode response body, %w", err),
  5073. Snapshot: snapshot.Bytes(),
  5074. }
  5075. return err
  5076. }
  5077. errorBody.Seek(0, io.SeekStart)
  5078. return output
  5079. }
  5080. func awsAwsjson11_deserializeDocumentAnalysisDetails(v **types.AnalysisDetails, value interface{}) error {
  5081. if v == nil {
  5082. return fmt.Errorf("unexpected nil of type %T", v)
  5083. }
  5084. if value == nil {
  5085. return nil
  5086. }
  5087. shape, ok := value.(map[string]interface{})
  5088. if !ok {
  5089. return fmt.Errorf("unexpected JSON type %v", value)
  5090. }
  5091. var sv *types.AnalysisDetails
  5092. if *v == nil {
  5093. sv = &types.AnalysisDetails{}
  5094. } else {
  5095. sv = *v
  5096. }
  5097. for key, value := range shape {
  5098. switch key {
  5099. case "SavingsPlansPurchaseAnalysisDetails":
  5100. if err := awsAwsjson11_deserializeDocumentSavingsPlansPurchaseAnalysisDetails(&sv.SavingsPlansPurchaseAnalysisDetails, value); err != nil {
  5101. return err
  5102. }
  5103. default:
  5104. _, _ = key, value
  5105. }
  5106. }
  5107. *v = sv
  5108. return nil
  5109. }
  5110. func awsAwsjson11_deserializeDocumentAnalysisNotFoundException(v **types.AnalysisNotFoundException, value interface{}) error {
  5111. if v == nil {
  5112. return fmt.Errorf("unexpected nil of type %T", v)
  5113. }
  5114. if value == nil {
  5115. return nil
  5116. }
  5117. shape, ok := value.(map[string]interface{})
  5118. if !ok {
  5119. return fmt.Errorf("unexpected JSON type %v", value)
  5120. }
  5121. var sv *types.AnalysisNotFoundException
  5122. if *v == nil {
  5123. sv = &types.AnalysisNotFoundException{}
  5124. } else {
  5125. sv = *v
  5126. }
  5127. for key, value := range shape {
  5128. switch key {
  5129. case "message", "Message":
  5130. if value != nil {
  5131. jtv, ok := value.(string)
  5132. if !ok {
  5133. return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value)
  5134. }
  5135. sv.Message = ptr.String(jtv)
  5136. }
  5137. default:
  5138. _, _ = key, value
  5139. }
  5140. }
  5141. *v = sv
  5142. return nil
  5143. }
  5144. func awsAwsjson11_deserializeDocumentAnalysisSummary(v **types.AnalysisSummary, value interface{}) error {
  5145. if v == nil {
  5146. return fmt.Errorf("unexpected nil of type %T", v)
  5147. }
  5148. if value == nil {
  5149. return nil
  5150. }
  5151. shape, ok := value.(map[string]interface{})
  5152. if !ok {
  5153. return fmt.Errorf("unexpected JSON type %v", value)
  5154. }
  5155. var sv *types.AnalysisSummary
  5156. if *v == nil {
  5157. sv = &types.AnalysisSummary{}
  5158. } else {
  5159. sv = *v
  5160. }
  5161. for key, value := range shape {
  5162. switch key {
  5163. case "AnalysisCompletionTime":
  5164. if value != nil {
  5165. jtv, ok := value.(string)
  5166. if !ok {
  5167. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  5168. }
  5169. sv.AnalysisCompletionTime = ptr.String(jtv)
  5170. }
  5171. case "AnalysisId":
  5172. if value != nil {
  5173. jtv, ok := value.(string)
  5174. if !ok {
  5175. return fmt.Errorf("expected AnalysisId to be of type string, got %T instead", value)
  5176. }
  5177. sv.AnalysisId = ptr.String(jtv)
  5178. }
  5179. case "AnalysisStartedTime":
  5180. if value != nil {
  5181. jtv, ok := value.(string)
  5182. if !ok {
  5183. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  5184. }
  5185. sv.AnalysisStartedTime = ptr.String(jtv)
  5186. }
  5187. case "AnalysisStatus":
  5188. if value != nil {
  5189. jtv, ok := value.(string)
  5190. if !ok {
  5191. return fmt.Errorf("expected AnalysisStatus to be of type string, got %T instead", value)
  5192. }
  5193. sv.AnalysisStatus = types.AnalysisStatus(jtv)
  5194. }
  5195. case "CommitmentPurchaseAnalysisConfiguration":
  5196. if err := awsAwsjson11_deserializeDocumentCommitmentPurchaseAnalysisConfiguration(&sv.CommitmentPurchaseAnalysisConfiguration, value); err != nil {
  5197. return err
  5198. }
  5199. case "ErrorCode":
  5200. if value != nil {
  5201. jtv, ok := value.(string)
  5202. if !ok {
  5203. return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
  5204. }
  5205. sv.ErrorCode = types.ErrorCode(jtv)
  5206. }
  5207. case "EstimatedCompletionTime":
  5208. if value != nil {
  5209. jtv, ok := value.(string)
  5210. if !ok {
  5211. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  5212. }
  5213. sv.EstimatedCompletionTime = ptr.String(jtv)
  5214. }
  5215. default:
  5216. _, _ = key, value
  5217. }
  5218. }
  5219. *v = sv
  5220. return nil
  5221. }
  5222. func awsAwsjson11_deserializeDocumentAnalysisSummaryList(v *[]types.AnalysisSummary, value interface{}) error {
  5223. if v == nil {
  5224. return fmt.Errorf("unexpected nil of type %T", v)
  5225. }
  5226. if value == nil {
  5227. return nil
  5228. }
  5229. shape, ok := value.([]interface{})
  5230. if !ok {
  5231. return fmt.Errorf("unexpected JSON type %v", value)
  5232. }
  5233. var cv []types.AnalysisSummary
  5234. if *v == nil {
  5235. cv = []types.AnalysisSummary{}
  5236. } else {
  5237. cv = *v
  5238. }
  5239. for _, value := range shape {
  5240. var col types.AnalysisSummary
  5241. destAddr := &col
  5242. if err := awsAwsjson11_deserializeDocumentAnalysisSummary(&destAddr, value); err != nil {
  5243. return err
  5244. }
  5245. col = *destAddr
  5246. cv = append(cv, col)
  5247. }
  5248. *v = cv
  5249. return nil
  5250. }
  5251. func awsAwsjson11_deserializeDocumentAnomalies(v *[]types.Anomaly, value interface{}) error {
  5252. if v == nil {
  5253. return fmt.Errorf("unexpected nil of type %T", v)
  5254. }
  5255. if value == nil {
  5256. return nil
  5257. }
  5258. shape, ok := value.([]interface{})
  5259. if !ok {
  5260. return fmt.Errorf("unexpected JSON type %v", value)
  5261. }
  5262. var cv []types.Anomaly
  5263. if *v == nil {
  5264. cv = []types.Anomaly{}
  5265. } else {
  5266. cv = *v
  5267. }
  5268. for _, value := range shape {
  5269. var col types.Anomaly
  5270. destAddr := &col
  5271. if err := awsAwsjson11_deserializeDocumentAnomaly(&destAddr, value); err != nil {
  5272. return err
  5273. }
  5274. col = *destAddr
  5275. cv = append(cv, col)
  5276. }
  5277. *v = cv
  5278. return nil
  5279. }
  5280. func awsAwsjson11_deserializeDocumentAnomaly(v **types.Anomaly, value interface{}) error {
  5281. if v == nil {
  5282. return fmt.Errorf("unexpected nil of type %T", v)
  5283. }
  5284. if value == nil {
  5285. return nil
  5286. }
  5287. shape, ok := value.(map[string]interface{})
  5288. if !ok {
  5289. return fmt.Errorf("unexpected JSON type %v", value)
  5290. }
  5291. var sv *types.Anomaly
  5292. if *v == nil {
  5293. sv = &types.Anomaly{}
  5294. } else {
  5295. sv = *v
  5296. }
  5297. for key, value := range shape {
  5298. switch key {
  5299. case "AnomalyEndDate":
  5300. if value != nil {
  5301. jtv, ok := value.(string)
  5302. if !ok {
  5303. return fmt.Errorf("expected YearMonthDay to be of type string, got %T instead", value)
  5304. }
  5305. sv.AnomalyEndDate = ptr.String(jtv)
  5306. }
  5307. case "AnomalyId":
  5308. if value != nil {
  5309. jtv, ok := value.(string)
  5310. if !ok {
  5311. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  5312. }
  5313. sv.AnomalyId = ptr.String(jtv)
  5314. }
  5315. case "AnomalyScore":
  5316. if err := awsAwsjson11_deserializeDocumentAnomalyScore(&sv.AnomalyScore, value); err != nil {
  5317. return err
  5318. }
  5319. case "AnomalyStartDate":
  5320. if value != nil {
  5321. jtv, ok := value.(string)
  5322. if !ok {
  5323. return fmt.Errorf("expected YearMonthDay to be of type string, got %T instead", value)
  5324. }
  5325. sv.AnomalyStartDate = ptr.String(jtv)
  5326. }
  5327. case "DimensionValue":
  5328. if value != nil {
  5329. jtv, ok := value.(string)
  5330. if !ok {
  5331. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  5332. }
  5333. sv.DimensionValue = ptr.String(jtv)
  5334. }
  5335. case "Feedback":
  5336. if value != nil {
  5337. jtv, ok := value.(string)
  5338. if !ok {
  5339. return fmt.Errorf("expected AnomalyFeedbackType to be of type string, got %T instead", value)
  5340. }
  5341. sv.Feedback = types.AnomalyFeedbackType(jtv)
  5342. }
  5343. case "Impact":
  5344. if err := awsAwsjson11_deserializeDocumentImpact(&sv.Impact, value); err != nil {
  5345. return err
  5346. }
  5347. case "MonitorArn":
  5348. if value != nil {
  5349. jtv, ok := value.(string)
  5350. if !ok {
  5351. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  5352. }
  5353. sv.MonitorArn = ptr.String(jtv)
  5354. }
  5355. case "RootCauses":
  5356. if err := awsAwsjson11_deserializeDocumentRootCauses(&sv.RootCauses, value); err != nil {
  5357. return err
  5358. }
  5359. default:
  5360. _, _ = key, value
  5361. }
  5362. }
  5363. *v = sv
  5364. return nil
  5365. }
  5366. func awsAwsjson11_deserializeDocumentAnomalyMonitor(v **types.AnomalyMonitor, value interface{}) error {
  5367. if v == nil {
  5368. return fmt.Errorf("unexpected nil of type %T", v)
  5369. }
  5370. if value == nil {
  5371. return nil
  5372. }
  5373. shape, ok := value.(map[string]interface{})
  5374. if !ok {
  5375. return fmt.Errorf("unexpected JSON type %v", value)
  5376. }
  5377. var sv *types.AnomalyMonitor
  5378. if *v == nil {
  5379. sv = &types.AnomalyMonitor{}
  5380. } else {
  5381. sv = *v
  5382. }
  5383. for key, value := range shape {
  5384. switch key {
  5385. case "CreationDate":
  5386. if value != nil {
  5387. jtv, ok := value.(string)
  5388. if !ok {
  5389. return fmt.Errorf("expected YearMonthDay to be of type string, got %T instead", value)
  5390. }
  5391. sv.CreationDate = ptr.String(jtv)
  5392. }
  5393. case "DimensionalValueCount":
  5394. if value != nil {
  5395. jtv, ok := value.(json.Number)
  5396. if !ok {
  5397. return fmt.Errorf("expected NonNegativeInteger to be json.Number, got %T instead", value)
  5398. }
  5399. i64, err := jtv.Int64()
  5400. if err != nil {
  5401. return err
  5402. }
  5403. sv.DimensionalValueCount = int32(i64)
  5404. }
  5405. case "LastEvaluatedDate":
  5406. if value != nil {
  5407. jtv, ok := value.(string)
  5408. if !ok {
  5409. return fmt.Errorf("expected YearMonthDay to be of type string, got %T instead", value)
  5410. }
  5411. sv.LastEvaluatedDate = ptr.String(jtv)
  5412. }
  5413. case "LastUpdatedDate":
  5414. if value != nil {
  5415. jtv, ok := value.(string)
  5416. if !ok {
  5417. return fmt.Errorf("expected YearMonthDay to be of type string, got %T instead", value)
  5418. }
  5419. sv.LastUpdatedDate = ptr.String(jtv)
  5420. }
  5421. case "MonitorArn":
  5422. if value != nil {
  5423. jtv, ok := value.(string)
  5424. if !ok {
  5425. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  5426. }
  5427. sv.MonitorArn = ptr.String(jtv)
  5428. }
  5429. case "MonitorDimension":
  5430. if value != nil {
  5431. jtv, ok := value.(string)
  5432. if !ok {
  5433. return fmt.Errorf("expected MonitorDimension to be of type string, got %T instead", value)
  5434. }
  5435. sv.MonitorDimension = types.MonitorDimension(jtv)
  5436. }
  5437. case "MonitorName":
  5438. if value != nil {
  5439. jtv, ok := value.(string)
  5440. if !ok {
  5441. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  5442. }
  5443. sv.MonitorName = ptr.String(jtv)
  5444. }
  5445. case "MonitorSpecification":
  5446. if err := awsAwsjson11_deserializeDocumentExpression(&sv.MonitorSpecification, value); err != nil {
  5447. return err
  5448. }
  5449. case "MonitorType":
  5450. if value != nil {
  5451. jtv, ok := value.(string)
  5452. if !ok {
  5453. return fmt.Errorf("expected MonitorType to be of type string, got %T instead", value)
  5454. }
  5455. sv.MonitorType = types.MonitorType(jtv)
  5456. }
  5457. default:
  5458. _, _ = key, value
  5459. }
  5460. }
  5461. *v = sv
  5462. return nil
  5463. }
  5464. func awsAwsjson11_deserializeDocumentAnomalyMonitors(v *[]types.AnomalyMonitor, value interface{}) error {
  5465. if v == nil {
  5466. return fmt.Errorf("unexpected nil of type %T", v)
  5467. }
  5468. if value == nil {
  5469. return nil
  5470. }
  5471. shape, ok := value.([]interface{})
  5472. if !ok {
  5473. return fmt.Errorf("unexpected JSON type %v", value)
  5474. }
  5475. var cv []types.AnomalyMonitor
  5476. if *v == nil {
  5477. cv = []types.AnomalyMonitor{}
  5478. } else {
  5479. cv = *v
  5480. }
  5481. for _, value := range shape {
  5482. var col types.AnomalyMonitor
  5483. destAddr := &col
  5484. if err := awsAwsjson11_deserializeDocumentAnomalyMonitor(&destAddr, value); err != nil {
  5485. return err
  5486. }
  5487. col = *destAddr
  5488. cv = append(cv, col)
  5489. }
  5490. *v = cv
  5491. return nil
  5492. }
  5493. func awsAwsjson11_deserializeDocumentAnomalyScore(v **types.AnomalyScore, value interface{}) error {
  5494. if v == nil {
  5495. return fmt.Errorf("unexpected nil of type %T", v)
  5496. }
  5497. if value == nil {
  5498. return nil
  5499. }
  5500. shape, ok := value.(map[string]interface{})
  5501. if !ok {
  5502. return fmt.Errorf("unexpected JSON type %v", value)
  5503. }
  5504. var sv *types.AnomalyScore
  5505. if *v == nil {
  5506. sv = &types.AnomalyScore{}
  5507. } else {
  5508. sv = *v
  5509. }
  5510. for key, value := range shape {
  5511. switch key {
  5512. case "CurrentScore":
  5513. if value != nil {
  5514. switch jtv := value.(type) {
  5515. case json.Number:
  5516. f64, err := jtv.Float64()
  5517. if err != nil {
  5518. return err
  5519. }
  5520. sv.CurrentScore = f64
  5521. case string:
  5522. var f64 float64
  5523. switch {
  5524. case strings.EqualFold(jtv, "NaN"):
  5525. f64 = math.NaN()
  5526. case strings.EqualFold(jtv, "Infinity"):
  5527. f64 = math.Inf(1)
  5528. case strings.EqualFold(jtv, "-Infinity"):
  5529. f64 = math.Inf(-1)
  5530. default:
  5531. return fmt.Errorf("unknown JSON number value: %s", jtv)
  5532. }
  5533. sv.CurrentScore = f64
  5534. default:
  5535. return fmt.Errorf("expected GenericDouble to be a JSON Number, got %T instead", value)
  5536. }
  5537. }
  5538. case "MaxScore":
  5539. if value != nil {
  5540. switch jtv := value.(type) {
  5541. case json.Number:
  5542. f64, err := jtv.Float64()
  5543. if err != nil {
  5544. return err
  5545. }
  5546. sv.MaxScore = f64
  5547. case string:
  5548. var f64 float64
  5549. switch {
  5550. case strings.EqualFold(jtv, "NaN"):
  5551. f64 = math.NaN()
  5552. case strings.EqualFold(jtv, "Infinity"):
  5553. f64 = math.Inf(1)
  5554. case strings.EqualFold(jtv, "-Infinity"):
  5555. f64 = math.Inf(-1)
  5556. default:
  5557. return fmt.Errorf("unknown JSON number value: %s", jtv)
  5558. }
  5559. sv.MaxScore = f64
  5560. default:
  5561. return fmt.Errorf("expected GenericDouble to be a JSON Number, got %T instead", value)
  5562. }
  5563. }
  5564. default:
  5565. _, _ = key, value
  5566. }
  5567. }
  5568. *v = sv
  5569. return nil
  5570. }
  5571. func awsAwsjson11_deserializeDocumentAnomalySubscription(v **types.AnomalySubscription, value interface{}) error {
  5572. if v == nil {
  5573. return fmt.Errorf("unexpected nil of type %T", v)
  5574. }
  5575. if value == nil {
  5576. return nil
  5577. }
  5578. shape, ok := value.(map[string]interface{})
  5579. if !ok {
  5580. return fmt.Errorf("unexpected JSON type %v", value)
  5581. }
  5582. var sv *types.AnomalySubscription
  5583. if *v == nil {
  5584. sv = &types.AnomalySubscription{}
  5585. } else {
  5586. sv = *v
  5587. }
  5588. for key, value := range shape {
  5589. switch key {
  5590. case "AccountId":
  5591. if value != nil {
  5592. jtv, ok := value.(string)
  5593. if !ok {
  5594. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  5595. }
  5596. sv.AccountId = ptr.String(jtv)
  5597. }
  5598. case "Frequency":
  5599. if value != nil {
  5600. jtv, ok := value.(string)
  5601. if !ok {
  5602. return fmt.Errorf("expected AnomalySubscriptionFrequency to be of type string, got %T instead", value)
  5603. }
  5604. sv.Frequency = types.AnomalySubscriptionFrequency(jtv)
  5605. }
  5606. case "MonitorArnList":
  5607. if err := awsAwsjson11_deserializeDocumentMonitorArnList(&sv.MonitorArnList, value); err != nil {
  5608. return err
  5609. }
  5610. case "Subscribers":
  5611. if err := awsAwsjson11_deserializeDocumentSubscribers(&sv.Subscribers, value); err != nil {
  5612. return err
  5613. }
  5614. case "SubscriptionArn":
  5615. if value != nil {
  5616. jtv, ok := value.(string)
  5617. if !ok {
  5618. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  5619. }
  5620. sv.SubscriptionArn = ptr.String(jtv)
  5621. }
  5622. case "SubscriptionName":
  5623. if value != nil {
  5624. jtv, ok := value.(string)
  5625. if !ok {
  5626. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  5627. }
  5628. sv.SubscriptionName = ptr.String(jtv)
  5629. }
  5630. case "Threshold":
  5631. if value != nil {
  5632. switch jtv := value.(type) {
  5633. case json.Number:
  5634. f64, err := jtv.Float64()
  5635. if err != nil {
  5636. return err
  5637. }
  5638. sv.Threshold = ptr.Float64(f64)
  5639. case string:
  5640. var f64 float64
  5641. switch {
  5642. case strings.EqualFold(jtv, "NaN"):
  5643. f64 = math.NaN()
  5644. case strings.EqualFold(jtv, "Infinity"):
  5645. f64 = math.Inf(1)
  5646. case strings.EqualFold(jtv, "-Infinity"):
  5647. f64 = math.Inf(-1)
  5648. default:
  5649. return fmt.Errorf("unknown JSON number value: %s", jtv)
  5650. }
  5651. sv.Threshold = ptr.Float64(f64)
  5652. default:
  5653. return fmt.Errorf("expected NullableNonNegativeDouble to be a JSON Number, got %T instead", value)
  5654. }
  5655. }
  5656. case "ThresholdExpression":
  5657. if err := awsAwsjson11_deserializeDocumentExpression(&sv.ThresholdExpression, value); err != nil {
  5658. return err
  5659. }
  5660. default:
  5661. _, _ = key, value
  5662. }
  5663. }
  5664. *v = sv
  5665. return nil
  5666. }
  5667. func awsAwsjson11_deserializeDocumentAnomalySubscriptions(v *[]types.AnomalySubscription, value interface{}) error {
  5668. if v == nil {
  5669. return fmt.Errorf("unexpected nil of type %T", v)
  5670. }
  5671. if value == nil {
  5672. return nil
  5673. }
  5674. shape, ok := value.([]interface{})
  5675. if !ok {
  5676. return fmt.Errorf("unexpected JSON type %v", value)
  5677. }
  5678. var cv []types.AnomalySubscription
  5679. if *v == nil {
  5680. cv = []types.AnomalySubscription{}
  5681. } else {
  5682. cv = *v
  5683. }
  5684. for _, value := range shape {
  5685. var col types.AnomalySubscription
  5686. destAddr := &col
  5687. if err := awsAwsjson11_deserializeDocumentAnomalySubscription(&destAddr, value); err != nil {
  5688. return err
  5689. }
  5690. col = *destAddr
  5691. cv = append(cv, col)
  5692. }
  5693. *v = cv
  5694. return nil
  5695. }
  5696. func awsAwsjson11_deserializeDocumentApproximateUsageRecordsPerService(v *map[string]int64, value interface{}) error {
  5697. if v == nil {
  5698. return fmt.Errorf("unexpected nil of type %T", v)
  5699. }
  5700. if value == nil {
  5701. return nil
  5702. }
  5703. shape, ok := value.(map[string]interface{})
  5704. if !ok {
  5705. return fmt.Errorf("unexpected JSON type %v", value)
  5706. }
  5707. var mv map[string]int64
  5708. if *v == nil {
  5709. mv = map[string]int64{}
  5710. } else {
  5711. mv = *v
  5712. }
  5713. for key, value := range shape {
  5714. var parsedVal int64
  5715. if value != nil {
  5716. jtv, ok := value.(json.Number)
  5717. if !ok {
  5718. return fmt.Errorf("expected NonNegativeLong to be json.Number, got %T instead", value)
  5719. }
  5720. i64, err := jtv.Int64()
  5721. if err != nil {
  5722. return err
  5723. }
  5724. parsedVal = i64
  5725. }
  5726. mv[key] = parsedVal
  5727. }
  5728. *v = mv
  5729. return nil
  5730. }
  5731. func awsAwsjson11_deserializeDocumentAttributes(v *map[string]string, value interface{}) error {
  5732. if v == nil {
  5733. return fmt.Errorf("unexpected nil of type %T", v)
  5734. }
  5735. if value == nil {
  5736. return nil
  5737. }
  5738. shape, ok := value.(map[string]interface{})
  5739. if !ok {
  5740. return fmt.Errorf("unexpected JSON type %v", value)
  5741. }
  5742. var mv map[string]string
  5743. if *v == nil {
  5744. mv = map[string]string{}
  5745. } else {
  5746. mv = *v
  5747. }
  5748. for key, value := range shape {
  5749. var parsedVal string
  5750. if value != nil {
  5751. jtv, ok := value.(string)
  5752. if !ok {
  5753. return fmt.Errorf("expected AttributeValue to be of type string, got %T instead", value)
  5754. }
  5755. parsedVal = jtv
  5756. }
  5757. mv[key] = parsedVal
  5758. }
  5759. *v = mv
  5760. return nil
  5761. }
  5762. func awsAwsjson11_deserializeDocumentBackfillLimitExceededException(v **types.BackfillLimitExceededException, value interface{}) error {
  5763. if v == nil {
  5764. return fmt.Errorf("unexpected nil of type %T", v)
  5765. }
  5766. if value == nil {
  5767. return nil
  5768. }
  5769. shape, ok := value.(map[string]interface{})
  5770. if !ok {
  5771. return fmt.Errorf("unexpected JSON type %v", value)
  5772. }
  5773. var sv *types.BackfillLimitExceededException
  5774. if *v == nil {
  5775. sv = &types.BackfillLimitExceededException{}
  5776. } else {
  5777. sv = *v
  5778. }
  5779. for key, value := range shape {
  5780. switch key {
  5781. case "message", "Message":
  5782. if value != nil {
  5783. jtv, ok := value.(string)
  5784. if !ok {
  5785. return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value)
  5786. }
  5787. sv.Message = ptr.String(jtv)
  5788. }
  5789. default:
  5790. _, _ = key, value
  5791. }
  5792. }
  5793. *v = sv
  5794. return nil
  5795. }
  5796. func awsAwsjson11_deserializeDocumentBillExpirationException(v **types.BillExpirationException, value interface{}) error {
  5797. if v == nil {
  5798. return fmt.Errorf("unexpected nil of type %T", v)
  5799. }
  5800. if value == nil {
  5801. return nil
  5802. }
  5803. shape, ok := value.(map[string]interface{})
  5804. if !ok {
  5805. return fmt.Errorf("unexpected JSON type %v", value)
  5806. }
  5807. var sv *types.BillExpirationException
  5808. if *v == nil {
  5809. sv = &types.BillExpirationException{}
  5810. } else {
  5811. sv = *v
  5812. }
  5813. for key, value := range shape {
  5814. switch key {
  5815. case "message", "Message":
  5816. if value != nil {
  5817. jtv, ok := value.(string)
  5818. if !ok {
  5819. return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value)
  5820. }
  5821. sv.Message = ptr.String(jtv)
  5822. }
  5823. default:
  5824. _, _ = key, value
  5825. }
  5826. }
  5827. *v = sv
  5828. return nil
  5829. }
  5830. func awsAwsjson11_deserializeDocumentBillingViewHealthStatusException(v **types.BillingViewHealthStatusException, value interface{}) error {
  5831. if v == nil {
  5832. return fmt.Errorf("unexpected nil of type %T", v)
  5833. }
  5834. if value == nil {
  5835. return nil
  5836. }
  5837. shape, ok := value.(map[string]interface{})
  5838. if !ok {
  5839. return fmt.Errorf("unexpected JSON type %v", value)
  5840. }
  5841. var sv *types.BillingViewHealthStatusException
  5842. if *v == nil {
  5843. sv = &types.BillingViewHealthStatusException{}
  5844. } else {
  5845. sv = *v
  5846. }
  5847. for key, value := range shape {
  5848. switch key {
  5849. case "message", "Message":
  5850. if value != nil {
  5851. jtv, ok := value.(string)
  5852. if !ok {
  5853. return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value)
  5854. }
  5855. sv.Message = ptr.String(jtv)
  5856. }
  5857. default:
  5858. _, _ = key, value
  5859. }
  5860. }
  5861. *v = sv
  5862. return nil
  5863. }
  5864. func awsAwsjson11_deserializeDocumentCommitmentPurchaseAnalysisConfiguration(v **types.CommitmentPurchaseAnalysisConfiguration, value interface{}) error {
  5865. if v == nil {
  5866. return fmt.Errorf("unexpected nil of type %T", v)
  5867. }
  5868. if value == nil {
  5869. return nil
  5870. }
  5871. shape, ok := value.(map[string]interface{})
  5872. if !ok {
  5873. return fmt.Errorf("unexpected JSON type %v", value)
  5874. }
  5875. var sv *types.CommitmentPurchaseAnalysisConfiguration
  5876. if *v == nil {
  5877. sv = &types.CommitmentPurchaseAnalysisConfiguration{}
  5878. } else {
  5879. sv = *v
  5880. }
  5881. for key, value := range shape {
  5882. switch key {
  5883. case "SavingsPlansPurchaseAnalysisConfiguration":
  5884. if err := awsAwsjson11_deserializeDocumentSavingsPlansPurchaseAnalysisConfiguration(&sv.SavingsPlansPurchaseAnalysisConfiguration, value); err != nil {
  5885. return err
  5886. }
  5887. default:
  5888. _, _ = key, value
  5889. }
  5890. }
  5891. *v = sv
  5892. return nil
  5893. }
  5894. func awsAwsjson11_deserializeDocumentComparisonMetrics(v *map[string]types.ComparisonMetricValue, value interface{}) error {
  5895. if v == nil {
  5896. return fmt.Errorf("unexpected nil of type %T", v)
  5897. }
  5898. if value == nil {
  5899. return nil
  5900. }
  5901. shape, ok := value.(map[string]interface{})
  5902. if !ok {
  5903. return fmt.Errorf("unexpected JSON type %v", value)
  5904. }
  5905. var mv map[string]types.ComparisonMetricValue
  5906. if *v == nil {
  5907. mv = map[string]types.ComparisonMetricValue{}
  5908. } else {
  5909. mv = *v
  5910. }
  5911. for key, value := range shape {
  5912. var parsedVal types.ComparisonMetricValue
  5913. mapVar := parsedVal
  5914. destAddr := &mapVar
  5915. if err := awsAwsjson11_deserializeDocumentComparisonMetricValue(&destAddr, value); err != nil {
  5916. return err
  5917. }
  5918. parsedVal = *destAddr
  5919. mv[key] = parsedVal
  5920. }
  5921. *v = mv
  5922. return nil
  5923. }
  5924. func awsAwsjson11_deserializeDocumentComparisonMetricValue(v **types.ComparisonMetricValue, value interface{}) error {
  5925. if v == nil {
  5926. return fmt.Errorf("unexpected nil of type %T", v)
  5927. }
  5928. if value == nil {
  5929. return nil
  5930. }
  5931. shape, ok := value.(map[string]interface{})
  5932. if !ok {
  5933. return fmt.Errorf("unexpected JSON type %v", value)
  5934. }
  5935. var sv *types.ComparisonMetricValue
  5936. if *v == nil {
  5937. sv = &types.ComparisonMetricValue{}
  5938. } else {
  5939. sv = *v
  5940. }
  5941. for key, value := range shape {
  5942. switch key {
  5943. case "BaselineTimePeriodAmount":
  5944. if value != nil {
  5945. jtv, ok := value.(string)
  5946. if !ok {
  5947. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  5948. }
  5949. sv.BaselineTimePeriodAmount = ptr.String(jtv)
  5950. }
  5951. case "ComparisonTimePeriodAmount":
  5952. if value != nil {
  5953. jtv, ok := value.(string)
  5954. if !ok {
  5955. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  5956. }
  5957. sv.ComparisonTimePeriodAmount = ptr.String(jtv)
  5958. }
  5959. case "Difference":
  5960. if value != nil {
  5961. jtv, ok := value.(string)
  5962. if !ok {
  5963. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  5964. }
  5965. sv.Difference = ptr.String(jtv)
  5966. }
  5967. case "Unit":
  5968. if value != nil {
  5969. jtv, ok := value.(string)
  5970. if !ok {
  5971. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  5972. }
  5973. sv.Unit = ptr.String(jtv)
  5974. }
  5975. default:
  5976. _, _ = key, value
  5977. }
  5978. }
  5979. *v = sv
  5980. return nil
  5981. }
  5982. func awsAwsjson11_deserializeDocumentCostAllocationTag(v **types.CostAllocationTag, value interface{}) error {
  5983. if v == nil {
  5984. return fmt.Errorf("unexpected nil of type %T", v)
  5985. }
  5986. if value == nil {
  5987. return nil
  5988. }
  5989. shape, ok := value.(map[string]interface{})
  5990. if !ok {
  5991. return fmt.Errorf("unexpected JSON type %v", value)
  5992. }
  5993. var sv *types.CostAllocationTag
  5994. if *v == nil {
  5995. sv = &types.CostAllocationTag{}
  5996. } else {
  5997. sv = *v
  5998. }
  5999. for key, value := range shape {
  6000. switch key {
  6001. case "LastUpdatedDate":
  6002. if value != nil {
  6003. jtv, ok := value.(string)
  6004. if !ok {
  6005. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  6006. }
  6007. sv.LastUpdatedDate = ptr.String(jtv)
  6008. }
  6009. case "LastUsedDate":
  6010. if value != nil {
  6011. jtv, ok := value.(string)
  6012. if !ok {
  6013. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  6014. }
  6015. sv.LastUsedDate = ptr.String(jtv)
  6016. }
  6017. case "Status":
  6018. if value != nil {
  6019. jtv, ok := value.(string)
  6020. if !ok {
  6021. return fmt.Errorf("expected CostAllocationTagStatus to be of type string, got %T instead", value)
  6022. }
  6023. sv.Status = types.CostAllocationTagStatus(jtv)
  6024. }
  6025. case "TagKey":
  6026. if value != nil {
  6027. jtv, ok := value.(string)
  6028. if !ok {
  6029. return fmt.Errorf("expected TagKey to be of type string, got %T instead", value)
  6030. }
  6031. sv.TagKey = ptr.String(jtv)
  6032. }
  6033. case "Type":
  6034. if value != nil {
  6035. jtv, ok := value.(string)
  6036. if !ok {
  6037. return fmt.Errorf("expected CostAllocationTagType to be of type string, got %T instead", value)
  6038. }
  6039. sv.Type = types.CostAllocationTagType(jtv)
  6040. }
  6041. default:
  6042. _, _ = key, value
  6043. }
  6044. }
  6045. *v = sv
  6046. return nil
  6047. }
  6048. func awsAwsjson11_deserializeDocumentCostAllocationTagBackfillRequest(v **types.CostAllocationTagBackfillRequest, value interface{}) error {
  6049. if v == nil {
  6050. return fmt.Errorf("unexpected nil of type %T", v)
  6051. }
  6052. if value == nil {
  6053. return nil
  6054. }
  6055. shape, ok := value.(map[string]interface{})
  6056. if !ok {
  6057. return fmt.Errorf("unexpected JSON type %v", value)
  6058. }
  6059. var sv *types.CostAllocationTagBackfillRequest
  6060. if *v == nil {
  6061. sv = &types.CostAllocationTagBackfillRequest{}
  6062. } else {
  6063. sv = *v
  6064. }
  6065. for key, value := range shape {
  6066. switch key {
  6067. case "BackfillFrom":
  6068. if value != nil {
  6069. jtv, ok := value.(string)
  6070. if !ok {
  6071. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  6072. }
  6073. sv.BackfillFrom = ptr.String(jtv)
  6074. }
  6075. case "BackfillStatus":
  6076. if value != nil {
  6077. jtv, ok := value.(string)
  6078. if !ok {
  6079. return fmt.Errorf("expected CostAllocationTagBackfillStatus to be of type string, got %T instead", value)
  6080. }
  6081. sv.BackfillStatus = types.CostAllocationTagBackfillStatus(jtv)
  6082. }
  6083. case "CompletedAt":
  6084. if value != nil {
  6085. jtv, ok := value.(string)
  6086. if !ok {
  6087. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  6088. }
  6089. sv.CompletedAt = ptr.String(jtv)
  6090. }
  6091. case "LastUpdatedAt":
  6092. if value != nil {
  6093. jtv, ok := value.(string)
  6094. if !ok {
  6095. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  6096. }
  6097. sv.LastUpdatedAt = ptr.String(jtv)
  6098. }
  6099. case "RequestedAt":
  6100. if value != nil {
  6101. jtv, ok := value.(string)
  6102. if !ok {
  6103. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  6104. }
  6105. sv.RequestedAt = ptr.String(jtv)
  6106. }
  6107. default:
  6108. _, _ = key, value
  6109. }
  6110. }
  6111. *v = sv
  6112. return nil
  6113. }
  6114. func awsAwsjson11_deserializeDocumentCostAllocationTagBackfillRequestList(v *[]types.CostAllocationTagBackfillRequest, value interface{}) error {
  6115. if v == nil {
  6116. return fmt.Errorf("unexpected nil of type %T", v)
  6117. }
  6118. if value == nil {
  6119. return nil
  6120. }
  6121. shape, ok := value.([]interface{})
  6122. if !ok {
  6123. return fmt.Errorf("unexpected JSON type %v", value)
  6124. }
  6125. var cv []types.CostAllocationTagBackfillRequest
  6126. if *v == nil {
  6127. cv = []types.CostAllocationTagBackfillRequest{}
  6128. } else {
  6129. cv = *v
  6130. }
  6131. for _, value := range shape {
  6132. var col types.CostAllocationTagBackfillRequest
  6133. destAddr := &col
  6134. if err := awsAwsjson11_deserializeDocumentCostAllocationTagBackfillRequest(&destAddr, value); err != nil {
  6135. return err
  6136. }
  6137. col = *destAddr
  6138. cv = append(cv, col)
  6139. }
  6140. *v = cv
  6141. return nil
  6142. }
  6143. func awsAwsjson11_deserializeDocumentCostAllocationTagList(v *[]types.CostAllocationTag, value interface{}) error {
  6144. if v == nil {
  6145. return fmt.Errorf("unexpected nil of type %T", v)
  6146. }
  6147. if value == nil {
  6148. return nil
  6149. }
  6150. shape, ok := value.([]interface{})
  6151. if !ok {
  6152. return fmt.Errorf("unexpected JSON type %v", value)
  6153. }
  6154. var cv []types.CostAllocationTag
  6155. if *v == nil {
  6156. cv = []types.CostAllocationTag{}
  6157. } else {
  6158. cv = *v
  6159. }
  6160. for _, value := range shape {
  6161. var col types.CostAllocationTag
  6162. destAddr := &col
  6163. if err := awsAwsjson11_deserializeDocumentCostAllocationTag(&destAddr, value); err != nil {
  6164. return err
  6165. }
  6166. col = *destAddr
  6167. cv = append(cv, col)
  6168. }
  6169. *v = cv
  6170. return nil
  6171. }
  6172. func awsAwsjson11_deserializeDocumentCostAndUsageComparison(v **types.CostAndUsageComparison, value interface{}) error {
  6173. if v == nil {
  6174. return fmt.Errorf("unexpected nil of type %T", v)
  6175. }
  6176. if value == nil {
  6177. return nil
  6178. }
  6179. shape, ok := value.(map[string]interface{})
  6180. if !ok {
  6181. return fmt.Errorf("unexpected JSON type %v", value)
  6182. }
  6183. var sv *types.CostAndUsageComparison
  6184. if *v == nil {
  6185. sv = &types.CostAndUsageComparison{}
  6186. } else {
  6187. sv = *v
  6188. }
  6189. for key, value := range shape {
  6190. switch key {
  6191. case "CostAndUsageSelector":
  6192. if err := awsAwsjson11_deserializeDocumentExpression(&sv.CostAndUsageSelector, value); err != nil {
  6193. return err
  6194. }
  6195. case "Metrics":
  6196. if err := awsAwsjson11_deserializeDocumentComparisonMetrics(&sv.Metrics, value); err != nil {
  6197. return err
  6198. }
  6199. default:
  6200. _, _ = key, value
  6201. }
  6202. }
  6203. *v = sv
  6204. return nil
  6205. }
  6206. func awsAwsjson11_deserializeDocumentCostAndUsageComparisons(v *[]types.CostAndUsageComparison, value interface{}) error {
  6207. if v == nil {
  6208. return fmt.Errorf("unexpected nil of type %T", v)
  6209. }
  6210. if value == nil {
  6211. return nil
  6212. }
  6213. shape, ok := value.([]interface{})
  6214. if !ok {
  6215. return fmt.Errorf("unexpected JSON type %v", value)
  6216. }
  6217. var cv []types.CostAndUsageComparison
  6218. if *v == nil {
  6219. cv = []types.CostAndUsageComparison{}
  6220. } else {
  6221. cv = *v
  6222. }
  6223. for _, value := range shape {
  6224. var col types.CostAndUsageComparison
  6225. destAddr := &col
  6226. if err := awsAwsjson11_deserializeDocumentCostAndUsageComparison(&destAddr, value); err != nil {
  6227. return err
  6228. }
  6229. col = *destAddr
  6230. cv = append(cv, col)
  6231. }
  6232. *v = cv
  6233. return nil
  6234. }
  6235. func awsAwsjson11_deserializeDocumentCostCategory(v **types.CostCategory, value interface{}) error {
  6236. if v == nil {
  6237. return fmt.Errorf("unexpected nil of type %T", v)
  6238. }
  6239. if value == nil {
  6240. return nil
  6241. }
  6242. shape, ok := value.(map[string]interface{})
  6243. if !ok {
  6244. return fmt.Errorf("unexpected JSON type %v", value)
  6245. }
  6246. var sv *types.CostCategory
  6247. if *v == nil {
  6248. sv = &types.CostCategory{}
  6249. } else {
  6250. sv = *v
  6251. }
  6252. for key, value := range shape {
  6253. switch key {
  6254. case "CostCategoryArn":
  6255. if value != nil {
  6256. jtv, ok := value.(string)
  6257. if !ok {
  6258. return fmt.Errorf("expected Arn to be of type string, got %T instead", value)
  6259. }
  6260. sv.CostCategoryArn = ptr.String(jtv)
  6261. }
  6262. case "DefaultValue":
  6263. if value != nil {
  6264. jtv, ok := value.(string)
  6265. if !ok {
  6266. return fmt.Errorf("expected CostCategoryValue to be of type string, got %T instead", value)
  6267. }
  6268. sv.DefaultValue = ptr.String(jtv)
  6269. }
  6270. case "EffectiveEnd":
  6271. if value != nil {
  6272. jtv, ok := value.(string)
  6273. if !ok {
  6274. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  6275. }
  6276. sv.EffectiveEnd = ptr.String(jtv)
  6277. }
  6278. case "EffectiveStart":
  6279. if value != nil {
  6280. jtv, ok := value.(string)
  6281. if !ok {
  6282. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  6283. }
  6284. sv.EffectiveStart = ptr.String(jtv)
  6285. }
  6286. case "Name":
  6287. if value != nil {
  6288. jtv, ok := value.(string)
  6289. if !ok {
  6290. return fmt.Errorf("expected CostCategoryName to be of type string, got %T instead", value)
  6291. }
  6292. sv.Name = ptr.String(jtv)
  6293. }
  6294. case "ProcessingStatus":
  6295. if err := awsAwsjson11_deserializeDocumentCostCategoryProcessingStatusList(&sv.ProcessingStatus, value); err != nil {
  6296. return err
  6297. }
  6298. case "Rules":
  6299. if err := awsAwsjson11_deserializeDocumentCostCategoryRulesList(&sv.Rules, value); err != nil {
  6300. return err
  6301. }
  6302. case "RuleVersion":
  6303. if value != nil {
  6304. jtv, ok := value.(string)
  6305. if !ok {
  6306. return fmt.Errorf("expected CostCategoryRuleVersion to be of type string, got %T instead", value)
  6307. }
  6308. sv.RuleVersion = types.CostCategoryRuleVersion(jtv)
  6309. }
  6310. case "SplitChargeRules":
  6311. if err := awsAwsjson11_deserializeDocumentCostCategorySplitChargeRulesList(&sv.SplitChargeRules, value); err != nil {
  6312. return err
  6313. }
  6314. default:
  6315. _, _ = key, value
  6316. }
  6317. }
  6318. *v = sv
  6319. return nil
  6320. }
  6321. func awsAwsjson11_deserializeDocumentCostCategoryInheritedValueDimension(v **types.CostCategoryInheritedValueDimension, value interface{}) error {
  6322. if v == nil {
  6323. return fmt.Errorf("unexpected nil of type %T", v)
  6324. }
  6325. if value == nil {
  6326. return nil
  6327. }
  6328. shape, ok := value.(map[string]interface{})
  6329. if !ok {
  6330. return fmt.Errorf("unexpected JSON type %v", value)
  6331. }
  6332. var sv *types.CostCategoryInheritedValueDimension
  6333. if *v == nil {
  6334. sv = &types.CostCategoryInheritedValueDimension{}
  6335. } else {
  6336. sv = *v
  6337. }
  6338. for key, value := range shape {
  6339. switch key {
  6340. case "DimensionKey":
  6341. if value != nil {
  6342. jtv, ok := value.(string)
  6343. if !ok {
  6344. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  6345. }
  6346. sv.DimensionKey = ptr.String(jtv)
  6347. }
  6348. case "DimensionName":
  6349. if value != nil {
  6350. jtv, ok := value.(string)
  6351. if !ok {
  6352. return fmt.Errorf("expected CostCategoryInheritedValueDimensionName to be of type string, got %T instead", value)
  6353. }
  6354. sv.DimensionName = types.CostCategoryInheritedValueDimensionName(jtv)
  6355. }
  6356. default:
  6357. _, _ = key, value
  6358. }
  6359. }
  6360. *v = sv
  6361. return nil
  6362. }
  6363. func awsAwsjson11_deserializeDocumentCostCategoryNamesList(v *[]string, value interface{}) error {
  6364. if v == nil {
  6365. return fmt.Errorf("unexpected nil of type %T", v)
  6366. }
  6367. if value == nil {
  6368. return nil
  6369. }
  6370. shape, ok := value.([]interface{})
  6371. if !ok {
  6372. return fmt.Errorf("unexpected JSON type %v", value)
  6373. }
  6374. var cv []string
  6375. if *v == nil {
  6376. cv = []string{}
  6377. } else {
  6378. cv = *v
  6379. }
  6380. for _, value := range shape {
  6381. var col string
  6382. if value != nil {
  6383. jtv, ok := value.(string)
  6384. if !ok {
  6385. return fmt.Errorf("expected CostCategoryName to be of type string, got %T instead", value)
  6386. }
  6387. col = jtv
  6388. }
  6389. cv = append(cv, col)
  6390. }
  6391. *v = cv
  6392. return nil
  6393. }
  6394. func awsAwsjson11_deserializeDocumentCostCategoryProcessingStatus(v **types.CostCategoryProcessingStatus, value interface{}) error {
  6395. if v == nil {
  6396. return fmt.Errorf("unexpected nil of type %T", v)
  6397. }
  6398. if value == nil {
  6399. return nil
  6400. }
  6401. shape, ok := value.(map[string]interface{})
  6402. if !ok {
  6403. return fmt.Errorf("unexpected JSON type %v", value)
  6404. }
  6405. var sv *types.CostCategoryProcessingStatus
  6406. if *v == nil {
  6407. sv = &types.CostCategoryProcessingStatus{}
  6408. } else {
  6409. sv = *v
  6410. }
  6411. for key, value := range shape {
  6412. switch key {
  6413. case "Component":
  6414. if value != nil {
  6415. jtv, ok := value.(string)
  6416. if !ok {
  6417. return fmt.Errorf("expected CostCategoryStatusComponent to be of type string, got %T instead", value)
  6418. }
  6419. sv.Component = types.CostCategoryStatusComponent(jtv)
  6420. }
  6421. case "Status":
  6422. if value != nil {
  6423. jtv, ok := value.(string)
  6424. if !ok {
  6425. return fmt.Errorf("expected CostCategoryStatus to be of type string, got %T instead", value)
  6426. }
  6427. sv.Status = types.CostCategoryStatus(jtv)
  6428. }
  6429. default:
  6430. _, _ = key, value
  6431. }
  6432. }
  6433. *v = sv
  6434. return nil
  6435. }
  6436. func awsAwsjson11_deserializeDocumentCostCategoryProcessingStatusList(v *[]types.CostCategoryProcessingStatus, value interface{}) error {
  6437. if v == nil {
  6438. return fmt.Errorf("unexpected nil of type %T", v)
  6439. }
  6440. if value == nil {
  6441. return nil
  6442. }
  6443. shape, ok := value.([]interface{})
  6444. if !ok {
  6445. return fmt.Errorf("unexpected JSON type %v", value)
  6446. }
  6447. var cv []types.CostCategoryProcessingStatus
  6448. if *v == nil {
  6449. cv = []types.CostCategoryProcessingStatus{}
  6450. } else {
  6451. cv = *v
  6452. }
  6453. for _, value := range shape {
  6454. var col types.CostCategoryProcessingStatus
  6455. destAddr := &col
  6456. if err := awsAwsjson11_deserializeDocumentCostCategoryProcessingStatus(&destAddr, value); err != nil {
  6457. return err
  6458. }
  6459. col = *destAddr
  6460. cv = append(cv, col)
  6461. }
  6462. *v = cv
  6463. return nil
  6464. }
  6465. func awsAwsjson11_deserializeDocumentCostCategoryReference(v **types.CostCategoryReference, value interface{}) error {
  6466. if v == nil {
  6467. return fmt.Errorf("unexpected nil of type %T", v)
  6468. }
  6469. if value == nil {
  6470. return nil
  6471. }
  6472. shape, ok := value.(map[string]interface{})
  6473. if !ok {
  6474. return fmt.Errorf("unexpected JSON type %v", value)
  6475. }
  6476. var sv *types.CostCategoryReference
  6477. if *v == nil {
  6478. sv = &types.CostCategoryReference{}
  6479. } else {
  6480. sv = *v
  6481. }
  6482. for key, value := range shape {
  6483. switch key {
  6484. case "CostCategoryArn":
  6485. if value != nil {
  6486. jtv, ok := value.(string)
  6487. if !ok {
  6488. return fmt.Errorf("expected Arn to be of type string, got %T instead", value)
  6489. }
  6490. sv.CostCategoryArn = ptr.String(jtv)
  6491. }
  6492. case "DefaultValue":
  6493. if value != nil {
  6494. jtv, ok := value.(string)
  6495. if !ok {
  6496. return fmt.Errorf("expected CostCategoryValue to be of type string, got %T instead", value)
  6497. }
  6498. sv.DefaultValue = ptr.String(jtv)
  6499. }
  6500. case "EffectiveEnd":
  6501. if value != nil {
  6502. jtv, ok := value.(string)
  6503. if !ok {
  6504. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  6505. }
  6506. sv.EffectiveEnd = ptr.String(jtv)
  6507. }
  6508. case "EffectiveStart":
  6509. if value != nil {
  6510. jtv, ok := value.(string)
  6511. if !ok {
  6512. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  6513. }
  6514. sv.EffectiveStart = ptr.String(jtv)
  6515. }
  6516. case "Name":
  6517. if value != nil {
  6518. jtv, ok := value.(string)
  6519. if !ok {
  6520. return fmt.Errorf("expected CostCategoryName to be of type string, got %T instead", value)
  6521. }
  6522. sv.Name = ptr.String(jtv)
  6523. }
  6524. case "NumberOfRules":
  6525. if value != nil {
  6526. jtv, ok := value.(json.Number)
  6527. if !ok {
  6528. return fmt.Errorf("expected NonNegativeInteger to be json.Number, got %T instead", value)
  6529. }
  6530. i64, err := jtv.Int64()
  6531. if err != nil {
  6532. return err
  6533. }
  6534. sv.NumberOfRules = int32(i64)
  6535. }
  6536. case "ProcessingStatus":
  6537. if err := awsAwsjson11_deserializeDocumentCostCategoryProcessingStatusList(&sv.ProcessingStatus, value); err != nil {
  6538. return err
  6539. }
  6540. case "SupportedResourceTypes":
  6541. if err := awsAwsjson11_deserializeDocumentResourceTypes(&sv.SupportedResourceTypes, value); err != nil {
  6542. return err
  6543. }
  6544. case "Values":
  6545. if err := awsAwsjson11_deserializeDocumentCostCategoryValuesList(&sv.Values, value); err != nil {
  6546. return err
  6547. }
  6548. default:
  6549. _, _ = key, value
  6550. }
  6551. }
  6552. *v = sv
  6553. return nil
  6554. }
  6555. func awsAwsjson11_deserializeDocumentCostCategoryReferencesList(v *[]types.CostCategoryReference, value interface{}) error {
  6556. if v == nil {
  6557. return fmt.Errorf("unexpected nil of type %T", v)
  6558. }
  6559. if value == nil {
  6560. return nil
  6561. }
  6562. shape, ok := value.([]interface{})
  6563. if !ok {
  6564. return fmt.Errorf("unexpected JSON type %v", value)
  6565. }
  6566. var cv []types.CostCategoryReference
  6567. if *v == nil {
  6568. cv = []types.CostCategoryReference{}
  6569. } else {
  6570. cv = *v
  6571. }
  6572. for _, value := range shape {
  6573. var col types.CostCategoryReference
  6574. destAddr := &col
  6575. if err := awsAwsjson11_deserializeDocumentCostCategoryReference(&destAddr, value); err != nil {
  6576. return err
  6577. }
  6578. col = *destAddr
  6579. cv = append(cv, col)
  6580. }
  6581. *v = cv
  6582. return nil
  6583. }
  6584. func awsAwsjson11_deserializeDocumentCostCategoryResourceAssociation(v **types.CostCategoryResourceAssociation, value interface{}) error {
  6585. if v == nil {
  6586. return fmt.Errorf("unexpected nil of type %T", v)
  6587. }
  6588. if value == nil {
  6589. return nil
  6590. }
  6591. shape, ok := value.(map[string]interface{})
  6592. if !ok {
  6593. return fmt.Errorf("unexpected JSON type %v", value)
  6594. }
  6595. var sv *types.CostCategoryResourceAssociation
  6596. if *v == nil {
  6597. sv = &types.CostCategoryResourceAssociation{}
  6598. } else {
  6599. sv = *v
  6600. }
  6601. for key, value := range shape {
  6602. switch key {
  6603. case "CostCategoryArn":
  6604. if value != nil {
  6605. jtv, ok := value.(string)
  6606. if !ok {
  6607. return fmt.Errorf("expected Arn to be of type string, got %T instead", value)
  6608. }
  6609. sv.CostCategoryArn = ptr.String(jtv)
  6610. }
  6611. case "CostCategoryName":
  6612. if value != nil {
  6613. jtv, ok := value.(string)
  6614. if !ok {
  6615. return fmt.Errorf("expected CostCategoryName to be of type string, got %T instead", value)
  6616. }
  6617. sv.CostCategoryName = ptr.String(jtv)
  6618. }
  6619. case "ResourceArn":
  6620. if value != nil {
  6621. jtv, ok := value.(string)
  6622. if !ok {
  6623. return fmt.Errorf("expected GenericArn to be of type string, got %T instead", value)
  6624. }
  6625. sv.ResourceArn = ptr.String(jtv)
  6626. }
  6627. default:
  6628. _, _ = key, value
  6629. }
  6630. }
  6631. *v = sv
  6632. return nil
  6633. }
  6634. func awsAwsjson11_deserializeDocumentCostCategoryResourceAssociations(v *[]types.CostCategoryResourceAssociation, value interface{}) error {
  6635. if v == nil {
  6636. return fmt.Errorf("unexpected nil of type %T", v)
  6637. }
  6638. if value == nil {
  6639. return nil
  6640. }
  6641. shape, ok := value.([]interface{})
  6642. if !ok {
  6643. return fmt.Errorf("unexpected JSON type %v", value)
  6644. }
  6645. var cv []types.CostCategoryResourceAssociation
  6646. if *v == nil {
  6647. cv = []types.CostCategoryResourceAssociation{}
  6648. } else {
  6649. cv = *v
  6650. }
  6651. for _, value := range shape {
  6652. var col types.CostCategoryResourceAssociation
  6653. destAddr := &col
  6654. if err := awsAwsjson11_deserializeDocumentCostCategoryResourceAssociation(&destAddr, value); err != nil {
  6655. return err
  6656. }
  6657. col = *destAddr
  6658. cv = append(cv, col)
  6659. }
  6660. *v = cv
  6661. return nil
  6662. }
  6663. func awsAwsjson11_deserializeDocumentCostCategoryRule(v **types.CostCategoryRule, value interface{}) error {
  6664. if v == nil {
  6665. return fmt.Errorf("unexpected nil of type %T", v)
  6666. }
  6667. if value == nil {
  6668. return nil
  6669. }
  6670. shape, ok := value.(map[string]interface{})
  6671. if !ok {
  6672. return fmt.Errorf("unexpected JSON type %v", value)
  6673. }
  6674. var sv *types.CostCategoryRule
  6675. if *v == nil {
  6676. sv = &types.CostCategoryRule{}
  6677. } else {
  6678. sv = *v
  6679. }
  6680. for key, value := range shape {
  6681. switch key {
  6682. case "InheritedValue":
  6683. if err := awsAwsjson11_deserializeDocumentCostCategoryInheritedValueDimension(&sv.InheritedValue, value); err != nil {
  6684. return err
  6685. }
  6686. case "Rule":
  6687. if err := awsAwsjson11_deserializeDocumentExpression(&sv.Rule, value); err != nil {
  6688. return err
  6689. }
  6690. case "Type":
  6691. if value != nil {
  6692. jtv, ok := value.(string)
  6693. if !ok {
  6694. return fmt.Errorf("expected CostCategoryRuleType to be of type string, got %T instead", value)
  6695. }
  6696. sv.Type = types.CostCategoryRuleType(jtv)
  6697. }
  6698. case "Value":
  6699. if value != nil {
  6700. jtv, ok := value.(string)
  6701. if !ok {
  6702. return fmt.Errorf("expected CostCategoryValue to be of type string, got %T instead", value)
  6703. }
  6704. sv.Value = ptr.String(jtv)
  6705. }
  6706. default:
  6707. _, _ = key, value
  6708. }
  6709. }
  6710. *v = sv
  6711. return nil
  6712. }
  6713. func awsAwsjson11_deserializeDocumentCostCategoryRulesList(v *[]types.CostCategoryRule, value interface{}) error {
  6714. if v == nil {
  6715. return fmt.Errorf("unexpected nil of type %T", v)
  6716. }
  6717. if value == nil {
  6718. return nil
  6719. }
  6720. shape, ok := value.([]interface{})
  6721. if !ok {
  6722. return fmt.Errorf("unexpected JSON type %v", value)
  6723. }
  6724. var cv []types.CostCategoryRule
  6725. if *v == nil {
  6726. cv = []types.CostCategoryRule{}
  6727. } else {
  6728. cv = *v
  6729. }
  6730. for _, value := range shape {
  6731. var col types.CostCategoryRule
  6732. destAddr := &col
  6733. if err := awsAwsjson11_deserializeDocumentCostCategoryRule(&destAddr, value); err != nil {
  6734. return err
  6735. }
  6736. col = *destAddr
  6737. cv = append(cv, col)
  6738. }
  6739. *v = cv
  6740. return nil
  6741. }
  6742. func awsAwsjson11_deserializeDocumentCostCategorySplitChargeRule(v **types.CostCategorySplitChargeRule, value interface{}) error {
  6743. if v == nil {
  6744. return fmt.Errorf("unexpected nil of type %T", v)
  6745. }
  6746. if value == nil {
  6747. return nil
  6748. }
  6749. shape, ok := value.(map[string]interface{})
  6750. if !ok {
  6751. return fmt.Errorf("unexpected JSON type %v", value)
  6752. }
  6753. var sv *types.CostCategorySplitChargeRule
  6754. if *v == nil {
  6755. sv = &types.CostCategorySplitChargeRule{}
  6756. } else {
  6757. sv = *v
  6758. }
  6759. for key, value := range shape {
  6760. switch key {
  6761. case "Method":
  6762. if value != nil {
  6763. jtv, ok := value.(string)
  6764. if !ok {
  6765. return fmt.Errorf("expected CostCategorySplitChargeMethod to be of type string, got %T instead", value)
  6766. }
  6767. sv.Method = types.CostCategorySplitChargeMethod(jtv)
  6768. }
  6769. case "Parameters":
  6770. if err := awsAwsjson11_deserializeDocumentCostCategorySplitChargeRuleParametersList(&sv.Parameters, value); err != nil {
  6771. return err
  6772. }
  6773. case "Source":
  6774. if value != nil {
  6775. jtv, ok := value.(string)
  6776. if !ok {
  6777. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  6778. }
  6779. sv.Source = ptr.String(jtv)
  6780. }
  6781. case "Targets":
  6782. if err := awsAwsjson11_deserializeDocumentCostCategorySplitChargeRuleTargetsList(&sv.Targets, value); err != nil {
  6783. return err
  6784. }
  6785. default:
  6786. _, _ = key, value
  6787. }
  6788. }
  6789. *v = sv
  6790. return nil
  6791. }
  6792. func awsAwsjson11_deserializeDocumentCostCategorySplitChargeRuleParameter(v **types.CostCategorySplitChargeRuleParameter, value interface{}) error {
  6793. if v == nil {
  6794. return fmt.Errorf("unexpected nil of type %T", v)
  6795. }
  6796. if value == nil {
  6797. return nil
  6798. }
  6799. shape, ok := value.(map[string]interface{})
  6800. if !ok {
  6801. return fmt.Errorf("unexpected JSON type %v", value)
  6802. }
  6803. var sv *types.CostCategorySplitChargeRuleParameter
  6804. if *v == nil {
  6805. sv = &types.CostCategorySplitChargeRuleParameter{}
  6806. } else {
  6807. sv = *v
  6808. }
  6809. for key, value := range shape {
  6810. switch key {
  6811. case "Type":
  6812. if value != nil {
  6813. jtv, ok := value.(string)
  6814. if !ok {
  6815. return fmt.Errorf("expected CostCategorySplitChargeRuleParameterType to be of type string, got %T instead", value)
  6816. }
  6817. sv.Type = types.CostCategorySplitChargeRuleParameterType(jtv)
  6818. }
  6819. case "Values":
  6820. if err := awsAwsjson11_deserializeDocumentCostCategorySplitChargeRuleParameterValuesList(&sv.Values, value); err != nil {
  6821. return err
  6822. }
  6823. default:
  6824. _, _ = key, value
  6825. }
  6826. }
  6827. *v = sv
  6828. return nil
  6829. }
  6830. func awsAwsjson11_deserializeDocumentCostCategorySplitChargeRuleParametersList(v *[]types.CostCategorySplitChargeRuleParameter, value interface{}) error {
  6831. if v == nil {
  6832. return fmt.Errorf("unexpected nil of type %T", v)
  6833. }
  6834. if value == nil {
  6835. return nil
  6836. }
  6837. shape, ok := value.([]interface{})
  6838. if !ok {
  6839. return fmt.Errorf("unexpected JSON type %v", value)
  6840. }
  6841. var cv []types.CostCategorySplitChargeRuleParameter
  6842. if *v == nil {
  6843. cv = []types.CostCategorySplitChargeRuleParameter{}
  6844. } else {
  6845. cv = *v
  6846. }
  6847. for _, value := range shape {
  6848. var col types.CostCategorySplitChargeRuleParameter
  6849. destAddr := &col
  6850. if err := awsAwsjson11_deserializeDocumentCostCategorySplitChargeRuleParameter(&destAddr, value); err != nil {
  6851. return err
  6852. }
  6853. col = *destAddr
  6854. cv = append(cv, col)
  6855. }
  6856. *v = cv
  6857. return nil
  6858. }
  6859. func awsAwsjson11_deserializeDocumentCostCategorySplitChargeRuleParameterValuesList(v *[]string, value interface{}) error {
  6860. if v == nil {
  6861. return fmt.Errorf("unexpected nil of type %T", v)
  6862. }
  6863. if value == nil {
  6864. return nil
  6865. }
  6866. shape, ok := value.([]interface{})
  6867. if !ok {
  6868. return fmt.Errorf("unexpected JSON type %v", value)
  6869. }
  6870. var cv []string
  6871. if *v == nil {
  6872. cv = []string{}
  6873. } else {
  6874. cv = *v
  6875. }
  6876. for _, value := range shape {
  6877. var col string
  6878. if value != nil {
  6879. jtv, ok := value.(string)
  6880. if !ok {
  6881. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  6882. }
  6883. col = jtv
  6884. }
  6885. cv = append(cv, col)
  6886. }
  6887. *v = cv
  6888. return nil
  6889. }
  6890. func awsAwsjson11_deserializeDocumentCostCategorySplitChargeRulesList(v *[]types.CostCategorySplitChargeRule, value interface{}) error {
  6891. if v == nil {
  6892. return fmt.Errorf("unexpected nil of type %T", v)
  6893. }
  6894. if value == nil {
  6895. return nil
  6896. }
  6897. shape, ok := value.([]interface{})
  6898. if !ok {
  6899. return fmt.Errorf("unexpected JSON type %v", value)
  6900. }
  6901. var cv []types.CostCategorySplitChargeRule
  6902. if *v == nil {
  6903. cv = []types.CostCategorySplitChargeRule{}
  6904. } else {
  6905. cv = *v
  6906. }
  6907. for _, value := range shape {
  6908. var col types.CostCategorySplitChargeRule
  6909. destAddr := &col
  6910. if err := awsAwsjson11_deserializeDocumentCostCategorySplitChargeRule(&destAddr, value); err != nil {
  6911. return err
  6912. }
  6913. col = *destAddr
  6914. cv = append(cv, col)
  6915. }
  6916. *v = cv
  6917. return nil
  6918. }
  6919. func awsAwsjson11_deserializeDocumentCostCategorySplitChargeRuleTargetsList(v *[]string, value interface{}) error {
  6920. if v == nil {
  6921. return fmt.Errorf("unexpected nil of type %T", v)
  6922. }
  6923. if value == nil {
  6924. return nil
  6925. }
  6926. shape, ok := value.([]interface{})
  6927. if !ok {
  6928. return fmt.Errorf("unexpected JSON type %v", value)
  6929. }
  6930. var cv []string
  6931. if *v == nil {
  6932. cv = []string{}
  6933. } else {
  6934. cv = *v
  6935. }
  6936. for _, value := range shape {
  6937. var col string
  6938. if value != nil {
  6939. jtv, ok := value.(string)
  6940. if !ok {
  6941. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  6942. }
  6943. col = jtv
  6944. }
  6945. cv = append(cv, col)
  6946. }
  6947. *v = cv
  6948. return nil
  6949. }
  6950. func awsAwsjson11_deserializeDocumentCostCategoryValues(v **types.CostCategoryValues, value interface{}) error {
  6951. if v == nil {
  6952. return fmt.Errorf("unexpected nil of type %T", v)
  6953. }
  6954. if value == nil {
  6955. return nil
  6956. }
  6957. shape, ok := value.(map[string]interface{})
  6958. if !ok {
  6959. return fmt.Errorf("unexpected JSON type %v", value)
  6960. }
  6961. var sv *types.CostCategoryValues
  6962. if *v == nil {
  6963. sv = &types.CostCategoryValues{}
  6964. } else {
  6965. sv = *v
  6966. }
  6967. for key, value := range shape {
  6968. switch key {
  6969. case "Key":
  6970. if value != nil {
  6971. jtv, ok := value.(string)
  6972. if !ok {
  6973. return fmt.Errorf("expected CostCategoryName to be of type string, got %T instead", value)
  6974. }
  6975. sv.Key = ptr.String(jtv)
  6976. }
  6977. case "MatchOptions":
  6978. if err := awsAwsjson11_deserializeDocumentMatchOptions(&sv.MatchOptions, value); err != nil {
  6979. return err
  6980. }
  6981. case "Values":
  6982. if err := awsAwsjson11_deserializeDocumentValues(&sv.Values, value); err != nil {
  6983. return err
  6984. }
  6985. default:
  6986. _, _ = key, value
  6987. }
  6988. }
  6989. *v = sv
  6990. return nil
  6991. }
  6992. func awsAwsjson11_deserializeDocumentCostCategoryValuesList(v *[]string, value interface{}) error {
  6993. if v == nil {
  6994. return fmt.Errorf("unexpected nil of type %T", v)
  6995. }
  6996. if value == nil {
  6997. return nil
  6998. }
  6999. shape, ok := value.([]interface{})
  7000. if !ok {
  7001. return fmt.Errorf("unexpected JSON type %v", value)
  7002. }
  7003. var cv []string
  7004. if *v == nil {
  7005. cv = []string{}
  7006. } else {
  7007. cv = *v
  7008. }
  7009. for _, value := range shape {
  7010. var col string
  7011. if value != nil {
  7012. jtv, ok := value.(string)
  7013. if !ok {
  7014. return fmt.Errorf("expected CostCategoryValue to be of type string, got %T instead", value)
  7015. }
  7016. col = jtv
  7017. }
  7018. cv = append(cv, col)
  7019. }
  7020. *v = cv
  7021. return nil
  7022. }
  7023. func awsAwsjson11_deserializeDocumentCostComparisonDriver(v **types.CostComparisonDriver, value interface{}) error {
  7024. if v == nil {
  7025. return fmt.Errorf("unexpected nil of type %T", v)
  7026. }
  7027. if value == nil {
  7028. return nil
  7029. }
  7030. shape, ok := value.(map[string]interface{})
  7031. if !ok {
  7032. return fmt.Errorf("unexpected JSON type %v", value)
  7033. }
  7034. var sv *types.CostComparisonDriver
  7035. if *v == nil {
  7036. sv = &types.CostComparisonDriver{}
  7037. } else {
  7038. sv = *v
  7039. }
  7040. for key, value := range shape {
  7041. switch key {
  7042. case "CostDrivers":
  7043. if err := awsAwsjson11_deserializeDocumentCostDrivers(&sv.CostDrivers, value); err != nil {
  7044. return err
  7045. }
  7046. case "CostSelector":
  7047. if err := awsAwsjson11_deserializeDocumentExpression(&sv.CostSelector, value); err != nil {
  7048. return err
  7049. }
  7050. case "Metrics":
  7051. if err := awsAwsjson11_deserializeDocumentComparisonMetrics(&sv.Metrics, value); err != nil {
  7052. return err
  7053. }
  7054. default:
  7055. _, _ = key, value
  7056. }
  7057. }
  7058. *v = sv
  7059. return nil
  7060. }
  7061. func awsAwsjson11_deserializeDocumentCostComparisonDrivers(v *[]types.CostComparisonDriver, value interface{}) error {
  7062. if v == nil {
  7063. return fmt.Errorf("unexpected nil of type %T", v)
  7064. }
  7065. if value == nil {
  7066. return nil
  7067. }
  7068. shape, ok := value.([]interface{})
  7069. if !ok {
  7070. return fmt.Errorf("unexpected JSON type %v", value)
  7071. }
  7072. var cv []types.CostComparisonDriver
  7073. if *v == nil {
  7074. cv = []types.CostComparisonDriver{}
  7075. } else {
  7076. cv = *v
  7077. }
  7078. for _, value := range shape {
  7079. var col types.CostComparisonDriver
  7080. destAddr := &col
  7081. if err := awsAwsjson11_deserializeDocumentCostComparisonDriver(&destAddr, value); err != nil {
  7082. return err
  7083. }
  7084. col = *destAddr
  7085. cv = append(cv, col)
  7086. }
  7087. *v = cv
  7088. return nil
  7089. }
  7090. func awsAwsjson11_deserializeDocumentCostDriver(v **types.CostDriver, value interface{}) error {
  7091. if v == nil {
  7092. return fmt.Errorf("unexpected nil of type %T", v)
  7093. }
  7094. if value == nil {
  7095. return nil
  7096. }
  7097. shape, ok := value.(map[string]interface{})
  7098. if !ok {
  7099. return fmt.Errorf("unexpected JSON type %v", value)
  7100. }
  7101. var sv *types.CostDriver
  7102. if *v == nil {
  7103. sv = &types.CostDriver{}
  7104. } else {
  7105. sv = *v
  7106. }
  7107. for key, value := range shape {
  7108. switch key {
  7109. case "Metrics":
  7110. if err := awsAwsjson11_deserializeDocumentComparisonMetrics(&sv.Metrics, value); err != nil {
  7111. return err
  7112. }
  7113. case "Name":
  7114. if value != nil {
  7115. jtv, ok := value.(string)
  7116. if !ok {
  7117. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7118. }
  7119. sv.Name = ptr.String(jtv)
  7120. }
  7121. case "Type":
  7122. if value != nil {
  7123. jtv, ok := value.(string)
  7124. if !ok {
  7125. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7126. }
  7127. sv.Type = ptr.String(jtv)
  7128. }
  7129. default:
  7130. _, _ = key, value
  7131. }
  7132. }
  7133. *v = sv
  7134. return nil
  7135. }
  7136. func awsAwsjson11_deserializeDocumentCostDrivers(v *[]types.CostDriver, value interface{}) error {
  7137. if v == nil {
  7138. return fmt.Errorf("unexpected nil of type %T", v)
  7139. }
  7140. if value == nil {
  7141. return nil
  7142. }
  7143. shape, ok := value.([]interface{})
  7144. if !ok {
  7145. return fmt.Errorf("unexpected JSON type %v", value)
  7146. }
  7147. var cv []types.CostDriver
  7148. if *v == nil {
  7149. cv = []types.CostDriver{}
  7150. } else {
  7151. cv = *v
  7152. }
  7153. for _, value := range shape {
  7154. var col types.CostDriver
  7155. destAddr := &col
  7156. if err := awsAwsjson11_deserializeDocumentCostDriver(&destAddr, value); err != nil {
  7157. return err
  7158. }
  7159. col = *destAddr
  7160. cv = append(cv, col)
  7161. }
  7162. *v = cv
  7163. return nil
  7164. }
  7165. func awsAwsjson11_deserializeDocumentCoverage(v **types.Coverage, value interface{}) error {
  7166. if v == nil {
  7167. return fmt.Errorf("unexpected nil of type %T", v)
  7168. }
  7169. if value == nil {
  7170. return nil
  7171. }
  7172. shape, ok := value.(map[string]interface{})
  7173. if !ok {
  7174. return fmt.Errorf("unexpected JSON type %v", value)
  7175. }
  7176. var sv *types.Coverage
  7177. if *v == nil {
  7178. sv = &types.Coverage{}
  7179. } else {
  7180. sv = *v
  7181. }
  7182. for key, value := range shape {
  7183. switch key {
  7184. case "CoverageCost":
  7185. if err := awsAwsjson11_deserializeDocumentCoverageCost(&sv.CoverageCost, value); err != nil {
  7186. return err
  7187. }
  7188. case "CoverageHours":
  7189. if err := awsAwsjson11_deserializeDocumentCoverageHours(&sv.CoverageHours, value); err != nil {
  7190. return err
  7191. }
  7192. case "CoverageNormalizedUnits":
  7193. if err := awsAwsjson11_deserializeDocumentCoverageNormalizedUnits(&sv.CoverageNormalizedUnits, value); err != nil {
  7194. return err
  7195. }
  7196. default:
  7197. _, _ = key, value
  7198. }
  7199. }
  7200. *v = sv
  7201. return nil
  7202. }
  7203. func awsAwsjson11_deserializeDocumentCoverageByTime(v **types.CoverageByTime, value interface{}) error {
  7204. if v == nil {
  7205. return fmt.Errorf("unexpected nil of type %T", v)
  7206. }
  7207. if value == nil {
  7208. return nil
  7209. }
  7210. shape, ok := value.(map[string]interface{})
  7211. if !ok {
  7212. return fmt.Errorf("unexpected JSON type %v", value)
  7213. }
  7214. var sv *types.CoverageByTime
  7215. if *v == nil {
  7216. sv = &types.CoverageByTime{}
  7217. } else {
  7218. sv = *v
  7219. }
  7220. for key, value := range shape {
  7221. switch key {
  7222. case "Groups":
  7223. if err := awsAwsjson11_deserializeDocumentReservationCoverageGroups(&sv.Groups, value); err != nil {
  7224. return err
  7225. }
  7226. case "TimePeriod":
  7227. if err := awsAwsjson11_deserializeDocumentDateInterval(&sv.TimePeriod, value); err != nil {
  7228. return err
  7229. }
  7230. case "Total":
  7231. if err := awsAwsjson11_deserializeDocumentCoverage(&sv.Total, value); err != nil {
  7232. return err
  7233. }
  7234. default:
  7235. _, _ = key, value
  7236. }
  7237. }
  7238. *v = sv
  7239. return nil
  7240. }
  7241. func awsAwsjson11_deserializeDocumentCoverageCost(v **types.CoverageCost, value interface{}) error {
  7242. if v == nil {
  7243. return fmt.Errorf("unexpected nil of type %T", v)
  7244. }
  7245. if value == nil {
  7246. return nil
  7247. }
  7248. shape, ok := value.(map[string]interface{})
  7249. if !ok {
  7250. return fmt.Errorf("unexpected JSON type %v", value)
  7251. }
  7252. var sv *types.CoverageCost
  7253. if *v == nil {
  7254. sv = &types.CoverageCost{}
  7255. } else {
  7256. sv = *v
  7257. }
  7258. for key, value := range shape {
  7259. switch key {
  7260. case "OnDemandCost":
  7261. if value != nil {
  7262. jtv, ok := value.(string)
  7263. if !ok {
  7264. return fmt.Errorf("expected OnDemandCost to be of type string, got %T instead", value)
  7265. }
  7266. sv.OnDemandCost = ptr.String(jtv)
  7267. }
  7268. default:
  7269. _, _ = key, value
  7270. }
  7271. }
  7272. *v = sv
  7273. return nil
  7274. }
  7275. func awsAwsjson11_deserializeDocumentCoverageHours(v **types.CoverageHours, value interface{}) error {
  7276. if v == nil {
  7277. return fmt.Errorf("unexpected nil of type %T", v)
  7278. }
  7279. if value == nil {
  7280. return nil
  7281. }
  7282. shape, ok := value.(map[string]interface{})
  7283. if !ok {
  7284. return fmt.Errorf("unexpected JSON type %v", value)
  7285. }
  7286. var sv *types.CoverageHours
  7287. if *v == nil {
  7288. sv = &types.CoverageHours{}
  7289. } else {
  7290. sv = *v
  7291. }
  7292. for key, value := range shape {
  7293. switch key {
  7294. case "CoverageHoursPercentage":
  7295. if value != nil {
  7296. jtv, ok := value.(string)
  7297. if !ok {
  7298. return fmt.Errorf("expected CoverageHoursPercentage to be of type string, got %T instead", value)
  7299. }
  7300. sv.CoverageHoursPercentage = ptr.String(jtv)
  7301. }
  7302. case "OnDemandHours":
  7303. if value != nil {
  7304. jtv, ok := value.(string)
  7305. if !ok {
  7306. return fmt.Errorf("expected OnDemandHours to be of type string, got %T instead", value)
  7307. }
  7308. sv.OnDemandHours = ptr.String(jtv)
  7309. }
  7310. case "ReservedHours":
  7311. if value != nil {
  7312. jtv, ok := value.(string)
  7313. if !ok {
  7314. return fmt.Errorf("expected ReservedHours to be of type string, got %T instead", value)
  7315. }
  7316. sv.ReservedHours = ptr.String(jtv)
  7317. }
  7318. case "TotalRunningHours":
  7319. if value != nil {
  7320. jtv, ok := value.(string)
  7321. if !ok {
  7322. return fmt.Errorf("expected TotalRunningHours to be of type string, got %T instead", value)
  7323. }
  7324. sv.TotalRunningHours = ptr.String(jtv)
  7325. }
  7326. default:
  7327. _, _ = key, value
  7328. }
  7329. }
  7330. *v = sv
  7331. return nil
  7332. }
  7333. func awsAwsjson11_deserializeDocumentCoverageNormalizedUnits(v **types.CoverageNormalizedUnits, value interface{}) error {
  7334. if v == nil {
  7335. return fmt.Errorf("unexpected nil of type %T", v)
  7336. }
  7337. if value == nil {
  7338. return nil
  7339. }
  7340. shape, ok := value.(map[string]interface{})
  7341. if !ok {
  7342. return fmt.Errorf("unexpected JSON type %v", value)
  7343. }
  7344. var sv *types.CoverageNormalizedUnits
  7345. if *v == nil {
  7346. sv = &types.CoverageNormalizedUnits{}
  7347. } else {
  7348. sv = *v
  7349. }
  7350. for key, value := range shape {
  7351. switch key {
  7352. case "CoverageNormalizedUnitsPercentage":
  7353. if value != nil {
  7354. jtv, ok := value.(string)
  7355. if !ok {
  7356. return fmt.Errorf("expected CoverageNormalizedUnitsPercentage to be of type string, got %T instead", value)
  7357. }
  7358. sv.CoverageNormalizedUnitsPercentage = ptr.String(jtv)
  7359. }
  7360. case "OnDemandNormalizedUnits":
  7361. if value != nil {
  7362. jtv, ok := value.(string)
  7363. if !ok {
  7364. return fmt.Errorf("expected OnDemandNormalizedUnits to be of type string, got %T instead", value)
  7365. }
  7366. sv.OnDemandNormalizedUnits = ptr.String(jtv)
  7367. }
  7368. case "ReservedNormalizedUnits":
  7369. if value != nil {
  7370. jtv, ok := value.(string)
  7371. if !ok {
  7372. return fmt.Errorf("expected ReservedNormalizedUnits to be of type string, got %T instead", value)
  7373. }
  7374. sv.ReservedNormalizedUnits = ptr.String(jtv)
  7375. }
  7376. case "TotalRunningNormalizedUnits":
  7377. if value != nil {
  7378. jtv, ok := value.(string)
  7379. if !ok {
  7380. return fmt.Errorf("expected TotalRunningNormalizedUnits to be of type string, got %T instead", value)
  7381. }
  7382. sv.TotalRunningNormalizedUnits = ptr.String(jtv)
  7383. }
  7384. default:
  7385. _, _ = key, value
  7386. }
  7387. }
  7388. *v = sv
  7389. return nil
  7390. }
  7391. func awsAwsjson11_deserializeDocumentCoveragesByTime(v *[]types.CoverageByTime, value interface{}) error {
  7392. if v == nil {
  7393. return fmt.Errorf("unexpected nil of type %T", v)
  7394. }
  7395. if value == nil {
  7396. return nil
  7397. }
  7398. shape, ok := value.([]interface{})
  7399. if !ok {
  7400. return fmt.Errorf("unexpected JSON type %v", value)
  7401. }
  7402. var cv []types.CoverageByTime
  7403. if *v == nil {
  7404. cv = []types.CoverageByTime{}
  7405. } else {
  7406. cv = *v
  7407. }
  7408. for _, value := range shape {
  7409. var col types.CoverageByTime
  7410. destAddr := &col
  7411. if err := awsAwsjson11_deserializeDocumentCoverageByTime(&destAddr, value); err != nil {
  7412. return err
  7413. }
  7414. col = *destAddr
  7415. cv = append(cv, col)
  7416. }
  7417. *v = cv
  7418. return nil
  7419. }
  7420. func awsAwsjson11_deserializeDocumentCurrentInstance(v **types.CurrentInstance, value interface{}) error {
  7421. if v == nil {
  7422. return fmt.Errorf("unexpected nil of type %T", v)
  7423. }
  7424. if value == nil {
  7425. return nil
  7426. }
  7427. shape, ok := value.(map[string]interface{})
  7428. if !ok {
  7429. return fmt.Errorf("unexpected JSON type %v", value)
  7430. }
  7431. var sv *types.CurrentInstance
  7432. if *v == nil {
  7433. sv = &types.CurrentInstance{}
  7434. } else {
  7435. sv = *v
  7436. }
  7437. for key, value := range shape {
  7438. switch key {
  7439. case "CurrencyCode":
  7440. if value != nil {
  7441. jtv, ok := value.(string)
  7442. if !ok {
  7443. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7444. }
  7445. sv.CurrencyCode = ptr.String(jtv)
  7446. }
  7447. case "InstanceName":
  7448. if value != nil {
  7449. jtv, ok := value.(string)
  7450. if !ok {
  7451. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7452. }
  7453. sv.InstanceName = ptr.String(jtv)
  7454. }
  7455. case "MonthlyCost":
  7456. if value != nil {
  7457. jtv, ok := value.(string)
  7458. if !ok {
  7459. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7460. }
  7461. sv.MonthlyCost = ptr.String(jtv)
  7462. }
  7463. case "OnDemandHoursInLookbackPeriod":
  7464. if value != nil {
  7465. jtv, ok := value.(string)
  7466. if !ok {
  7467. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7468. }
  7469. sv.OnDemandHoursInLookbackPeriod = ptr.String(jtv)
  7470. }
  7471. case "ReservationCoveredHoursInLookbackPeriod":
  7472. if value != nil {
  7473. jtv, ok := value.(string)
  7474. if !ok {
  7475. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7476. }
  7477. sv.ReservationCoveredHoursInLookbackPeriod = ptr.String(jtv)
  7478. }
  7479. case "ResourceDetails":
  7480. if err := awsAwsjson11_deserializeDocumentResourceDetails(&sv.ResourceDetails, value); err != nil {
  7481. return err
  7482. }
  7483. case "ResourceId":
  7484. if value != nil {
  7485. jtv, ok := value.(string)
  7486. if !ok {
  7487. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7488. }
  7489. sv.ResourceId = ptr.String(jtv)
  7490. }
  7491. case "ResourceUtilization":
  7492. if err := awsAwsjson11_deserializeDocumentResourceUtilization(&sv.ResourceUtilization, value); err != nil {
  7493. return err
  7494. }
  7495. case "SavingsPlansCoveredHoursInLookbackPeriod":
  7496. if value != nil {
  7497. jtv, ok := value.(string)
  7498. if !ok {
  7499. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7500. }
  7501. sv.SavingsPlansCoveredHoursInLookbackPeriod = ptr.String(jtv)
  7502. }
  7503. case "Tags":
  7504. if err := awsAwsjson11_deserializeDocumentTagValuesList(&sv.Tags, value); err != nil {
  7505. return err
  7506. }
  7507. case "TotalRunningHoursInLookbackPeriod":
  7508. if value != nil {
  7509. jtv, ok := value.(string)
  7510. if !ok {
  7511. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7512. }
  7513. sv.TotalRunningHoursInLookbackPeriod = ptr.String(jtv)
  7514. }
  7515. default:
  7516. _, _ = key, value
  7517. }
  7518. }
  7519. *v = sv
  7520. return nil
  7521. }
  7522. func awsAwsjson11_deserializeDocumentDataUnavailableException(v **types.DataUnavailableException, value interface{}) error {
  7523. if v == nil {
  7524. return fmt.Errorf("unexpected nil of type %T", v)
  7525. }
  7526. if value == nil {
  7527. return nil
  7528. }
  7529. shape, ok := value.(map[string]interface{})
  7530. if !ok {
  7531. return fmt.Errorf("unexpected JSON type %v", value)
  7532. }
  7533. var sv *types.DataUnavailableException
  7534. if *v == nil {
  7535. sv = &types.DataUnavailableException{}
  7536. } else {
  7537. sv = *v
  7538. }
  7539. for key, value := range shape {
  7540. switch key {
  7541. case "message", "Message":
  7542. if value != nil {
  7543. jtv, ok := value.(string)
  7544. if !ok {
  7545. return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value)
  7546. }
  7547. sv.Message = ptr.String(jtv)
  7548. }
  7549. default:
  7550. _, _ = key, value
  7551. }
  7552. }
  7553. *v = sv
  7554. return nil
  7555. }
  7556. func awsAwsjson11_deserializeDocumentDateInterval(v **types.DateInterval, value interface{}) error {
  7557. if v == nil {
  7558. return fmt.Errorf("unexpected nil of type %T", v)
  7559. }
  7560. if value == nil {
  7561. return nil
  7562. }
  7563. shape, ok := value.(map[string]interface{})
  7564. if !ok {
  7565. return fmt.Errorf("unexpected JSON type %v", value)
  7566. }
  7567. var sv *types.DateInterval
  7568. if *v == nil {
  7569. sv = &types.DateInterval{}
  7570. } else {
  7571. sv = *v
  7572. }
  7573. for key, value := range shape {
  7574. switch key {
  7575. case "End":
  7576. if value != nil {
  7577. jtv, ok := value.(string)
  7578. if !ok {
  7579. return fmt.Errorf("expected YearMonthDay to be of type string, got %T instead", value)
  7580. }
  7581. sv.End = ptr.String(jtv)
  7582. }
  7583. case "Start":
  7584. if value != nil {
  7585. jtv, ok := value.(string)
  7586. if !ok {
  7587. return fmt.Errorf("expected YearMonthDay to be of type string, got %T instead", value)
  7588. }
  7589. sv.Start = ptr.String(jtv)
  7590. }
  7591. default:
  7592. _, _ = key, value
  7593. }
  7594. }
  7595. *v = sv
  7596. return nil
  7597. }
  7598. func awsAwsjson11_deserializeDocumentDimensionValues(v **types.DimensionValues, value interface{}) error {
  7599. if v == nil {
  7600. return fmt.Errorf("unexpected nil of type %T", v)
  7601. }
  7602. if value == nil {
  7603. return nil
  7604. }
  7605. shape, ok := value.(map[string]interface{})
  7606. if !ok {
  7607. return fmt.Errorf("unexpected JSON type %v", value)
  7608. }
  7609. var sv *types.DimensionValues
  7610. if *v == nil {
  7611. sv = &types.DimensionValues{}
  7612. } else {
  7613. sv = *v
  7614. }
  7615. for key, value := range shape {
  7616. switch key {
  7617. case "Key":
  7618. if value != nil {
  7619. jtv, ok := value.(string)
  7620. if !ok {
  7621. return fmt.Errorf("expected Dimension to be of type string, got %T instead", value)
  7622. }
  7623. sv.Key = types.Dimension(jtv)
  7624. }
  7625. case "MatchOptions":
  7626. if err := awsAwsjson11_deserializeDocumentMatchOptions(&sv.MatchOptions, value); err != nil {
  7627. return err
  7628. }
  7629. case "Values":
  7630. if err := awsAwsjson11_deserializeDocumentValues(&sv.Values, value); err != nil {
  7631. return err
  7632. }
  7633. default:
  7634. _, _ = key, value
  7635. }
  7636. }
  7637. *v = sv
  7638. return nil
  7639. }
  7640. func awsAwsjson11_deserializeDocumentDimensionValuesWithAttributes(v **types.DimensionValuesWithAttributes, value interface{}) error {
  7641. if v == nil {
  7642. return fmt.Errorf("unexpected nil of type %T", v)
  7643. }
  7644. if value == nil {
  7645. return nil
  7646. }
  7647. shape, ok := value.(map[string]interface{})
  7648. if !ok {
  7649. return fmt.Errorf("unexpected JSON type %v", value)
  7650. }
  7651. var sv *types.DimensionValuesWithAttributes
  7652. if *v == nil {
  7653. sv = &types.DimensionValuesWithAttributes{}
  7654. } else {
  7655. sv = *v
  7656. }
  7657. for key, value := range shape {
  7658. switch key {
  7659. case "Attributes":
  7660. if err := awsAwsjson11_deserializeDocumentAttributes(&sv.Attributes, value); err != nil {
  7661. return err
  7662. }
  7663. case "Value":
  7664. if value != nil {
  7665. jtv, ok := value.(string)
  7666. if !ok {
  7667. return fmt.Errorf("expected Value to be of type string, got %T instead", value)
  7668. }
  7669. sv.Value = ptr.String(jtv)
  7670. }
  7671. default:
  7672. _, _ = key, value
  7673. }
  7674. }
  7675. *v = sv
  7676. return nil
  7677. }
  7678. func awsAwsjson11_deserializeDocumentDimensionValuesWithAttributesList(v *[]types.DimensionValuesWithAttributes, value interface{}) error {
  7679. if v == nil {
  7680. return fmt.Errorf("unexpected nil of type %T", v)
  7681. }
  7682. if value == nil {
  7683. return nil
  7684. }
  7685. shape, ok := value.([]interface{})
  7686. if !ok {
  7687. return fmt.Errorf("unexpected JSON type %v", value)
  7688. }
  7689. var cv []types.DimensionValuesWithAttributes
  7690. if *v == nil {
  7691. cv = []types.DimensionValuesWithAttributes{}
  7692. } else {
  7693. cv = *v
  7694. }
  7695. for _, value := range shape {
  7696. var col types.DimensionValuesWithAttributes
  7697. destAddr := &col
  7698. if err := awsAwsjson11_deserializeDocumentDimensionValuesWithAttributes(&destAddr, value); err != nil {
  7699. return err
  7700. }
  7701. col = *destAddr
  7702. cv = append(cv, col)
  7703. }
  7704. *v = cv
  7705. return nil
  7706. }
  7707. func awsAwsjson11_deserializeDocumentDiskResourceUtilization(v **types.DiskResourceUtilization, value interface{}) error {
  7708. if v == nil {
  7709. return fmt.Errorf("unexpected nil of type %T", v)
  7710. }
  7711. if value == nil {
  7712. return nil
  7713. }
  7714. shape, ok := value.(map[string]interface{})
  7715. if !ok {
  7716. return fmt.Errorf("unexpected JSON type %v", value)
  7717. }
  7718. var sv *types.DiskResourceUtilization
  7719. if *v == nil {
  7720. sv = &types.DiskResourceUtilization{}
  7721. } else {
  7722. sv = *v
  7723. }
  7724. for key, value := range shape {
  7725. switch key {
  7726. case "DiskReadBytesPerSecond":
  7727. if value != nil {
  7728. jtv, ok := value.(string)
  7729. if !ok {
  7730. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7731. }
  7732. sv.DiskReadBytesPerSecond = ptr.String(jtv)
  7733. }
  7734. case "DiskReadOpsPerSecond":
  7735. if value != nil {
  7736. jtv, ok := value.(string)
  7737. if !ok {
  7738. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7739. }
  7740. sv.DiskReadOpsPerSecond = ptr.String(jtv)
  7741. }
  7742. case "DiskWriteBytesPerSecond":
  7743. if value != nil {
  7744. jtv, ok := value.(string)
  7745. if !ok {
  7746. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7747. }
  7748. sv.DiskWriteBytesPerSecond = ptr.String(jtv)
  7749. }
  7750. case "DiskWriteOpsPerSecond":
  7751. if value != nil {
  7752. jtv, ok := value.(string)
  7753. if !ok {
  7754. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7755. }
  7756. sv.DiskWriteOpsPerSecond = ptr.String(jtv)
  7757. }
  7758. default:
  7759. _, _ = key, value
  7760. }
  7761. }
  7762. *v = sv
  7763. return nil
  7764. }
  7765. func awsAwsjson11_deserializeDocumentDynamoDBCapacityDetails(v **types.DynamoDBCapacityDetails, value interface{}) error {
  7766. if v == nil {
  7767. return fmt.Errorf("unexpected nil of type %T", v)
  7768. }
  7769. if value == nil {
  7770. return nil
  7771. }
  7772. shape, ok := value.(map[string]interface{})
  7773. if !ok {
  7774. return fmt.Errorf("unexpected JSON type %v", value)
  7775. }
  7776. var sv *types.DynamoDBCapacityDetails
  7777. if *v == nil {
  7778. sv = &types.DynamoDBCapacityDetails{}
  7779. } else {
  7780. sv = *v
  7781. }
  7782. for key, value := range shape {
  7783. switch key {
  7784. case "CapacityUnits":
  7785. if value != nil {
  7786. jtv, ok := value.(string)
  7787. if !ok {
  7788. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7789. }
  7790. sv.CapacityUnits = ptr.String(jtv)
  7791. }
  7792. case "Region":
  7793. if value != nil {
  7794. jtv, ok := value.(string)
  7795. if !ok {
  7796. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7797. }
  7798. sv.Region = ptr.String(jtv)
  7799. }
  7800. default:
  7801. _, _ = key, value
  7802. }
  7803. }
  7804. *v = sv
  7805. return nil
  7806. }
  7807. func awsAwsjson11_deserializeDocumentEBSResourceUtilization(v **types.EBSResourceUtilization, value interface{}) error {
  7808. if v == nil {
  7809. return fmt.Errorf("unexpected nil of type %T", v)
  7810. }
  7811. if value == nil {
  7812. return nil
  7813. }
  7814. shape, ok := value.(map[string]interface{})
  7815. if !ok {
  7816. return fmt.Errorf("unexpected JSON type %v", value)
  7817. }
  7818. var sv *types.EBSResourceUtilization
  7819. if *v == nil {
  7820. sv = &types.EBSResourceUtilization{}
  7821. } else {
  7822. sv = *v
  7823. }
  7824. for key, value := range shape {
  7825. switch key {
  7826. case "EbsReadBytesPerSecond":
  7827. if value != nil {
  7828. jtv, ok := value.(string)
  7829. if !ok {
  7830. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7831. }
  7832. sv.EbsReadBytesPerSecond = ptr.String(jtv)
  7833. }
  7834. case "EbsReadOpsPerSecond":
  7835. if value != nil {
  7836. jtv, ok := value.(string)
  7837. if !ok {
  7838. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7839. }
  7840. sv.EbsReadOpsPerSecond = ptr.String(jtv)
  7841. }
  7842. case "EbsWriteBytesPerSecond":
  7843. if value != nil {
  7844. jtv, ok := value.(string)
  7845. if !ok {
  7846. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7847. }
  7848. sv.EbsWriteBytesPerSecond = ptr.String(jtv)
  7849. }
  7850. case "EbsWriteOpsPerSecond":
  7851. if value != nil {
  7852. jtv, ok := value.(string)
  7853. if !ok {
  7854. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7855. }
  7856. sv.EbsWriteOpsPerSecond = ptr.String(jtv)
  7857. }
  7858. default:
  7859. _, _ = key, value
  7860. }
  7861. }
  7862. *v = sv
  7863. return nil
  7864. }
  7865. func awsAwsjson11_deserializeDocumentEC2InstanceDetails(v **types.EC2InstanceDetails, value interface{}) error {
  7866. if v == nil {
  7867. return fmt.Errorf("unexpected nil of type %T", v)
  7868. }
  7869. if value == nil {
  7870. return nil
  7871. }
  7872. shape, ok := value.(map[string]interface{})
  7873. if !ok {
  7874. return fmt.Errorf("unexpected JSON type %v", value)
  7875. }
  7876. var sv *types.EC2InstanceDetails
  7877. if *v == nil {
  7878. sv = &types.EC2InstanceDetails{}
  7879. } else {
  7880. sv = *v
  7881. }
  7882. for key, value := range shape {
  7883. switch key {
  7884. case "AvailabilityZone":
  7885. if value != nil {
  7886. jtv, ok := value.(string)
  7887. if !ok {
  7888. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7889. }
  7890. sv.AvailabilityZone = ptr.String(jtv)
  7891. }
  7892. case "CurrentGeneration":
  7893. if value != nil {
  7894. jtv, ok := value.(bool)
  7895. if !ok {
  7896. return fmt.Errorf("expected GenericBoolean to be of type *bool, got %T instead", value)
  7897. }
  7898. sv.CurrentGeneration = jtv
  7899. }
  7900. case "Family":
  7901. if value != nil {
  7902. jtv, ok := value.(string)
  7903. if !ok {
  7904. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7905. }
  7906. sv.Family = ptr.String(jtv)
  7907. }
  7908. case "InstanceType":
  7909. if value != nil {
  7910. jtv, ok := value.(string)
  7911. if !ok {
  7912. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7913. }
  7914. sv.InstanceType = ptr.String(jtv)
  7915. }
  7916. case "Platform":
  7917. if value != nil {
  7918. jtv, ok := value.(string)
  7919. if !ok {
  7920. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7921. }
  7922. sv.Platform = ptr.String(jtv)
  7923. }
  7924. case "Region":
  7925. if value != nil {
  7926. jtv, ok := value.(string)
  7927. if !ok {
  7928. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7929. }
  7930. sv.Region = ptr.String(jtv)
  7931. }
  7932. case "SizeFlexEligible":
  7933. if value != nil {
  7934. jtv, ok := value.(bool)
  7935. if !ok {
  7936. return fmt.Errorf("expected GenericBoolean to be of type *bool, got %T instead", value)
  7937. }
  7938. sv.SizeFlexEligible = jtv
  7939. }
  7940. case "Tenancy":
  7941. if value != nil {
  7942. jtv, ok := value.(string)
  7943. if !ok {
  7944. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7945. }
  7946. sv.Tenancy = ptr.String(jtv)
  7947. }
  7948. default:
  7949. _, _ = key, value
  7950. }
  7951. }
  7952. *v = sv
  7953. return nil
  7954. }
  7955. func awsAwsjson11_deserializeDocumentEC2ResourceDetails(v **types.EC2ResourceDetails, value interface{}) error {
  7956. if v == nil {
  7957. return fmt.Errorf("unexpected nil of type %T", v)
  7958. }
  7959. if value == nil {
  7960. return nil
  7961. }
  7962. shape, ok := value.(map[string]interface{})
  7963. if !ok {
  7964. return fmt.Errorf("unexpected JSON type %v", value)
  7965. }
  7966. var sv *types.EC2ResourceDetails
  7967. if *v == nil {
  7968. sv = &types.EC2ResourceDetails{}
  7969. } else {
  7970. sv = *v
  7971. }
  7972. for key, value := range shape {
  7973. switch key {
  7974. case "HourlyOnDemandRate":
  7975. if value != nil {
  7976. jtv, ok := value.(string)
  7977. if !ok {
  7978. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7979. }
  7980. sv.HourlyOnDemandRate = ptr.String(jtv)
  7981. }
  7982. case "InstanceType":
  7983. if value != nil {
  7984. jtv, ok := value.(string)
  7985. if !ok {
  7986. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7987. }
  7988. sv.InstanceType = ptr.String(jtv)
  7989. }
  7990. case "Memory":
  7991. if value != nil {
  7992. jtv, ok := value.(string)
  7993. if !ok {
  7994. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  7995. }
  7996. sv.Memory = ptr.String(jtv)
  7997. }
  7998. case "NetworkPerformance":
  7999. if value != nil {
  8000. jtv, ok := value.(string)
  8001. if !ok {
  8002. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  8003. }
  8004. sv.NetworkPerformance = ptr.String(jtv)
  8005. }
  8006. case "Platform":
  8007. if value != nil {
  8008. jtv, ok := value.(string)
  8009. if !ok {
  8010. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  8011. }
  8012. sv.Platform = ptr.String(jtv)
  8013. }
  8014. case "Region":
  8015. if value != nil {
  8016. jtv, ok := value.(string)
  8017. if !ok {
  8018. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  8019. }
  8020. sv.Region = ptr.String(jtv)
  8021. }
  8022. case "Sku":
  8023. if value != nil {
  8024. jtv, ok := value.(string)
  8025. if !ok {
  8026. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  8027. }
  8028. sv.Sku = ptr.String(jtv)
  8029. }
  8030. case "Storage":
  8031. if value != nil {
  8032. jtv, ok := value.(string)
  8033. if !ok {
  8034. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  8035. }
  8036. sv.Storage = ptr.String(jtv)
  8037. }
  8038. case "Vcpu":
  8039. if value != nil {
  8040. jtv, ok := value.(string)
  8041. if !ok {
  8042. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  8043. }
  8044. sv.Vcpu = ptr.String(jtv)
  8045. }
  8046. default:
  8047. _, _ = key, value
  8048. }
  8049. }
  8050. *v = sv
  8051. return nil
  8052. }
  8053. func awsAwsjson11_deserializeDocumentEC2ResourceUtilization(v **types.EC2ResourceUtilization, value interface{}) error {
  8054. if v == nil {
  8055. return fmt.Errorf("unexpected nil of type %T", v)
  8056. }
  8057. if value == nil {
  8058. return nil
  8059. }
  8060. shape, ok := value.(map[string]interface{})
  8061. if !ok {
  8062. return fmt.Errorf("unexpected JSON type %v", value)
  8063. }
  8064. var sv *types.EC2ResourceUtilization
  8065. if *v == nil {
  8066. sv = &types.EC2ResourceUtilization{}
  8067. } else {
  8068. sv = *v
  8069. }
  8070. for key, value := range shape {
  8071. switch key {
  8072. case "DiskResourceUtilization":
  8073. if err := awsAwsjson11_deserializeDocumentDiskResourceUtilization(&sv.DiskResourceUtilization, value); err != nil {
  8074. return err
  8075. }
  8076. case "EBSResourceUtilization":
  8077. if err := awsAwsjson11_deserializeDocumentEBSResourceUtilization(&sv.EBSResourceUtilization, value); err != nil {
  8078. return err
  8079. }
  8080. case "MaxCpuUtilizationPercentage":
  8081. if value != nil {
  8082. jtv, ok := value.(string)
  8083. if !ok {
  8084. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  8085. }
  8086. sv.MaxCpuUtilizationPercentage = ptr.String(jtv)
  8087. }
  8088. case "MaxMemoryUtilizationPercentage":
  8089. if value != nil {
  8090. jtv, ok := value.(string)
  8091. if !ok {
  8092. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  8093. }
  8094. sv.MaxMemoryUtilizationPercentage = ptr.String(jtv)
  8095. }
  8096. case "MaxStorageUtilizationPercentage":
  8097. if value != nil {
  8098. jtv, ok := value.(string)
  8099. if !ok {
  8100. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  8101. }
  8102. sv.MaxStorageUtilizationPercentage = ptr.String(jtv)
  8103. }
  8104. case "NetworkResourceUtilization":
  8105. if err := awsAwsjson11_deserializeDocumentNetworkResourceUtilization(&sv.NetworkResourceUtilization, value); err != nil {
  8106. return err
  8107. }
  8108. default:
  8109. _, _ = key, value
  8110. }
  8111. }
  8112. *v = sv
  8113. return nil
  8114. }
  8115. func awsAwsjson11_deserializeDocumentEC2Specification(v **types.EC2Specification, value interface{}) error {
  8116. if v == nil {
  8117. return fmt.Errorf("unexpected nil of type %T", v)
  8118. }
  8119. if value == nil {
  8120. return nil
  8121. }
  8122. shape, ok := value.(map[string]interface{})
  8123. if !ok {
  8124. return fmt.Errorf("unexpected JSON type %v", value)
  8125. }
  8126. var sv *types.EC2Specification
  8127. if *v == nil {
  8128. sv = &types.EC2Specification{}
  8129. } else {
  8130. sv = *v
  8131. }
  8132. for key, value := range shape {
  8133. switch key {
  8134. case "OfferingClass":
  8135. if value != nil {
  8136. jtv, ok := value.(string)
  8137. if !ok {
  8138. return fmt.Errorf("expected OfferingClass to be of type string, got %T instead", value)
  8139. }
  8140. sv.OfferingClass = types.OfferingClass(jtv)
  8141. }
  8142. default:
  8143. _, _ = key, value
  8144. }
  8145. }
  8146. *v = sv
  8147. return nil
  8148. }
  8149. func awsAwsjson11_deserializeDocumentElastiCacheInstanceDetails(v **types.ElastiCacheInstanceDetails, value interface{}) error {
  8150. if v == nil {
  8151. return fmt.Errorf("unexpected nil of type %T", v)
  8152. }
  8153. if value == nil {
  8154. return nil
  8155. }
  8156. shape, ok := value.(map[string]interface{})
  8157. if !ok {
  8158. return fmt.Errorf("unexpected JSON type %v", value)
  8159. }
  8160. var sv *types.ElastiCacheInstanceDetails
  8161. if *v == nil {
  8162. sv = &types.ElastiCacheInstanceDetails{}
  8163. } else {
  8164. sv = *v
  8165. }
  8166. for key, value := range shape {
  8167. switch key {
  8168. case "CurrentGeneration":
  8169. if value != nil {
  8170. jtv, ok := value.(bool)
  8171. if !ok {
  8172. return fmt.Errorf("expected GenericBoolean to be of type *bool, got %T instead", value)
  8173. }
  8174. sv.CurrentGeneration = jtv
  8175. }
  8176. case "Family":
  8177. if value != nil {
  8178. jtv, ok := value.(string)
  8179. if !ok {
  8180. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  8181. }
  8182. sv.Family = ptr.String(jtv)
  8183. }
  8184. case "NodeType":
  8185. if value != nil {
  8186. jtv, ok := value.(string)
  8187. if !ok {
  8188. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  8189. }
  8190. sv.NodeType = ptr.String(jtv)
  8191. }
  8192. case "ProductDescription":
  8193. if value != nil {
  8194. jtv, ok := value.(string)
  8195. if !ok {
  8196. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  8197. }
  8198. sv.ProductDescription = ptr.String(jtv)
  8199. }
  8200. case "Region":
  8201. if value != nil {
  8202. jtv, ok := value.(string)
  8203. if !ok {
  8204. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  8205. }
  8206. sv.Region = ptr.String(jtv)
  8207. }
  8208. case "SizeFlexEligible":
  8209. if value != nil {
  8210. jtv, ok := value.(bool)
  8211. if !ok {
  8212. return fmt.Errorf("expected GenericBoolean to be of type *bool, got %T instead", value)
  8213. }
  8214. sv.SizeFlexEligible = jtv
  8215. }
  8216. default:
  8217. _, _ = key, value
  8218. }
  8219. }
  8220. *v = sv
  8221. return nil
  8222. }
  8223. func awsAwsjson11_deserializeDocumentESInstanceDetails(v **types.ESInstanceDetails, value interface{}) error {
  8224. if v == nil {
  8225. return fmt.Errorf("unexpected nil of type %T", v)
  8226. }
  8227. if value == nil {
  8228. return nil
  8229. }
  8230. shape, ok := value.(map[string]interface{})
  8231. if !ok {
  8232. return fmt.Errorf("unexpected JSON type %v", value)
  8233. }
  8234. var sv *types.ESInstanceDetails
  8235. if *v == nil {
  8236. sv = &types.ESInstanceDetails{}
  8237. } else {
  8238. sv = *v
  8239. }
  8240. for key, value := range shape {
  8241. switch key {
  8242. case "CurrentGeneration":
  8243. if value != nil {
  8244. jtv, ok := value.(bool)
  8245. if !ok {
  8246. return fmt.Errorf("expected GenericBoolean to be of type *bool, got %T instead", value)
  8247. }
  8248. sv.CurrentGeneration = jtv
  8249. }
  8250. case "InstanceClass":
  8251. if value != nil {
  8252. jtv, ok := value.(string)
  8253. if !ok {
  8254. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  8255. }
  8256. sv.InstanceClass = ptr.String(jtv)
  8257. }
  8258. case "InstanceSize":
  8259. if value != nil {
  8260. jtv, ok := value.(string)
  8261. if !ok {
  8262. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  8263. }
  8264. sv.InstanceSize = ptr.String(jtv)
  8265. }
  8266. case "Region":
  8267. if value != nil {
  8268. jtv, ok := value.(string)
  8269. if !ok {
  8270. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  8271. }
  8272. sv.Region = ptr.String(jtv)
  8273. }
  8274. case "SizeFlexEligible":
  8275. if value != nil {
  8276. jtv, ok := value.(bool)
  8277. if !ok {
  8278. return fmt.Errorf("expected GenericBoolean to be of type *bool, got %T instead", value)
  8279. }
  8280. sv.SizeFlexEligible = jtv
  8281. }
  8282. default:
  8283. _, _ = key, value
  8284. }
  8285. }
  8286. *v = sv
  8287. return nil
  8288. }
  8289. func awsAwsjson11_deserializeDocumentExpression(v **types.Expression, value interface{}) error {
  8290. if v == nil {
  8291. return fmt.Errorf("unexpected nil of type %T", v)
  8292. }
  8293. if value == nil {
  8294. return nil
  8295. }
  8296. shape, ok := value.(map[string]interface{})
  8297. if !ok {
  8298. return fmt.Errorf("unexpected JSON type %v", value)
  8299. }
  8300. var sv *types.Expression
  8301. if *v == nil {
  8302. sv = &types.Expression{}
  8303. } else {
  8304. sv = *v
  8305. }
  8306. for key, value := range shape {
  8307. switch key {
  8308. case "And":
  8309. if err := awsAwsjson11_deserializeDocumentExpressions(&sv.And, value); err != nil {
  8310. return err
  8311. }
  8312. case "CostCategories":
  8313. if err := awsAwsjson11_deserializeDocumentCostCategoryValues(&sv.CostCategories, value); err != nil {
  8314. return err
  8315. }
  8316. case "Dimensions":
  8317. if err := awsAwsjson11_deserializeDocumentDimensionValues(&sv.Dimensions, value); err != nil {
  8318. return err
  8319. }
  8320. case "Not":
  8321. if err := awsAwsjson11_deserializeDocumentExpression(&sv.Not, value); err != nil {
  8322. return err
  8323. }
  8324. case "Or":
  8325. if err := awsAwsjson11_deserializeDocumentExpressions(&sv.Or, value); err != nil {
  8326. return err
  8327. }
  8328. case "Tags":
  8329. if err := awsAwsjson11_deserializeDocumentTagValues(&sv.Tags, value); err != nil {
  8330. return err
  8331. }
  8332. default:
  8333. _, _ = key, value
  8334. }
  8335. }
  8336. *v = sv
  8337. return nil
  8338. }
  8339. func awsAwsjson11_deserializeDocumentExpressions(v *[]types.Expression, value interface{}) error {
  8340. if v == nil {
  8341. return fmt.Errorf("unexpected nil of type %T", v)
  8342. }
  8343. if value == nil {
  8344. return nil
  8345. }
  8346. shape, ok := value.([]interface{})
  8347. if !ok {
  8348. return fmt.Errorf("unexpected JSON type %v", value)
  8349. }
  8350. var cv []types.Expression
  8351. if *v == nil {
  8352. cv = []types.Expression{}
  8353. } else {
  8354. cv = *v
  8355. }
  8356. for _, value := range shape {
  8357. var col types.Expression
  8358. destAddr := &col
  8359. if err := awsAwsjson11_deserializeDocumentExpression(&destAddr, value); err != nil {
  8360. return err
  8361. }
  8362. col = *destAddr
  8363. cv = append(cv, col)
  8364. }
  8365. *v = cv
  8366. return nil
  8367. }
  8368. func awsAwsjson11_deserializeDocumentFindingReasonCodes(v *[]types.FindingReasonCode, value interface{}) error {
  8369. if v == nil {
  8370. return fmt.Errorf("unexpected nil of type %T", v)
  8371. }
  8372. if value == nil {
  8373. return nil
  8374. }
  8375. shape, ok := value.([]interface{})
  8376. if !ok {
  8377. return fmt.Errorf("unexpected JSON type %v", value)
  8378. }
  8379. var cv []types.FindingReasonCode
  8380. if *v == nil {
  8381. cv = []types.FindingReasonCode{}
  8382. } else {
  8383. cv = *v
  8384. }
  8385. for _, value := range shape {
  8386. var col types.FindingReasonCode
  8387. if value != nil {
  8388. jtv, ok := value.(string)
  8389. if !ok {
  8390. return fmt.Errorf("expected FindingReasonCode to be of type string, got %T instead", value)
  8391. }
  8392. col = types.FindingReasonCode(jtv)
  8393. }
  8394. cv = append(cv, col)
  8395. }
  8396. *v = cv
  8397. return nil
  8398. }
  8399. func awsAwsjson11_deserializeDocumentForecastResult(v **types.ForecastResult, value interface{}) error {
  8400. if v == nil {
  8401. return fmt.Errorf("unexpected nil of type %T", v)
  8402. }
  8403. if value == nil {
  8404. return nil
  8405. }
  8406. shape, ok := value.(map[string]interface{})
  8407. if !ok {
  8408. return fmt.Errorf("unexpected JSON type %v", value)
  8409. }
  8410. var sv *types.ForecastResult
  8411. if *v == nil {
  8412. sv = &types.ForecastResult{}
  8413. } else {
  8414. sv = *v
  8415. }
  8416. for key, value := range shape {
  8417. switch key {
  8418. case "MeanValue":
  8419. if value != nil {
  8420. jtv, ok := value.(string)
  8421. if !ok {
  8422. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  8423. }
  8424. sv.MeanValue = ptr.String(jtv)
  8425. }
  8426. case "PredictionIntervalLowerBound":
  8427. if value != nil {
  8428. jtv, ok := value.(string)
  8429. if !ok {
  8430. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  8431. }
  8432. sv.PredictionIntervalLowerBound = ptr.String(jtv)
  8433. }
  8434. case "PredictionIntervalUpperBound":
  8435. if value != nil {
  8436. jtv, ok := value.(string)
  8437. if !ok {
  8438. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  8439. }
  8440. sv.PredictionIntervalUpperBound = ptr.String(jtv)
  8441. }
  8442. case "TimePeriod":
  8443. if err := awsAwsjson11_deserializeDocumentDateInterval(&sv.TimePeriod, value); err != nil {
  8444. return err
  8445. }
  8446. default:
  8447. _, _ = key, value
  8448. }
  8449. }
  8450. *v = sv
  8451. return nil
  8452. }
  8453. func awsAwsjson11_deserializeDocumentForecastResultsByTime(v *[]types.ForecastResult, value interface{}) error {
  8454. if v == nil {
  8455. return fmt.Errorf("unexpected nil of type %T", v)
  8456. }
  8457. if value == nil {
  8458. return nil
  8459. }
  8460. shape, ok := value.([]interface{})
  8461. if !ok {
  8462. return fmt.Errorf("unexpected JSON type %v", value)
  8463. }
  8464. var cv []types.ForecastResult
  8465. if *v == nil {
  8466. cv = []types.ForecastResult{}
  8467. } else {
  8468. cv = *v
  8469. }
  8470. for _, value := range shape {
  8471. var col types.ForecastResult
  8472. destAddr := &col
  8473. if err := awsAwsjson11_deserializeDocumentForecastResult(&destAddr, value); err != nil {
  8474. return err
  8475. }
  8476. col = *destAddr
  8477. cv = append(cv, col)
  8478. }
  8479. *v = cv
  8480. return nil
  8481. }
  8482. func awsAwsjson11_deserializeDocumentGenerationExistsException(v **types.GenerationExistsException, value interface{}) error {
  8483. if v == nil {
  8484. return fmt.Errorf("unexpected nil of type %T", v)
  8485. }
  8486. if value == nil {
  8487. return nil
  8488. }
  8489. shape, ok := value.(map[string]interface{})
  8490. if !ok {
  8491. return fmt.Errorf("unexpected JSON type %v", value)
  8492. }
  8493. var sv *types.GenerationExistsException
  8494. if *v == nil {
  8495. sv = &types.GenerationExistsException{}
  8496. } else {
  8497. sv = *v
  8498. }
  8499. for key, value := range shape {
  8500. switch key {
  8501. case "message", "Message":
  8502. if value != nil {
  8503. jtv, ok := value.(string)
  8504. if !ok {
  8505. return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value)
  8506. }
  8507. sv.Message = ptr.String(jtv)
  8508. }
  8509. default:
  8510. _, _ = key, value
  8511. }
  8512. }
  8513. *v = sv
  8514. return nil
  8515. }
  8516. func awsAwsjson11_deserializeDocumentGenerationSummary(v **types.GenerationSummary, value interface{}) error {
  8517. if v == nil {
  8518. return fmt.Errorf("unexpected nil of type %T", v)
  8519. }
  8520. if value == nil {
  8521. return nil
  8522. }
  8523. shape, ok := value.(map[string]interface{})
  8524. if !ok {
  8525. return fmt.Errorf("unexpected JSON type %v", value)
  8526. }
  8527. var sv *types.GenerationSummary
  8528. if *v == nil {
  8529. sv = &types.GenerationSummary{}
  8530. } else {
  8531. sv = *v
  8532. }
  8533. for key, value := range shape {
  8534. switch key {
  8535. case "EstimatedCompletionTime":
  8536. if value != nil {
  8537. jtv, ok := value.(string)
  8538. if !ok {
  8539. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  8540. }
  8541. sv.EstimatedCompletionTime = ptr.String(jtv)
  8542. }
  8543. case "GenerationCompletionTime":
  8544. if value != nil {
  8545. jtv, ok := value.(string)
  8546. if !ok {
  8547. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  8548. }
  8549. sv.GenerationCompletionTime = ptr.String(jtv)
  8550. }
  8551. case "GenerationStartedTime":
  8552. if value != nil {
  8553. jtv, ok := value.(string)
  8554. if !ok {
  8555. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  8556. }
  8557. sv.GenerationStartedTime = ptr.String(jtv)
  8558. }
  8559. case "GenerationStatus":
  8560. if value != nil {
  8561. jtv, ok := value.(string)
  8562. if !ok {
  8563. return fmt.Errorf("expected GenerationStatus to be of type string, got %T instead", value)
  8564. }
  8565. sv.GenerationStatus = types.GenerationStatus(jtv)
  8566. }
  8567. case "RecommendationId":
  8568. if value != nil {
  8569. jtv, ok := value.(string)
  8570. if !ok {
  8571. return fmt.Errorf("expected RecommendationId to be of type string, got %T instead", value)
  8572. }
  8573. sv.RecommendationId = ptr.String(jtv)
  8574. }
  8575. default:
  8576. _, _ = key, value
  8577. }
  8578. }
  8579. *v = sv
  8580. return nil
  8581. }
  8582. func awsAwsjson11_deserializeDocumentGenerationSummaryList(v *[]types.GenerationSummary, value interface{}) error {
  8583. if v == nil {
  8584. return fmt.Errorf("unexpected nil of type %T", v)
  8585. }
  8586. if value == nil {
  8587. return nil
  8588. }
  8589. shape, ok := value.([]interface{})
  8590. if !ok {
  8591. return fmt.Errorf("unexpected JSON type %v", value)
  8592. }
  8593. var cv []types.GenerationSummary
  8594. if *v == nil {
  8595. cv = []types.GenerationSummary{}
  8596. } else {
  8597. cv = *v
  8598. }
  8599. for _, value := range shape {
  8600. var col types.GenerationSummary
  8601. destAddr := &col
  8602. if err := awsAwsjson11_deserializeDocumentGenerationSummary(&destAddr, value); err != nil {
  8603. return err
  8604. }
  8605. col = *destAddr
  8606. cv = append(cv, col)
  8607. }
  8608. *v = cv
  8609. return nil
  8610. }
  8611. func awsAwsjson11_deserializeDocumentGroup(v **types.Group, value interface{}) error {
  8612. if v == nil {
  8613. return fmt.Errorf("unexpected nil of type %T", v)
  8614. }
  8615. if value == nil {
  8616. return nil
  8617. }
  8618. shape, ok := value.(map[string]interface{})
  8619. if !ok {
  8620. return fmt.Errorf("unexpected JSON type %v", value)
  8621. }
  8622. var sv *types.Group
  8623. if *v == nil {
  8624. sv = &types.Group{}
  8625. } else {
  8626. sv = *v
  8627. }
  8628. for key, value := range shape {
  8629. switch key {
  8630. case "Keys":
  8631. if err := awsAwsjson11_deserializeDocumentKeys(&sv.Keys, value); err != nil {
  8632. return err
  8633. }
  8634. case "Metrics":
  8635. if err := awsAwsjson11_deserializeDocumentMetrics(&sv.Metrics, value); err != nil {
  8636. return err
  8637. }
  8638. default:
  8639. _, _ = key, value
  8640. }
  8641. }
  8642. *v = sv
  8643. return nil
  8644. }
  8645. func awsAwsjson11_deserializeDocumentGroupDefinition(v **types.GroupDefinition, value interface{}) error {
  8646. if v == nil {
  8647. return fmt.Errorf("unexpected nil of type %T", v)
  8648. }
  8649. if value == nil {
  8650. return nil
  8651. }
  8652. shape, ok := value.(map[string]interface{})
  8653. if !ok {
  8654. return fmt.Errorf("unexpected JSON type %v", value)
  8655. }
  8656. var sv *types.GroupDefinition
  8657. if *v == nil {
  8658. sv = &types.GroupDefinition{}
  8659. } else {
  8660. sv = *v
  8661. }
  8662. for key, value := range shape {
  8663. switch key {
  8664. case "Key":
  8665. if value != nil {
  8666. jtv, ok := value.(string)
  8667. if !ok {
  8668. return fmt.Errorf("expected GroupDefinitionKey to be of type string, got %T instead", value)
  8669. }
  8670. sv.Key = ptr.String(jtv)
  8671. }
  8672. case "Type":
  8673. if value != nil {
  8674. jtv, ok := value.(string)
  8675. if !ok {
  8676. return fmt.Errorf("expected GroupDefinitionType to be of type string, got %T instead", value)
  8677. }
  8678. sv.Type = types.GroupDefinitionType(jtv)
  8679. }
  8680. default:
  8681. _, _ = key, value
  8682. }
  8683. }
  8684. *v = sv
  8685. return nil
  8686. }
  8687. func awsAwsjson11_deserializeDocumentGroupDefinitions(v *[]types.GroupDefinition, value interface{}) error {
  8688. if v == nil {
  8689. return fmt.Errorf("unexpected nil of type %T", v)
  8690. }
  8691. if value == nil {
  8692. return nil
  8693. }
  8694. shape, ok := value.([]interface{})
  8695. if !ok {
  8696. return fmt.Errorf("unexpected JSON type %v", value)
  8697. }
  8698. var cv []types.GroupDefinition
  8699. if *v == nil {
  8700. cv = []types.GroupDefinition{}
  8701. } else {
  8702. cv = *v
  8703. }
  8704. for _, value := range shape {
  8705. var col types.GroupDefinition
  8706. destAddr := &col
  8707. if err := awsAwsjson11_deserializeDocumentGroupDefinition(&destAddr, value); err != nil {
  8708. return err
  8709. }
  8710. col = *destAddr
  8711. cv = append(cv, col)
  8712. }
  8713. *v = cv
  8714. return nil
  8715. }
  8716. func awsAwsjson11_deserializeDocumentGroups(v *[]types.Group, value interface{}) error {
  8717. if v == nil {
  8718. return fmt.Errorf("unexpected nil of type %T", v)
  8719. }
  8720. if value == nil {
  8721. return nil
  8722. }
  8723. shape, ok := value.([]interface{})
  8724. if !ok {
  8725. return fmt.Errorf("unexpected JSON type %v", value)
  8726. }
  8727. var cv []types.Group
  8728. if *v == nil {
  8729. cv = []types.Group{}
  8730. } else {
  8731. cv = *v
  8732. }
  8733. for _, value := range shape {
  8734. var col types.Group
  8735. destAddr := &col
  8736. if err := awsAwsjson11_deserializeDocumentGroup(&destAddr, value); err != nil {
  8737. return err
  8738. }
  8739. col = *destAddr
  8740. cv = append(cv, col)
  8741. }
  8742. *v = cv
  8743. return nil
  8744. }
  8745. func awsAwsjson11_deserializeDocumentImpact(v **types.Impact, value interface{}) error {
  8746. if v == nil {
  8747. return fmt.Errorf("unexpected nil of type %T", v)
  8748. }
  8749. if value == nil {
  8750. return nil
  8751. }
  8752. shape, ok := value.(map[string]interface{})
  8753. if !ok {
  8754. return fmt.Errorf("unexpected JSON type %v", value)
  8755. }
  8756. var sv *types.Impact
  8757. if *v == nil {
  8758. sv = &types.Impact{}
  8759. } else {
  8760. sv = *v
  8761. }
  8762. for key, value := range shape {
  8763. switch key {
  8764. case "MaxImpact":
  8765. if value != nil {
  8766. switch jtv := value.(type) {
  8767. case json.Number:
  8768. f64, err := jtv.Float64()
  8769. if err != nil {
  8770. return err
  8771. }
  8772. sv.MaxImpact = f64
  8773. case string:
  8774. var f64 float64
  8775. switch {
  8776. case strings.EqualFold(jtv, "NaN"):
  8777. f64 = math.NaN()
  8778. case strings.EqualFold(jtv, "Infinity"):
  8779. f64 = math.Inf(1)
  8780. case strings.EqualFold(jtv, "-Infinity"):
  8781. f64 = math.Inf(-1)
  8782. default:
  8783. return fmt.Errorf("unknown JSON number value: %s", jtv)
  8784. }
  8785. sv.MaxImpact = f64
  8786. default:
  8787. return fmt.Errorf("expected GenericDouble to be a JSON Number, got %T instead", value)
  8788. }
  8789. }
  8790. case "TotalActualSpend":
  8791. if value != nil {
  8792. switch jtv := value.(type) {
  8793. case json.Number:
  8794. f64, err := jtv.Float64()
  8795. if err != nil {
  8796. return err
  8797. }
  8798. sv.TotalActualSpend = ptr.Float64(f64)
  8799. case string:
  8800. var f64 float64
  8801. switch {
  8802. case strings.EqualFold(jtv, "NaN"):
  8803. f64 = math.NaN()
  8804. case strings.EqualFold(jtv, "Infinity"):
  8805. f64 = math.Inf(1)
  8806. case strings.EqualFold(jtv, "-Infinity"):
  8807. f64 = math.Inf(-1)
  8808. default:
  8809. return fmt.Errorf("unknown JSON number value: %s", jtv)
  8810. }
  8811. sv.TotalActualSpend = ptr.Float64(f64)
  8812. default:
  8813. return fmt.Errorf("expected NullableNonNegativeDouble to be a JSON Number, got %T instead", value)
  8814. }
  8815. }
  8816. case "TotalExpectedSpend":
  8817. if value != nil {
  8818. switch jtv := value.(type) {
  8819. case json.Number:
  8820. f64, err := jtv.Float64()
  8821. if err != nil {
  8822. return err
  8823. }
  8824. sv.TotalExpectedSpend = ptr.Float64(f64)
  8825. case string:
  8826. var f64 float64
  8827. switch {
  8828. case strings.EqualFold(jtv, "NaN"):
  8829. f64 = math.NaN()
  8830. case strings.EqualFold(jtv, "Infinity"):
  8831. f64 = math.Inf(1)
  8832. case strings.EqualFold(jtv, "-Infinity"):
  8833. f64 = math.Inf(-1)
  8834. default:
  8835. return fmt.Errorf("unknown JSON number value: %s", jtv)
  8836. }
  8837. sv.TotalExpectedSpend = ptr.Float64(f64)
  8838. default:
  8839. return fmt.Errorf("expected NullableNonNegativeDouble to be a JSON Number, got %T instead", value)
  8840. }
  8841. }
  8842. case "TotalImpact":
  8843. if value != nil {
  8844. switch jtv := value.(type) {
  8845. case json.Number:
  8846. f64, err := jtv.Float64()
  8847. if err != nil {
  8848. return err
  8849. }
  8850. sv.TotalImpact = f64
  8851. case string:
  8852. var f64 float64
  8853. switch {
  8854. case strings.EqualFold(jtv, "NaN"):
  8855. f64 = math.NaN()
  8856. case strings.EqualFold(jtv, "Infinity"):
  8857. f64 = math.Inf(1)
  8858. case strings.EqualFold(jtv, "-Infinity"):
  8859. f64 = math.Inf(-1)
  8860. default:
  8861. return fmt.Errorf("unknown JSON number value: %s", jtv)
  8862. }
  8863. sv.TotalImpact = f64
  8864. default:
  8865. return fmt.Errorf("expected GenericDouble to be a JSON Number, got %T instead", value)
  8866. }
  8867. }
  8868. case "TotalImpactPercentage":
  8869. if value != nil {
  8870. switch jtv := value.(type) {
  8871. case json.Number:
  8872. f64, err := jtv.Float64()
  8873. if err != nil {
  8874. return err
  8875. }
  8876. sv.TotalImpactPercentage = ptr.Float64(f64)
  8877. case string:
  8878. var f64 float64
  8879. switch {
  8880. case strings.EqualFold(jtv, "NaN"):
  8881. f64 = math.NaN()
  8882. case strings.EqualFold(jtv, "Infinity"):
  8883. f64 = math.Inf(1)
  8884. case strings.EqualFold(jtv, "-Infinity"):
  8885. f64 = math.Inf(-1)
  8886. default:
  8887. return fmt.Errorf("unknown JSON number value: %s", jtv)
  8888. }
  8889. sv.TotalImpactPercentage = ptr.Float64(f64)
  8890. default:
  8891. return fmt.Errorf("expected NullableNonNegativeDouble to be a JSON Number, got %T instead", value)
  8892. }
  8893. }
  8894. default:
  8895. _, _ = key, value
  8896. }
  8897. }
  8898. *v = sv
  8899. return nil
  8900. }
  8901. func awsAwsjson11_deserializeDocumentInstanceDetails(v **types.InstanceDetails, value interface{}) error {
  8902. if v == nil {
  8903. return fmt.Errorf("unexpected nil of type %T", v)
  8904. }
  8905. if value == nil {
  8906. return nil
  8907. }
  8908. shape, ok := value.(map[string]interface{})
  8909. if !ok {
  8910. return fmt.Errorf("unexpected JSON type %v", value)
  8911. }
  8912. var sv *types.InstanceDetails
  8913. if *v == nil {
  8914. sv = &types.InstanceDetails{}
  8915. } else {
  8916. sv = *v
  8917. }
  8918. for key, value := range shape {
  8919. switch key {
  8920. case "EC2InstanceDetails":
  8921. if err := awsAwsjson11_deserializeDocumentEC2InstanceDetails(&sv.EC2InstanceDetails, value); err != nil {
  8922. return err
  8923. }
  8924. case "ElastiCacheInstanceDetails":
  8925. if err := awsAwsjson11_deserializeDocumentElastiCacheInstanceDetails(&sv.ElastiCacheInstanceDetails, value); err != nil {
  8926. return err
  8927. }
  8928. case "ESInstanceDetails":
  8929. if err := awsAwsjson11_deserializeDocumentESInstanceDetails(&sv.ESInstanceDetails, value); err != nil {
  8930. return err
  8931. }
  8932. case "MemoryDBInstanceDetails":
  8933. if err := awsAwsjson11_deserializeDocumentMemoryDBInstanceDetails(&sv.MemoryDBInstanceDetails, value); err != nil {
  8934. return err
  8935. }
  8936. case "RDSInstanceDetails":
  8937. if err := awsAwsjson11_deserializeDocumentRDSInstanceDetails(&sv.RDSInstanceDetails, value); err != nil {
  8938. return err
  8939. }
  8940. case "RedshiftInstanceDetails":
  8941. if err := awsAwsjson11_deserializeDocumentRedshiftInstanceDetails(&sv.RedshiftInstanceDetails, value); err != nil {
  8942. return err
  8943. }
  8944. default:
  8945. _, _ = key, value
  8946. }
  8947. }
  8948. *v = sv
  8949. return nil
  8950. }
  8951. func awsAwsjson11_deserializeDocumentInvalidNextTokenException(v **types.InvalidNextTokenException, value interface{}) error {
  8952. if v == nil {
  8953. return fmt.Errorf("unexpected nil of type %T", v)
  8954. }
  8955. if value == nil {
  8956. return nil
  8957. }
  8958. shape, ok := value.(map[string]interface{})
  8959. if !ok {
  8960. return fmt.Errorf("unexpected JSON type %v", value)
  8961. }
  8962. var sv *types.InvalidNextTokenException
  8963. if *v == nil {
  8964. sv = &types.InvalidNextTokenException{}
  8965. } else {
  8966. sv = *v
  8967. }
  8968. for key, value := range shape {
  8969. switch key {
  8970. case "message", "Message":
  8971. if value != nil {
  8972. jtv, ok := value.(string)
  8973. if !ok {
  8974. return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value)
  8975. }
  8976. sv.Message = ptr.String(jtv)
  8977. }
  8978. default:
  8979. _, _ = key, value
  8980. }
  8981. }
  8982. *v = sv
  8983. return nil
  8984. }
  8985. func awsAwsjson11_deserializeDocumentKeys(v *[]string, value interface{}) error {
  8986. if v == nil {
  8987. return fmt.Errorf("unexpected nil of type %T", v)
  8988. }
  8989. if value == nil {
  8990. return nil
  8991. }
  8992. shape, ok := value.([]interface{})
  8993. if !ok {
  8994. return fmt.Errorf("unexpected JSON type %v", value)
  8995. }
  8996. var cv []string
  8997. if *v == nil {
  8998. cv = []string{}
  8999. } else {
  9000. cv = *v
  9001. }
  9002. for _, value := range shape {
  9003. var col string
  9004. if value != nil {
  9005. jtv, ok := value.(string)
  9006. if !ok {
  9007. return fmt.Errorf("expected Key to be of type string, got %T instead", value)
  9008. }
  9009. col = jtv
  9010. }
  9011. cv = append(cv, col)
  9012. }
  9013. *v = cv
  9014. return nil
  9015. }
  9016. func awsAwsjson11_deserializeDocumentLimitExceededException(v **types.LimitExceededException, value interface{}) error {
  9017. if v == nil {
  9018. return fmt.Errorf("unexpected nil of type %T", v)
  9019. }
  9020. if value == nil {
  9021. return nil
  9022. }
  9023. shape, ok := value.(map[string]interface{})
  9024. if !ok {
  9025. return fmt.Errorf("unexpected JSON type %v", value)
  9026. }
  9027. var sv *types.LimitExceededException
  9028. if *v == nil {
  9029. sv = &types.LimitExceededException{}
  9030. } else {
  9031. sv = *v
  9032. }
  9033. for key, value := range shape {
  9034. switch key {
  9035. case "message", "Message":
  9036. if value != nil {
  9037. jtv, ok := value.(string)
  9038. if !ok {
  9039. return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value)
  9040. }
  9041. sv.Message = ptr.String(jtv)
  9042. }
  9043. default:
  9044. _, _ = key, value
  9045. }
  9046. }
  9047. *v = sv
  9048. return nil
  9049. }
  9050. func awsAwsjson11_deserializeDocumentMatchOptions(v *[]types.MatchOption, value interface{}) error {
  9051. if v == nil {
  9052. return fmt.Errorf("unexpected nil of type %T", v)
  9053. }
  9054. if value == nil {
  9055. return nil
  9056. }
  9057. shape, ok := value.([]interface{})
  9058. if !ok {
  9059. return fmt.Errorf("unexpected JSON type %v", value)
  9060. }
  9061. var cv []types.MatchOption
  9062. if *v == nil {
  9063. cv = []types.MatchOption{}
  9064. } else {
  9065. cv = *v
  9066. }
  9067. for _, value := range shape {
  9068. var col types.MatchOption
  9069. if value != nil {
  9070. jtv, ok := value.(string)
  9071. if !ok {
  9072. return fmt.Errorf("expected MatchOption to be of type string, got %T instead", value)
  9073. }
  9074. col = types.MatchOption(jtv)
  9075. }
  9076. cv = append(cv, col)
  9077. }
  9078. *v = cv
  9079. return nil
  9080. }
  9081. func awsAwsjson11_deserializeDocumentMemoryDBInstanceDetails(v **types.MemoryDBInstanceDetails, value interface{}) error {
  9082. if v == nil {
  9083. return fmt.Errorf("unexpected nil of type %T", v)
  9084. }
  9085. if value == nil {
  9086. return nil
  9087. }
  9088. shape, ok := value.(map[string]interface{})
  9089. if !ok {
  9090. return fmt.Errorf("unexpected JSON type %v", value)
  9091. }
  9092. var sv *types.MemoryDBInstanceDetails
  9093. if *v == nil {
  9094. sv = &types.MemoryDBInstanceDetails{}
  9095. } else {
  9096. sv = *v
  9097. }
  9098. for key, value := range shape {
  9099. switch key {
  9100. case "CurrentGeneration":
  9101. if value != nil {
  9102. jtv, ok := value.(bool)
  9103. if !ok {
  9104. return fmt.Errorf("expected GenericBoolean to be of type *bool, got %T instead", value)
  9105. }
  9106. sv.CurrentGeneration = jtv
  9107. }
  9108. case "Family":
  9109. if value != nil {
  9110. jtv, ok := value.(string)
  9111. if !ok {
  9112. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9113. }
  9114. sv.Family = ptr.String(jtv)
  9115. }
  9116. case "NodeType":
  9117. if value != nil {
  9118. jtv, ok := value.(string)
  9119. if !ok {
  9120. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9121. }
  9122. sv.NodeType = ptr.String(jtv)
  9123. }
  9124. case "Region":
  9125. if value != nil {
  9126. jtv, ok := value.(string)
  9127. if !ok {
  9128. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9129. }
  9130. sv.Region = ptr.String(jtv)
  9131. }
  9132. case "SizeFlexEligible":
  9133. if value != nil {
  9134. jtv, ok := value.(bool)
  9135. if !ok {
  9136. return fmt.Errorf("expected GenericBoolean to be of type *bool, got %T instead", value)
  9137. }
  9138. sv.SizeFlexEligible = jtv
  9139. }
  9140. default:
  9141. _, _ = key, value
  9142. }
  9143. }
  9144. *v = sv
  9145. return nil
  9146. }
  9147. func awsAwsjson11_deserializeDocumentMetrics(v *map[string]types.MetricValue, value interface{}) error {
  9148. if v == nil {
  9149. return fmt.Errorf("unexpected nil of type %T", v)
  9150. }
  9151. if value == nil {
  9152. return nil
  9153. }
  9154. shape, ok := value.(map[string]interface{})
  9155. if !ok {
  9156. return fmt.Errorf("unexpected JSON type %v", value)
  9157. }
  9158. var mv map[string]types.MetricValue
  9159. if *v == nil {
  9160. mv = map[string]types.MetricValue{}
  9161. } else {
  9162. mv = *v
  9163. }
  9164. for key, value := range shape {
  9165. var parsedVal types.MetricValue
  9166. mapVar := parsedVal
  9167. destAddr := &mapVar
  9168. if err := awsAwsjson11_deserializeDocumentMetricValue(&destAddr, value); err != nil {
  9169. return err
  9170. }
  9171. parsedVal = *destAddr
  9172. mv[key] = parsedVal
  9173. }
  9174. *v = mv
  9175. return nil
  9176. }
  9177. func awsAwsjson11_deserializeDocumentMetricsOverLookbackPeriod(v *[]types.RecommendationDetailHourlyMetrics, value interface{}) error {
  9178. if v == nil {
  9179. return fmt.Errorf("unexpected nil of type %T", v)
  9180. }
  9181. if value == nil {
  9182. return nil
  9183. }
  9184. shape, ok := value.([]interface{})
  9185. if !ok {
  9186. return fmt.Errorf("unexpected JSON type %v", value)
  9187. }
  9188. var cv []types.RecommendationDetailHourlyMetrics
  9189. if *v == nil {
  9190. cv = []types.RecommendationDetailHourlyMetrics{}
  9191. } else {
  9192. cv = *v
  9193. }
  9194. for _, value := range shape {
  9195. var col types.RecommendationDetailHourlyMetrics
  9196. destAddr := &col
  9197. if err := awsAwsjson11_deserializeDocumentRecommendationDetailHourlyMetrics(&destAddr, value); err != nil {
  9198. return err
  9199. }
  9200. col = *destAddr
  9201. cv = append(cv, col)
  9202. }
  9203. *v = cv
  9204. return nil
  9205. }
  9206. func awsAwsjson11_deserializeDocumentMetricValue(v **types.MetricValue, value interface{}) error {
  9207. if v == nil {
  9208. return fmt.Errorf("unexpected nil of type %T", v)
  9209. }
  9210. if value == nil {
  9211. return nil
  9212. }
  9213. shape, ok := value.(map[string]interface{})
  9214. if !ok {
  9215. return fmt.Errorf("unexpected JSON type %v", value)
  9216. }
  9217. var sv *types.MetricValue
  9218. if *v == nil {
  9219. sv = &types.MetricValue{}
  9220. } else {
  9221. sv = *v
  9222. }
  9223. for key, value := range shape {
  9224. switch key {
  9225. case "Amount":
  9226. if value != nil {
  9227. jtv, ok := value.(string)
  9228. if !ok {
  9229. return fmt.Errorf("expected MetricAmount to be of type string, got %T instead", value)
  9230. }
  9231. sv.Amount = ptr.String(jtv)
  9232. }
  9233. case "Unit":
  9234. if value != nil {
  9235. jtv, ok := value.(string)
  9236. if !ok {
  9237. return fmt.Errorf("expected MetricUnit to be of type string, got %T instead", value)
  9238. }
  9239. sv.Unit = ptr.String(jtv)
  9240. }
  9241. default:
  9242. _, _ = key, value
  9243. }
  9244. }
  9245. *v = sv
  9246. return nil
  9247. }
  9248. func awsAwsjson11_deserializeDocumentModifyRecommendationDetail(v **types.ModifyRecommendationDetail, value interface{}) error {
  9249. if v == nil {
  9250. return fmt.Errorf("unexpected nil of type %T", v)
  9251. }
  9252. if value == nil {
  9253. return nil
  9254. }
  9255. shape, ok := value.(map[string]interface{})
  9256. if !ok {
  9257. return fmt.Errorf("unexpected JSON type %v", value)
  9258. }
  9259. var sv *types.ModifyRecommendationDetail
  9260. if *v == nil {
  9261. sv = &types.ModifyRecommendationDetail{}
  9262. } else {
  9263. sv = *v
  9264. }
  9265. for key, value := range shape {
  9266. switch key {
  9267. case "TargetInstances":
  9268. if err := awsAwsjson11_deserializeDocumentTargetInstancesList(&sv.TargetInstances, value); err != nil {
  9269. return err
  9270. }
  9271. default:
  9272. _, _ = key, value
  9273. }
  9274. }
  9275. *v = sv
  9276. return nil
  9277. }
  9278. func awsAwsjson11_deserializeDocumentMonitorArnList(v *[]string, value interface{}) error {
  9279. if v == nil {
  9280. return fmt.Errorf("unexpected nil of type %T", v)
  9281. }
  9282. if value == nil {
  9283. return nil
  9284. }
  9285. shape, ok := value.([]interface{})
  9286. if !ok {
  9287. return fmt.Errorf("unexpected JSON type %v", value)
  9288. }
  9289. var cv []string
  9290. if *v == nil {
  9291. cv = []string{}
  9292. } else {
  9293. cv = *v
  9294. }
  9295. for _, value := range shape {
  9296. var col string
  9297. if value != nil {
  9298. jtv, ok := value.(string)
  9299. if !ok {
  9300. return fmt.Errorf("expected Arn to be of type string, got %T instead", value)
  9301. }
  9302. col = jtv
  9303. }
  9304. cv = append(cv, col)
  9305. }
  9306. *v = cv
  9307. return nil
  9308. }
  9309. func awsAwsjson11_deserializeDocumentNetworkResourceUtilization(v **types.NetworkResourceUtilization, value interface{}) error {
  9310. if v == nil {
  9311. return fmt.Errorf("unexpected nil of type %T", v)
  9312. }
  9313. if value == nil {
  9314. return nil
  9315. }
  9316. shape, ok := value.(map[string]interface{})
  9317. if !ok {
  9318. return fmt.Errorf("unexpected JSON type %v", value)
  9319. }
  9320. var sv *types.NetworkResourceUtilization
  9321. if *v == nil {
  9322. sv = &types.NetworkResourceUtilization{}
  9323. } else {
  9324. sv = *v
  9325. }
  9326. for key, value := range shape {
  9327. switch key {
  9328. case "NetworkInBytesPerSecond":
  9329. if value != nil {
  9330. jtv, ok := value.(string)
  9331. if !ok {
  9332. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9333. }
  9334. sv.NetworkInBytesPerSecond = ptr.String(jtv)
  9335. }
  9336. case "NetworkOutBytesPerSecond":
  9337. if value != nil {
  9338. jtv, ok := value.(string)
  9339. if !ok {
  9340. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9341. }
  9342. sv.NetworkOutBytesPerSecond = ptr.String(jtv)
  9343. }
  9344. case "NetworkPacketsInPerSecond":
  9345. if value != nil {
  9346. jtv, ok := value.(string)
  9347. if !ok {
  9348. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9349. }
  9350. sv.NetworkPacketsInPerSecond = ptr.String(jtv)
  9351. }
  9352. case "NetworkPacketsOutPerSecond":
  9353. if value != nil {
  9354. jtv, ok := value.(string)
  9355. if !ok {
  9356. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9357. }
  9358. sv.NetworkPacketsOutPerSecond = ptr.String(jtv)
  9359. }
  9360. default:
  9361. _, _ = key, value
  9362. }
  9363. }
  9364. *v = sv
  9365. return nil
  9366. }
  9367. func awsAwsjson11_deserializeDocumentPlatformDifferences(v *[]types.PlatformDifference, value interface{}) error {
  9368. if v == nil {
  9369. return fmt.Errorf("unexpected nil of type %T", v)
  9370. }
  9371. if value == nil {
  9372. return nil
  9373. }
  9374. shape, ok := value.([]interface{})
  9375. if !ok {
  9376. return fmt.Errorf("unexpected JSON type %v", value)
  9377. }
  9378. var cv []types.PlatformDifference
  9379. if *v == nil {
  9380. cv = []types.PlatformDifference{}
  9381. } else {
  9382. cv = *v
  9383. }
  9384. for _, value := range shape {
  9385. var col types.PlatformDifference
  9386. if value != nil {
  9387. jtv, ok := value.(string)
  9388. if !ok {
  9389. return fmt.Errorf("expected PlatformDifference to be of type string, got %T instead", value)
  9390. }
  9391. col = types.PlatformDifference(jtv)
  9392. }
  9393. cv = append(cv, col)
  9394. }
  9395. *v = cv
  9396. return nil
  9397. }
  9398. func awsAwsjson11_deserializeDocumentRDSInstanceDetails(v **types.RDSInstanceDetails, value interface{}) error {
  9399. if v == nil {
  9400. return fmt.Errorf("unexpected nil of type %T", v)
  9401. }
  9402. if value == nil {
  9403. return nil
  9404. }
  9405. shape, ok := value.(map[string]interface{})
  9406. if !ok {
  9407. return fmt.Errorf("unexpected JSON type %v", value)
  9408. }
  9409. var sv *types.RDSInstanceDetails
  9410. if *v == nil {
  9411. sv = &types.RDSInstanceDetails{}
  9412. } else {
  9413. sv = *v
  9414. }
  9415. for key, value := range shape {
  9416. switch key {
  9417. case "CurrentGeneration":
  9418. if value != nil {
  9419. jtv, ok := value.(bool)
  9420. if !ok {
  9421. return fmt.Errorf("expected GenericBoolean to be of type *bool, got %T instead", value)
  9422. }
  9423. sv.CurrentGeneration = jtv
  9424. }
  9425. case "DatabaseEdition":
  9426. if value != nil {
  9427. jtv, ok := value.(string)
  9428. if !ok {
  9429. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9430. }
  9431. sv.DatabaseEdition = ptr.String(jtv)
  9432. }
  9433. case "DatabaseEngine":
  9434. if value != nil {
  9435. jtv, ok := value.(string)
  9436. if !ok {
  9437. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9438. }
  9439. sv.DatabaseEngine = ptr.String(jtv)
  9440. }
  9441. case "DeploymentModel":
  9442. if value != nil {
  9443. jtv, ok := value.(string)
  9444. if !ok {
  9445. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9446. }
  9447. sv.DeploymentModel = ptr.String(jtv)
  9448. }
  9449. case "DeploymentOption":
  9450. if value != nil {
  9451. jtv, ok := value.(string)
  9452. if !ok {
  9453. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9454. }
  9455. sv.DeploymentOption = ptr.String(jtv)
  9456. }
  9457. case "Family":
  9458. if value != nil {
  9459. jtv, ok := value.(string)
  9460. if !ok {
  9461. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9462. }
  9463. sv.Family = ptr.String(jtv)
  9464. }
  9465. case "InstanceType":
  9466. if value != nil {
  9467. jtv, ok := value.(string)
  9468. if !ok {
  9469. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9470. }
  9471. sv.InstanceType = ptr.String(jtv)
  9472. }
  9473. case "LicenseModel":
  9474. if value != nil {
  9475. jtv, ok := value.(string)
  9476. if !ok {
  9477. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9478. }
  9479. sv.LicenseModel = ptr.String(jtv)
  9480. }
  9481. case "Region":
  9482. if value != nil {
  9483. jtv, ok := value.(string)
  9484. if !ok {
  9485. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9486. }
  9487. sv.Region = ptr.String(jtv)
  9488. }
  9489. case "SizeFlexEligible":
  9490. if value != nil {
  9491. jtv, ok := value.(bool)
  9492. if !ok {
  9493. return fmt.Errorf("expected GenericBoolean to be of type *bool, got %T instead", value)
  9494. }
  9495. sv.SizeFlexEligible = jtv
  9496. }
  9497. default:
  9498. _, _ = key, value
  9499. }
  9500. }
  9501. *v = sv
  9502. return nil
  9503. }
  9504. func awsAwsjson11_deserializeDocumentRecommendationDetailData(v **types.RecommendationDetailData, value interface{}) error {
  9505. if v == nil {
  9506. return fmt.Errorf("unexpected nil of type %T", v)
  9507. }
  9508. if value == nil {
  9509. return nil
  9510. }
  9511. shape, ok := value.(map[string]interface{})
  9512. if !ok {
  9513. return fmt.Errorf("unexpected JSON type %v", value)
  9514. }
  9515. var sv *types.RecommendationDetailData
  9516. if *v == nil {
  9517. sv = &types.RecommendationDetailData{}
  9518. } else {
  9519. sv = *v
  9520. }
  9521. for key, value := range shape {
  9522. switch key {
  9523. case "AccountId":
  9524. if value != nil {
  9525. jtv, ok := value.(string)
  9526. if !ok {
  9527. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9528. }
  9529. sv.AccountId = ptr.String(jtv)
  9530. }
  9531. case "AccountScope":
  9532. if value != nil {
  9533. jtv, ok := value.(string)
  9534. if !ok {
  9535. return fmt.Errorf("expected AccountScope to be of type string, got %T instead", value)
  9536. }
  9537. sv.AccountScope = types.AccountScope(jtv)
  9538. }
  9539. case "CurrencyCode":
  9540. if value != nil {
  9541. jtv, ok := value.(string)
  9542. if !ok {
  9543. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9544. }
  9545. sv.CurrencyCode = ptr.String(jtv)
  9546. }
  9547. case "CurrentAverageCoverage":
  9548. if value != nil {
  9549. jtv, ok := value.(string)
  9550. if !ok {
  9551. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9552. }
  9553. sv.CurrentAverageCoverage = ptr.String(jtv)
  9554. }
  9555. case "CurrentAverageHourlyOnDemandSpend":
  9556. if value != nil {
  9557. jtv, ok := value.(string)
  9558. if !ok {
  9559. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9560. }
  9561. sv.CurrentAverageHourlyOnDemandSpend = ptr.String(jtv)
  9562. }
  9563. case "CurrentMaximumHourlyOnDemandSpend":
  9564. if value != nil {
  9565. jtv, ok := value.(string)
  9566. if !ok {
  9567. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9568. }
  9569. sv.CurrentMaximumHourlyOnDemandSpend = ptr.String(jtv)
  9570. }
  9571. case "CurrentMinimumHourlyOnDemandSpend":
  9572. if value != nil {
  9573. jtv, ok := value.(string)
  9574. if !ok {
  9575. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9576. }
  9577. sv.CurrentMinimumHourlyOnDemandSpend = ptr.String(jtv)
  9578. }
  9579. case "EstimatedAverageCoverage":
  9580. if value != nil {
  9581. jtv, ok := value.(string)
  9582. if !ok {
  9583. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9584. }
  9585. sv.EstimatedAverageCoverage = ptr.String(jtv)
  9586. }
  9587. case "EstimatedAverageUtilization":
  9588. if value != nil {
  9589. jtv, ok := value.(string)
  9590. if !ok {
  9591. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9592. }
  9593. sv.EstimatedAverageUtilization = ptr.String(jtv)
  9594. }
  9595. case "EstimatedMonthlySavingsAmount":
  9596. if value != nil {
  9597. jtv, ok := value.(string)
  9598. if !ok {
  9599. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9600. }
  9601. sv.EstimatedMonthlySavingsAmount = ptr.String(jtv)
  9602. }
  9603. case "EstimatedOnDemandCost":
  9604. if value != nil {
  9605. jtv, ok := value.(string)
  9606. if !ok {
  9607. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9608. }
  9609. sv.EstimatedOnDemandCost = ptr.String(jtv)
  9610. }
  9611. case "EstimatedOnDemandCostWithCurrentCommitment":
  9612. if value != nil {
  9613. jtv, ok := value.(string)
  9614. if !ok {
  9615. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9616. }
  9617. sv.EstimatedOnDemandCostWithCurrentCommitment = ptr.String(jtv)
  9618. }
  9619. case "EstimatedROI":
  9620. if value != nil {
  9621. jtv, ok := value.(string)
  9622. if !ok {
  9623. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9624. }
  9625. sv.EstimatedROI = ptr.String(jtv)
  9626. }
  9627. case "EstimatedSavingsAmount":
  9628. if value != nil {
  9629. jtv, ok := value.(string)
  9630. if !ok {
  9631. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9632. }
  9633. sv.EstimatedSavingsAmount = ptr.String(jtv)
  9634. }
  9635. case "EstimatedSavingsPercentage":
  9636. if value != nil {
  9637. jtv, ok := value.(string)
  9638. if !ok {
  9639. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9640. }
  9641. sv.EstimatedSavingsPercentage = ptr.String(jtv)
  9642. }
  9643. case "EstimatedSPCost":
  9644. if value != nil {
  9645. jtv, ok := value.(string)
  9646. if !ok {
  9647. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9648. }
  9649. sv.EstimatedSPCost = ptr.String(jtv)
  9650. }
  9651. case "ExistingHourlyCommitment":
  9652. if value != nil {
  9653. jtv, ok := value.(string)
  9654. if !ok {
  9655. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9656. }
  9657. sv.ExistingHourlyCommitment = ptr.String(jtv)
  9658. }
  9659. case "GenerationTimestamp":
  9660. if value != nil {
  9661. jtv, ok := value.(string)
  9662. if !ok {
  9663. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  9664. }
  9665. sv.GenerationTimestamp = ptr.String(jtv)
  9666. }
  9667. case "HourlyCommitmentToPurchase":
  9668. if value != nil {
  9669. jtv, ok := value.(string)
  9670. if !ok {
  9671. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9672. }
  9673. sv.HourlyCommitmentToPurchase = ptr.String(jtv)
  9674. }
  9675. case "InstanceFamily":
  9676. if value != nil {
  9677. jtv, ok := value.(string)
  9678. if !ok {
  9679. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9680. }
  9681. sv.InstanceFamily = ptr.String(jtv)
  9682. }
  9683. case "LatestUsageTimestamp":
  9684. if value != nil {
  9685. jtv, ok := value.(string)
  9686. if !ok {
  9687. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  9688. }
  9689. sv.LatestUsageTimestamp = ptr.String(jtv)
  9690. }
  9691. case "LookbackPeriodInDays":
  9692. if value != nil {
  9693. jtv, ok := value.(string)
  9694. if !ok {
  9695. return fmt.Errorf("expected LookbackPeriodInDays to be of type string, got %T instead", value)
  9696. }
  9697. sv.LookbackPeriodInDays = types.LookbackPeriodInDays(jtv)
  9698. }
  9699. case "MetricsOverLookbackPeriod":
  9700. if err := awsAwsjson11_deserializeDocumentMetricsOverLookbackPeriod(&sv.MetricsOverLookbackPeriod, value); err != nil {
  9701. return err
  9702. }
  9703. case "OfferingId":
  9704. if value != nil {
  9705. jtv, ok := value.(string)
  9706. if !ok {
  9707. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9708. }
  9709. sv.OfferingId = ptr.String(jtv)
  9710. }
  9711. case "PaymentOption":
  9712. if value != nil {
  9713. jtv, ok := value.(string)
  9714. if !ok {
  9715. return fmt.Errorf("expected PaymentOption to be of type string, got %T instead", value)
  9716. }
  9717. sv.PaymentOption = types.PaymentOption(jtv)
  9718. }
  9719. case "Region":
  9720. if value != nil {
  9721. jtv, ok := value.(string)
  9722. if !ok {
  9723. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9724. }
  9725. sv.Region = ptr.String(jtv)
  9726. }
  9727. case "SavingsPlansType":
  9728. if value != nil {
  9729. jtv, ok := value.(string)
  9730. if !ok {
  9731. return fmt.Errorf("expected SupportedSavingsPlansType to be of type string, got %T instead", value)
  9732. }
  9733. sv.SavingsPlansType = types.SupportedSavingsPlansType(jtv)
  9734. }
  9735. case "TermInYears":
  9736. if value != nil {
  9737. jtv, ok := value.(string)
  9738. if !ok {
  9739. return fmt.Errorf("expected TermInYears to be of type string, got %T instead", value)
  9740. }
  9741. sv.TermInYears = types.TermInYears(jtv)
  9742. }
  9743. case "UpfrontCost":
  9744. if value != nil {
  9745. jtv, ok := value.(string)
  9746. if !ok {
  9747. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9748. }
  9749. sv.UpfrontCost = ptr.String(jtv)
  9750. }
  9751. default:
  9752. _, _ = key, value
  9753. }
  9754. }
  9755. *v = sv
  9756. return nil
  9757. }
  9758. func awsAwsjson11_deserializeDocumentRecommendationDetailHourlyMetrics(v **types.RecommendationDetailHourlyMetrics, value interface{}) error {
  9759. if v == nil {
  9760. return fmt.Errorf("unexpected nil of type %T", v)
  9761. }
  9762. if value == nil {
  9763. return nil
  9764. }
  9765. shape, ok := value.(map[string]interface{})
  9766. if !ok {
  9767. return fmt.Errorf("unexpected JSON type %v", value)
  9768. }
  9769. var sv *types.RecommendationDetailHourlyMetrics
  9770. if *v == nil {
  9771. sv = &types.RecommendationDetailHourlyMetrics{}
  9772. } else {
  9773. sv = *v
  9774. }
  9775. for key, value := range shape {
  9776. switch key {
  9777. case "CurrentCoverage":
  9778. if value != nil {
  9779. jtv, ok := value.(string)
  9780. if !ok {
  9781. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9782. }
  9783. sv.CurrentCoverage = ptr.String(jtv)
  9784. }
  9785. case "EstimatedCoverage":
  9786. if value != nil {
  9787. jtv, ok := value.(string)
  9788. if !ok {
  9789. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9790. }
  9791. sv.EstimatedCoverage = ptr.String(jtv)
  9792. }
  9793. case "EstimatedNewCommitmentUtilization":
  9794. if value != nil {
  9795. jtv, ok := value.(string)
  9796. if !ok {
  9797. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9798. }
  9799. sv.EstimatedNewCommitmentUtilization = ptr.String(jtv)
  9800. }
  9801. case "EstimatedOnDemandCost":
  9802. if value != nil {
  9803. jtv, ok := value.(string)
  9804. if !ok {
  9805. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9806. }
  9807. sv.EstimatedOnDemandCost = ptr.String(jtv)
  9808. }
  9809. case "StartTime":
  9810. if value != nil {
  9811. jtv, ok := value.(string)
  9812. if !ok {
  9813. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  9814. }
  9815. sv.StartTime = ptr.String(jtv)
  9816. }
  9817. default:
  9818. _, _ = key, value
  9819. }
  9820. }
  9821. *v = sv
  9822. return nil
  9823. }
  9824. func awsAwsjson11_deserializeDocumentRedshiftInstanceDetails(v **types.RedshiftInstanceDetails, value interface{}) error {
  9825. if v == nil {
  9826. return fmt.Errorf("unexpected nil of type %T", v)
  9827. }
  9828. if value == nil {
  9829. return nil
  9830. }
  9831. shape, ok := value.(map[string]interface{})
  9832. if !ok {
  9833. return fmt.Errorf("unexpected JSON type %v", value)
  9834. }
  9835. var sv *types.RedshiftInstanceDetails
  9836. if *v == nil {
  9837. sv = &types.RedshiftInstanceDetails{}
  9838. } else {
  9839. sv = *v
  9840. }
  9841. for key, value := range shape {
  9842. switch key {
  9843. case "CurrentGeneration":
  9844. if value != nil {
  9845. jtv, ok := value.(bool)
  9846. if !ok {
  9847. return fmt.Errorf("expected GenericBoolean to be of type *bool, got %T instead", value)
  9848. }
  9849. sv.CurrentGeneration = jtv
  9850. }
  9851. case "Family":
  9852. if value != nil {
  9853. jtv, ok := value.(string)
  9854. if !ok {
  9855. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9856. }
  9857. sv.Family = ptr.String(jtv)
  9858. }
  9859. case "NodeType":
  9860. if value != nil {
  9861. jtv, ok := value.(string)
  9862. if !ok {
  9863. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9864. }
  9865. sv.NodeType = ptr.String(jtv)
  9866. }
  9867. case "Region":
  9868. if value != nil {
  9869. jtv, ok := value.(string)
  9870. if !ok {
  9871. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  9872. }
  9873. sv.Region = ptr.String(jtv)
  9874. }
  9875. case "SizeFlexEligible":
  9876. if value != nil {
  9877. jtv, ok := value.(bool)
  9878. if !ok {
  9879. return fmt.Errorf("expected GenericBoolean to be of type *bool, got %T instead", value)
  9880. }
  9881. sv.SizeFlexEligible = jtv
  9882. }
  9883. default:
  9884. _, _ = key, value
  9885. }
  9886. }
  9887. *v = sv
  9888. return nil
  9889. }
  9890. func awsAwsjson11_deserializeDocumentRequestChangedException(v **types.RequestChangedException, value interface{}) error {
  9891. if v == nil {
  9892. return fmt.Errorf("unexpected nil of type %T", v)
  9893. }
  9894. if value == nil {
  9895. return nil
  9896. }
  9897. shape, ok := value.(map[string]interface{})
  9898. if !ok {
  9899. return fmt.Errorf("unexpected JSON type %v", value)
  9900. }
  9901. var sv *types.RequestChangedException
  9902. if *v == nil {
  9903. sv = &types.RequestChangedException{}
  9904. } else {
  9905. sv = *v
  9906. }
  9907. for key, value := range shape {
  9908. switch key {
  9909. case "message", "Message":
  9910. if value != nil {
  9911. jtv, ok := value.(string)
  9912. if !ok {
  9913. return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value)
  9914. }
  9915. sv.Message = ptr.String(jtv)
  9916. }
  9917. default:
  9918. _, _ = key, value
  9919. }
  9920. }
  9921. *v = sv
  9922. return nil
  9923. }
  9924. func awsAwsjson11_deserializeDocumentReservationAggregates(v **types.ReservationAggregates, value interface{}) error {
  9925. if v == nil {
  9926. return fmt.Errorf("unexpected nil of type %T", v)
  9927. }
  9928. if value == nil {
  9929. return nil
  9930. }
  9931. shape, ok := value.(map[string]interface{})
  9932. if !ok {
  9933. return fmt.Errorf("unexpected JSON type %v", value)
  9934. }
  9935. var sv *types.ReservationAggregates
  9936. if *v == nil {
  9937. sv = &types.ReservationAggregates{}
  9938. } else {
  9939. sv = *v
  9940. }
  9941. for key, value := range shape {
  9942. switch key {
  9943. case "AmortizedRecurringFee":
  9944. if value != nil {
  9945. jtv, ok := value.(string)
  9946. if !ok {
  9947. return fmt.Errorf("expected AmortizedRecurringFee to be of type string, got %T instead", value)
  9948. }
  9949. sv.AmortizedRecurringFee = ptr.String(jtv)
  9950. }
  9951. case "AmortizedUpfrontFee":
  9952. if value != nil {
  9953. jtv, ok := value.(string)
  9954. if !ok {
  9955. return fmt.Errorf("expected AmortizedUpfrontFee to be of type string, got %T instead", value)
  9956. }
  9957. sv.AmortizedUpfrontFee = ptr.String(jtv)
  9958. }
  9959. case "NetRISavings":
  9960. if value != nil {
  9961. jtv, ok := value.(string)
  9962. if !ok {
  9963. return fmt.Errorf("expected NetRISavings to be of type string, got %T instead", value)
  9964. }
  9965. sv.NetRISavings = ptr.String(jtv)
  9966. }
  9967. case "OnDemandCostOfRIHoursUsed":
  9968. if value != nil {
  9969. jtv, ok := value.(string)
  9970. if !ok {
  9971. return fmt.Errorf("expected OnDemandCostOfRIHoursUsed to be of type string, got %T instead", value)
  9972. }
  9973. sv.OnDemandCostOfRIHoursUsed = ptr.String(jtv)
  9974. }
  9975. case "PurchasedHours":
  9976. if value != nil {
  9977. jtv, ok := value.(string)
  9978. if !ok {
  9979. return fmt.Errorf("expected PurchasedHours to be of type string, got %T instead", value)
  9980. }
  9981. sv.PurchasedHours = ptr.String(jtv)
  9982. }
  9983. case "PurchasedUnits":
  9984. if value != nil {
  9985. jtv, ok := value.(string)
  9986. if !ok {
  9987. return fmt.Errorf("expected PurchasedUnits to be of type string, got %T instead", value)
  9988. }
  9989. sv.PurchasedUnits = ptr.String(jtv)
  9990. }
  9991. case "RealizedSavings":
  9992. if value != nil {
  9993. jtv, ok := value.(string)
  9994. if !ok {
  9995. return fmt.Errorf("expected RealizedSavings to be of type string, got %T instead", value)
  9996. }
  9997. sv.RealizedSavings = ptr.String(jtv)
  9998. }
  9999. case "RICostForUnusedHours":
  10000. if value != nil {
  10001. jtv, ok := value.(string)
  10002. if !ok {
  10003. return fmt.Errorf("expected RICostForUnusedHours to be of type string, got %T instead", value)
  10004. }
  10005. sv.RICostForUnusedHours = ptr.String(jtv)
  10006. }
  10007. case "TotalActualHours":
  10008. if value != nil {
  10009. jtv, ok := value.(string)
  10010. if !ok {
  10011. return fmt.Errorf("expected TotalActualHours to be of type string, got %T instead", value)
  10012. }
  10013. sv.TotalActualHours = ptr.String(jtv)
  10014. }
  10015. case "TotalActualUnits":
  10016. if value != nil {
  10017. jtv, ok := value.(string)
  10018. if !ok {
  10019. return fmt.Errorf("expected TotalActualUnits to be of type string, got %T instead", value)
  10020. }
  10021. sv.TotalActualUnits = ptr.String(jtv)
  10022. }
  10023. case "TotalAmortizedFee":
  10024. if value != nil {
  10025. jtv, ok := value.(string)
  10026. if !ok {
  10027. return fmt.Errorf("expected TotalAmortizedFee to be of type string, got %T instead", value)
  10028. }
  10029. sv.TotalAmortizedFee = ptr.String(jtv)
  10030. }
  10031. case "TotalPotentialRISavings":
  10032. if value != nil {
  10033. jtv, ok := value.(string)
  10034. if !ok {
  10035. return fmt.Errorf("expected TotalPotentialRISavings to be of type string, got %T instead", value)
  10036. }
  10037. sv.TotalPotentialRISavings = ptr.String(jtv)
  10038. }
  10039. case "UnrealizedSavings":
  10040. if value != nil {
  10041. jtv, ok := value.(string)
  10042. if !ok {
  10043. return fmt.Errorf("expected UnrealizedSavings to be of type string, got %T instead", value)
  10044. }
  10045. sv.UnrealizedSavings = ptr.String(jtv)
  10046. }
  10047. case "UnusedHours":
  10048. if value != nil {
  10049. jtv, ok := value.(string)
  10050. if !ok {
  10051. return fmt.Errorf("expected UnusedHours to be of type string, got %T instead", value)
  10052. }
  10053. sv.UnusedHours = ptr.String(jtv)
  10054. }
  10055. case "UnusedUnits":
  10056. if value != nil {
  10057. jtv, ok := value.(string)
  10058. if !ok {
  10059. return fmt.Errorf("expected UnusedUnits to be of type string, got %T instead", value)
  10060. }
  10061. sv.UnusedUnits = ptr.String(jtv)
  10062. }
  10063. case "UtilizationPercentage":
  10064. if value != nil {
  10065. jtv, ok := value.(string)
  10066. if !ok {
  10067. return fmt.Errorf("expected UtilizationPercentage to be of type string, got %T instead", value)
  10068. }
  10069. sv.UtilizationPercentage = ptr.String(jtv)
  10070. }
  10071. case "UtilizationPercentageInUnits":
  10072. if value != nil {
  10073. jtv, ok := value.(string)
  10074. if !ok {
  10075. return fmt.Errorf("expected UtilizationPercentageInUnits to be of type string, got %T instead", value)
  10076. }
  10077. sv.UtilizationPercentageInUnits = ptr.String(jtv)
  10078. }
  10079. default:
  10080. _, _ = key, value
  10081. }
  10082. }
  10083. *v = sv
  10084. return nil
  10085. }
  10086. func awsAwsjson11_deserializeDocumentReservationCoverageGroup(v **types.ReservationCoverageGroup, value interface{}) error {
  10087. if v == nil {
  10088. return fmt.Errorf("unexpected nil of type %T", v)
  10089. }
  10090. if value == nil {
  10091. return nil
  10092. }
  10093. shape, ok := value.(map[string]interface{})
  10094. if !ok {
  10095. return fmt.Errorf("unexpected JSON type %v", value)
  10096. }
  10097. var sv *types.ReservationCoverageGroup
  10098. if *v == nil {
  10099. sv = &types.ReservationCoverageGroup{}
  10100. } else {
  10101. sv = *v
  10102. }
  10103. for key, value := range shape {
  10104. switch key {
  10105. case "Attributes":
  10106. if err := awsAwsjson11_deserializeDocumentAttributes(&sv.Attributes, value); err != nil {
  10107. return err
  10108. }
  10109. case "Coverage":
  10110. if err := awsAwsjson11_deserializeDocumentCoverage(&sv.Coverage, value); err != nil {
  10111. return err
  10112. }
  10113. default:
  10114. _, _ = key, value
  10115. }
  10116. }
  10117. *v = sv
  10118. return nil
  10119. }
  10120. func awsAwsjson11_deserializeDocumentReservationCoverageGroups(v *[]types.ReservationCoverageGroup, value interface{}) error {
  10121. if v == nil {
  10122. return fmt.Errorf("unexpected nil of type %T", v)
  10123. }
  10124. if value == nil {
  10125. return nil
  10126. }
  10127. shape, ok := value.([]interface{})
  10128. if !ok {
  10129. return fmt.Errorf("unexpected JSON type %v", value)
  10130. }
  10131. var cv []types.ReservationCoverageGroup
  10132. if *v == nil {
  10133. cv = []types.ReservationCoverageGroup{}
  10134. } else {
  10135. cv = *v
  10136. }
  10137. for _, value := range shape {
  10138. var col types.ReservationCoverageGroup
  10139. destAddr := &col
  10140. if err := awsAwsjson11_deserializeDocumentReservationCoverageGroup(&destAddr, value); err != nil {
  10141. return err
  10142. }
  10143. col = *destAddr
  10144. cv = append(cv, col)
  10145. }
  10146. *v = cv
  10147. return nil
  10148. }
  10149. func awsAwsjson11_deserializeDocumentReservationPurchaseRecommendation(v **types.ReservationPurchaseRecommendation, value interface{}) error {
  10150. if v == nil {
  10151. return fmt.Errorf("unexpected nil of type %T", v)
  10152. }
  10153. if value == nil {
  10154. return nil
  10155. }
  10156. shape, ok := value.(map[string]interface{})
  10157. if !ok {
  10158. return fmt.Errorf("unexpected JSON type %v", value)
  10159. }
  10160. var sv *types.ReservationPurchaseRecommendation
  10161. if *v == nil {
  10162. sv = &types.ReservationPurchaseRecommendation{}
  10163. } else {
  10164. sv = *v
  10165. }
  10166. for key, value := range shape {
  10167. switch key {
  10168. case "AccountScope":
  10169. if value != nil {
  10170. jtv, ok := value.(string)
  10171. if !ok {
  10172. return fmt.Errorf("expected AccountScope to be of type string, got %T instead", value)
  10173. }
  10174. sv.AccountScope = types.AccountScope(jtv)
  10175. }
  10176. case "LookbackPeriodInDays":
  10177. if value != nil {
  10178. jtv, ok := value.(string)
  10179. if !ok {
  10180. return fmt.Errorf("expected LookbackPeriodInDays to be of type string, got %T instead", value)
  10181. }
  10182. sv.LookbackPeriodInDays = types.LookbackPeriodInDays(jtv)
  10183. }
  10184. case "PaymentOption":
  10185. if value != nil {
  10186. jtv, ok := value.(string)
  10187. if !ok {
  10188. return fmt.Errorf("expected PaymentOption to be of type string, got %T instead", value)
  10189. }
  10190. sv.PaymentOption = types.PaymentOption(jtv)
  10191. }
  10192. case "RecommendationDetails":
  10193. if err := awsAwsjson11_deserializeDocumentReservationPurchaseRecommendationDetails(&sv.RecommendationDetails, value); err != nil {
  10194. return err
  10195. }
  10196. case "RecommendationSummary":
  10197. if err := awsAwsjson11_deserializeDocumentReservationPurchaseRecommendationSummary(&sv.RecommendationSummary, value); err != nil {
  10198. return err
  10199. }
  10200. case "ServiceSpecification":
  10201. if err := awsAwsjson11_deserializeDocumentServiceSpecification(&sv.ServiceSpecification, value); err != nil {
  10202. return err
  10203. }
  10204. case "TermInYears":
  10205. if value != nil {
  10206. jtv, ok := value.(string)
  10207. if !ok {
  10208. return fmt.Errorf("expected TermInYears to be of type string, got %T instead", value)
  10209. }
  10210. sv.TermInYears = types.TermInYears(jtv)
  10211. }
  10212. default:
  10213. _, _ = key, value
  10214. }
  10215. }
  10216. *v = sv
  10217. return nil
  10218. }
  10219. func awsAwsjson11_deserializeDocumentReservationPurchaseRecommendationDetail(v **types.ReservationPurchaseRecommendationDetail, value interface{}) error {
  10220. if v == nil {
  10221. return fmt.Errorf("unexpected nil of type %T", v)
  10222. }
  10223. if value == nil {
  10224. return nil
  10225. }
  10226. shape, ok := value.(map[string]interface{})
  10227. if !ok {
  10228. return fmt.Errorf("unexpected JSON type %v", value)
  10229. }
  10230. var sv *types.ReservationPurchaseRecommendationDetail
  10231. if *v == nil {
  10232. sv = &types.ReservationPurchaseRecommendationDetail{}
  10233. } else {
  10234. sv = *v
  10235. }
  10236. for key, value := range shape {
  10237. switch key {
  10238. case "AccountId":
  10239. if value != nil {
  10240. jtv, ok := value.(string)
  10241. if !ok {
  10242. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10243. }
  10244. sv.AccountId = ptr.String(jtv)
  10245. }
  10246. case "AverageNormalizedUnitsUsedPerHour":
  10247. if value != nil {
  10248. jtv, ok := value.(string)
  10249. if !ok {
  10250. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10251. }
  10252. sv.AverageNormalizedUnitsUsedPerHour = ptr.String(jtv)
  10253. }
  10254. case "AverageNumberOfCapacityUnitsUsedPerHour":
  10255. if value != nil {
  10256. jtv, ok := value.(string)
  10257. if !ok {
  10258. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10259. }
  10260. sv.AverageNumberOfCapacityUnitsUsedPerHour = ptr.String(jtv)
  10261. }
  10262. case "AverageNumberOfInstancesUsedPerHour":
  10263. if value != nil {
  10264. jtv, ok := value.(string)
  10265. if !ok {
  10266. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10267. }
  10268. sv.AverageNumberOfInstancesUsedPerHour = ptr.String(jtv)
  10269. }
  10270. case "AverageUtilization":
  10271. if value != nil {
  10272. jtv, ok := value.(string)
  10273. if !ok {
  10274. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10275. }
  10276. sv.AverageUtilization = ptr.String(jtv)
  10277. }
  10278. case "CurrencyCode":
  10279. if value != nil {
  10280. jtv, ok := value.(string)
  10281. if !ok {
  10282. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10283. }
  10284. sv.CurrencyCode = ptr.String(jtv)
  10285. }
  10286. case "EstimatedBreakEvenInMonths":
  10287. if value != nil {
  10288. jtv, ok := value.(string)
  10289. if !ok {
  10290. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10291. }
  10292. sv.EstimatedBreakEvenInMonths = ptr.String(jtv)
  10293. }
  10294. case "EstimatedMonthlyOnDemandCost":
  10295. if value != nil {
  10296. jtv, ok := value.(string)
  10297. if !ok {
  10298. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10299. }
  10300. sv.EstimatedMonthlyOnDemandCost = ptr.String(jtv)
  10301. }
  10302. case "EstimatedMonthlySavingsAmount":
  10303. if value != nil {
  10304. jtv, ok := value.(string)
  10305. if !ok {
  10306. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10307. }
  10308. sv.EstimatedMonthlySavingsAmount = ptr.String(jtv)
  10309. }
  10310. case "EstimatedMonthlySavingsPercentage":
  10311. if value != nil {
  10312. jtv, ok := value.(string)
  10313. if !ok {
  10314. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10315. }
  10316. sv.EstimatedMonthlySavingsPercentage = ptr.String(jtv)
  10317. }
  10318. case "EstimatedReservationCostForLookbackPeriod":
  10319. if value != nil {
  10320. jtv, ok := value.(string)
  10321. if !ok {
  10322. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10323. }
  10324. sv.EstimatedReservationCostForLookbackPeriod = ptr.String(jtv)
  10325. }
  10326. case "InstanceDetails":
  10327. if err := awsAwsjson11_deserializeDocumentInstanceDetails(&sv.InstanceDetails, value); err != nil {
  10328. return err
  10329. }
  10330. case "MaximumNormalizedUnitsUsedPerHour":
  10331. if value != nil {
  10332. jtv, ok := value.(string)
  10333. if !ok {
  10334. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10335. }
  10336. sv.MaximumNormalizedUnitsUsedPerHour = ptr.String(jtv)
  10337. }
  10338. case "MaximumNumberOfCapacityUnitsUsedPerHour":
  10339. if value != nil {
  10340. jtv, ok := value.(string)
  10341. if !ok {
  10342. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10343. }
  10344. sv.MaximumNumberOfCapacityUnitsUsedPerHour = ptr.String(jtv)
  10345. }
  10346. case "MaximumNumberOfInstancesUsedPerHour":
  10347. if value != nil {
  10348. jtv, ok := value.(string)
  10349. if !ok {
  10350. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10351. }
  10352. sv.MaximumNumberOfInstancesUsedPerHour = ptr.String(jtv)
  10353. }
  10354. case "MinimumNormalizedUnitsUsedPerHour":
  10355. if value != nil {
  10356. jtv, ok := value.(string)
  10357. if !ok {
  10358. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10359. }
  10360. sv.MinimumNormalizedUnitsUsedPerHour = ptr.String(jtv)
  10361. }
  10362. case "MinimumNumberOfCapacityUnitsUsedPerHour":
  10363. if value != nil {
  10364. jtv, ok := value.(string)
  10365. if !ok {
  10366. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10367. }
  10368. sv.MinimumNumberOfCapacityUnitsUsedPerHour = ptr.String(jtv)
  10369. }
  10370. case "MinimumNumberOfInstancesUsedPerHour":
  10371. if value != nil {
  10372. jtv, ok := value.(string)
  10373. if !ok {
  10374. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10375. }
  10376. sv.MinimumNumberOfInstancesUsedPerHour = ptr.String(jtv)
  10377. }
  10378. case "RecommendedNormalizedUnitsToPurchase":
  10379. if value != nil {
  10380. jtv, ok := value.(string)
  10381. if !ok {
  10382. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10383. }
  10384. sv.RecommendedNormalizedUnitsToPurchase = ptr.String(jtv)
  10385. }
  10386. case "RecommendedNumberOfCapacityUnitsToPurchase":
  10387. if value != nil {
  10388. jtv, ok := value.(string)
  10389. if !ok {
  10390. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10391. }
  10392. sv.RecommendedNumberOfCapacityUnitsToPurchase = ptr.String(jtv)
  10393. }
  10394. case "RecommendedNumberOfInstancesToPurchase":
  10395. if value != nil {
  10396. jtv, ok := value.(string)
  10397. if !ok {
  10398. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10399. }
  10400. sv.RecommendedNumberOfInstancesToPurchase = ptr.String(jtv)
  10401. }
  10402. case "RecurringStandardMonthlyCost":
  10403. if value != nil {
  10404. jtv, ok := value.(string)
  10405. if !ok {
  10406. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10407. }
  10408. sv.RecurringStandardMonthlyCost = ptr.String(jtv)
  10409. }
  10410. case "ReservedCapacityDetails":
  10411. if err := awsAwsjson11_deserializeDocumentReservedCapacityDetails(&sv.ReservedCapacityDetails, value); err != nil {
  10412. return err
  10413. }
  10414. case "UpfrontCost":
  10415. if value != nil {
  10416. jtv, ok := value.(string)
  10417. if !ok {
  10418. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10419. }
  10420. sv.UpfrontCost = ptr.String(jtv)
  10421. }
  10422. default:
  10423. _, _ = key, value
  10424. }
  10425. }
  10426. *v = sv
  10427. return nil
  10428. }
  10429. func awsAwsjson11_deserializeDocumentReservationPurchaseRecommendationDetails(v *[]types.ReservationPurchaseRecommendationDetail, value interface{}) error {
  10430. if v == nil {
  10431. return fmt.Errorf("unexpected nil of type %T", v)
  10432. }
  10433. if value == nil {
  10434. return nil
  10435. }
  10436. shape, ok := value.([]interface{})
  10437. if !ok {
  10438. return fmt.Errorf("unexpected JSON type %v", value)
  10439. }
  10440. var cv []types.ReservationPurchaseRecommendationDetail
  10441. if *v == nil {
  10442. cv = []types.ReservationPurchaseRecommendationDetail{}
  10443. } else {
  10444. cv = *v
  10445. }
  10446. for _, value := range shape {
  10447. var col types.ReservationPurchaseRecommendationDetail
  10448. destAddr := &col
  10449. if err := awsAwsjson11_deserializeDocumentReservationPurchaseRecommendationDetail(&destAddr, value); err != nil {
  10450. return err
  10451. }
  10452. col = *destAddr
  10453. cv = append(cv, col)
  10454. }
  10455. *v = cv
  10456. return nil
  10457. }
  10458. func awsAwsjson11_deserializeDocumentReservationPurchaseRecommendationMetadata(v **types.ReservationPurchaseRecommendationMetadata, value interface{}) error {
  10459. if v == nil {
  10460. return fmt.Errorf("unexpected nil of type %T", v)
  10461. }
  10462. if value == nil {
  10463. return nil
  10464. }
  10465. shape, ok := value.(map[string]interface{})
  10466. if !ok {
  10467. return fmt.Errorf("unexpected JSON type %v", value)
  10468. }
  10469. var sv *types.ReservationPurchaseRecommendationMetadata
  10470. if *v == nil {
  10471. sv = &types.ReservationPurchaseRecommendationMetadata{}
  10472. } else {
  10473. sv = *v
  10474. }
  10475. for key, value := range shape {
  10476. switch key {
  10477. case "AdditionalMetadata":
  10478. if value != nil {
  10479. jtv, ok := value.(string)
  10480. if !ok {
  10481. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10482. }
  10483. sv.AdditionalMetadata = ptr.String(jtv)
  10484. }
  10485. case "GenerationTimestamp":
  10486. if value != nil {
  10487. jtv, ok := value.(string)
  10488. if !ok {
  10489. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10490. }
  10491. sv.GenerationTimestamp = ptr.String(jtv)
  10492. }
  10493. case "RecommendationId":
  10494. if value != nil {
  10495. jtv, ok := value.(string)
  10496. if !ok {
  10497. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10498. }
  10499. sv.RecommendationId = ptr.String(jtv)
  10500. }
  10501. default:
  10502. _, _ = key, value
  10503. }
  10504. }
  10505. *v = sv
  10506. return nil
  10507. }
  10508. func awsAwsjson11_deserializeDocumentReservationPurchaseRecommendations(v *[]types.ReservationPurchaseRecommendation, value interface{}) error {
  10509. if v == nil {
  10510. return fmt.Errorf("unexpected nil of type %T", v)
  10511. }
  10512. if value == nil {
  10513. return nil
  10514. }
  10515. shape, ok := value.([]interface{})
  10516. if !ok {
  10517. return fmt.Errorf("unexpected JSON type %v", value)
  10518. }
  10519. var cv []types.ReservationPurchaseRecommendation
  10520. if *v == nil {
  10521. cv = []types.ReservationPurchaseRecommendation{}
  10522. } else {
  10523. cv = *v
  10524. }
  10525. for _, value := range shape {
  10526. var col types.ReservationPurchaseRecommendation
  10527. destAddr := &col
  10528. if err := awsAwsjson11_deserializeDocumentReservationPurchaseRecommendation(&destAddr, value); err != nil {
  10529. return err
  10530. }
  10531. col = *destAddr
  10532. cv = append(cv, col)
  10533. }
  10534. *v = cv
  10535. return nil
  10536. }
  10537. func awsAwsjson11_deserializeDocumentReservationPurchaseRecommendationSummary(v **types.ReservationPurchaseRecommendationSummary, value interface{}) error {
  10538. if v == nil {
  10539. return fmt.Errorf("unexpected nil of type %T", v)
  10540. }
  10541. if value == nil {
  10542. return nil
  10543. }
  10544. shape, ok := value.(map[string]interface{})
  10545. if !ok {
  10546. return fmt.Errorf("unexpected JSON type %v", value)
  10547. }
  10548. var sv *types.ReservationPurchaseRecommendationSummary
  10549. if *v == nil {
  10550. sv = &types.ReservationPurchaseRecommendationSummary{}
  10551. } else {
  10552. sv = *v
  10553. }
  10554. for key, value := range shape {
  10555. switch key {
  10556. case "CurrencyCode":
  10557. if value != nil {
  10558. jtv, ok := value.(string)
  10559. if !ok {
  10560. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10561. }
  10562. sv.CurrencyCode = ptr.String(jtv)
  10563. }
  10564. case "TotalEstimatedMonthlySavingsAmount":
  10565. if value != nil {
  10566. jtv, ok := value.(string)
  10567. if !ok {
  10568. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10569. }
  10570. sv.TotalEstimatedMonthlySavingsAmount = ptr.String(jtv)
  10571. }
  10572. case "TotalEstimatedMonthlySavingsPercentage":
  10573. if value != nil {
  10574. jtv, ok := value.(string)
  10575. if !ok {
  10576. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10577. }
  10578. sv.TotalEstimatedMonthlySavingsPercentage = ptr.String(jtv)
  10579. }
  10580. default:
  10581. _, _ = key, value
  10582. }
  10583. }
  10584. *v = sv
  10585. return nil
  10586. }
  10587. func awsAwsjson11_deserializeDocumentReservationUtilizationGroup(v **types.ReservationUtilizationGroup, value interface{}) error {
  10588. if v == nil {
  10589. return fmt.Errorf("unexpected nil of type %T", v)
  10590. }
  10591. if value == nil {
  10592. return nil
  10593. }
  10594. shape, ok := value.(map[string]interface{})
  10595. if !ok {
  10596. return fmt.Errorf("unexpected JSON type %v", value)
  10597. }
  10598. var sv *types.ReservationUtilizationGroup
  10599. if *v == nil {
  10600. sv = &types.ReservationUtilizationGroup{}
  10601. } else {
  10602. sv = *v
  10603. }
  10604. for key, value := range shape {
  10605. switch key {
  10606. case "Attributes":
  10607. if err := awsAwsjson11_deserializeDocumentAttributes(&sv.Attributes, value); err != nil {
  10608. return err
  10609. }
  10610. case "Key":
  10611. if value != nil {
  10612. jtv, ok := value.(string)
  10613. if !ok {
  10614. return fmt.Errorf("expected ReservationGroupKey to be of type string, got %T instead", value)
  10615. }
  10616. sv.Key = ptr.String(jtv)
  10617. }
  10618. case "Utilization":
  10619. if err := awsAwsjson11_deserializeDocumentReservationAggregates(&sv.Utilization, value); err != nil {
  10620. return err
  10621. }
  10622. case "Value":
  10623. if value != nil {
  10624. jtv, ok := value.(string)
  10625. if !ok {
  10626. return fmt.Errorf("expected ReservationGroupValue to be of type string, got %T instead", value)
  10627. }
  10628. sv.Value = ptr.String(jtv)
  10629. }
  10630. default:
  10631. _, _ = key, value
  10632. }
  10633. }
  10634. *v = sv
  10635. return nil
  10636. }
  10637. func awsAwsjson11_deserializeDocumentReservationUtilizationGroups(v *[]types.ReservationUtilizationGroup, value interface{}) error {
  10638. if v == nil {
  10639. return fmt.Errorf("unexpected nil of type %T", v)
  10640. }
  10641. if value == nil {
  10642. return nil
  10643. }
  10644. shape, ok := value.([]interface{})
  10645. if !ok {
  10646. return fmt.Errorf("unexpected JSON type %v", value)
  10647. }
  10648. var cv []types.ReservationUtilizationGroup
  10649. if *v == nil {
  10650. cv = []types.ReservationUtilizationGroup{}
  10651. } else {
  10652. cv = *v
  10653. }
  10654. for _, value := range shape {
  10655. var col types.ReservationUtilizationGroup
  10656. destAddr := &col
  10657. if err := awsAwsjson11_deserializeDocumentReservationUtilizationGroup(&destAddr, value); err != nil {
  10658. return err
  10659. }
  10660. col = *destAddr
  10661. cv = append(cv, col)
  10662. }
  10663. *v = cv
  10664. return nil
  10665. }
  10666. func awsAwsjson11_deserializeDocumentReservedCapacityDetails(v **types.ReservedCapacityDetails, value interface{}) error {
  10667. if v == nil {
  10668. return fmt.Errorf("unexpected nil of type %T", v)
  10669. }
  10670. if value == nil {
  10671. return nil
  10672. }
  10673. shape, ok := value.(map[string]interface{})
  10674. if !ok {
  10675. return fmt.Errorf("unexpected JSON type %v", value)
  10676. }
  10677. var sv *types.ReservedCapacityDetails
  10678. if *v == nil {
  10679. sv = &types.ReservedCapacityDetails{}
  10680. } else {
  10681. sv = *v
  10682. }
  10683. for key, value := range shape {
  10684. switch key {
  10685. case "DynamoDBCapacityDetails":
  10686. if err := awsAwsjson11_deserializeDocumentDynamoDBCapacityDetails(&sv.DynamoDBCapacityDetails, value); err != nil {
  10687. return err
  10688. }
  10689. default:
  10690. _, _ = key, value
  10691. }
  10692. }
  10693. *v = sv
  10694. return nil
  10695. }
  10696. func awsAwsjson11_deserializeDocumentResourceDetails(v **types.ResourceDetails, value interface{}) error {
  10697. if v == nil {
  10698. return fmt.Errorf("unexpected nil of type %T", v)
  10699. }
  10700. if value == nil {
  10701. return nil
  10702. }
  10703. shape, ok := value.(map[string]interface{})
  10704. if !ok {
  10705. return fmt.Errorf("unexpected JSON type %v", value)
  10706. }
  10707. var sv *types.ResourceDetails
  10708. if *v == nil {
  10709. sv = &types.ResourceDetails{}
  10710. } else {
  10711. sv = *v
  10712. }
  10713. for key, value := range shape {
  10714. switch key {
  10715. case "EC2ResourceDetails":
  10716. if err := awsAwsjson11_deserializeDocumentEC2ResourceDetails(&sv.EC2ResourceDetails, value); err != nil {
  10717. return err
  10718. }
  10719. default:
  10720. _, _ = key, value
  10721. }
  10722. }
  10723. *v = sv
  10724. return nil
  10725. }
  10726. func awsAwsjson11_deserializeDocumentResourceNotFoundException(v **types.ResourceNotFoundException, value interface{}) error {
  10727. if v == nil {
  10728. return fmt.Errorf("unexpected nil of type %T", v)
  10729. }
  10730. if value == nil {
  10731. return nil
  10732. }
  10733. shape, ok := value.(map[string]interface{})
  10734. if !ok {
  10735. return fmt.Errorf("unexpected JSON type %v", value)
  10736. }
  10737. var sv *types.ResourceNotFoundException
  10738. if *v == nil {
  10739. sv = &types.ResourceNotFoundException{}
  10740. } else {
  10741. sv = *v
  10742. }
  10743. for key, value := range shape {
  10744. switch key {
  10745. case "message", "Message":
  10746. if value != nil {
  10747. jtv, ok := value.(string)
  10748. if !ok {
  10749. return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value)
  10750. }
  10751. sv.Message = ptr.String(jtv)
  10752. }
  10753. case "ResourceName":
  10754. if value != nil {
  10755. jtv, ok := value.(string)
  10756. if !ok {
  10757. return fmt.Errorf("expected Arn to be of type string, got %T instead", value)
  10758. }
  10759. sv.ResourceName = ptr.String(jtv)
  10760. }
  10761. default:
  10762. _, _ = key, value
  10763. }
  10764. }
  10765. *v = sv
  10766. return nil
  10767. }
  10768. func awsAwsjson11_deserializeDocumentResourceTag(v **types.ResourceTag, value interface{}) error {
  10769. if v == nil {
  10770. return fmt.Errorf("unexpected nil of type %T", v)
  10771. }
  10772. if value == nil {
  10773. return nil
  10774. }
  10775. shape, ok := value.(map[string]interface{})
  10776. if !ok {
  10777. return fmt.Errorf("unexpected JSON type %v", value)
  10778. }
  10779. var sv *types.ResourceTag
  10780. if *v == nil {
  10781. sv = &types.ResourceTag{}
  10782. } else {
  10783. sv = *v
  10784. }
  10785. for key, value := range shape {
  10786. switch key {
  10787. case "Key":
  10788. if value != nil {
  10789. jtv, ok := value.(string)
  10790. if !ok {
  10791. return fmt.Errorf("expected ResourceTagKey to be of type string, got %T instead", value)
  10792. }
  10793. sv.Key = ptr.String(jtv)
  10794. }
  10795. case "Value":
  10796. if value != nil {
  10797. jtv, ok := value.(string)
  10798. if !ok {
  10799. return fmt.Errorf("expected ResourceTagValue to be of type string, got %T instead", value)
  10800. }
  10801. sv.Value = ptr.String(jtv)
  10802. }
  10803. default:
  10804. _, _ = key, value
  10805. }
  10806. }
  10807. *v = sv
  10808. return nil
  10809. }
  10810. func awsAwsjson11_deserializeDocumentResourceTagList(v *[]types.ResourceTag, value interface{}) error {
  10811. if v == nil {
  10812. return fmt.Errorf("unexpected nil of type %T", v)
  10813. }
  10814. if value == nil {
  10815. return nil
  10816. }
  10817. shape, ok := value.([]interface{})
  10818. if !ok {
  10819. return fmt.Errorf("unexpected JSON type %v", value)
  10820. }
  10821. var cv []types.ResourceTag
  10822. if *v == nil {
  10823. cv = []types.ResourceTag{}
  10824. } else {
  10825. cv = *v
  10826. }
  10827. for _, value := range shape {
  10828. var col types.ResourceTag
  10829. destAddr := &col
  10830. if err := awsAwsjson11_deserializeDocumentResourceTag(&destAddr, value); err != nil {
  10831. return err
  10832. }
  10833. col = *destAddr
  10834. cv = append(cv, col)
  10835. }
  10836. *v = cv
  10837. return nil
  10838. }
  10839. func awsAwsjson11_deserializeDocumentResourceTypes(v *[]string, value interface{}) error {
  10840. if v == nil {
  10841. return fmt.Errorf("unexpected nil of type %T", v)
  10842. }
  10843. if value == nil {
  10844. return nil
  10845. }
  10846. shape, ok := value.([]interface{})
  10847. if !ok {
  10848. return fmt.Errorf("unexpected JSON type %v", value)
  10849. }
  10850. var cv []string
  10851. if *v == nil {
  10852. cv = []string{}
  10853. } else {
  10854. cv = *v
  10855. }
  10856. for _, value := range shape {
  10857. var col string
  10858. if value != nil {
  10859. jtv, ok := value.(string)
  10860. if !ok {
  10861. return fmt.Errorf("expected ResourceType to be of type string, got %T instead", value)
  10862. }
  10863. col = jtv
  10864. }
  10865. cv = append(cv, col)
  10866. }
  10867. *v = cv
  10868. return nil
  10869. }
  10870. func awsAwsjson11_deserializeDocumentResourceUtilization(v **types.ResourceUtilization, value interface{}) error {
  10871. if v == nil {
  10872. return fmt.Errorf("unexpected nil of type %T", v)
  10873. }
  10874. if value == nil {
  10875. return nil
  10876. }
  10877. shape, ok := value.(map[string]interface{})
  10878. if !ok {
  10879. return fmt.Errorf("unexpected JSON type %v", value)
  10880. }
  10881. var sv *types.ResourceUtilization
  10882. if *v == nil {
  10883. sv = &types.ResourceUtilization{}
  10884. } else {
  10885. sv = *v
  10886. }
  10887. for key, value := range shape {
  10888. switch key {
  10889. case "EC2ResourceUtilization":
  10890. if err := awsAwsjson11_deserializeDocumentEC2ResourceUtilization(&sv.EC2ResourceUtilization, value); err != nil {
  10891. return err
  10892. }
  10893. default:
  10894. _, _ = key, value
  10895. }
  10896. }
  10897. *v = sv
  10898. return nil
  10899. }
  10900. func awsAwsjson11_deserializeDocumentResultByTime(v **types.ResultByTime, value interface{}) error {
  10901. if v == nil {
  10902. return fmt.Errorf("unexpected nil of type %T", v)
  10903. }
  10904. if value == nil {
  10905. return nil
  10906. }
  10907. shape, ok := value.(map[string]interface{})
  10908. if !ok {
  10909. return fmt.Errorf("unexpected JSON type %v", value)
  10910. }
  10911. var sv *types.ResultByTime
  10912. if *v == nil {
  10913. sv = &types.ResultByTime{}
  10914. } else {
  10915. sv = *v
  10916. }
  10917. for key, value := range shape {
  10918. switch key {
  10919. case "Estimated":
  10920. if value != nil {
  10921. jtv, ok := value.(bool)
  10922. if !ok {
  10923. return fmt.Errorf("expected Estimated to be of type *bool, got %T instead", value)
  10924. }
  10925. sv.Estimated = jtv
  10926. }
  10927. case "Groups":
  10928. if err := awsAwsjson11_deserializeDocumentGroups(&sv.Groups, value); err != nil {
  10929. return err
  10930. }
  10931. case "TimePeriod":
  10932. if err := awsAwsjson11_deserializeDocumentDateInterval(&sv.TimePeriod, value); err != nil {
  10933. return err
  10934. }
  10935. case "Total":
  10936. if err := awsAwsjson11_deserializeDocumentMetrics(&sv.Total, value); err != nil {
  10937. return err
  10938. }
  10939. default:
  10940. _, _ = key, value
  10941. }
  10942. }
  10943. *v = sv
  10944. return nil
  10945. }
  10946. func awsAwsjson11_deserializeDocumentResultsByTime(v *[]types.ResultByTime, value interface{}) error {
  10947. if v == nil {
  10948. return fmt.Errorf("unexpected nil of type %T", v)
  10949. }
  10950. if value == nil {
  10951. return nil
  10952. }
  10953. shape, ok := value.([]interface{})
  10954. if !ok {
  10955. return fmt.Errorf("unexpected JSON type %v", value)
  10956. }
  10957. var cv []types.ResultByTime
  10958. if *v == nil {
  10959. cv = []types.ResultByTime{}
  10960. } else {
  10961. cv = *v
  10962. }
  10963. for _, value := range shape {
  10964. var col types.ResultByTime
  10965. destAddr := &col
  10966. if err := awsAwsjson11_deserializeDocumentResultByTime(&destAddr, value); err != nil {
  10967. return err
  10968. }
  10969. col = *destAddr
  10970. cv = append(cv, col)
  10971. }
  10972. *v = cv
  10973. return nil
  10974. }
  10975. func awsAwsjson11_deserializeDocumentRightsizingRecommendation(v **types.RightsizingRecommendation, value interface{}) error {
  10976. if v == nil {
  10977. return fmt.Errorf("unexpected nil of type %T", v)
  10978. }
  10979. if value == nil {
  10980. return nil
  10981. }
  10982. shape, ok := value.(map[string]interface{})
  10983. if !ok {
  10984. return fmt.Errorf("unexpected JSON type %v", value)
  10985. }
  10986. var sv *types.RightsizingRecommendation
  10987. if *v == nil {
  10988. sv = &types.RightsizingRecommendation{}
  10989. } else {
  10990. sv = *v
  10991. }
  10992. for key, value := range shape {
  10993. switch key {
  10994. case "AccountId":
  10995. if value != nil {
  10996. jtv, ok := value.(string)
  10997. if !ok {
  10998. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  10999. }
  11000. sv.AccountId = ptr.String(jtv)
  11001. }
  11002. case "CurrentInstance":
  11003. if err := awsAwsjson11_deserializeDocumentCurrentInstance(&sv.CurrentInstance, value); err != nil {
  11004. return err
  11005. }
  11006. case "FindingReasonCodes":
  11007. if err := awsAwsjson11_deserializeDocumentFindingReasonCodes(&sv.FindingReasonCodes, value); err != nil {
  11008. return err
  11009. }
  11010. case "ModifyRecommendationDetail":
  11011. if err := awsAwsjson11_deserializeDocumentModifyRecommendationDetail(&sv.ModifyRecommendationDetail, value); err != nil {
  11012. return err
  11013. }
  11014. case "RightsizingType":
  11015. if value != nil {
  11016. jtv, ok := value.(string)
  11017. if !ok {
  11018. return fmt.Errorf("expected RightsizingType to be of type string, got %T instead", value)
  11019. }
  11020. sv.RightsizingType = types.RightsizingType(jtv)
  11021. }
  11022. case "TerminateRecommendationDetail":
  11023. if err := awsAwsjson11_deserializeDocumentTerminateRecommendationDetail(&sv.TerminateRecommendationDetail, value); err != nil {
  11024. return err
  11025. }
  11026. default:
  11027. _, _ = key, value
  11028. }
  11029. }
  11030. *v = sv
  11031. return nil
  11032. }
  11033. func awsAwsjson11_deserializeDocumentRightsizingRecommendationConfiguration(v **types.RightsizingRecommendationConfiguration, value interface{}) error {
  11034. if v == nil {
  11035. return fmt.Errorf("unexpected nil of type %T", v)
  11036. }
  11037. if value == nil {
  11038. return nil
  11039. }
  11040. shape, ok := value.(map[string]interface{})
  11041. if !ok {
  11042. return fmt.Errorf("unexpected JSON type %v", value)
  11043. }
  11044. var sv *types.RightsizingRecommendationConfiguration
  11045. if *v == nil {
  11046. sv = &types.RightsizingRecommendationConfiguration{}
  11047. } else {
  11048. sv = *v
  11049. }
  11050. for key, value := range shape {
  11051. switch key {
  11052. case "BenefitsConsidered":
  11053. if value != nil {
  11054. jtv, ok := value.(bool)
  11055. if !ok {
  11056. return fmt.Errorf("expected GenericBoolean to be of type *bool, got %T instead", value)
  11057. }
  11058. sv.BenefitsConsidered = jtv
  11059. }
  11060. case "RecommendationTarget":
  11061. if value != nil {
  11062. jtv, ok := value.(string)
  11063. if !ok {
  11064. return fmt.Errorf("expected RecommendationTarget to be of type string, got %T instead", value)
  11065. }
  11066. sv.RecommendationTarget = types.RecommendationTarget(jtv)
  11067. }
  11068. default:
  11069. _, _ = key, value
  11070. }
  11071. }
  11072. *v = sv
  11073. return nil
  11074. }
  11075. func awsAwsjson11_deserializeDocumentRightsizingRecommendationList(v *[]types.RightsizingRecommendation, value interface{}) error {
  11076. if v == nil {
  11077. return fmt.Errorf("unexpected nil of type %T", v)
  11078. }
  11079. if value == nil {
  11080. return nil
  11081. }
  11082. shape, ok := value.([]interface{})
  11083. if !ok {
  11084. return fmt.Errorf("unexpected JSON type %v", value)
  11085. }
  11086. var cv []types.RightsizingRecommendation
  11087. if *v == nil {
  11088. cv = []types.RightsizingRecommendation{}
  11089. } else {
  11090. cv = *v
  11091. }
  11092. for _, value := range shape {
  11093. var col types.RightsizingRecommendation
  11094. destAddr := &col
  11095. if err := awsAwsjson11_deserializeDocumentRightsizingRecommendation(&destAddr, value); err != nil {
  11096. return err
  11097. }
  11098. col = *destAddr
  11099. cv = append(cv, col)
  11100. }
  11101. *v = cv
  11102. return nil
  11103. }
  11104. func awsAwsjson11_deserializeDocumentRightsizingRecommendationMetadata(v **types.RightsizingRecommendationMetadata, value interface{}) error {
  11105. if v == nil {
  11106. return fmt.Errorf("unexpected nil of type %T", v)
  11107. }
  11108. if value == nil {
  11109. return nil
  11110. }
  11111. shape, ok := value.(map[string]interface{})
  11112. if !ok {
  11113. return fmt.Errorf("unexpected JSON type %v", value)
  11114. }
  11115. var sv *types.RightsizingRecommendationMetadata
  11116. if *v == nil {
  11117. sv = &types.RightsizingRecommendationMetadata{}
  11118. } else {
  11119. sv = *v
  11120. }
  11121. for key, value := range shape {
  11122. switch key {
  11123. case "AdditionalMetadata":
  11124. if value != nil {
  11125. jtv, ok := value.(string)
  11126. if !ok {
  11127. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11128. }
  11129. sv.AdditionalMetadata = ptr.String(jtv)
  11130. }
  11131. case "GenerationTimestamp":
  11132. if value != nil {
  11133. jtv, ok := value.(string)
  11134. if !ok {
  11135. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11136. }
  11137. sv.GenerationTimestamp = ptr.String(jtv)
  11138. }
  11139. case "LookbackPeriodInDays":
  11140. if value != nil {
  11141. jtv, ok := value.(string)
  11142. if !ok {
  11143. return fmt.Errorf("expected LookbackPeriodInDays to be of type string, got %T instead", value)
  11144. }
  11145. sv.LookbackPeriodInDays = types.LookbackPeriodInDays(jtv)
  11146. }
  11147. case "RecommendationId":
  11148. if value != nil {
  11149. jtv, ok := value.(string)
  11150. if !ok {
  11151. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11152. }
  11153. sv.RecommendationId = ptr.String(jtv)
  11154. }
  11155. default:
  11156. _, _ = key, value
  11157. }
  11158. }
  11159. *v = sv
  11160. return nil
  11161. }
  11162. func awsAwsjson11_deserializeDocumentRightsizingRecommendationSummary(v **types.RightsizingRecommendationSummary, value interface{}) error {
  11163. if v == nil {
  11164. return fmt.Errorf("unexpected nil of type %T", v)
  11165. }
  11166. if value == nil {
  11167. return nil
  11168. }
  11169. shape, ok := value.(map[string]interface{})
  11170. if !ok {
  11171. return fmt.Errorf("unexpected JSON type %v", value)
  11172. }
  11173. var sv *types.RightsizingRecommendationSummary
  11174. if *v == nil {
  11175. sv = &types.RightsizingRecommendationSummary{}
  11176. } else {
  11177. sv = *v
  11178. }
  11179. for key, value := range shape {
  11180. switch key {
  11181. case "EstimatedTotalMonthlySavingsAmount":
  11182. if value != nil {
  11183. jtv, ok := value.(string)
  11184. if !ok {
  11185. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11186. }
  11187. sv.EstimatedTotalMonthlySavingsAmount = ptr.String(jtv)
  11188. }
  11189. case "SavingsCurrencyCode":
  11190. if value != nil {
  11191. jtv, ok := value.(string)
  11192. if !ok {
  11193. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11194. }
  11195. sv.SavingsCurrencyCode = ptr.String(jtv)
  11196. }
  11197. case "SavingsPercentage":
  11198. if value != nil {
  11199. jtv, ok := value.(string)
  11200. if !ok {
  11201. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11202. }
  11203. sv.SavingsPercentage = ptr.String(jtv)
  11204. }
  11205. case "TotalRecommendationCount":
  11206. if value != nil {
  11207. jtv, ok := value.(string)
  11208. if !ok {
  11209. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11210. }
  11211. sv.TotalRecommendationCount = ptr.String(jtv)
  11212. }
  11213. default:
  11214. _, _ = key, value
  11215. }
  11216. }
  11217. *v = sv
  11218. return nil
  11219. }
  11220. func awsAwsjson11_deserializeDocumentRootCause(v **types.RootCause, value interface{}) error {
  11221. if v == nil {
  11222. return fmt.Errorf("unexpected nil of type %T", v)
  11223. }
  11224. if value == nil {
  11225. return nil
  11226. }
  11227. shape, ok := value.(map[string]interface{})
  11228. if !ok {
  11229. return fmt.Errorf("unexpected JSON type %v", value)
  11230. }
  11231. var sv *types.RootCause
  11232. if *v == nil {
  11233. sv = &types.RootCause{}
  11234. } else {
  11235. sv = *v
  11236. }
  11237. for key, value := range shape {
  11238. switch key {
  11239. case "Impact":
  11240. if err := awsAwsjson11_deserializeDocumentRootCauseImpact(&sv.Impact, value); err != nil {
  11241. return err
  11242. }
  11243. case "LinkedAccount":
  11244. if value != nil {
  11245. jtv, ok := value.(string)
  11246. if !ok {
  11247. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11248. }
  11249. sv.LinkedAccount = ptr.String(jtv)
  11250. }
  11251. case "LinkedAccountName":
  11252. if value != nil {
  11253. jtv, ok := value.(string)
  11254. if !ok {
  11255. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11256. }
  11257. sv.LinkedAccountName = ptr.String(jtv)
  11258. }
  11259. case "Region":
  11260. if value != nil {
  11261. jtv, ok := value.(string)
  11262. if !ok {
  11263. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11264. }
  11265. sv.Region = ptr.String(jtv)
  11266. }
  11267. case "Service":
  11268. if value != nil {
  11269. jtv, ok := value.(string)
  11270. if !ok {
  11271. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11272. }
  11273. sv.Service = ptr.String(jtv)
  11274. }
  11275. case "UsageType":
  11276. if value != nil {
  11277. jtv, ok := value.(string)
  11278. if !ok {
  11279. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11280. }
  11281. sv.UsageType = ptr.String(jtv)
  11282. }
  11283. default:
  11284. _, _ = key, value
  11285. }
  11286. }
  11287. *v = sv
  11288. return nil
  11289. }
  11290. func awsAwsjson11_deserializeDocumentRootCauseImpact(v **types.RootCauseImpact, value interface{}) error {
  11291. if v == nil {
  11292. return fmt.Errorf("unexpected nil of type %T", v)
  11293. }
  11294. if value == nil {
  11295. return nil
  11296. }
  11297. shape, ok := value.(map[string]interface{})
  11298. if !ok {
  11299. return fmt.Errorf("unexpected JSON type %v", value)
  11300. }
  11301. var sv *types.RootCauseImpact
  11302. if *v == nil {
  11303. sv = &types.RootCauseImpact{}
  11304. } else {
  11305. sv = *v
  11306. }
  11307. for key, value := range shape {
  11308. switch key {
  11309. case "Contribution":
  11310. if value != nil {
  11311. switch jtv := value.(type) {
  11312. case json.Number:
  11313. f64, err := jtv.Float64()
  11314. if err != nil {
  11315. return err
  11316. }
  11317. sv.Contribution = f64
  11318. case string:
  11319. var f64 float64
  11320. switch {
  11321. case strings.EqualFold(jtv, "NaN"):
  11322. f64 = math.NaN()
  11323. case strings.EqualFold(jtv, "Infinity"):
  11324. f64 = math.Inf(1)
  11325. case strings.EqualFold(jtv, "-Infinity"):
  11326. f64 = math.Inf(-1)
  11327. default:
  11328. return fmt.Errorf("unknown JSON number value: %s", jtv)
  11329. }
  11330. sv.Contribution = f64
  11331. default:
  11332. return fmt.Errorf("expected GenericDouble to be a JSON Number, got %T instead", value)
  11333. }
  11334. }
  11335. default:
  11336. _, _ = key, value
  11337. }
  11338. }
  11339. *v = sv
  11340. return nil
  11341. }
  11342. func awsAwsjson11_deserializeDocumentRootCauses(v *[]types.RootCause, value interface{}) error {
  11343. if v == nil {
  11344. return fmt.Errorf("unexpected nil of type %T", v)
  11345. }
  11346. if value == nil {
  11347. return nil
  11348. }
  11349. shape, ok := value.([]interface{})
  11350. if !ok {
  11351. return fmt.Errorf("unexpected JSON type %v", value)
  11352. }
  11353. var cv []types.RootCause
  11354. if *v == nil {
  11355. cv = []types.RootCause{}
  11356. } else {
  11357. cv = *v
  11358. }
  11359. for _, value := range shape {
  11360. var col types.RootCause
  11361. destAddr := &col
  11362. if err := awsAwsjson11_deserializeDocumentRootCause(&destAddr, value); err != nil {
  11363. return err
  11364. }
  11365. col = *destAddr
  11366. cv = append(cv, col)
  11367. }
  11368. *v = cv
  11369. return nil
  11370. }
  11371. func awsAwsjson11_deserializeDocumentSavingsPlans(v **types.SavingsPlans, value interface{}) error {
  11372. if v == nil {
  11373. return fmt.Errorf("unexpected nil of type %T", v)
  11374. }
  11375. if value == nil {
  11376. return nil
  11377. }
  11378. shape, ok := value.(map[string]interface{})
  11379. if !ok {
  11380. return fmt.Errorf("unexpected JSON type %v", value)
  11381. }
  11382. var sv *types.SavingsPlans
  11383. if *v == nil {
  11384. sv = &types.SavingsPlans{}
  11385. } else {
  11386. sv = *v
  11387. }
  11388. for key, value := range shape {
  11389. switch key {
  11390. case "InstanceFamily":
  11391. if value != nil {
  11392. jtv, ok := value.(string)
  11393. if !ok {
  11394. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11395. }
  11396. sv.InstanceFamily = ptr.String(jtv)
  11397. }
  11398. case "OfferingId":
  11399. if value != nil {
  11400. jtv, ok := value.(string)
  11401. if !ok {
  11402. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11403. }
  11404. sv.OfferingId = ptr.String(jtv)
  11405. }
  11406. case "PaymentOption":
  11407. if value != nil {
  11408. jtv, ok := value.(string)
  11409. if !ok {
  11410. return fmt.Errorf("expected PaymentOption to be of type string, got %T instead", value)
  11411. }
  11412. sv.PaymentOption = types.PaymentOption(jtv)
  11413. }
  11414. case "Region":
  11415. if value != nil {
  11416. jtv, ok := value.(string)
  11417. if !ok {
  11418. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11419. }
  11420. sv.Region = ptr.String(jtv)
  11421. }
  11422. case "SavingsPlansCommitment":
  11423. if value != nil {
  11424. switch jtv := value.(type) {
  11425. case json.Number:
  11426. f64, err := jtv.Float64()
  11427. if err != nil {
  11428. return err
  11429. }
  11430. sv.SavingsPlansCommitment = ptr.Float64(f64)
  11431. case string:
  11432. var f64 float64
  11433. switch {
  11434. case strings.EqualFold(jtv, "NaN"):
  11435. f64 = math.NaN()
  11436. case strings.EqualFold(jtv, "Infinity"):
  11437. f64 = math.Inf(1)
  11438. case strings.EqualFold(jtv, "-Infinity"):
  11439. f64 = math.Inf(-1)
  11440. default:
  11441. return fmt.Errorf("unknown JSON number value: %s", jtv)
  11442. }
  11443. sv.SavingsPlansCommitment = ptr.Float64(f64)
  11444. default:
  11445. return fmt.Errorf("expected SavingsPlansCommitment to be a JSON Number, got %T instead", value)
  11446. }
  11447. }
  11448. case "SavingsPlansType":
  11449. if value != nil {
  11450. jtv, ok := value.(string)
  11451. if !ok {
  11452. return fmt.Errorf("expected SupportedSavingsPlansType to be of type string, got %T instead", value)
  11453. }
  11454. sv.SavingsPlansType = types.SupportedSavingsPlansType(jtv)
  11455. }
  11456. case "TermInYears":
  11457. if value != nil {
  11458. jtv, ok := value.(string)
  11459. if !ok {
  11460. return fmt.Errorf("expected TermInYears to be of type string, got %T instead", value)
  11461. }
  11462. sv.TermInYears = types.TermInYears(jtv)
  11463. }
  11464. default:
  11465. _, _ = key, value
  11466. }
  11467. }
  11468. *v = sv
  11469. return nil
  11470. }
  11471. func awsAwsjson11_deserializeDocumentSavingsPlansAmortizedCommitment(v **types.SavingsPlansAmortizedCommitment, value interface{}) error {
  11472. if v == nil {
  11473. return fmt.Errorf("unexpected nil of type %T", v)
  11474. }
  11475. if value == nil {
  11476. return nil
  11477. }
  11478. shape, ok := value.(map[string]interface{})
  11479. if !ok {
  11480. return fmt.Errorf("unexpected JSON type %v", value)
  11481. }
  11482. var sv *types.SavingsPlansAmortizedCommitment
  11483. if *v == nil {
  11484. sv = &types.SavingsPlansAmortizedCommitment{}
  11485. } else {
  11486. sv = *v
  11487. }
  11488. for key, value := range shape {
  11489. switch key {
  11490. case "AmortizedRecurringCommitment":
  11491. if value != nil {
  11492. jtv, ok := value.(string)
  11493. if !ok {
  11494. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11495. }
  11496. sv.AmortizedRecurringCommitment = ptr.String(jtv)
  11497. }
  11498. case "AmortizedUpfrontCommitment":
  11499. if value != nil {
  11500. jtv, ok := value.(string)
  11501. if !ok {
  11502. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11503. }
  11504. sv.AmortizedUpfrontCommitment = ptr.String(jtv)
  11505. }
  11506. case "TotalAmortizedCommitment":
  11507. if value != nil {
  11508. jtv, ok := value.(string)
  11509. if !ok {
  11510. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11511. }
  11512. sv.TotalAmortizedCommitment = ptr.String(jtv)
  11513. }
  11514. default:
  11515. _, _ = key, value
  11516. }
  11517. }
  11518. *v = sv
  11519. return nil
  11520. }
  11521. func awsAwsjson11_deserializeDocumentSavingsPlansCoverage(v **types.SavingsPlansCoverage, value interface{}) error {
  11522. if v == nil {
  11523. return fmt.Errorf("unexpected nil of type %T", v)
  11524. }
  11525. if value == nil {
  11526. return nil
  11527. }
  11528. shape, ok := value.(map[string]interface{})
  11529. if !ok {
  11530. return fmt.Errorf("unexpected JSON type %v", value)
  11531. }
  11532. var sv *types.SavingsPlansCoverage
  11533. if *v == nil {
  11534. sv = &types.SavingsPlansCoverage{}
  11535. } else {
  11536. sv = *v
  11537. }
  11538. for key, value := range shape {
  11539. switch key {
  11540. case "Attributes":
  11541. if err := awsAwsjson11_deserializeDocumentAttributes(&sv.Attributes, value); err != nil {
  11542. return err
  11543. }
  11544. case "Coverage":
  11545. if err := awsAwsjson11_deserializeDocumentSavingsPlansCoverageData(&sv.Coverage, value); err != nil {
  11546. return err
  11547. }
  11548. case "TimePeriod":
  11549. if err := awsAwsjson11_deserializeDocumentDateInterval(&sv.TimePeriod, value); err != nil {
  11550. return err
  11551. }
  11552. default:
  11553. _, _ = key, value
  11554. }
  11555. }
  11556. *v = sv
  11557. return nil
  11558. }
  11559. func awsAwsjson11_deserializeDocumentSavingsPlansCoverageData(v **types.SavingsPlansCoverageData, value interface{}) error {
  11560. if v == nil {
  11561. return fmt.Errorf("unexpected nil of type %T", v)
  11562. }
  11563. if value == nil {
  11564. return nil
  11565. }
  11566. shape, ok := value.(map[string]interface{})
  11567. if !ok {
  11568. return fmt.Errorf("unexpected JSON type %v", value)
  11569. }
  11570. var sv *types.SavingsPlansCoverageData
  11571. if *v == nil {
  11572. sv = &types.SavingsPlansCoverageData{}
  11573. } else {
  11574. sv = *v
  11575. }
  11576. for key, value := range shape {
  11577. switch key {
  11578. case "CoveragePercentage":
  11579. if value != nil {
  11580. jtv, ok := value.(string)
  11581. if !ok {
  11582. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11583. }
  11584. sv.CoveragePercentage = ptr.String(jtv)
  11585. }
  11586. case "OnDemandCost":
  11587. if value != nil {
  11588. jtv, ok := value.(string)
  11589. if !ok {
  11590. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11591. }
  11592. sv.OnDemandCost = ptr.String(jtv)
  11593. }
  11594. case "SpendCoveredBySavingsPlans":
  11595. if value != nil {
  11596. jtv, ok := value.(string)
  11597. if !ok {
  11598. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11599. }
  11600. sv.SpendCoveredBySavingsPlans = ptr.String(jtv)
  11601. }
  11602. case "TotalCost":
  11603. if value != nil {
  11604. jtv, ok := value.(string)
  11605. if !ok {
  11606. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11607. }
  11608. sv.TotalCost = ptr.String(jtv)
  11609. }
  11610. default:
  11611. _, _ = key, value
  11612. }
  11613. }
  11614. *v = sv
  11615. return nil
  11616. }
  11617. func awsAwsjson11_deserializeDocumentSavingsPlansCoverages(v *[]types.SavingsPlansCoverage, value interface{}) error {
  11618. if v == nil {
  11619. return fmt.Errorf("unexpected nil of type %T", v)
  11620. }
  11621. if value == nil {
  11622. return nil
  11623. }
  11624. shape, ok := value.([]interface{})
  11625. if !ok {
  11626. return fmt.Errorf("unexpected JSON type %v", value)
  11627. }
  11628. var cv []types.SavingsPlansCoverage
  11629. if *v == nil {
  11630. cv = []types.SavingsPlansCoverage{}
  11631. } else {
  11632. cv = *v
  11633. }
  11634. for _, value := range shape {
  11635. var col types.SavingsPlansCoverage
  11636. destAddr := &col
  11637. if err := awsAwsjson11_deserializeDocumentSavingsPlansCoverage(&destAddr, value); err != nil {
  11638. return err
  11639. }
  11640. col = *destAddr
  11641. cv = append(cv, col)
  11642. }
  11643. *v = cv
  11644. return nil
  11645. }
  11646. func awsAwsjson11_deserializeDocumentSavingsPlansDetails(v **types.SavingsPlansDetails, value interface{}) error {
  11647. if v == nil {
  11648. return fmt.Errorf("unexpected nil of type %T", v)
  11649. }
  11650. if value == nil {
  11651. return nil
  11652. }
  11653. shape, ok := value.(map[string]interface{})
  11654. if !ok {
  11655. return fmt.Errorf("unexpected JSON type %v", value)
  11656. }
  11657. var sv *types.SavingsPlansDetails
  11658. if *v == nil {
  11659. sv = &types.SavingsPlansDetails{}
  11660. } else {
  11661. sv = *v
  11662. }
  11663. for key, value := range shape {
  11664. switch key {
  11665. case "InstanceFamily":
  11666. if value != nil {
  11667. jtv, ok := value.(string)
  11668. if !ok {
  11669. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11670. }
  11671. sv.InstanceFamily = ptr.String(jtv)
  11672. }
  11673. case "OfferingId":
  11674. if value != nil {
  11675. jtv, ok := value.(string)
  11676. if !ok {
  11677. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11678. }
  11679. sv.OfferingId = ptr.String(jtv)
  11680. }
  11681. case "Region":
  11682. if value != nil {
  11683. jtv, ok := value.(string)
  11684. if !ok {
  11685. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11686. }
  11687. sv.Region = ptr.String(jtv)
  11688. }
  11689. default:
  11690. _, _ = key, value
  11691. }
  11692. }
  11693. *v = sv
  11694. return nil
  11695. }
  11696. func awsAwsjson11_deserializeDocumentSavingsPlansPurchaseAnalysisConfiguration(v **types.SavingsPlansPurchaseAnalysisConfiguration, value interface{}) error {
  11697. if v == nil {
  11698. return fmt.Errorf("unexpected nil of type %T", v)
  11699. }
  11700. if value == nil {
  11701. return nil
  11702. }
  11703. shape, ok := value.(map[string]interface{})
  11704. if !ok {
  11705. return fmt.Errorf("unexpected JSON type %v", value)
  11706. }
  11707. var sv *types.SavingsPlansPurchaseAnalysisConfiguration
  11708. if *v == nil {
  11709. sv = &types.SavingsPlansPurchaseAnalysisConfiguration{}
  11710. } else {
  11711. sv = *v
  11712. }
  11713. for key, value := range shape {
  11714. switch key {
  11715. case "AccountId":
  11716. if value != nil {
  11717. jtv, ok := value.(string)
  11718. if !ok {
  11719. return fmt.Errorf("expected AccountId to be of type string, got %T instead", value)
  11720. }
  11721. sv.AccountId = ptr.String(jtv)
  11722. }
  11723. case "AccountScope":
  11724. if value != nil {
  11725. jtv, ok := value.(string)
  11726. if !ok {
  11727. return fmt.Errorf("expected AccountScope to be of type string, got %T instead", value)
  11728. }
  11729. sv.AccountScope = types.AccountScope(jtv)
  11730. }
  11731. case "AnalysisType":
  11732. if value != nil {
  11733. jtv, ok := value.(string)
  11734. if !ok {
  11735. return fmt.Errorf("expected AnalysisType to be of type string, got %T instead", value)
  11736. }
  11737. sv.AnalysisType = types.AnalysisType(jtv)
  11738. }
  11739. case "LookBackTimePeriod":
  11740. if err := awsAwsjson11_deserializeDocumentDateInterval(&sv.LookBackTimePeriod, value); err != nil {
  11741. return err
  11742. }
  11743. case "SavingsPlansToAdd":
  11744. if err := awsAwsjson11_deserializeDocumentSavingsPlansToAdd(&sv.SavingsPlansToAdd, value); err != nil {
  11745. return err
  11746. }
  11747. case "SavingsPlansToExclude":
  11748. if err := awsAwsjson11_deserializeDocumentSavingsPlansToExclude(&sv.SavingsPlansToExclude, value); err != nil {
  11749. return err
  11750. }
  11751. default:
  11752. _, _ = key, value
  11753. }
  11754. }
  11755. *v = sv
  11756. return nil
  11757. }
  11758. func awsAwsjson11_deserializeDocumentSavingsPlansPurchaseAnalysisDetails(v **types.SavingsPlansPurchaseAnalysisDetails, value interface{}) error {
  11759. if v == nil {
  11760. return fmt.Errorf("unexpected nil of type %T", v)
  11761. }
  11762. if value == nil {
  11763. return nil
  11764. }
  11765. shape, ok := value.(map[string]interface{})
  11766. if !ok {
  11767. return fmt.Errorf("unexpected JSON type %v", value)
  11768. }
  11769. var sv *types.SavingsPlansPurchaseAnalysisDetails
  11770. if *v == nil {
  11771. sv = &types.SavingsPlansPurchaseAnalysisDetails{}
  11772. } else {
  11773. sv = *v
  11774. }
  11775. for key, value := range shape {
  11776. switch key {
  11777. case "AdditionalMetadata":
  11778. if value != nil {
  11779. jtv, ok := value.(string)
  11780. if !ok {
  11781. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11782. }
  11783. sv.AdditionalMetadata = ptr.String(jtv)
  11784. }
  11785. case "CurrencyCode":
  11786. if value != nil {
  11787. jtv, ok := value.(string)
  11788. if !ok {
  11789. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11790. }
  11791. sv.CurrencyCode = ptr.String(jtv)
  11792. }
  11793. case "CurrentAverageCoverage":
  11794. if value != nil {
  11795. jtv, ok := value.(string)
  11796. if !ok {
  11797. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11798. }
  11799. sv.CurrentAverageCoverage = ptr.String(jtv)
  11800. }
  11801. case "CurrentAverageHourlyOnDemandSpend":
  11802. if value != nil {
  11803. jtv, ok := value.(string)
  11804. if !ok {
  11805. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11806. }
  11807. sv.CurrentAverageHourlyOnDemandSpend = ptr.String(jtv)
  11808. }
  11809. case "CurrentMaximumHourlyOnDemandSpend":
  11810. if value != nil {
  11811. jtv, ok := value.(string)
  11812. if !ok {
  11813. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11814. }
  11815. sv.CurrentMaximumHourlyOnDemandSpend = ptr.String(jtv)
  11816. }
  11817. case "CurrentMinimumHourlyOnDemandSpend":
  11818. if value != nil {
  11819. jtv, ok := value.(string)
  11820. if !ok {
  11821. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11822. }
  11823. sv.CurrentMinimumHourlyOnDemandSpend = ptr.String(jtv)
  11824. }
  11825. case "CurrentOnDemandSpend":
  11826. if value != nil {
  11827. jtv, ok := value.(string)
  11828. if !ok {
  11829. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11830. }
  11831. sv.CurrentOnDemandSpend = ptr.String(jtv)
  11832. }
  11833. case "EstimatedAverageCoverage":
  11834. if value != nil {
  11835. jtv, ok := value.(string)
  11836. if !ok {
  11837. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11838. }
  11839. sv.EstimatedAverageCoverage = ptr.String(jtv)
  11840. }
  11841. case "EstimatedAverageUtilization":
  11842. if value != nil {
  11843. jtv, ok := value.(string)
  11844. if !ok {
  11845. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11846. }
  11847. sv.EstimatedAverageUtilization = ptr.String(jtv)
  11848. }
  11849. case "EstimatedCommitmentCost":
  11850. if value != nil {
  11851. jtv, ok := value.(string)
  11852. if !ok {
  11853. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11854. }
  11855. sv.EstimatedCommitmentCost = ptr.String(jtv)
  11856. }
  11857. case "EstimatedMonthlySavingsAmount":
  11858. if value != nil {
  11859. jtv, ok := value.(string)
  11860. if !ok {
  11861. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11862. }
  11863. sv.EstimatedMonthlySavingsAmount = ptr.String(jtv)
  11864. }
  11865. case "EstimatedOnDemandCost":
  11866. if value != nil {
  11867. jtv, ok := value.(string)
  11868. if !ok {
  11869. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11870. }
  11871. sv.EstimatedOnDemandCost = ptr.String(jtv)
  11872. }
  11873. case "EstimatedOnDemandCostWithCurrentCommitment":
  11874. if value != nil {
  11875. jtv, ok := value.(string)
  11876. if !ok {
  11877. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11878. }
  11879. sv.EstimatedOnDemandCostWithCurrentCommitment = ptr.String(jtv)
  11880. }
  11881. case "EstimatedROI":
  11882. if value != nil {
  11883. jtv, ok := value.(string)
  11884. if !ok {
  11885. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11886. }
  11887. sv.EstimatedROI = ptr.String(jtv)
  11888. }
  11889. case "EstimatedSavingsAmount":
  11890. if value != nil {
  11891. jtv, ok := value.(string)
  11892. if !ok {
  11893. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11894. }
  11895. sv.EstimatedSavingsAmount = ptr.String(jtv)
  11896. }
  11897. case "EstimatedSavingsPercentage":
  11898. if value != nil {
  11899. jtv, ok := value.(string)
  11900. if !ok {
  11901. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11902. }
  11903. sv.EstimatedSavingsPercentage = ptr.String(jtv)
  11904. }
  11905. case "ExistingHourlyCommitment":
  11906. if value != nil {
  11907. jtv, ok := value.(string)
  11908. if !ok {
  11909. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11910. }
  11911. sv.ExistingHourlyCommitment = ptr.String(jtv)
  11912. }
  11913. case "HourlyCommitmentToPurchase":
  11914. if value != nil {
  11915. jtv, ok := value.(string)
  11916. if !ok {
  11917. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11918. }
  11919. sv.HourlyCommitmentToPurchase = ptr.String(jtv)
  11920. }
  11921. case "LatestUsageTimestamp":
  11922. if value != nil {
  11923. jtv, ok := value.(string)
  11924. if !ok {
  11925. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11926. }
  11927. sv.LatestUsageTimestamp = ptr.String(jtv)
  11928. }
  11929. case "LookbackPeriodInHours":
  11930. if value != nil {
  11931. jtv, ok := value.(string)
  11932. if !ok {
  11933. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11934. }
  11935. sv.LookbackPeriodInHours = ptr.String(jtv)
  11936. }
  11937. case "MetricsOverLookbackPeriod":
  11938. if err := awsAwsjson11_deserializeDocumentMetricsOverLookbackPeriod(&sv.MetricsOverLookbackPeriod, value); err != nil {
  11939. return err
  11940. }
  11941. case "UpfrontCost":
  11942. if value != nil {
  11943. jtv, ok := value.(string)
  11944. if !ok {
  11945. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  11946. }
  11947. sv.UpfrontCost = ptr.String(jtv)
  11948. }
  11949. default:
  11950. _, _ = key, value
  11951. }
  11952. }
  11953. *v = sv
  11954. return nil
  11955. }
  11956. func awsAwsjson11_deserializeDocumentSavingsPlansPurchaseRecommendation(v **types.SavingsPlansPurchaseRecommendation, value interface{}) error {
  11957. if v == nil {
  11958. return fmt.Errorf("unexpected nil of type %T", v)
  11959. }
  11960. if value == nil {
  11961. return nil
  11962. }
  11963. shape, ok := value.(map[string]interface{})
  11964. if !ok {
  11965. return fmt.Errorf("unexpected JSON type %v", value)
  11966. }
  11967. var sv *types.SavingsPlansPurchaseRecommendation
  11968. if *v == nil {
  11969. sv = &types.SavingsPlansPurchaseRecommendation{}
  11970. } else {
  11971. sv = *v
  11972. }
  11973. for key, value := range shape {
  11974. switch key {
  11975. case "AccountScope":
  11976. if value != nil {
  11977. jtv, ok := value.(string)
  11978. if !ok {
  11979. return fmt.Errorf("expected AccountScope to be of type string, got %T instead", value)
  11980. }
  11981. sv.AccountScope = types.AccountScope(jtv)
  11982. }
  11983. case "LookbackPeriodInDays":
  11984. if value != nil {
  11985. jtv, ok := value.(string)
  11986. if !ok {
  11987. return fmt.Errorf("expected LookbackPeriodInDays to be of type string, got %T instead", value)
  11988. }
  11989. sv.LookbackPeriodInDays = types.LookbackPeriodInDays(jtv)
  11990. }
  11991. case "PaymentOption":
  11992. if value != nil {
  11993. jtv, ok := value.(string)
  11994. if !ok {
  11995. return fmt.Errorf("expected PaymentOption to be of type string, got %T instead", value)
  11996. }
  11997. sv.PaymentOption = types.PaymentOption(jtv)
  11998. }
  11999. case "SavingsPlansPurchaseRecommendationDetails":
  12000. if err := awsAwsjson11_deserializeDocumentSavingsPlansPurchaseRecommendationDetailList(&sv.SavingsPlansPurchaseRecommendationDetails, value); err != nil {
  12001. return err
  12002. }
  12003. case "SavingsPlansPurchaseRecommendationSummary":
  12004. if err := awsAwsjson11_deserializeDocumentSavingsPlansPurchaseRecommendationSummary(&sv.SavingsPlansPurchaseRecommendationSummary, value); err != nil {
  12005. return err
  12006. }
  12007. case "SavingsPlansType":
  12008. if value != nil {
  12009. jtv, ok := value.(string)
  12010. if !ok {
  12011. return fmt.Errorf("expected SupportedSavingsPlansType to be of type string, got %T instead", value)
  12012. }
  12013. sv.SavingsPlansType = types.SupportedSavingsPlansType(jtv)
  12014. }
  12015. case "TermInYears":
  12016. if value != nil {
  12017. jtv, ok := value.(string)
  12018. if !ok {
  12019. return fmt.Errorf("expected TermInYears to be of type string, got %T instead", value)
  12020. }
  12021. sv.TermInYears = types.TermInYears(jtv)
  12022. }
  12023. default:
  12024. _, _ = key, value
  12025. }
  12026. }
  12027. *v = sv
  12028. return nil
  12029. }
  12030. func awsAwsjson11_deserializeDocumentSavingsPlansPurchaseRecommendationDetail(v **types.SavingsPlansPurchaseRecommendationDetail, value interface{}) error {
  12031. if v == nil {
  12032. return fmt.Errorf("unexpected nil of type %T", v)
  12033. }
  12034. if value == nil {
  12035. return nil
  12036. }
  12037. shape, ok := value.(map[string]interface{})
  12038. if !ok {
  12039. return fmt.Errorf("unexpected JSON type %v", value)
  12040. }
  12041. var sv *types.SavingsPlansPurchaseRecommendationDetail
  12042. if *v == nil {
  12043. sv = &types.SavingsPlansPurchaseRecommendationDetail{}
  12044. } else {
  12045. sv = *v
  12046. }
  12047. for key, value := range shape {
  12048. switch key {
  12049. case "AccountId":
  12050. if value != nil {
  12051. jtv, ok := value.(string)
  12052. if !ok {
  12053. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12054. }
  12055. sv.AccountId = ptr.String(jtv)
  12056. }
  12057. case "CurrencyCode":
  12058. if value != nil {
  12059. jtv, ok := value.(string)
  12060. if !ok {
  12061. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12062. }
  12063. sv.CurrencyCode = ptr.String(jtv)
  12064. }
  12065. case "CurrentAverageHourlyOnDemandSpend":
  12066. if value != nil {
  12067. jtv, ok := value.(string)
  12068. if !ok {
  12069. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12070. }
  12071. sv.CurrentAverageHourlyOnDemandSpend = ptr.String(jtv)
  12072. }
  12073. case "CurrentMaximumHourlyOnDemandSpend":
  12074. if value != nil {
  12075. jtv, ok := value.(string)
  12076. if !ok {
  12077. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12078. }
  12079. sv.CurrentMaximumHourlyOnDemandSpend = ptr.String(jtv)
  12080. }
  12081. case "CurrentMinimumHourlyOnDemandSpend":
  12082. if value != nil {
  12083. jtv, ok := value.(string)
  12084. if !ok {
  12085. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12086. }
  12087. sv.CurrentMinimumHourlyOnDemandSpend = ptr.String(jtv)
  12088. }
  12089. case "EstimatedAverageUtilization":
  12090. if value != nil {
  12091. jtv, ok := value.(string)
  12092. if !ok {
  12093. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12094. }
  12095. sv.EstimatedAverageUtilization = ptr.String(jtv)
  12096. }
  12097. case "EstimatedMonthlySavingsAmount":
  12098. if value != nil {
  12099. jtv, ok := value.(string)
  12100. if !ok {
  12101. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12102. }
  12103. sv.EstimatedMonthlySavingsAmount = ptr.String(jtv)
  12104. }
  12105. case "EstimatedOnDemandCost":
  12106. if value != nil {
  12107. jtv, ok := value.(string)
  12108. if !ok {
  12109. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12110. }
  12111. sv.EstimatedOnDemandCost = ptr.String(jtv)
  12112. }
  12113. case "EstimatedOnDemandCostWithCurrentCommitment":
  12114. if value != nil {
  12115. jtv, ok := value.(string)
  12116. if !ok {
  12117. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12118. }
  12119. sv.EstimatedOnDemandCostWithCurrentCommitment = ptr.String(jtv)
  12120. }
  12121. case "EstimatedROI":
  12122. if value != nil {
  12123. jtv, ok := value.(string)
  12124. if !ok {
  12125. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12126. }
  12127. sv.EstimatedROI = ptr.String(jtv)
  12128. }
  12129. case "EstimatedSavingsAmount":
  12130. if value != nil {
  12131. jtv, ok := value.(string)
  12132. if !ok {
  12133. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12134. }
  12135. sv.EstimatedSavingsAmount = ptr.String(jtv)
  12136. }
  12137. case "EstimatedSavingsPercentage":
  12138. if value != nil {
  12139. jtv, ok := value.(string)
  12140. if !ok {
  12141. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12142. }
  12143. sv.EstimatedSavingsPercentage = ptr.String(jtv)
  12144. }
  12145. case "EstimatedSPCost":
  12146. if value != nil {
  12147. jtv, ok := value.(string)
  12148. if !ok {
  12149. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12150. }
  12151. sv.EstimatedSPCost = ptr.String(jtv)
  12152. }
  12153. case "HourlyCommitmentToPurchase":
  12154. if value != nil {
  12155. jtv, ok := value.(string)
  12156. if !ok {
  12157. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12158. }
  12159. sv.HourlyCommitmentToPurchase = ptr.String(jtv)
  12160. }
  12161. case "RecommendationDetailId":
  12162. if value != nil {
  12163. jtv, ok := value.(string)
  12164. if !ok {
  12165. return fmt.Errorf("expected RecommendationDetailId to be of type string, got %T instead", value)
  12166. }
  12167. sv.RecommendationDetailId = ptr.String(jtv)
  12168. }
  12169. case "SavingsPlansDetails":
  12170. if err := awsAwsjson11_deserializeDocumentSavingsPlansDetails(&sv.SavingsPlansDetails, value); err != nil {
  12171. return err
  12172. }
  12173. case "UpfrontCost":
  12174. if value != nil {
  12175. jtv, ok := value.(string)
  12176. if !ok {
  12177. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12178. }
  12179. sv.UpfrontCost = ptr.String(jtv)
  12180. }
  12181. default:
  12182. _, _ = key, value
  12183. }
  12184. }
  12185. *v = sv
  12186. return nil
  12187. }
  12188. func awsAwsjson11_deserializeDocumentSavingsPlansPurchaseRecommendationDetailList(v *[]types.SavingsPlansPurchaseRecommendationDetail, value interface{}) error {
  12189. if v == nil {
  12190. return fmt.Errorf("unexpected nil of type %T", v)
  12191. }
  12192. if value == nil {
  12193. return nil
  12194. }
  12195. shape, ok := value.([]interface{})
  12196. if !ok {
  12197. return fmt.Errorf("unexpected JSON type %v", value)
  12198. }
  12199. var cv []types.SavingsPlansPurchaseRecommendationDetail
  12200. if *v == nil {
  12201. cv = []types.SavingsPlansPurchaseRecommendationDetail{}
  12202. } else {
  12203. cv = *v
  12204. }
  12205. for _, value := range shape {
  12206. var col types.SavingsPlansPurchaseRecommendationDetail
  12207. destAddr := &col
  12208. if err := awsAwsjson11_deserializeDocumentSavingsPlansPurchaseRecommendationDetail(&destAddr, value); err != nil {
  12209. return err
  12210. }
  12211. col = *destAddr
  12212. cv = append(cv, col)
  12213. }
  12214. *v = cv
  12215. return nil
  12216. }
  12217. func awsAwsjson11_deserializeDocumentSavingsPlansPurchaseRecommendationMetadata(v **types.SavingsPlansPurchaseRecommendationMetadata, value interface{}) error {
  12218. if v == nil {
  12219. return fmt.Errorf("unexpected nil of type %T", v)
  12220. }
  12221. if value == nil {
  12222. return nil
  12223. }
  12224. shape, ok := value.(map[string]interface{})
  12225. if !ok {
  12226. return fmt.Errorf("unexpected JSON type %v", value)
  12227. }
  12228. var sv *types.SavingsPlansPurchaseRecommendationMetadata
  12229. if *v == nil {
  12230. sv = &types.SavingsPlansPurchaseRecommendationMetadata{}
  12231. } else {
  12232. sv = *v
  12233. }
  12234. for key, value := range shape {
  12235. switch key {
  12236. case "AdditionalMetadata":
  12237. if value != nil {
  12238. jtv, ok := value.(string)
  12239. if !ok {
  12240. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12241. }
  12242. sv.AdditionalMetadata = ptr.String(jtv)
  12243. }
  12244. case "GenerationTimestamp":
  12245. if value != nil {
  12246. jtv, ok := value.(string)
  12247. if !ok {
  12248. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12249. }
  12250. sv.GenerationTimestamp = ptr.String(jtv)
  12251. }
  12252. case "RecommendationId":
  12253. if value != nil {
  12254. jtv, ok := value.(string)
  12255. if !ok {
  12256. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12257. }
  12258. sv.RecommendationId = ptr.String(jtv)
  12259. }
  12260. default:
  12261. _, _ = key, value
  12262. }
  12263. }
  12264. *v = sv
  12265. return nil
  12266. }
  12267. func awsAwsjson11_deserializeDocumentSavingsPlansPurchaseRecommendationSummary(v **types.SavingsPlansPurchaseRecommendationSummary, value interface{}) error {
  12268. if v == nil {
  12269. return fmt.Errorf("unexpected nil of type %T", v)
  12270. }
  12271. if value == nil {
  12272. return nil
  12273. }
  12274. shape, ok := value.(map[string]interface{})
  12275. if !ok {
  12276. return fmt.Errorf("unexpected JSON type %v", value)
  12277. }
  12278. var sv *types.SavingsPlansPurchaseRecommendationSummary
  12279. if *v == nil {
  12280. sv = &types.SavingsPlansPurchaseRecommendationSummary{}
  12281. } else {
  12282. sv = *v
  12283. }
  12284. for key, value := range shape {
  12285. switch key {
  12286. case "CurrencyCode":
  12287. if value != nil {
  12288. jtv, ok := value.(string)
  12289. if !ok {
  12290. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12291. }
  12292. sv.CurrencyCode = ptr.String(jtv)
  12293. }
  12294. case "CurrentOnDemandSpend":
  12295. if value != nil {
  12296. jtv, ok := value.(string)
  12297. if !ok {
  12298. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12299. }
  12300. sv.CurrentOnDemandSpend = ptr.String(jtv)
  12301. }
  12302. case "DailyCommitmentToPurchase":
  12303. if value != nil {
  12304. jtv, ok := value.(string)
  12305. if !ok {
  12306. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12307. }
  12308. sv.DailyCommitmentToPurchase = ptr.String(jtv)
  12309. }
  12310. case "EstimatedMonthlySavingsAmount":
  12311. if value != nil {
  12312. jtv, ok := value.(string)
  12313. if !ok {
  12314. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12315. }
  12316. sv.EstimatedMonthlySavingsAmount = ptr.String(jtv)
  12317. }
  12318. case "EstimatedOnDemandCostWithCurrentCommitment":
  12319. if value != nil {
  12320. jtv, ok := value.(string)
  12321. if !ok {
  12322. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12323. }
  12324. sv.EstimatedOnDemandCostWithCurrentCommitment = ptr.String(jtv)
  12325. }
  12326. case "EstimatedROI":
  12327. if value != nil {
  12328. jtv, ok := value.(string)
  12329. if !ok {
  12330. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12331. }
  12332. sv.EstimatedROI = ptr.String(jtv)
  12333. }
  12334. case "EstimatedSavingsAmount":
  12335. if value != nil {
  12336. jtv, ok := value.(string)
  12337. if !ok {
  12338. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12339. }
  12340. sv.EstimatedSavingsAmount = ptr.String(jtv)
  12341. }
  12342. case "EstimatedSavingsPercentage":
  12343. if value != nil {
  12344. jtv, ok := value.(string)
  12345. if !ok {
  12346. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12347. }
  12348. sv.EstimatedSavingsPercentage = ptr.String(jtv)
  12349. }
  12350. case "EstimatedTotalCost":
  12351. if value != nil {
  12352. jtv, ok := value.(string)
  12353. if !ok {
  12354. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12355. }
  12356. sv.EstimatedTotalCost = ptr.String(jtv)
  12357. }
  12358. case "HourlyCommitmentToPurchase":
  12359. if value != nil {
  12360. jtv, ok := value.(string)
  12361. if !ok {
  12362. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12363. }
  12364. sv.HourlyCommitmentToPurchase = ptr.String(jtv)
  12365. }
  12366. case "TotalRecommendationCount":
  12367. if value != nil {
  12368. jtv, ok := value.(string)
  12369. if !ok {
  12370. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12371. }
  12372. sv.TotalRecommendationCount = ptr.String(jtv)
  12373. }
  12374. default:
  12375. _, _ = key, value
  12376. }
  12377. }
  12378. *v = sv
  12379. return nil
  12380. }
  12381. func awsAwsjson11_deserializeDocumentSavingsPlansSavings(v **types.SavingsPlansSavings, value interface{}) error {
  12382. if v == nil {
  12383. return fmt.Errorf("unexpected nil of type %T", v)
  12384. }
  12385. if value == nil {
  12386. return nil
  12387. }
  12388. shape, ok := value.(map[string]interface{})
  12389. if !ok {
  12390. return fmt.Errorf("unexpected JSON type %v", value)
  12391. }
  12392. var sv *types.SavingsPlansSavings
  12393. if *v == nil {
  12394. sv = &types.SavingsPlansSavings{}
  12395. } else {
  12396. sv = *v
  12397. }
  12398. for key, value := range shape {
  12399. switch key {
  12400. case "NetSavings":
  12401. if value != nil {
  12402. jtv, ok := value.(string)
  12403. if !ok {
  12404. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12405. }
  12406. sv.NetSavings = ptr.String(jtv)
  12407. }
  12408. case "OnDemandCostEquivalent":
  12409. if value != nil {
  12410. jtv, ok := value.(string)
  12411. if !ok {
  12412. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12413. }
  12414. sv.OnDemandCostEquivalent = ptr.String(jtv)
  12415. }
  12416. default:
  12417. _, _ = key, value
  12418. }
  12419. }
  12420. *v = sv
  12421. return nil
  12422. }
  12423. func awsAwsjson11_deserializeDocumentSavingsPlansToAdd(v *[]types.SavingsPlans, value interface{}) error {
  12424. if v == nil {
  12425. return fmt.Errorf("unexpected nil of type %T", v)
  12426. }
  12427. if value == nil {
  12428. return nil
  12429. }
  12430. shape, ok := value.([]interface{})
  12431. if !ok {
  12432. return fmt.Errorf("unexpected JSON type %v", value)
  12433. }
  12434. var cv []types.SavingsPlans
  12435. if *v == nil {
  12436. cv = []types.SavingsPlans{}
  12437. } else {
  12438. cv = *v
  12439. }
  12440. for _, value := range shape {
  12441. var col types.SavingsPlans
  12442. destAddr := &col
  12443. if err := awsAwsjson11_deserializeDocumentSavingsPlans(&destAddr, value); err != nil {
  12444. return err
  12445. }
  12446. col = *destAddr
  12447. cv = append(cv, col)
  12448. }
  12449. *v = cv
  12450. return nil
  12451. }
  12452. func awsAwsjson11_deserializeDocumentSavingsPlansToExclude(v *[]string, value interface{}) error {
  12453. if v == nil {
  12454. return fmt.Errorf("unexpected nil of type %T", v)
  12455. }
  12456. if value == nil {
  12457. return nil
  12458. }
  12459. shape, ok := value.([]interface{})
  12460. if !ok {
  12461. return fmt.Errorf("unexpected JSON type %v", value)
  12462. }
  12463. var cv []string
  12464. if *v == nil {
  12465. cv = []string{}
  12466. } else {
  12467. cv = *v
  12468. }
  12469. for _, value := range shape {
  12470. var col string
  12471. if value != nil {
  12472. jtv, ok := value.(string)
  12473. if !ok {
  12474. return fmt.Errorf("expected SavingsPlansId to be of type string, got %T instead", value)
  12475. }
  12476. col = jtv
  12477. }
  12478. cv = append(cv, col)
  12479. }
  12480. *v = cv
  12481. return nil
  12482. }
  12483. func awsAwsjson11_deserializeDocumentSavingsPlansUtilization(v **types.SavingsPlansUtilization, value interface{}) error {
  12484. if v == nil {
  12485. return fmt.Errorf("unexpected nil of type %T", v)
  12486. }
  12487. if value == nil {
  12488. return nil
  12489. }
  12490. shape, ok := value.(map[string]interface{})
  12491. if !ok {
  12492. return fmt.Errorf("unexpected JSON type %v", value)
  12493. }
  12494. var sv *types.SavingsPlansUtilization
  12495. if *v == nil {
  12496. sv = &types.SavingsPlansUtilization{}
  12497. } else {
  12498. sv = *v
  12499. }
  12500. for key, value := range shape {
  12501. switch key {
  12502. case "TotalCommitment":
  12503. if value != nil {
  12504. jtv, ok := value.(string)
  12505. if !ok {
  12506. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12507. }
  12508. sv.TotalCommitment = ptr.String(jtv)
  12509. }
  12510. case "UnusedCommitment":
  12511. if value != nil {
  12512. jtv, ok := value.(string)
  12513. if !ok {
  12514. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12515. }
  12516. sv.UnusedCommitment = ptr.String(jtv)
  12517. }
  12518. case "UsedCommitment":
  12519. if value != nil {
  12520. jtv, ok := value.(string)
  12521. if !ok {
  12522. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12523. }
  12524. sv.UsedCommitment = ptr.String(jtv)
  12525. }
  12526. case "UtilizationPercentage":
  12527. if value != nil {
  12528. jtv, ok := value.(string)
  12529. if !ok {
  12530. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12531. }
  12532. sv.UtilizationPercentage = ptr.String(jtv)
  12533. }
  12534. default:
  12535. _, _ = key, value
  12536. }
  12537. }
  12538. *v = sv
  12539. return nil
  12540. }
  12541. func awsAwsjson11_deserializeDocumentSavingsPlansUtilizationAggregates(v **types.SavingsPlansUtilizationAggregates, value interface{}) error {
  12542. if v == nil {
  12543. return fmt.Errorf("unexpected nil of type %T", v)
  12544. }
  12545. if value == nil {
  12546. return nil
  12547. }
  12548. shape, ok := value.(map[string]interface{})
  12549. if !ok {
  12550. return fmt.Errorf("unexpected JSON type %v", value)
  12551. }
  12552. var sv *types.SavingsPlansUtilizationAggregates
  12553. if *v == nil {
  12554. sv = &types.SavingsPlansUtilizationAggregates{}
  12555. } else {
  12556. sv = *v
  12557. }
  12558. for key, value := range shape {
  12559. switch key {
  12560. case "AmortizedCommitment":
  12561. if err := awsAwsjson11_deserializeDocumentSavingsPlansAmortizedCommitment(&sv.AmortizedCommitment, value); err != nil {
  12562. return err
  12563. }
  12564. case "Savings":
  12565. if err := awsAwsjson11_deserializeDocumentSavingsPlansSavings(&sv.Savings, value); err != nil {
  12566. return err
  12567. }
  12568. case "Utilization":
  12569. if err := awsAwsjson11_deserializeDocumentSavingsPlansUtilization(&sv.Utilization, value); err != nil {
  12570. return err
  12571. }
  12572. default:
  12573. _, _ = key, value
  12574. }
  12575. }
  12576. *v = sv
  12577. return nil
  12578. }
  12579. func awsAwsjson11_deserializeDocumentSavingsPlansUtilizationByTime(v **types.SavingsPlansUtilizationByTime, value interface{}) error {
  12580. if v == nil {
  12581. return fmt.Errorf("unexpected nil of type %T", v)
  12582. }
  12583. if value == nil {
  12584. return nil
  12585. }
  12586. shape, ok := value.(map[string]interface{})
  12587. if !ok {
  12588. return fmt.Errorf("unexpected JSON type %v", value)
  12589. }
  12590. var sv *types.SavingsPlansUtilizationByTime
  12591. if *v == nil {
  12592. sv = &types.SavingsPlansUtilizationByTime{}
  12593. } else {
  12594. sv = *v
  12595. }
  12596. for key, value := range shape {
  12597. switch key {
  12598. case "AmortizedCommitment":
  12599. if err := awsAwsjson11_deserializeDocumentSavingsPlansAmortizedCommitment(&sv.AmortizedCommitment, value); err != nil {
  12600. return err
  12601. }
  12602. case "Savings":
  12603. if err := awsAwsjson11_deserializeDocumentSavingsPlansSavings(&sv.Savings, value); err != nil {
  12604. return err
  12605. }
  12606. case "TimePeriod":
  12607. if err := awsAwsjson11_deserializeDocumentDateInterval(&sv.TimePeriod, value); err != nil {
  12608. return err
  12609. }
  12610. case "Utilization":
  12611. if err := awsAwsjson11_deserializeDocumentSavingsPlansUtilization(&sv.Utilization, value); err != nil {
  12612. return err
  12613. }
  12614. default:
  12615. _, _ = key, value
  12616. }
  12617. }
  12618. *v = sv
  12619. return nil
  12620. }
  12621. func awsAwsjson11_deserializeDocumentSavingsPlansUtilizationDetail(v **types.SavingsPlansUtilizationDetail, value interface{}) error {
  12622. if v == nil {
  12623. return fmt.Errorf("unexpected nil of type %T", v)
  12624. }
  12625. if value == nil {
  12626. return nil
  12627. }
  12628. shape, ok := value.(map[string]interface{})
  12629. if !ok {
  12630. return fmt.Errorf("unexpected JSON type %v", value)
  12631. }
  12632. var sv *types.SavingsPlansUtilizationDetail
  12633. if *v == nil {
  12634. sv = &types.SavingsPlansUtilizationDetail{}
  12635. } else {
  12636. sv = *v
  12637. }
  12638. for key, value := range shape {
  12639. switch key {
  12640. case "AmortizedCommitment":
  12641. if err := awsAwsjson11_deserializeDocumentSavingsPlansAmortizedCommitment(&sv.AmortizedCommitment, value); err != nil {
  12642. return err
  12643. }
  12644. case "Attributes":
  12645. if err := awsAwsjson11_deserializeDocumentAttributes(&sv.Attributes, value); err != nil {
  12646. return err
  12647. }
  12648. case "Savings":
  12649. if err := awsAwsjson11_deserializeDocumentSavingsPlansSavings(&sv.Savings, value); err != nil {
  12650. return err
  12651. }
  12652. case "SavingsPlanArn":
  12653. if value != nil {
  12654. jtv, ok := value.(string)
  12655. if !ok {
  12656. return fmt.Errorf("expected SavingsPlanArn to be of type string, got %T instead", value)
  12657. }
  12658. sv.SavingsPlanArn = ptr.String(jtv)
  12659. }
  12660. case "Utilization":
  12661. if err := awsAwsjson11_deserializeDocumentSavingsPlansUtilization(&sv.Utilization, value); err != nil {
  12662. return err
  12663. }
  12664. default:
  12665. _, _ = key, value
  12666. }
  12667. }
  12668. *v = sv
  12669. return nil
  12670. }
  12671. func awsAwsjson11_deserializeDocumentSavingsPlansUtilizationDetails(v *[]types.SavingsPlansUtilizationDetail, value interface{}) error {
  12672. if v == nil {
  12673. return fmt.Errorf("unexpected nil of type %T", v)
  12674. }
  12675. if value == nil {
  12676. return nil
  12677. }
  12678. shape, ok := value.([]interface{})
  12679. if !ok {
  12680. return fmt.Errorf("unexpected JSON type %v", value)
  12681. }
  12682. var cv []types.SavingsPlansUtilizationDetail
  12683. if *v == nil {
  12684. cv = []types.SavingsPlansUtilizationDetail{}
  12685. } else {
  12686. cv = *v
  12687. }
  12688. for _, value := range shape {
  12689. var col types.SavingsPlansUtilizationDetail
  12690. destAddr := &col
  12691. if err := awsAwsjson11_deserializeDocumentSavingsPlansUtilizationDetail(&destAddr, value); err != nil {
  12692. return err
  12693. }
  12694. col = *destAddr
  12695. cv = append(cv, col)
  12696. }
  12697. *v = cv
  12698. return nil
  12699. }
  12700. func awsAwsjson11_deserializeDocumentSavingsPlansUtilizationsByTime(v *[]types.SavingsPlansUtilizationByTime, value interface{}) error {
  12701. if v == nil {
  12702. return fmt.Errorf("unexpected nil of type %T", v)
  12703. }
  12704. if value == nil {
  12705. return nil
  12706. }
  12707. shape, ok := value.([]interface{})
  12708. if !ok {
  12709. return fmt.Errorf("unexpected JSON type %v", value)
  12710. }
  12711. var cv []types.SavingsPlansUtilizationByTime
  12712. if *v == nil {
  12713. cv = []types.SavingsPlansUtilizationByTime{}
  12714. } else {
  12715. cv = *v
  12716. }
  12717. for _, value := range shape {
  12718. var col types.SavingsPlansUtilizationByTime
  12719. destAddr := &col
  12720. if err := awsAwsjson11_deserializeDocumentSavingsPlansUtilizationByTime(&destAddr, value); err != nil {
  12721. return err
  12722. }
  12723. col = *destAddr
  12724. cv = append(cv, col)
  12725. }
  12726. *v = cv
  12727. return nil
  12728. }
  12729. func awsAwsjson11_deserializeDocumentServiceQuotaExceededException(v **types.ServiceQuotaExceededException, value interface{}) error {
  12730. if v == nil {
  12731. return fmt.Errorf("unexpected nil of type %T", v)
  12732. }
  12733. if value == nil {
  12734. return nil
  12735. }
  12736. shape, ok := value.(map[string]interface{})
  12737. if !ok {
  12738. return fmt.Errorf("unexpected JSON type %v", value)
  12739. }
  12740. var sv *types.ServiceQuotaExceededException
  12741. if *v == nil {
  12742. sv = &types.ServiceQuotaExceededException{}
  12743. } else {
  12744. sv = *v
  12745. }
  12746. for key, value := range shape {
  12747. switch key {
  12748. case "message", "Message":
  12749. if value != nil {
  12750. jtv, ok := value.(string)
  12751. if !ok {
  12752. return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value)
  12753. }
  12754. sv.Message = ptr.String(jtv)
  12755. }
  12756. default:
  12757. _, _ = key, value
  12758. }
  12759. }
  12760. *v = sv
  12761. return nil
  12762. }
  12763. func awsAwsjson11_deserializeDocumentServiceSpecification(v **types.ServiceSpecification, value interface{}) error {
  12764. if v == nil {
  12765. return fmt.Errorf("unexpected nil of type %T", v)
  12766. }
  12767. if value == nil {
  12768. return nil
  12769. }
  12770. shape, ok := value.(map[string]interface{})
  12771. if !ok {
  12772. return fmt.Errorf("unexpected JSON type %v", value)
  12773. }
  12774. var sv *types.ServiceSpecification
  12775. if *v == nil {
  12776. sv = &types.ServiceSpecification{}
  12777. } else {
  12778. sv = *v
  12779. }
  12780. for key, value := range shape {
  12781. switch key {
  12782. case "EC2Specification":
  12783. if err := awsAwsjson11_deserializeDocumentEC2Specification(&sv.EC2Specification, value); err != nil {
  12784. return err
  12785. }
  12786. default:
  12787. _, _ = key, value
  12788. }
  12789. }
  12790. *v = sv
  12791. return nil
  12792. }
  12793. func awsAwsjson11_deserializeDocumentSubscriber(v **types.Subscriber, value interface{}) error {
  12794. if v == nil {
  12795. return fmt.Errorf("unexpected nil of type %T", v)
  12796. }
  12797. if value == nil {
  12798. return nil
  12799. }
  12800. shape, ok := value.(map[string]interface{})
  12801. if !ok {
  12802. return fmt.Errorf("unexpected JSON type %v", value)
  12803. }
  12804. var sv *types.Subscriber
  12805. if *v == nil {
  12806. sv = &types.Subscriber{}
  12807. } else {
  12808. sv = *v
  12809. }
  12810. for key, value := range shape {
  12811. switch key {
  12812. case "Address":
  12813. if value != nil {
  12814. jtv, ok := value.(string)
  12815. if !ok {
  12816. return fmt.Errorf("expected SubscriberAddress to be of type string, got %T instead", value)
  12817. }
  12818. sv.Address = ptr.String(jtv)
  12819. }
  12820. case "Status":
  12821. if value != nil {
  12822. jtv, ok := value.(string)
  12823. if !ok {
  12824. return fmt.Errorf("expected SubscriberStatus to be of type string, got %T instead", value)
  12825. }
  12826. sv.Status = types.SubscriberStatus(jtv)
  12827. }
  12828. case "Type":
  12829. if value != nil {
  12830. jtv, ok := value.(string)
  12831. if !ok {
  12832. return fmt.Errorf("expected SubscriberType to be of type string, got %T instead", value)
  12833. }
  12834. sv.Type = types.SubscriberType(jtv)
  12835. }
  12836. default:
  12837. _, _ = key, value
  12838. }
  12839. }
  12840. *v = sv
  12841. return nil
  12842. }
  12843. func awsAwsjson11_deserializeDocumentSubscribers(v *[]types.Subscriber, value interface{}) error {
  12844. if v == nil {
  12845. return fmt.Errorf("unexpected nil of type %T", v)
  12846. }
  12847. if value == nil {
  12848. return nil
  12849. }
  12850. shape, ok := value.([]interface{})
  12851. if !ok {
  12852. return fmt.Errorf("unexpected JSON type %v", value)
  12853. }
  12854. var cv []types.Subscriber
  12855. if *v == nil {
  12856. cv = []types.Subscriber{}
  12857. } else {
  12858. cv = *v
  12859. }
  12860. for _, value := range shape {
  12861. var col types.Subscriber
  12862. destAddr := &col
  12863. if err := awsAwsjson11_deserializeDocumentSubscriber(&destAddr, value); err != nil {
  12864. return err
  12865. }
  12866. col = *destAddr
  12867. cv = append(cv, col)
  12868. }
  12869. *v = cv
  12870. return nil
  12871. }
  12872. func awsAwsjson11_deserializeDocumentTagList(v *[]string, value interface{}) error {
  12873. if v == nil {
  12874. return fmt.Errorf("unexpected nil of type %T", v)
  12875. }
  12876. if value == nil {
  12877. return nil
  12878. }
  12879. shape, ok := value.([]interface{})
  12880. if !ok {
  12881. return fmt.Errorf("unexpected JSON type %v", value)
  12882. }
  12883. var cv []string
  12884. if *v == nil {
  12885. cv = []string{}
  12886. } else {
  12887. cv = *v
  12888. }
  12889. for _, value := range shape {
  12890. var col string
  12891. if value != nil {
  12892. jtv, ok := value.(string)
  12893. if !ok {
  12894. return fmt.Errorf("expected Entity to be of type string, got %T instead", value)
  12895. }
  12896. col = jtv
  12897. }
  12898. cv = append(cv, col)
  12899. }
  12900. *v = cv
  12901. return nil
  12902. }
  12903. func awsAwsjson11_deserializeDocumentTagValues(v **types.TagValues, value interface{}) error {
  12904. if v == nil {
  12905. return fmt.Errorf("unexpected nil of type %T", v)
  12906. }
  12907. if value == nil {
  12908. return nil
  12909. }
  12910. shape, ok := value.(map[string]interface{})
  12911. if !ok {
  12912. return fmt.Errorf("unexpected JSON type %v", value)
  12913. }
  12914. var sv *types.TagValues
  12915. if *v == nil {
  12916. sv = &types.TagValues{}
  12917. } else {
  12918. sv = *v
  12919. }
  12920. for key, value := range shape {
  12921. switch key {
  12922. case "Key":
  12923. if value != nil {
  12924. jtv, ok := value.(string)
  12925. if !ok {
  12926. return fmt.Errorf("expected TagKey to be of type string, got %T instead", value)
  12927. }
  12928. sv.Key = ptr.String(jtv)
  12929. }
  12930. case "MatchOptions":
  12931. if err := awsAwsjson11_deserializeDocumentMatchOptions(&sv.MatchOptions, value); err != nil {
  12932. return err
  12933. }
  12934. case "Values":
  12935. if err := awsAwsjson11_deserializeDocumentValues(&sv.Values, value); err != nil {
  12936. return err
  12937. }
  12938. default:
  12939. _, _ = key, value
  12940. }
  12941. }
  12942. *v = sv
  12943. return nil
  12944. }
  12945. func awsAwsjson11_deserializeDocumentTagValuesList(v *[]types.TagValues, value interface{}) error {
  12946. if v == nil {
  12947. return fmt.Errorf("unexpected nil of type %T", v)
  12948. }
  12949. if value == nil {
  12950. return nil
  12951. }
  12952. shape, ok := value.([]interface{})
  12953. if !ok {
  12954. return fmt.Errorf("unexpected JSON type %v", value)
  12955. }
  12956. var cv []types.TagValues
  12957. if *v == nil {
  12958. cv = []types.TagValues{}
  12959. } else {
  12960. cv = *v
  12961. }
  12962. for _, value := range shape {
  12963. var col types.TagValues
  12964. destAddr := &col
  12965. if err := awsAwsjson11_deserializeDocumentTagValues(&destAddr, value); err != nil {
  12966. return err
  12967. }
  12968. col = *destAddr
  12969. cv = append(cv, col)
  12970. }
  12971. *v = cv
  12972. return nil
  12973. }
  12974. func awsAwsjson11_deserializeDocumentTargetInstance(v **types.TargetInstance, value interface{}) error {
  12975. if v == nil {
  12976. return fmt.Errorf("unexpected nil of type %T", v)
  12977. }
  12978. if value == nil {
  12979. return nil
  12980. }
  12981. shape, ok := value.(map[string]interface{})
  12982. if !ok {
  12983. return fmt.Errorf("unexpected JSON type %v", value)
  12984. }
  12985. var sv *types.TargetInstance
  12986. if *v == nil {
  12987. sv = &types.TargetInstance{}
  12988. } else {
  12989. sv = *v
  12990. }
  12991. for key, value := range shape {
  12992. switch key {
  12993. case "CurrencyCode":
  12994. if value != nil {
  12995. jtv, ok := value.(string)
  12996. if !ok {
  12997. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  12998. }
  12999. sv.CurrencyCode = ptr.String(jtv)
  13000. }
  13001. case "DefaultTargetInstance":
  13002. if value != nil {
  13003. jtv, ok := value.(bool)
  13004. if !ok {
  13005. return fmt.Errorf("expected GenericBoolean to be of type *bool, got %T instead", value)
  13006. }
  13007. sv.DefaultTargetInstance = jtv
  13008. }
  13009. case "EstimatedMonthlyCost":
  13010. if value != nil {
  13011. jtv, ok := value.(string)
  13012. if !ok {
  13013. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  13014. }
  13015. sv.EstimatedMonthlyCost = ptr.String(jtv)
  13016. }
  13017. case "EstimatedMonthlySavings":
  13018. if value != nil {
  13019. jtv, ok := value.(string)
  13020. if !ok {
  13021. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  13022. }
  13023. sv.EstimatedMonthlySavings = ptr.String(jtv)
  13024. }
  13025. case "ExpectedResourceUtilization":
  13026. if err := awsAwsjson11_deserializeDocumentResourceUtilization(&sv.ExpectedResourceUtilization, value); err != nil {
  13027. return err
  13028. }
  13029. case "PlatformDifferences":
  13030. if err := awsAwsjson11_deserializeDocumentPlatformDifferences(&sv.PlatformDifferences, value); err != nil {
  13031. return err
  13032. }
  13033. case "ResourceDetails":
  13034. if err := awsAwsjson11_deserializeDocumentResourceDetails(&sv.ResourceDetails, value); err != nil {
  13035. return err
  13036. }
  13037. default:
  13038. _, _ = key, value
  13039. }
  13040. }
  13041. *v = sv
  13042. return nil
  13043. }
  13044. func awsAwsjson11_deserializeDocumentTargetInstancesList(v *[]types.TargetInstance, value interface{}) error {
  13045. if v == nil {
  13046. return fmt.Errorf("unexpected nil of type %T", v)
  13047. }
  13048. if value == nil {
  13049. return nil
  13050. }
  13051. shape, ok := value.([]interface{})
  13052. if !ok {
  13053. return fmt.Errorf("unexpected JSON type %v", value)
  13054. }
  13055. var cv []types.TargetInstance
  13056. if *v == nil {
  13057. cv = []types.TargetInstance{}
  13058. } else {
  13059. cv = *v
  13060. }
  13061. for _, value := range shape {
  13062. var col types.TargetInstance
  13063. destAddr := &col
  13064. if err := awsAwsjson11_deserializeDocumentTargetInstance(&destAddr, value); err != nil {
  13065. return err
  13066. }
  13067. col = *destAddr
  13068. cv = append(cv, col)
  13069. }
  13070. *v = cv
  13071. return nil
  13072. }
  13073. func awsAwsjson11_deserializeDocumentTerminateRecommendationDetail(v **types.TerminateRecommendationDetail, value interface{}) error {
  13074. if v == nil {
  13075. return fmt.Errorf("unexpected nil of type %T", v)
  13076. }
  13077. if value == nil {
  13078. return nil
  13079. }
  13080. shape, ok := value.(map[string]interface{})
  13081. if !ok {
  13082. return fmt.Errorf("unexpected JSON type %v", value)
  13083. }
  13084. var sv *types.TerminateRecommendationDetail
  13085. if *v == nil {
  13086. sv = &types.TerminateRecommendationDetail{}
  13087. } else {
  13088. sv = *v
  13089. }
  13090. for key, value := range shape {
  13091. switch key {
  13092. case "CurrencyCode":
  13093. if value != nil {
  13094. jtv, ok := value.(string)
  13095. if !ok {
  13096. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  13097. }
  13098. sv.CurrencyCode = ptr.String(jtv)
  13099. }
  13100. case "EstimatedMonthlySavings":
  13101. if value != nil {
  13102. jtv, ok := value.(string)
  13103. if !ok {
  13104. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  13105. }
  13106. sv.EstimatedMonthlySavings = ptr.String(jtv)
  13107. }
  13108. default:
  13109. _, _ = key, value
  13110. }
  13111. }
  13112. *v = sv
  13113. return nil
  13114. }
  13115. func awsAwsjson11_deserializeDocumentTooManyTagsException(v **types.TooManyTagsException, value interface{}) error {
  13116. if v == nil {
  13117. return fmt.Errorf("unexpected nil of type %T", v)
  13118. }
  13119. if value == nil {
  13120. return nil
  13121. }
  13122. shape, ok := value.(map[string]interface{})
  13123. if !ok {
  13124. return fmt.Errorf("unexpected JSON type %v", value)
  13125. }
  13126. var sv *types.TooManyTagsException
  13127. if *v == nil {
  13128. sv = &types.TooManyTagsException{}
  13129. } else {
  13130. sv = *v
  13131. }
  13132. for key, value := range shape {
  13133. switch key {
  13134. case "message", "Message":
  13135. if value != nil {
  13136. jtv, ok := value.(string)
  13137. if !ok {
  13138. return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value)
  13139. }
  13140. sv.Message = ptr.String(jtv)
  13141. }
  13142. case "ResourceName":
  13143. if value != nil {
  13144. jtv, ok := value.(string)
  13145. if !ok {
  13146. return fmt.Errorf("expected Arn to be of type string, got %T instead", value)
  13147. }
  13148. sv.ResourceName = ptr.String(jtv)
  13149. }
  13150. default:
  13151. _, _ = key, value
  13152. }
  13153. }
  13154. *v = sv
  13155. return nil
  13156. }
  13157. func awsAwsjson11_deserializeDocumentUnknownMonitorException(v **types.UnknownMonitorException, value interface{}) error {
  13158. if v == nil {
  13159. return fmt.Errorf("unexpected nil of type %T", v)
  13160. }
  13161. if value == nil {
  13162. return nil
  13163. }
  13164. shape, ok := value.(map[string]interface{})
  13165. if !ok {
  13166. return fmt.Errorf("unexpected JSON type %v", value)
  13167. }
  13168. var sv *types.UnknownMonitorException
  13169. if *v == nil {
  13170. sv = &types.UnknownMonitorException{}
  13171. } else {
  13172. sv = *v
  13173. }
  13174. for key, value := range shape {
  13175. switch key {
  13176. case "message", "Message":
  13177. if value != nil {
  13178. jtv, ok := value.(string)
  13179. if !ok {
  13180. return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value)
  13181. }
  13182. sv.Message = ptr.String(jtv)
  13183. }
  13184. default:
  13185. _, _ = key, value
  13186. }
  13187. }
  13188. *v = sv
  13189. return nil
  13190. }
  13191. func awsAwsjson11_deserializeDocumentUnknownSubscriptionException(v **types.UnknownSubscriptionException, value interface{}) error {
  13192. if v == nil {
  13193. return fmt.Errorf("unexpected nil of type %T", v)
  13194. }
  13195. if value == nil {
  13196. return nil
  13197. }
  13198. shape, ok := value.(map[string]interface{})
  13199. if !ok {
  13200. return fmt.Errorf("unexpected JSON type %v", value)
  13201. }
  13202. var sv *types.UnknownSubscriptionException
  13203. if *v == nil {
  13204. sv = &types.UnknownSubscriptionException{}
  13205. } else {
  13206. sv = *v
  13207. }
  13208. for key, value := range shape {
  13209. switch key {
  13210. case "message", "Message":
  13211. if value != nil {
  13212. jtv, ok := value.(string)
  13213. if !ok {
  13214. return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value)
  13215. }
  13216. sv.Message = ptr.String(jtv)
  13217. }
  13218. default:
  13219. _, _ = key, value
  13220. }
  13221. }
  13222. *v = sv
  13223. return nil
  13224. }
  13225. func awsAwsjson11_deserializeDocumentUnresolvableUsageUnitException(v **types.UnresolvableUsageUnitException, value interface{}) error {
  13226. if v == nil {
  13227. return fmt.Errorf("unexpected nil of type %T", v)
  13228. }
  13229. if value == nil {
  13230. return nil
  13231. }
  13232. shape, ok := value.(map[string]interface{})
  13233. if !ok {
  13234. return fmt.Errorf("unexpected JSON type %v", value)
  13235. }
  13236. var sv *types.UnresolvableUsageUnitException
  13237. if *v == nil {
  13238. sv = &types.UnresolvableUsageUnitException{}
  13239. } else {
  13240. sv = *v
  13241. }
  13242. for key, value := range shape {
  13243. switch key {
  13244. case "message", "Message":
  13245. if value != nil {
  13246. jtv, ok := value.(string)
  13247. if !ok {
  13248. return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value)
  13249. }
  13250. sv.Message = ptr.String(jtv)
  13251. }
  13252. default:
  13253. _, _ = key, value
  13254. }
  13255. }
  13256. *v = sv
  13257. return nil
  13258. }
  13259. func awsAwsjson11_deserializeDocumentUpdateCostAllocationTagsStatusError(v **types.UpdateCostAllocationTagsStatusError, value interface{}) error {
  13260. if v == nil {
  13261. return fmt.Errorf("unexpected nil of type %T", v)
  13262. }
  13263. if value == nil {
  13264. return nil
  13265. }
  13266. shape, ok := value.(map[string]interface{})
  13267. if !ok {
  13268. return fmt.Errorf("unexpected JSON type %v", value)
  13269. }
  13270. var sv *types.UpdateCostAllocationTagsStatusError
  13271. if *v == nil {
  13272. sv = &types.UpdateCostAllocationTagsStatusError{}
  13273. } else {
  13274. sv = *v
  13275. }
  13276. for key, value := range shape {
  13277. switch key {
  13278. case "Code":
  13279. if value != nil {
  13280. jtv, ok := value.(string)
  13281. if !ok {
  13282. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  13283. }
  13284. sv.Code = ptr.String(jtv)
  13285. }
  13286. case "Message":
  13287. if value != nil {
  13288. jtv, ok := value.(string)
  13289. if !ok {
  13290. return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value)
  13291. }
  13292. sv.Message = ptr.String(jtv)
  13293. }
  13294. case "TagKey":
  13295. if value != nil {
  13296. jtv, ok := value.(string)
  13297. if !ok {
  13298. return fmt.Errorf("expected TagKey to be of type string, got %T instead", value)
  13299. }
  13300. sv.TagKey = ptr.String(jtv)
  13301. }
  13302. default:
  13303. _, _ = key, value
  13304. }
  13305. }
  13306. *v = sv
  13307. return nil
  13308. }
  13309. func awsAwsjson11_deserializeDocumentUpdateCostAllocationTagsStatusErrors(v *[]types.UpdateCostAllocationTagsStatusError, value interface{}) error {
  13310. if v == nil {
  13311. return fmt.Errorf("unexpected nil of type %T", v)
  13312. }
  13313. if value == nil {
  13314. return nil
  13315. }
  13316. shape, ok := value.([]interface{})
  13317. if !ok {
  13318. return fmt.Errorf("unexpected JSON type %v", value)
  13319. }
  13320. var cv []types.UpdateCostAllocationTagsStatusError
  13321. if *v == nil {
  13322. cv = []types.UpdateCostAllocationTagsStatusError{}
  13323. } else {
  13324. cv = *v
  13325. }
  13326. for _, value := range shape {
  13327. var col types.UpdateCostAllocationTagsStatusError
  13328. destAddr := &col
  13329. if err := awsAwsjson11_deserializeDocumentUpdateCostAllocationTagsStatusError(&destAddr, value); err != nil {
  13330. return err
  13331. }
  13332. col = *destAddr
  13333. cv = append(cv, col)
  13334. }
  13335. *v = cv
  13336. return nil
  13337. }
  13338. func awsAwsjson11_deserializeDocumentUtilizationByTime(v **types.UtilizationByTime, value interface{}) error {
  13339. if v == nil {
  13340. return fmt.Errorf("unexpected nil of type %T", v)
  13341. }
  13342. if value == nil {
  13343. return nil
  13344. }
  13345. shape, ok := value.(map[string]interface{})
  13346. if !ok {
  13347. return fmt.Errorf("unexpected JSON type %v", value)
  13348. }
  13349. var sv *types.UtilizationByTime
  13350. if *v == nil {
  13351. sv = &types.UtilizationByTime{}
  13352. } else {
  13353. sv = *v
  13354. }
  13355. for key, value := range shape {
  13356. switch key {
  13357. case "Groups":
  13358. if err := awsAwsjson11_deserializeDocumentReservationUtilizationGroups(&sv.Groups, value); err != nil {
  13359. return err
  13360. }
  13361. case "TimePeriod":
  13362. if err := awsAwsjson11_deserializeDocumentDateInterval(&sv.TimePeriod, value); err != nil {
  13363. return err
  13364. }
  13365. case "Total":
  13366. if err := awsAwsjson11_deserializeDocumentReservationAggregates(&sv.Total, value); err != nil {
  13367. return err
  13368. }
  13369. default:
  13370. _, _ = key, value
  13371. }
  13372. }
  13373. *v = sv
  13374. return nil
  13375. }
  13376. func awsAwsjson11_deserializeDocumentUtilizationsByTime(v *[]types.UtilizationByTime, value interface{}) error {
  13377. if v == nil {
  13378. return fmt.Errorf("unexpected nil of type %T", v)
  13379. }
  13380. if value == nil {
  13381. return nil
  13382. }
  13383. shape, ok := value.([]interface{})
  13384. if !ok {
  13385. return fmt.Errorf("unexpected JSON type %v", value)
  13386. }
  13387. var cv []types.UtilizationByTime
  13388. if *v == nil {
  13389. cv = []types.UtilizationByTime{}
  13390. } else {
  13391. cv = *v
  13392. }
  13393. for _, value := range shape {
  13394. var col types.UtilizationByTime
  13395. destAddr := &col
  13396. if err := awsAwsjson11_deserializeDocumentUtilizationByTime(&destAddr, value); err != nil {
  13397. return err
  13398. }
  13399. col = *destAddr
  13400. cv = append(cv, col)
  13401. }
  13402. *v = cv
  13403. return nil
  13404. }
  13405. func awsAwsjson11_deserializeDocumentValues(v *[]string, value interface{}) error {
  13406. if v == nil {
  13407. return fmt.Errorf("unexpected nil of type %T", v)
  13408. }
  13409. if value == nil {
  13410. return nil
  13411. }
  13412. shape, ok := value.([]interface{})
  13413. if !ok {
  13414. return fmt.Errorf("unexpected JSON type %v", value)
  13415. }
  13416. var cv []string
  13417. if *v == nil {
  13418. cv = []string{}
  13419. } else {
  13420. cv = *v
  13421. }
  13422. for _, value := range shape {
  13423. var col string
  13424. if value != nil {
  13425. jtv, ok := value.(string)
  13426. if !ok {
  13427. return fmt.Errorf("expected Value to be of type string, got %T instead", value)
  13428. }
  13429. col = jtv
  13430. }
  13431. cv = append(cv, col)
  13432. }
  13433. *v = cv
  13434. return nil
  13435. }
  13436. func awsAwsjson11_deserializeOpDocumentCreateAnomalyMonitorOutput(v **CreateAnomalyMonitorOutput, value interface{}) error {
  13437. if v == nil {
  13438. return fmt.Errorf("unexpected nil of type %T", v)
  13439. }
  13440. if value == nil {
  13441. return nil
  13442. }
  13443. shape, ok := value.(map[string]interface{})
  13444. if !ok {
  13445. return fmt.Errorf("unexpected JSON type %v", value)
  13446. }
  13447. var sv *CreateAnomalyMonitorOutput
  13448. if *v == nil {
  13449. sv = &CreateAnomalyMonitorOutput{}
  13450. } else {
  13451. sv = *v
  13452. }
  13453. for key, value := range shape {
  13454. switch key {
  13455. case "MonitorArn":
  13456. if value != nil {
  13457. jtv, ok := value.(string)
  13458. if !ok {
  13459. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  13460. }
  13461. sv.MonitorArn = ptr.String(jtv)
  13462. }
  13463. default:
  13464. _, _ = key, value
  13465. }
  13466. }
  13467. *v = sv
  13468. return nil
  13469. }
  13470. func awsAwsjson11_deserializeOpDocumentCreateAnomalySubscriptionOutput(v **CreateAnomalySubscriptionOutput, value interface{}) error {
  13471. if v == nil {
  13472. return fmt.Errorf("unexpected nil of type %T", v)
  13473. }
  13474. if value == nil {
  13475. return nil
  13476. }
  13477. shape, ok := value.(map[string]interface{})
  13478. if !ok {
  13479. return fmt.Errorf("unexpected JSON type %v", value)
  13480. }
  13481. var sv *CreateAnomalySubscriptionOutput
  13482. if *v == nil {
  13483. sv = &CreateAnomalySubscriptionOutput{}
  13484. } else {
  13485. sv = *v
  13486. }
  13487. for key, value := range shape {
  13488. switch key {
  13489. case "SubscriptionArn":
  13490. if value != nil {
  13491. jtv, ok := value.(string)
  13492. if !ok {
  13493. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  13494. }
  13495. sv.SubscriptionArn = ptr.String(jtv)
  13496. }
  13497. default:
  13498. _, _ = key, value
  13499. }
  13500. }
  13501. *v = sv
  13502. return nil
  13503. }
  13504. func awsAwsjson11_deserializeOpDocumentCreateCostCategoryDefinitionOutput(v **CreateCostCategoryDefinitionOutput, value interface{}) error {
  13505. if v == nil {
  13506. return fmt.Errorf("unexpected nil of type %T", v)
  13507. }
  13508. if value == nil {
  13509. return nil
  13510. }
  13511. shape, ok := value.(map[string]interface{})
  13512. if !ok {
  13513. return fmt.Errorf("unexpected JSON type %v", value)
  13514. }
  13515. var sv *CreateCostCategoryDefinitionOutput
  13516. if *v == nil {
  13517. sv = &CreateCostCategoryDefinitionOutput{}
  13518. } else {
  13519. sv = *v
  13520. }
  13521. for key, value := range shape {
  13522. switch key {
  13523. case "CostCategoryArn":
  13524. if value != nil {
  13525. jtv, ok := value.(string)
  13526. if !ok {
  13527. return fmt.Errorf("expected Arn to be of type string, got %T instead", value)
  13528. }
  13529. sv.CostCategoryArn = ptr.String(jtv)
  13530. }
  13531. case "EffectiveStart":
  13532. if value != nil {
  13533. jtv, ok := value.(string)
  13534. if !ok {
  13535. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  13536. }
  13537. sv.EffectiveStart = ptr.String(jtv)
  13538. }
  13539. default:
  13540. _, _ = key, value
  13541. }
  13542. }
  13543. *v = sv
  13544. return nil
  13545. }
  13546. func awsAwsjson11_deserializeOpDocumentDeleteAnomalyMonitorOutput(v **DeleteAnomalyMonitorOutput, value interface{}) error {
  13547. if v == nil {
  13548. return fmt.Errorf("unexpected nil of type %T", v)
  13549. }
  13550. if value == nil {
  13551. return nil
  13552. }
  13553. shape, ok := value.(map[string]interface{})
  13554. if !ok {
  13555. return fmt.Errorf("unexpected JSON type %v", value)
  13556. }
  13557. var sv *DeleteAnomalyMonitorOutput
  13558. if *v == nil {
  13559. sv = &DeleteAnomalyMonitorOutput{}
  13560. } else {
  13561. sv = *v
  13562. }
  13563. for key, value := range shape {
  13564. switch key {
  13565. default:
  13566. _, _ = key, value
  13567. }
  13568. }
  13569. *v = sv
  13570. return nil
  13571. }
  13572. func awsAwsjson11_deserializeOpDocumentDeleteAnomalySubscriptionOutput(v **DeleteAnomalySubscriptionOutput, value interface{}) error {
  13573. if v == nil {
  13574. return fmt.Errorf("unexpected nil of type %T", v)
  13575. }
  13576. if value == nil {
  13577. return nil
  13578. }
  13579. shape, ok := value.(map[string]interface{})
  13580. if !ok {
  13581. return fmt.Errorf("unexpected JSON type %v", value)
  13582. }
  13583. var sv *DeleteAnomalySubscriptionOutput
  13584. if *v == nil {
  13585. sv = &DeleteAnomalySubscriptionOutput{}
  13586. } else {
  13587. sv = *v
  13588. }
  13589. for key, value := range shape {
  13590. switch key {
  13591. default:
  13592. _, _ = key, value
  13593. }
  13594. }
  13595. *v = sv
  13596. return nil
  13597. }
  13598. func awsAwsjson11_deserializeOpDocumentDeleteCostCategoryDefinitionOutput(v **DeleteCostCategoryDefinitionOutput, value interface{}) error {
  13599. if v == nil {
  13600. return fmt.Errorf("unexpected nil of type %T", v)
  13601. }
  13602. if value == nil {
  13603. return nil
  13604. }
  13605. shape, ok := value.(map[string]interface{})
  13606. if !ok {
  13607. return fmt.Errorf("unexpected JSON type %v", value)
  13608. }
  13609. var sv *DeleteCostCategoryDefinitionOutput
  13610. if *v == nil {
  13611. sv = &DeleteCostCategoryDefinitionOutput{}
  13612. } else {
  13613. sv = *v
  13614. }
  13615. for key, value := range shape {
  13616. switch key {
  13617. case "CostCategoryArn":
  13618. if value != nil {
  13619. jtv, ok := value.(string)
  13620. if !ok {
  13621. return fmt.Errorf("expected Arn to be of type string, got %T instead", value)
  13622. }
  13623. sv.CostCategoryArn = ptr.String(jtv)
  13624. }
  13625. case "EffectiveEnd":
  13626. if value != nil {
  13627. jtv, ok := value.(string)
  13628. if !ok {
  13629. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  13630. }
  13631. sv.EffectiveEnd = ptr.String(jtv)
  13632. }
  13633. default:
  13634. _, _ = key, value
  13635. }
  13636. }
  13637. *v = sv
  13638. return nil
  13639. }
  13640. func awsAwsjson11_deserializeOpDocumentDescribeCostCategoryDefinitionOutput(v **DescribeCostCategoryDefinitionOutput, value interface{}) error {
  13641. if v == nil {
  13642. return fmt.Errorf("unexpected nil of type %T", v)
  13643. }
  13644. if value == nil {
  13645. return nil
  13646. }
  13647. shape, ok := value.(map[string]interface{})
  13648. if !ok {
  13649. return fmt.Errorf("unexpected JSON type %v", value)
  13650. }
  13651. var sv *DescribeCostCategoryDefinitionOutput
  13652. if *v == nil {
  13653. sv = &DescribeCostCategoryDefinitionOutput{}
  13654. } else {
  13655. sv = *v
  13656. }
  13657. for key, value := range shape {
  13658. switch key {
  13659. case "CostCategory":
  13660. if err := awsAwsjson11_deserializeDocumentCostCategory(&sv.CostCategory, value); err != nil {
  13661. return err
  13662. }
  13663. default:
  13664. _, _ = key, value
  13665. }
  13666. }
  13667. *v = sv
  13668. return nil
  13669. }
  13670. func awsAwsjson11_deserializeOpDocumentGetAnomaliesOutput(v **GetAnomaliesOutput, value interface{}) error {
  13671. if v == nil {
  13672. return fmt.Errorf("unexpected nil of type %T", v)
  13673. }
  13674. if value == nil {
  13675. return nil
  13676. }
  13677. shape, ok := value.(map[string]interface{})
  13678. if !ok {
  13679. return fmt.Errorf("unexpected JSON type %v", value)
  13680. }
  13681. var sv *GetAnomaliesOutput
  13682. if *v == nil {
  13683. sv = &GetAnomaliesOutput{}
  13684. } else {
  13685. sv = *v
  13686. }
  13687. for key, value := range shape {
  13688. switch key {
  13689. case "Anomalies":
  13690. if err := awsAwsjson11_deserializeDocumentAnomalies(&sv.Anomalies, value); err != nil {
  13691. return err
  13692. }
  13693. case "NextPageToken":
  13694. if value != nil {
  13695. jtv, ok := value.(string)
  13696. if !ok {
  13697. return fmt.Errorf("expected NextPageToken to be of type string, got %T instead", value)
  13698. }
  13699. sv.NextPageToken = ptr.String(jtv)
  13700. }
  13701. default:
  13702. _, _ = key, value
  13703. }
  13704. }
  13705. *v = sv
  13706. return nil
  13707. }
  13708. func awsAwsjson11_deserializeOpDocumentGetAnomalyMonitorsOutput(v **GetAnomalyMonitorsOutput, value interface{}) error {
  13709. if v == nil {
  13710. return fmt.Errorf("unexpected nil of type %T", v)
  13711. }
  13712. if value == nil {
  13713. return nil
  13714. }
  13715. shape, ok := value.(map[string]interface{})
  13716. if !ok {
  13717. return fmt.Errorf("unexpected JSON type %v", value)
  13718. }
  13719. var sv *GetAnomalyMonitorsOutput
  13720. if *v == nil {
  13721. sv = &GetAnomalyMonitorsOutput{}
  13722. } else {
  13723. sv = *v
  13724. }
  13725. for key, value := range shape {
  13726. switch key {
  13727. case "AnomalyMonitors":
  13728. if err := awsAwsjson11_deserializeDocumentAnomalyMonitors(&sv.AnomalyMonitors, value); err != nil {
  13729. return err
  13730. }
  13731. case "NextPageToken":
  13732. if value != nil {
  13733. jtv, ok := value.(string)
  13734. if !ok {
  13735. return fmt.Errorf("expected NextPageToken to be of type string, got %T instead", value)
  13736. }
  13737. sv.NextPageToken = ptr.String(jtv)
  13738. }
  13739. default:
  13740. _, _ = key, value
  13741. }
  13742. }
  13743. *v = sv
  13744. return nil
  13745. }
  13746. func awsAwsjson11_deserializeOpDocumentGetAnomalySubscriptionsOutput(v **GetAnomalySubscriptionsOutput, value interface{}) error {
  13747. if v == nil {
  13748. return fmt.Errorf("unexpected nil of type %T", v)
  13749. }
  13750. if value == nil {
  13751. return nil
  13752. }
  13753. shape, ok := value.(map[string]interface{})
  13754. if !ok {
  13755. return fmt.Errorf("unexpected JSON type %v", value)
  13756. }
  13757. var sv *GetAnomalySubscriptionsOutput
  13758. if *v == nil {
  13759. sv = &GetAnomalySubscriptionsOutput{}
  13760. } else {
  13761. sv = *v
  13762. }
  13763. for key, value := range shape {
  13764. switch key {
  13765. case "AnomalySubscriptions":
  13766. if err := awsAwsjson11_deserializeDocumentAnomalySubscriptions(&sv.AnomalySubscriptions, value); err != nil {
  13767. return err
  13768. }
  13769. case "NextPageToken":
  13770. if value != nil {
  13771. jtv, ok := value.(string)
  13772. if !ok {
  13773. return fmt.Errorf("expected NextPageToken to be of type string, got %T instead", value)
  13774. }
  13775. sv.NextPageToken = ptr.String(jtv)
  13776. }
  13777. default:
  13778. _, _ = key, value
  13779. }
  13780. }
  13781. *v = sv
  13782. return nil
  13783. }
  13784. func awsAwsjson11_deserializeOpDocumentGetApproximateUsageRecordsOutput(v **GetApproximateUsageRecordsOutput, value interface{}) error {
  13785. if v == nil {
  13786. return fmt.Errorf("unexpected nil of type %T", v)
  13787. }
  13788. if value == nil {
  13789. return nil
  13790. }
  13791. shape, ok := value.(map[string]interface{})
  13792. if !ok {
  13793. return fmt.Errorf("unexpected JSON type %v", value)
  13794. }
  13795. var sv *GetApproximateUsageRecordsOutput
  13796. if *v == nil {
  13797. sv = &GetApproximateUsageRecordsOutput{}
  13798. } else {
  13799. sv = *v
  13800. }
  13801. for key, value := range shape {
  13802. switch key {
  13803. case "LookbackPeriod":
  13804. if err := awsAwsjson11_deserializeDocumentDateInterval(&sv.LookbackPeriod, value); err != nil {
  13805. return err
  13806. }
  13807. case "Services":
  13808. if err := awsAwsjson11_deserializeDocumentApproximateUsageRecordsPerService(&sv.Services, value); err != nil {
  13809. return err
  13810. }
  13811. case "TotalRecords":
  13812. if value != nil {
  13813. jtv, ok := value.(json.Number)
  13814. if !ok {
  13815. return fmt.Errorf("expected NonNegativeLong to be json.Number, got %T instead", value)
  13816. }
  13817. i64, err := jtv.Int64()
  13818. if err != nil {
  13819. return err
  13820. }
  13821. sv.TotalRecords = i64
  13822. }
  13823. default:
  13824. _, _ = key, value
  13825. }
  13826. }
  13827. *v = sv
  13828. return nil
  13829. }
  13830. func awsAwsjson11_deserializeOpDocumentGetCommitmentPurchaseAnalysisOutput(v **GetCommitmentPurchaseAnalysisOutput, value interface{}) error {
  13831. if v == nil {
  13832. return fmt.Errorf("unexpected nil of type %T", v)
  13833. }
  13834. if value == nil {
  13835. return nil
  13836. }
  13837. shape, ok := value.(map[string]interface{})
  13838. if !ok {
  13839. return fmt.Errorf("unexpected JSON type %v", value)
  13840. }
  13841. var sv *GetCommitmentPurchaseAnalysisOutput
  13842. if *v == nil {
  13843. sv = &GetCommitmentPurchaseAnalysisOutput{}
  13844. } else {
  13845. sv = *v
  13846. }
  13847. for key, value := range shape {
  13848. switch key {
  13849. case "AnalysisCompletionTime":
  13850. if value != nil {
  13851. jtv, ok := value.(string)
  13852. if !ok {
  13853. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  13854. }
  13855. sv.AnalysisCompletionTime = ptr.String(jtv)
  13856. }
  13857. case "AnalysisDetails":
  13858. if err := awsAwsjson11_deserializeDocumentAnalysisDetails(&sv.AnalysisDetails, value); err != nil {
  13859. return err
  13860. }
  13861. case "AnalysisId":
  13862. if value != nil {
  13863. jtv, ok := value.(string)
  13864. if !ok {
  13865. return fmt.Errorf("expected AnalysisId to be of type string, got %T instead", value)
  13866. }
  13867. sv.AnalysisId = ptr.String(jtv)
  13868. }
  13869. case "AnalysisStartedTime":
  13870. if value != nil {
  13871. jtv, ok := value.(string)
  13872. if !ok {
  13873. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  13874. }
  13875. sv.AnalysisStartedTime = ptr.String(jtv)
  13876. }
  13877. case "AnalysisStatus":
  13878. if value != nil {
  13879. jtv, ok := value.(string)
  13880. if !ok {
  13881. return fmt.Errorf("expected AnalysisStatus to be of type string, got %T instead", value)
  13882. }
  13883. sv.AnalysisStatus = types.AnalysisStatus(jtv)
  13884. }
  13885. case "CommitmentPurchaseAnalysisConfiguration":
  13886. if err := awsAwsjson11_deserializeDocumentCommitmentPurchaseAnalysisConfiguration(&sv.CommitmentPurchaseAnalysisConfiguration, value); err != nil {
  13887. return err
  13888. }
  13889. case "ErrorCode":
  13890. if value != nil {
  13891. jtv, ok := value.(string)
  13892. if !ok {
  13893. return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
  13894. }
  13895. sv.ErrorCode = types.ErrorCode(jtv)
  13896. }
  13897. case "EstimatedCompletionTime":
  13898. if value != nil {
  13899. jtv, ok := value.(string)
  13900. if !ok {
  13901. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  13902. }
  13903. sv.EstimatedCompletionTime = ptr.String(jtv)
  13904. }
  13905. default:
  13906. _, _ = key, value
  13907. }
  13908. }
  13909. *v = sv
  13910. return nil
  13911. }
  13912. func awsAwsjson11_deserializeOpDocumentGetCostAndUsageComparisonsOutput(v **GetCostAndUsageComparisonsOutput, value interface{}) error {
  13913. if v == nil {
  13914. return fmt.Errorf("unexpected nil of type %T", v)
  13915. }
  13916. if value == nil {
  13917. return nil
  13918. }
  13919. shape, ok := value.(map[string]interface{})
  13920. if !ok {
  13921. return fmt.Errorf("unexpected JSON type %v", value)
  13922. }
  13923. var sv *GetCostAndUsageComparisonsOutput
  13924. if *v == nil {
  13925. sv = &GetCostAndUsageComparisonsOutput{}
  13926. } else {
  13927. sv = *v
  13928. }
  13929. for key, value := range shape {
  13930. switch key {
  13931. case "CostAndUsageComparisons":
  13932. if err := awsAwsjson11_deserializeDocumentCostAndUsageComparisons(&sv.CostAndUsageComparisons, value); err != nil {
  13933. return err
  13934. }
  13935. case "NextPageToken":
  13936. if value != nil {
  13937. jtv, ok := value.(string)
  13938. if !ok {
  13939. return fmt.Errorf("expected NextPageToken to be of type string, got %T instead", value)
  13940. }
  13941. sv.NextPageToken = ptr.String(jtv)
  13942. }
  13943. case "TotalCostAndUsage":
  13944. if err := awsAwsjson11_deserializeDocumentComparisonMetrics(&sv.TotalCostAndUsage, value); err != nil {
  13945. return err
  13946. }
  13947. default:
  13948. _, _ = key, value
  13949. }
  13950. }
  13951. *v = sv
  13952. return nil
  13953. }
  13954. func awsAwsjson11_deserializeOpDocumentGetCostAndUsageOutput(v **GetCostAndUsageOutput, value interface{}) error {
  13955. if v == nil {
  13956. return fmt.Errorf("unexpected nil of type %T", v)
  13957. }
  13958. if value == nil {
  13959. return nil
  13960. }
  13961. shape, ok := value.(map[string]interface{})
  13962. if !ok {
  13963. return fmt.Errorf("unexpected JSON type %v", value)
  13964. }
  13965. var sv *GetCostAndUsageOutput
  13966. if *v == nil {
  13967. sv = &GetCostAndUsageOutput{}
  13968. } else {
  13969. sv = *v
  13970. }
  13971. for key, value := range shape {
  13972. switch key {
  13973. case "DimensionValueAttributes":
  13974. if err := awsAwsjson11_deserializeDocumentDimensionValuesWithAttributesList(&sv.DimensionValueAttributes, value); err != nil {
  13975. return err
  13976. }
  13977. case "GroupDefinitions":
  13978. if err := awsAwsjson11_deserializeDocumentGroupDefinitions(&sv.GroupDefinitions, value); err != nil {
  13979. return err
  13980. }
  13981. case "NextPageToken":
  13982. if value != nil {
  13983. jtv, ok := value.(string)
  13984. if !ok {
  13985. return fmt.Errorf("expected NextPageToken to be of type string, got %T instead", value)
  13986. }
  13987. sv.NextPageToken = ptr.String(jtv)
  13988. }
  13989. case "ResultsByTime":
  13990. if err := awsAwsjson11_deserializeDocumentResultsByTime(&sv.ResultsByTime, value); err != nil {
  13991. return err
  13992. }
  13993. default:
  13994. _, _ = key, value
  13995. }
  13996. }
  13997. *v = sv
  13998. return nil
  13999. }
  14000. func awsAwsjson11_deserializeOpDocumentGetCostAndUsageWithResourcesOutput(v **GetCostAndUsageWithResourcesOutput, value interface{}) error {
  14001. if v == nil {
  14002. return fmt.Errorf("unexpected nil of type %T", v)
  14003. }
  14004. if value == nil {
  14005. return nil
  14006. }
  14007. shape, ok := value.(map[string]interface{})
  14008. if !ok {
  14009. return fmt.Errorf("unexpected JSON type %v", value)
  14010. }
  14011. var sv *GetCostAndUsageWithResourcesOutput
  14012. if *v == nil {
  14013. sv = &GetCostAndUsageWithResourcesOutput{}
  14014. } else {
  14015. sv = *v
  14016. }
  14017. for key, value := range shape {
  14018. switch key {
  14019. case "DimensionValueAttributes":
  14020. if err := awsAwsjson11_deserializeDocumentDimensionValuesWithAttributesList(&sv.DimensionValueAttributes, value); err != nil {
  14021. return err
  14022. }
  14023. case "GroupDefinitions":
  14024. if err := awsAwsjson11_deserializeDocumentGroupDefinitions(&sv.GroupDefinitions, value); err != nil {
  14025. return err
  14026. }
  14027. case "NextPageToken":
  14028. if value != nil {
  14029. jtv, ok := value.(string)
  14030. if !ok {
  14031. return fmt.Errorf("expected NextPageToken to be of type string, got %T instead", value)
  14032. }
  14033. sv.NextPageToken = ptr.String(jtv)
  14034. }
  14035. case "ResultsByTime":
  14036. if err := awsAwsjson11_deserializeDocumentResultsByTime(&sv.ResultsByTime, value); err != nil {
  14037. return err
  14038. }
  14039. default:
  14040. _, _ = key, value
  14041. }
  14042. }
  14043. *v = sv
  14044. return nil
  14045. }
  14046. func awsAwsjson11_deserializeOpDocumentGetCostCategoriesOutput(v **GetCostCategoriesOutput, value interface{}) error {
  14047. if v == nil {
  14048. return fmt.Errorf("unexpected nil of type %T", v)
  14049. }
  14050. if value == nil {
  14051. return nil
  14052. }
  14053. shape, ok := value.(map[string]interface{})
  14054. if !ok {
  14055. return fmt.Errorf("unexpected JSON type %v", value)
  14056. }
  14057. var sv *GetCostCategoriesOutput
  14058. if *v == nil {
  14059. sv = &GetCostCategoriesOutput{}
  14060. } else {
  14061. sv = *v
  14062. }
  14063. for key, value := range shape {
  14064. switch key {
  14065. case "CostCategoryNames":
  14066. if err := awsAwsjson11_deserializeDocumentCostCategoryNamesList(&sv.CostCategoryNames, value); err != nil {
  14067. return err
  14068. }
  14069. case "CostCategoryValues":
  14070. if err := awsAwsjson11_deserializeDocumentCostCategoryValuesList(&sv.CostCategoryValues, value); err != nil {
  14071. return err
  14072. }
  14073. case "NextPageToken":
  14074. if value != nil {
  14075. jtv, ok := value.(string)
  14076. if !ok {
  14077. return fmt.Errorf("expected NextPageToken to be of type string, got %T instead", value)
  14078. }
  14079. sv.NextPageToken = ptr.String(jtv)
  14080. }
  14081. case "ReturnSize":
  14082. if value != nil {
  14083. jtv, ok := value.(json.Number)
  14084. if !ok {
  14085. return fmt.Errorf("expected PageSize to be json.Number, got %T instead", value)
  14086. }
  14087. i64, err := jtv.Int64()
  14088. if err != nil {
  14089. return err
  14090. }
  14091. sv.ReturnSize = ptr.Int32(int32(i64))
  14092. }
  14093. case "TotalSize":
  14094. if value != nil {
  14095. jtv, ok := value.(json.Number)
  14096. if !ok {
  14097. return fmt.Errorf("expected PageSize to be json.Number, got %T instead", value)
  14098. }
  14099. i64, err := jtv.Int64()
  14100. if err != nil {
  14101. return err
  14102. }
  14103. sv.TotalSize = ptr.Int32(int32(i64))
  14104. }
  14105. default:
  14106. _, _ = key, value
  14107. }
  14108. }
  14109. *v = sv
  14110. return nil
  14111. }
  14112. func awsAwsjson11_deserializeOpDocumentGetCostComparisonDriversOutput(v **GetCostComparisonDriversOutput, value interface{}) error {
  14113. if v == nil {
  14114. return fmt.Errorf("unexpected nil of type %T", v)
  14115. }
  14116. if value == nil {
  14117. return nil
  14118. }
  14119. shape, ok := value.(map[string]interface{})
  14120. if !ok {
  14121. return fmt.Errorf("unexpected JSON type %v", value)
  14122. }
  14123. var sv *GetCostComparisonDriversOutput
  14124. if *v == nil {
  14125. sv = &GetCostComparisonDriversOutput{}
  14126. } else {
  14127. sv = *v
  14128. }
  14129. for key, value := range shape {
  14130. switch key {
  14131. case "CostComparisonDrivers":
  14132. if err := awsAwsjson11_deserializeDocumentCostComparisonDrivers(&sv.CostComparisonDrivers, value); err != nil {
  14133. return err
  14134. }
  14135. case "NextPageToken":
  14136. if value != nil {
  14137. jtv, ok := value.(string)
  14138. if !ok {
  14139. return fmt.Errorf("expected NextPageToken to be of type string, got %T instead", value)
  14140. }
  14141. sv.NextPageToken = ptr.String(jtv)
  14142. }
  14143. default:
  14144. _, _ = key, value
  14145. }
  14146. }
  14147. *v = sv
  14148. return nil
  14149. }
  14150. func awsAwsjson11_deserializeOpDocumentGetCostForecastOutput(v **GetCostForecastOutput, value interface{}) error {
  14151. if v == nil {
  14152. return fmt.Errorf("unexpected nil of type %T", v)
  14153. }
  14154. if value == nil {
  14155. return nil
  14156. }
  14157. shape, ok := value.(map[string]interface{})
  14158. if !ok {
  14159. return fmt.Errorf("unexpected JSON type %v", value)
  14160. }
  14161. var sv *GetCostForecastOutput
  14162. if *v == nil {
  14163. sv = &GetCostForecastOutput{}
  14164. } else {
  14165. sv = *v
  14166. }
  14167. for key, value := range shape {
  14168. switch key {
  14169. case "ForecastResultsByTime":
  14170. if err := awsAwsjson11_deserializeDocumentForecastResultsByTime(&sv.ForecastResultsByTime, value); err != nil {
  14171. return err
  14172. }
  14173. case "Total":
  14174. if err := awsAwsjson11_deserializeDocumentMetricValue(&sv.Total, value); err != nil {
  14175. return err
  14176. }
  14177. default:
  14178. _, _ = key, value
  14179. }
  14180. }
  14181. *v = sv
  14182. return nil
  14183. }
  14184. func awsAwsjson11_deserializeOpDocumentGetDimensionValuesOutput(v **GetDimensionValuesOutput, value interface{}) error {
  14185. if v == nil {
  14186. return fmt.Errorf("unexpected nil of type %T", v)
  14187. }
  14188. if value == nil {
  14189. return nil
  14190. }
  14191. shape, ok := value.(map[string]interface{})
  14192. if !ok {
  14193. return fmt.Errorf("unexpected JSON type %v", value)
  14194. }
  14195. var sv *GetDimensionValuesOutput
  14196. if *v == nil {
  14197. sv = &GetDimensionValuesOutput{}
  14198. } else {
  14199. sv = *v
  14200. }
  14201. for key, value := range shape {
  14202. switch key {
  14203. case "DimensionValues":
  14204. if err := awsAwsjson11_deserializeDocumentDimensionValuesWithAttributesList(&sv.DimensionValues, value); err != nil {
  14205. return err
  14206. }
  14207. case "NextPageToken":
  14208. if value != nil {
  14209. jtv, ok := value.(string)
  14210. if !ok {
  14211. return fmt.Errorf("expected NextPageToken to be of type string, got %T instead", value)
  14212. }
  14213. sv.NextPageToken = ptr.String(jtv)
  14214. }
  14215. case "ReturnSize":
  14216. if value != nil {
  14217. jtv, ok := value.(json.Number)
  14218. if !ok {
  14219. return fmt.Errorf("expected PageSize to be json.Number, got %T instead", value)
  14220. }
  14221. i64, err := jtv.Int64()
  14222. if err != nil {
  14223. return err
  14224. }
  14225. sv.ReturnSize = ptr.Int32(int32(i64))
  14226. }
  14227. case "TotalSize":
  14228. if value != nil {
  14229. jtv, ok := value.(json.Number)
  14230. if !ok {
  14231. return fmt.Errorf("expected PageSize to be json.Number, got %T instead", value)
  14232. }
  14233. i64, err := jtv.Int64()
  14234. if err != nil {
  14235. return err
  14236. }
  14237. sv.TotalSize = ptr.Int32(int32(i64))
  14238. }
  14239. default:
  14240. _, _ = key, value
  14241. }
  14242. }
  14243. *v = sv
  14244. return nil
  14245. }
  14246. func awsAwsjson11_deserializeOpDocumentGetReservationCoverageOutput(v **GetReservationCoverageOutput, value interface{}) error {
  14247. if v == nil {
  14248. return fmt.Errorf("unexpected nil of type %T", v)
  14249. }
  14250. if value == nil {
  14251. return nil
  14252. }
  14253. shape, ok := value.(map[string]interface{})
  14254. if !ok {
  14255. return fmt.Errorf("unexpected JSON type %v", value)
  14256. }
  14257. var sv *GetReservationCoverageOutput
  14258. if *v == nil {
  14259. sv = &GetReservationCoverageOutput{}
  14260. } else {
  14261. sv = *v
  14262. }
  14263. for key, value := range shape {
  14264. switch key {
  14265. case "CoveragesByTime":
  14266. if err := awsAwsjson11_deserializeDocumentCoveragesByTime(&sv.CoveragesByTime, value); err != nil {
  14267. return err
  14268. }
  14269. case "NextPageToken":
  14270. if value != nil {
  14271. jtv, ok := value.(string)
  14272. if !ok {
  14273. return fmt.Errorf("expected NextPageToken to be of type string, got %T instead", value)
  14274. }
  14275. sv.NextPageToken = ptr.String(jtv)
  14276. }
  14277. case "Total":
  14278. if err := awsAwsjson11_deserializeDocumentCoverage(&sv.Total, value); err != nil {
  14279. return err
  14280. }
  14281. default:
  14282. _, _ = key, value
  14283. }
  14284. }
  14285. *v = sv
  14286. return nil
  14287. }
  14288. func awsAwsjson11_deserializeOpDocumentGetReservationPurchaseRecommendationOutput(v **GetReservationPurchaseRecommendationOutput, value interface{}) error {
  14289. if v == nil {
  14290. return fmt.Errorf("unexpected nil of type %T", v)
  14291. }
  14292. if value == nil {
  14293. return nil
  14294. }
  14295. shape, ok := value.(map[string]interface{})
  14296. if !ok {
  14297. return fmt.Errorf("unexpected JSON type %v", value)
  14298. }
  14299. var sv *GetReservationPurchaseRecommendationOutput
  14300. if *v == nil {
  14301. sv = &GetReservationPurchaseRecommendationOutput{}
  14302. } else {
  14303. sv = *v
  14304. }
  14305. for key, value := range shape {
  14306. switch key {
  14307. case "Metadata":
  14308. if err := awsAwsjson11_deserializeDocumentReservationPurchaseRecommendationMetadata(&sv.Metadata, value); err != nil {
  14309. return err
  14310. }
  14311. case "NextPageToken":
  14312. if value != nil {
  14313. jtv, ok := value.(string)
  14314. if !ok {
  14315. return fmt.Errorf("expected NextPageToken to be of type string, got %T instead", value)
  14316. }
  14317. sv.NextPageToken = ptr.String(jtv)
  14318. }
  14319. case "Recommendations":
  14320. if err := awsAwsjson11_deserializeDocumentReservationPurchaseRecommendations(&sv.Recommendations, value); err != nil {
  14321. return err
  14322. }
  14323. default:
  14324. _, _ = key, value
  14325. }
  14326. }
  14327. *v = sv
  14328. return nil
  14329. }
  14330. func awsAwsjson11_deserializeOpDocumentGetReservationUtilizationOutput(v **GetReservationUtilizationOutput, value interface{}) error {
  14331. if v == nil {
  14332. return fmt.Errorf("unexpected nil of type %T", v)
  14333. }
  14334. if value == nil {
  14335. return nil
  14336. }
  14337. shape, ok := value.(map[string]interface{})
  14338. if !ok {
  14339. return fmt.Errorf("unexpected JSON type %v", value)
  14340. }
  14341. var sv *GetReservationUtilizationOutput
  14342. if *v == nil {
  14343. sv = &GetReservationUtilizationOutput{}
  14344. } else {
  14345. sv = *v
  14346. }
  14347. for key, value := range shape {
  14348. switch key {
  14349. case "NextPageToken":
  14350. if value != nil {
  14351. jtv, ok := value.(string)
  14352. if !ok {
  14353. return fmt.Errorf("expected NextPageToken to be of type string, got %T instead", value)
  14354. }
  14355. sv.NextPageToken = ptr.String(jtv)
  14356. }
  14357. case "Total":
  14358. if err := awsAwsjson11_deserializeDocumentReservationAggregates(&sv.Total, value); err != nil {
  14359. return err
  14360. }
  14361. case "UtilizationsByTime":
  14362. if err := awsAwsjson11_deserializeDocumentUtilizationsByTime(&sv.UtilizationsByTime, value); err != nil {
  14363. return err
  14364. }
  14365. default:
  14366. _, _ = key, value
  14367. }
  14368. }
  14369. *v = sv
  14370. return nil
  14371. }
  14372. func awsAwsjson11_deserializeOpDocumentGetRightsizingRecommendationOutput(v **GetRightsizingRecommendationOutput, value interface{}) error {
  14373. if v == nil {
  14374. return fmt.Errorf("unexpected nil of type %T", v)
  14375. }
  14376. if value == nil {
  14377. return nil
  14378. }
  14379. shape, ok := value.(map[string]interface{})
  14380. if !ok {
  14381. return fmt.Errorf("unexpected JSON type %v", value)
  14382. }
  14383. var sv *GetRightsizingRecommendationOutput
  14384. if *v == nil {
  14385. sv = &GetRightsizingRecommendationOutput{}
  14386. } else {
  14387. sv = *v
  14388. }
  14389. for key, value := range shape {
  14390. switch key {
  14391. case "Configuration":
  14392. if err := awsAwsjson11_deserializeDocumentRightsizingRecommendationConfiguration(&sv.Configuration, value); err != nil {
  14393. return err
  14394. }
  14395. case "Metadata":
  14396. if err := awsAwsjson11_deserializeDocumentRightsizingRecommendationMetadata(&sv.Metadata, value); err != nil {
  14397. return err
  14398. }
  14399. case "NextPageToken":
  14400. if value != nil {
  14401. jtv, ok := value.(string)
  14402. if !ok {
  14403. return fmt.Errorf("expected NextPageToken to be of type string, got %T instead", value)
  14404. }
  14405. sv.NextPageToken = ptr.String(jtv)
  14406. }
  14407. case "RightsizingRecommendations":
  14408. if err := awsAwsjson11_deserializeDocumentRightsizingRecommendationList(&sv.RightsizingRecommendations, value); err != nil {
  14409. return err
  14410. }
  14411. case "Summary":
  14412. if err := awsAwsjson11_deserializeDocumentRightsizingRecommendationSummary(&sv.Summary, value); err != nil {
  14413. return err
  14414. }
  14415. default:
  14416. _, _ = key, value
  14417. }
  14418. }
  14419. *v = sv
  14420. return nil
  14421. }
  14422. func awsAwsjson11_deserializeOpDocumentGetSavingsPlanPurchaseRecommendationDetailsOutput(v **GetSavingsPlanPurchaseRecommendationDetailsOutput, value interface{}) error {
  14423. if v == nil {
  14424. return fmt.Errorf("unexpected nil of type %T", v)
  14425. }
  14426. if value == nil {
  14427. return nil
  14428. }
  14429. shape, ok := value.(map[string]interface{})
  14430. if !ok {
  14431. return fmt.Errorf("unexpected JSON type %v", value)
  14432. }
  14433. var sv *GetSavingsPlanPurchaseRecommendationDetailsOutput
  14434. if *v == nil {
  14435. sv = &GetSavingsPlanPurchaseRecommendationDetailsOutput{}
  14436. } else {
  14437. sv = *v
  14438. }
  14439. for key, value := range shape {
  14440. switch key {
  14441. case "RecommendationDetailData":
  14442. if err := awsAwsjson11_deserializeDocumentRecommendationDetailData(&sv.RecommendationDetailData, value); err != nil {
  14443. return err
  14444. }
  14445. case "RecommendationDetailId":
  14446. if value != nil {
  14447. jtv, ok := value.(string)
  14448. if !ok {
  14449. return fmt.Errorf("expected RecommendationDetailId to be of type string, got %T instead", value)
  14450. }
  14451. sv.RecommendationDetailId = ptr.String(jtv)
  14452. }
  14453. default:
  14454. _, _ = key, value
  14455. }
  14456. }
  14457. *v = sv
  14458. return nil
  14459. }
  14460. func awsAwsjson11_deserializeOpDocumentGetSavingsPlansCoverageOutput(v **GetSavingsPlansCoverageOutput, value interface{}) error {
  14461. if v == nil {
  14462. return fmt.Errorf("unexpected nil of type %T", v)
  14463. }
  14464. if value == nil {
  14465. return nil
  14466. }
  14467. shape, ok := value.(map[string]interface{})
  14468. if !ok {
  14469. return fmt.Errorf("unexpected JSON type %v", value)
  14470. }
  14471. var sv *GetSavingsPlansCoverageOutput
  14472. if *v == nil {
  14473. sv = &GetSavingsPlansCoverageOutput{}
  14474. } else {
  14475. sv = *v
  14476. }
  14477. for key, value := range shape {
  14478. switch key {
  14479. case "NextToken":
  14480. if value != nil {
  14481. jtv, ok := value.(string)
  14482. if !ok {
  14483. return fmt.Errorf("expected NextPageToken to be of type string, got %T instead", value)
  14484. }
  14485. sv.NextToken = ptr.String(jtv)
  14486. }
  14487. case "SavingsPlansCoverages":
  14488. if err := awsAwsjson11_deserializeDocumentSavingsPlansCoverages(&sv.SavingsPlansCoverages, value); err != nil {
  14489. return err
  14490. }
  14491. default:
  14492. _, _ = key, value
  14493. }
  14494. }
  14495. *v = sv
  14496. return nil
  14497. }
  14498. func awsAwsjson11_deserializeOpDocumentGetSavingsPlansPurchaseRecommendationOutput(v **GetSavingsPlansPurchaseRecommendationOutput, value interface{}) error {
  14499. if v == nil {
  14500. return fmt.Errorf("unexpected nil of type %T", v)
  14501. }
  14502. if value == nil {
  14503. return nil
  14504. }
  14505. shape, ok := value.(map[string]interface{})
  14506. if !ok {
  14507. return fmt.Errorf("unexpected JSON type %v", value)
  14508. }
  14509. var sv *GetSavingsPlansPurchaseRecommendationOutput
  14510. if *v == nil {
  14511. sv = &GetSavingsPlansPurchaseRecommendationOutput{}
  14512. } else {
  14513. sv = *v
  14514. }
  14515. for key, value := range shape {
  14516. switch key {
  14517. case "Metadata":
  14518. if err := awsAwsjson11_deserializeDocumentSavingsPlansPurchaseRecommendationMetadata(&sv.Metadata, value); err != nil {
  14519. return err
  14520. }
  14521. case "NextPageToken":
  14522. if value != nil {
  14523. jtv, ok := value.(string)
  14524. if !ok {
  14525. return fmt.Errorf("expected NextPageToken to be of type string, got %T instead", value)
  14526. }
  14527. sv.NextPageToken = ptr.String(jtv)
  14528. }
  14529. case "SavingsPlansPurchaseRecommendation":
  14530. if err := awsAwsjson11_deserializeDocumentSavingsPlansPurchaseRecommendation(&sv.SavingsPlansPurchaseRecommendation, value); err != nil {
  14531. return err
  14532. }
  14533. default:
  14534. _, _ = key, value
  14535. }
  14536. }
  14537. *v = sv
  14538. return nil
  14539. }
  14540. func awsAwsjson11_deserializeOpDocumentGetSavingsPlansUtilizationDetailsOutput(v **GetSavingsPlansUtilizationDetailsOutput, value interface{}) error {
  14541. if v == nil {
  14542. return fmt.Errorf("unexpected nil of type %T", v)
  14543. }
  14544. if value == nil {
  14545. return nil
  14546. }
  14547. shape, ok := value.(map[string]interface{})
  14548. if !ok {
  14549. return fmt.Errorf("unexpected JSON type %v", value)
  14550. }
  14551. var sv *GetSavingsPlansUtilizationDetailsOutput
  14552. if *v == nil {
  14553. sv = &GetSavingsPlansUtilizationDetailsOutput{}
  14554. } else {
  14555. sv = *v
  14556. }
  14557. for key, value := range shape {
  14558. switch key {
  14559. case "NextToken":
  14560. if value != nil {
  14561. jtv, ok := value.(string)
  14562. if !ok {
  14563. return fmt.Errorf("expected NextPageToken to be of type string, got %T instead", value)
  14564. }
  14565. sv.NextToken = ptr.String(jtv)
  14566. }
  14567. case "SavingsPlansUtilizationDetails":
  14568. if err := awsAwsjson11_deserializeDocumentSavingsPlansUtilizationDetails(&sv.SavingsPlansUtilizationDetails, value); err != nil {
  14569. return err
  14570. }
  14571. case "TimePeriod":
  14572. if err := awsAwsjson11_deserializeDocumentDateInterval(&sv.TimePeriod, value); err != nil {
  14573. return err
  14574. }
  14575. case "Total":
  14576. if err := awsAwsjson11_deserializeDocumentSavingsPlansUtilizationAggregates(&sv.Total, value); err != nil {
  14577. return err
  14578. }
  14579. default:
  14580. _, _ = key, value
  14581. }
  14582. }
  14583. *v = sv
  14584. return nil
  14585. }
  14586. func awsAwsjson11_deserializeOpDocumentGetSavingsPlansUtilizationOutput(v **GetSavingsPlansUtilizationOutput, value interface{}) error {
  14587. if v == nil {
  14588. return fmt.Errorf("unexpected nil of type %T", v)
  14589. }
  14590. if value == nil {
  14591. return nil
  14592. }
  14593. shape, ok := value.(map[string]interface{})
  14594. if !ok {
  14595. return fmt.Errorf("unexpected JSON type %v", value)
  14596. }
  14597. var sv *GetSavingsPlansUtilizationOutput
  14598. if *v == nil {
  14599. sv = &GetSavingsPlansUtilizationOutput{}
  14600. } else {
  14601. sv = *v
  14602. }
  14603. for key, value := range shape {
  14604. switch key {
  14605. case "SavingsPlansUtilizationsByTime":
  14606. if err := awsAwsjson11_deserializeDocumentSavingsPlansUtilizationsByTime(&sv.SavingsPlansUtilizationsByTime, value); err != nil {
  14607. return err
  14608. }
  14609. case "Total":
  14610. if err := awsAwsjson11_deserializeDocumentSavingsPlansUtilizationAggregates(&sv.Total, value); err != nil {
  14611. return err
  14612. }
  14613. default:
  14614. _, _ = key, value
  14615. }
  14616. }
  14617. *v = sv
  14618. return nil
  14619. }
  14620. func awsAwsjson11_deserializeOpDocumentGetTagsOutput(v **GetTagsOutput, value interface{}) error {
  14621. if v == nil {
  14622. return fmt.Errorf("unexpected nil of type %T", v)
  14623. }
  14624. if value == nil {
  14625. return nil
  14626. }
  14627. shape, ok := value.(map[string]interface{})
  14628. if !ok {
  14629. return fmt.Errorf("unexpected JSON type %v", value)
  14630. }
  14631. var sv *GetTagsOutput
  14632. if *v == nil {
  14633. sv = &GetTagsOutput{}
  14634. } else {
  14635. sv = *v
  14636. }
  14637. for key, value := range shape {
  14638. switch key {
  14639. case "NextPageToken":
  14640. if value != nil {
  14641. jtv, ok := value.(string)
  14642. if !ok {
  14643. return fmt.Errorf("expected NextPageToken to be of type string, got %T instead", value)
  14644. }
  14645. sv.NextPageToken = ptr.String(jtv)
  14646. }
  14647. case "ReturnSize":
  14648. if value != nil {
  14649. jtv, ok := value.(json.Number)
  14650. if !ok {
  14651. return fmt.Errorf("expected PageSize to be json.Number, got %T instead", value)
  14652. }
  14653. i64, err := jtv.Int64()
  14654. if err != nil {
  14655. return err
  14656. }
  14657. sv.ReturnSize = ptr.Int32(int32(i64))
  14658. }
  14659. case "Tags":
  14660. if err := awsAwsjson11_deserializeDocumentTagList(&sv.Tags, value); err != nil {
  14661. return err
  14662. }
  14663. case "TotalSize":
  14664. if value != nil {
  14665. jtv, ok := value.(json.Number)
  14666. if !ok {
  14667. return fmt.Errorf("expected PageSize to be json.Number, got %T instead", value)
  14668. }
  14669. i64, err := jtv.Int64()
  14670. if err != nil {
  14671. return err
  14672. }
  14673. sv.TotalSize = ptr.Int32(int32(i64))
  14674. }
  14675. default:
  14676. _, _ = key, value
  14677. }
  14678. }
  14679. *v = sv
  14680. return nil
  14681. }
  14682. func awsAwsjson11_deserializeOpDocumentGetUsageForecastOutput(v **GetUsageForecastOutput, value interface{}) error {
  14683. if v == nil {
  14684. return fmt.Errorf("unexpected nil of type %T", v)
  14685. }
  14686. if value == nil {
  14687. return nil
  14688. }
  14689. shape, ok := value.(map[string]interface{})
  14690. if !ok {
  14691. return fmt.Errorf("unexpected JSON type %v", value)
  14692. }
  14693. var sv *GetUsageForecastOutput
  14694. if *v == nil {
  14695. sv = &GetUsageForecastOutput{}
  14696. } else {
  14697. sv = *v
  14698. }
  14699. for key, value := range shape {
  14700. switch key {
  14701. case "ForecastResultsByTime":
  14702. if err := awsAwsjson11_deserializeDocumentForecastResultsByTime(&sv.ForecastResultsByTime, value); err != nil {
  14703. return err
  14704. }
  14705. case "Total":
  14706. if err := awsAwsjson11_deserializeDocumentMetricValue(&sv.Total, value); err != nil {
  14707. return err
  14708. }
  14709. default:
  14710. _, _ = key, value
  14711. }
  14712. }
  14713. *v = sv
  14714. return nil
  14715. }
  14716. func awsAwsjson11_deserializeOpDocumentListCommitmentPurchaseAnalysesOutput(v **ListCommitmentPurchaseAnalysesOutput, value interface{}) error {
  14717. if v == nil {
  14718. return fmt.Errorf("unexpected nil of type %T", v)
  14719. }
  14720. if value == nil {
  14721. return nil
  14722. }
  14723. shape, ok := value.(map[string]interface{})
  14724. if !ok {
  14725. return fmt.Errorf("unexpected JSON type %v", value)
  14726. }
  14727. var sv *ListCommitmentPurchaseAnalysesOutput
  14728. if *v == nil {
  14729. sv = &ListCommitmentPurchaseAnalysesOutput{}
  14730. } else {
  14731. sv = *v
  14732. }
  14733. for key, value := range shape {
  14734. switch key {
  14735. case "AnalysisSummaryList":
  14736. if err := awsAwsjson11_deserializeDocumentAnalysisSummaryList(&sv.AnalysisSummaryList, value); err != nil {
  14737. return err
  14738. }
  14739. case "NextPageToken":
  14740. if value != nil {
  14741. jtv, ok := value.(string)
  14742. if !ok {
  14743. return fmt.Errorf("expected NextPageToken to be of type string, got %T instead", value)
  14744. }
  14745. sv.NextPageToken = ptr.String(jtv)
  14746. }
  14747. default:
  14748. _, _ = key, value
  14749. }
  14750. }
  14751. *v = sv
  14752. return nil
  14753. }
  14754. func awsAwsjson11_deserializeOpDocumentListCostAllocationTagBackfillHistoryOutput(v **ListCostAllocationTagBackfillHistoryOutput, value interface{}) error {
  14755. if v == nil {
  14756. return fmt.Errorf("unexpected nil of type %T", v)
  14757. }
  14758. if value == nil {
  14759. return nil
  14760. }
  14761. shape, ok := value.(map[string]interface{})
  14762. if !ok {
  14763. return fmt.Errorf("unexpected JSON type %v", value)
  14764. }
  14765. var sv *ListCostAllocationTagBackfillHistoryOutput
  14766. if *v == nil {
  14767. sv = &ListCostAllocationTagBackfillHistoryOutput{}
  14768. } else {
  14769. sv = *v
  14770. }
  14771. for key, value := range shape {
  14772. switch key {
  14773. case "BackfillRequests":
  14774. if err := awsAwsjson11_deserializeDocumentCostAllocationTagBackfillRequestList(&sv.BackfillRequests, value); err != nil {
  14775. return err
  14776. }
  14777. case "NextToken":
  14778. if value != nil {
  14779. jtv, ok := value.(string)
  14780. if !ok {
  14781. return fmt.Errorf("expected NextPageToken to be of type string, got %T instead", value)
  14782. }
  14783. sv.NextToken = ptr.String(jtv)
  14784. }
  14785. default:
  14786. _, _ = key, value
  14787. }
  14788. }
  14789. *v = sv
  14790. return nil
  14791. }
  14792. func awsAwsjson11_deserializeOpDocumentListCostAllocationTagsOutput(v **ListCostAllocationTagsOutput, value interface{}) error {
  14793. if v == nil {
  14794. return fmt.Errorf("unexpected nil of type %T", v)
  14795. }
  14796. if value == nil {
  14797. return nil
  14798. }
  14799. shape, ok := value.(map[string]interface{})
  14800. if !ok {
  14801. return fmt.Errorf("unexpected JSON type %v", value)
  14802. }
  14803. var sv *ListCostAllocationTagsOutput
  14804. if *v == nil {
  14805. sv = &ListCostAllocationTagsOutput{}
  14806. } else {
  14807. sv = *v
  14808. }
  14809. for key, value := range shape {
  14810. switch key {
  14811. case "CostAllocationTags":
  14812. if err := awsAwsjson11_deserializeDocumentCostAllocationTagList(&sv.CostAllocationTags, value); err != nil {
  14813. return err
  14814. }
  14815. case "NextToken":
  14816. if value != nil {
  14817. jtv, ok := value.(string)
  14818. if !ok {
  14819. return fmt.Errorf("expected NextPageToken to be of type string, got %T instead", value)
  14820. }
  14821. sv.NextToken = ptr.String(jtv)
  14822. }
  14823. default:
  14824. _, _ = key, value
  14825. }
  14826. }
  14827. *v = sv
  14828. return nil
  14829. }
  14830. func awsAwsjson11_deserializeOpDocumentListCostCategoryDefinitionsOutput(v **ListCostCategoryDefinitionsOutput, value interface{}) error {
  14831. if v == nil {
  14832. return fmt.Errorf("unexpected nil of type %T", v)
  14833. }
  14834. if value == nil {
  14835. return nil
  14836. }
  14837. shape, ok := value.(map[string]interface{})
  14838. if !ok {
  14839. return fmt.Errorf("unexpected JSON type %v", value)
  14840. }
  14841. var sv *ListCostCategoryDefinitionsOutput
  14842. if *v == nil {
  14843. sv = &ListCostCategoryDefinitionsOutput{}
  14844. } else {
  14845. sv = *v
  14846. }
  14847. for key, value := range shape {
  14848. switch key {
  14849. case "CostCategoryReferences":
  14850. if err := awsAwsjson11_deserializeDocumentCostCategoryReferencesList(&sv.CostCategoryReferences, value); err != nil {
  14851. return err
  14852. }
  14853. case "NextToken":
  14854. if value != nil {
  14855. jtv, ok := value.(string)
  14856. if !ok {
  14857. return fmt.Errorf("expected NextPageToken to be of type string, got %T instead", value)
  14858. }
  14859. sv.NextToken = ptr.String(jtv)
  14860. }
  14861. default:
  14862. _, _ = key, value
  14863. }
  14864. }
  14865. *v = sv
  14866. return nil
  14867. }
  14868. func awsAwsjson11_deserializeOpDocumentListCostCategoryResourceAssociationsOutput(v **ListCostCategoryResourceAssociationsOutput, value interface{}) error {
  14869. if v == nil {
  14870. return fmt.Errorf("unexpected nil of type %T", v)
  14871. }
  14872. if value == nil {
  14873. return nil
  14874. }
  14875. shape, ok := value.(map[string]interface{})
  14876. if !ok {
  14877. return fmt.Errorf("unexpected JSON type %v", value)
  14878. }
  14879. var sv *ListCostCategoryResourceAssociationsOutput
  14880. if *v == nil {
  14881. sv = &ListCostCategoryResourceAssociationsOutput{}
  14882. } else {
  14883. sv = *v
  14884. }
  14885. for key, value := range shape {
  14886. switch key {
  14887. case "CostCategoryResourceAssociations":
  14888. if err := awsAwsjson11_deserializeDocumentCostCategoryResourceAssociations(&sv.CostCategoryResourceAssociations, value); err != nil {
  14889. return err
  14890. }
  14891. case "NextToken":
  14892. if value != nil {
  14893. jtv, ok := value.(string)
  14894. if !ok {
  14895. return fmt.Errorf("expected NextPageToken to be of type string, got %T instead", value)
  14896. }
  14897. sv.NextToken = ptr.String(jtv)
  14898. }
  14899. default:
  14900. _, _ = key, value
  14901. }
  14902. }
  14903. *v = sv
  14904. return nil
  14905. }
  14906. func awsAwsjson11_deserializeOpDocumentListSavingsPlansPurchaseRecommendationGenerationOutput(v **ListSavingsPlansPurchaseRecommendationGenerationOutput, value interface{}) error {
  14907. if v == nil {
  14908. return fmt.Errorf("unexpected nil of type %T", v)
  14909. }
  14910. if value == nil {
  14911. return nil
  14912. }
  14913. shape, ok := value.(map[string]interface{})
  14914. if !ok {
  14915. return fmt.Errorf("unexpected JSON type %v", value)
  14916. }
  14917. var sv *ListSavingsPlansPurchaseRecommendationGenerationOutput
  14918. if *v == nil {
  14919. sv = &ListSavingsPlansPurchaseRecommendationGenerationOutput{}
  14920. } else {
  14921. sv = *v
  14922. }
  14923. for key, value := range shape {
  14924. switch key {
  14925. case "GenerationSummaryList":
  14926. if err := awsAwsjson11_deserializeDocumentGenerationSummaryList(&sv.GenerationSummaryList, value); err != nil {
  14927. return err
  14928. }
  14929. case "NextPageToken":
  14930. if value != nil {
  14931. jtv, ok := value.(string)
  14932. if !ok {
  14933. return fmt.Errorf("expected NextPageToken to be of type string, got %T instead", value)
  14934. }
  14935. sv.NextPageToken = ptr.String(jtv)
  14936. }
  14937. default:
  14938. _, _ = key, value
  14939. }
  14940. }
  14941. *v = sv
  14942. return nil
  14943. }
  14944. func awsAwsjson11_deserializeOpDocumentListTagsForResourceOutput(v **ListTagsForResourceOutput, value interface{}) error {
  14945. if v == nil {
  14946. return fmt.Errorf("unexpected nil of type %T", v)
  14947. }
  14948. if value == nil {
  14949. return nil
  14950. }
  14951. shape, ok := value.(map[string]interface{})
  14952. if !ok {
  14953. return fmt.Errorf("unexpected JSON type %v", value)
  14954. }
  14955. var sv *ListTagsForResourceOutput
  14956. if *v == nil {
  14957. sv = &ListTagsForResourceOutput{}
  14958. } else {
  14959. sv = *v
  14960. }
  14961. for key, value := range shape {
  14962. switch key {
  14963. case "ResourceTags":
  14964. if err := awsAwsjson11_deserializeDocumentResourceTagList(&sv.ResourceTags, value); err != nil {
  14965. return err
  14966. }
  14967. default:
  14968. _, _ = key, value
  14969. }
  14970. }
  14971. *v = sv
  14972. return nil
  14973. }
  14974. func awsAwsjson11_deserializeOpDocumentProvideAnomalyFeedbackOutput(v **ProvideAnomalyFeedbackOutput, value interface{}) error {
  14975. if v == nil {
  14976. return fmt.Errorf("unexpected nil of type %T", v)
  14977. }
  14978. if value == nil {
  14979. return nil
  14980. }
  14981. shape, ok := value.(map[string]interface{})
  14982. if !ok {
  14983. return fmt.Errorf("unexpected JSON type %v", value)
  14984. }
  14985. var sv *ProvideAnomalyFeedbackOutput
  14986. if *v == nil {
  14987. sv = &ProvideAnomalyFeedbackOutput{}
  14988. } else {
  14989. sv = *v
  14990. }
  14991. for key, value := range shape {
  14992. switch key {
  14993. case "AnomalyId":
  14994. if value != nil {
  14995. jtv, ok := value.(string)
  14996. if !ok {
  14997. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  14998. }
  14999. sv.AnomalyId = ptr.String(jtv)
  15000. }
  15001. default:
  15002. _, _ = key, value
  15003. }
  15004. }
  15005. *v = sv
  15006. return nil
  15007. }
  15008. func awsAwsjson11_deserializeOpDocumentStartCommitmentPurchaseAnalysisOutput(v **StartCommitmentPurchaseAnalysisOutput, value interface{}) error {
  15009. if v == nil {
  15010. return fmt.Errorf("unexpected nil of type %T", v)
  15011. }
  15012. if value == nil {
  15013. return nil
  15014. }
  15015. shape, ok := value.(map[string]interface{})
  15016. if !ok {
  15017. return fmt.Errorf("unexpected JSON type %v", value)
  15018. }
  15019. var sv *StartCommitmentPurchaseAnalysisOutput
  15020. if *v == nil {
  15021. sv = &StartCommitmentPurchaseAnalysisOutput{}
  15022. } else {
  15023. sv = *v
  15024. }
  15025. for key, value := range shape {
  15026. switch key {
  15027. case "AnalysisId":
  15028. if value != nil {
  15029. jtv, ok := value.(string)
  15030. if !ok {
  15031. return fmt.Errorf("expected AnalysisId to be of type string, got %T instead", value)
  15032. }
  15033. sv.AnalysisId = ptr.String(jtv)
  15034. }
  15035. case "AnalysisStartedTime":
  15036. if value != nil {
  15037. jtv, ok := value.(string)
  15038. if !ok {
  15039. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  15040. }
  15041. sv.AnalysisStartedTime = ptr.String(jtv)
  15042. }
  15043. case "EstimatedCompletionTime":
  15044. if value != nil {
  15045. jtv, ok := value.(string)
  15046. if !ok {
  15047. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  15048. }
  15049. sv.EstimatedCompletionTime = ptr.String(jtv)
  15050. }
  15051. default:
  15052. _, _ = key, value
  15053. }
  15054. }
  15055. *v = sv
  15056. return nil
  15057. }
  15058. func awsAwsjson11_deserializeOpDocumentStartCostAllocationTagBackfillOutput(v **StartCostAllocationTagBackfillOutput, value interface{}) error {
  15059. if v == nil {
  15060. return fmt.Errorf("unexpected nil of type %T", v)
  15061. }
  15062. if value == nil {
  15063. return nil
  15064. }
  15065. shape, ok := value.(map[string]interface{})
  15066. if !ok {
  15067. return fmt.Errorf("unexpected JSON type %v", value)
  15068. }
  15069. var sv *StartCostAllocationTagBackfillOutput
  15070. if *v == nil {
  15071. sv = &StartCostAllocationTagBackfillOutput{}
  15072. } else {
  15073. sv = *v
  15074. }
  15075. for key, value := range shape {
  15076. switch key {
  15077. case "BackfillRequest":
  15078. if err := awsAwsjson11_deserializeDocumentCostAllocationTagBackfillRequest(&sv.BackfillRequest, value); err != nil {
  15079. return err
  15080. }
  15081. default:
  15082. _, _ = key, value
  15083. }
  15084. }
  15085. *v = sv
  15086. return nil
  15087. }
  15088. func awsAwsjson11_deserializeOpDocumentStartSavingsPlansPurchaseRecommendationGenerationOutput(v **StartSavingsPlansPurchaseRecommendationGenerationOutput, value interface{}) error {
  15089. if v == nil {
  15090. return fmt.Errorf("unexpected nil of type %T", v)
  15091. }
  15092. if value == nil {
  15093. return nil
  15094. }
  15095. shape, ok := value.(map[string]interface{})
  15096. if !ok {
  15097. return fmt.Errorf("unexpected JSON type %v", value)
  15098. }
  15099. var sv *StartSavingsPlansPurchaseRecommendationGenerationOutput
  15100. if *v == nil {
  15101. sv = &StartSavingsPlansPurchaseRecommendationGenerationOutput{}
  15102. } else {
  15103. sv = *v
  15104. }
  15105. for key, value := range shape {
  15106. switch key {
  15107. case "EstimatedCompletionTime":
  15108. if value != nil {
  15109. jtv, ok := value.(string)
  15110. if !ok {
  15111. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  15112. }
  15113. sv.EstimatedCompletionTime = ptr.String(jtv)
  15114. }
  15115. case "GenerationStartedTime":
  15116. if value != nil {
  15117. jtv, ok := value.(string)
  15118. if !ok {
  15119. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  15120. }
  15121. sv.GenerationStartedTime = ptr.String(jtv)
  15122. }
  15123. case "RecommendationId":
  15124. if value != nil {
  15125. jtv, ok := value.(string)
  15126. if !ok {
  15127. return fmt.Errorf("expected RecommendationId to be of type string, got %T instead", value)
  15128. }
  15129. sv.RecommendationId = ptr.String(jtv)
  15130. }
  15131. default:
  15132. _, _ = key, value
  15133. }
  15134. }
  15135. *v = sv
  15136. return nil
  15137. }
  15138. func awsAwsjson11_deserializeOpDocumentTagResourceOutput(v **TagResourceOutput, value interface{}) error {
  15139. if v == nil {
  15140. return fmt.Errorf("unexpected nil of type %T", v)
  15141. }
  15142. if value == nil {
  15143. return nil
  15144. }
  15145. shape, ok := value.(map[string]interface{})
  15146. if !ok {
  15147. return fmt.Errorf("unexpected JSON type %v", value)
  15148. }
  15149. var sv *TagResourceOutput
  15150. if *v == nil {
  15151. sv = &TagResourceOutput{}
  15152. } else {
  15153. sv = *v
  15154. }
  15155. for key, value := range shape {
  15156. switch key {
  15157. default:
  15158. _, _ = key, value
  15159. }
  15160. }
  15161. *v = sv
  15162. return nil
  15163. }
  15164. func awsAwsjson11_deserializeOpDocumentUntagResourceOutput(v **UntagResourceOutput, value interface{}) error {
  15165. if v == nil {
  15166. return fmt.Errorf("unexpected nil of type %T", v)
  15167. }
  15168. if value == nil {
  15169. return nil
  15170. }
  15171. shape, ok := value.(map[string]interface{})
  15172. if !ok {
  15173. return fmt.Errorf("unexpected JSON type %v", value)
  15174. }
  15175. var sv *UntagResourceOutput
  15176. if *v == nil {
  15177. sv = &UntagResourceOutput{}
  15178. } else {
  15179. sv = *v
  15180. }
  15181. for key, value := range shape {
  15182. switch key {
  15183. default:
  15184. _, _ = key, value
  15185. }
  15186. }
  15187. *v = sv
  15188. return nil
  15189. }
  15190. func awsAwsjson11_deserializeOpDocumentUpdateAnomalyMonitorOutput(v **UpdateAnomalyMonitorOutput, value interface{}) error {
  15191. if v == nil {
  15192. return fmt.Errorf("unexpected nil of type %T", v)
  15193. }
  15194. if value == nil {
  15195. return nil
  15196. }
  15197. shape, ok := value.(map[string]interface{})
  15198. if !ok {
  15199. return fmt.Errorf("unexpected JSON type %v", value)
  15200. }
  15201. var sv *UpdateAnomalyMonitorOutput
  15202. if *v == nil {
  15203. sv = &UpdateAnomalyMonitorOutput{}
  15204. } else {
  15205. sv = *v
  15206. }
  15207. for key, value := range shape {
  15208. switch key {
  15209. case "MonitorArn":
  15210. if value != nil {
  15211. jtv, ok := value.(string)
  15212. if !ok {
  15213. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  15214. }
  15215. sv.MonitorArn = ptr.String(jtv)
  15216. }
  15217. default:
  15218. _, _ = key, value
  15219. }
  15220. }
  15221. *v = sv
  15222. return nil
  15223. }
  15224. func awsAwsjson11_deserializeOpDocumentUpdateAnomalySubscriptionOutput(v **UpdateAnomalySubscriptionOutput, value interface{}) error {
  15225. if v == nil {
  15226. return fmt.Errorf("unexpected nil of type %T", v)
  15227. }
  15228. if value == nil {
  15229. return nil
  15230. }
  15231. shape, ok := value.(map[string]interface{})
  15232. if !ok {
  15233. return fmt.Errorf("unexpected JSON type %v", value)
  15234. }
  15235. var sv *UpdateAnomalySubscriptionOutput
  15236. if *v == nil {
  15237. sv = &UpdateAnomalySubscriptionOutput{}
  15238. } else {
  15239. sv = *v
  15240. }
  15241. for key, value := range shape {
  15242. switch key {
  15243. case "SubscriptionArn":
  15244. if value != nil {
  15245. jtv, ok := value.(string)
  15246. if !ok {
  15247. return fmt.Errorf("expected GenericString to be of type string, got %T instead", value)
  15248. }
  15249. sv.SubscriptionArn = ptr.String(jtv)
  15250. }
  15251. default:
  15252. _, _ = key, value
  15253. }
  15254. }
  15255. *v = sv
  15256. return nil
  15257. }
  15258. func awsAwsjson11_deserializeOpDocumentUpdateCostAllocationTagsStatusOutput(v **UpdateCostAllocationTagsStatusOutput, value interface{}) error {
  15259. if v == nil {
  15260. return fmt.Errorf("unexpected nil of type %T", v)
  15261. }
  15262. if value == nil {
  15263. return nil
  15264. }
  15265. shape, ok := value.(map[string]interface{})
  15266. if !ok {
  15267. return fmt.Errorf("unexpected JSON type %v", value)
  15268. }
  15269. var sv *UpdateCostAllocationTagsStatusOutput
  15270. if *v == nil {
  15271. sv = &UpdateCostAllocationTagsStatusOutput{}
  15272. } else {
  15273. sv = *v
  15274. }
  15275. for key, value := range shape {
  15276. switch key {
  15277. case "Errors":
  15278. if err := awsAwsjson11_deserializeDocumentUpdateCostAllocationTagsStatusErrors(&sv.Errors, value); err != nil {
  15279. return err
  15280. }
  15281. default:
  15282. _, _ = key, value
  15283. }
  15284. }
  15285. *v = sv
  15286. return nil
  15287. }
  15288. func awsAwsjson11_deserializeOpDocumentUpdateCostCategoryDefinitionOutput(v **UpdateCostCategoryDefinitionOutput, value interface{}) error {
  15289. if v == nil {
  15290. return fmt.Errorf("unexpected nil of type %T", v)
  15291. }
  15292. if value == nil {
  15293. return nil
  15294. }
  15295. shape, ok := value.(map[string]interface{})
  15296. if !ok {
  15297. return fmt.Errorf("unexpected JSON type %v", value)
  15298. }
  15299. var sv *UpdateCostCategoryDefinitionOutput
  15300. if *v == nil {
  15301. sv = &UpdateCostCategoryDefinitionOutput{}
  15302. } else {
  15303. sv = *v
  15304. }
  15305. for key, value := range shape {
  15306. switch key {
  15307. case "CostCategoryArn":
  15308. if value != nil {
  15309. jtv, ok := value.(string)
  15310. if !ok {
  15311. return fmt.Errorf("expected Arn to be of type string, got %T instead", value)
  15312. }
  15313. sv.CostCategoryArn = ptr.String(jtv)
  15314. }
  15315. case "EffectiveStart":
  15316. if value != nil {
  15317. jtv, ok := value.(string)
  15318. if !ok {
  15319. return fmt.Errorf("expected ZonedDateTime to be of type string, got %T instead", value)
  15320. }
  15321. sv.EffectiveStart = ptr.String(jtv)
  15322. }
  15323. default:
  15324. _, _ = key, value
  15325. }
  15326. }
  15327. *v = sv
  15328. return nil
  15329. }
  15330. type protocolErrorInfo struct {
  15331. Type string `json:"__type"`
  15332. Message string
  15333. Code any // nonstandard for awsjson but some services do present the type here
  15334. }
  15335. func getProtocolErrorInfo(decoder *json.Decoder) (protocolErrorInfo, error) {
  15336. var errInfo protocolErrorInfo
  15337. if err := decoder.Decode(&errInfo); err != nil {
  15338. if err == io.EOF {
  15339. return errInfo, nil
  15340. }
  15341. return errInfo, err
  15342. }
  15343. return errInfo, nil
  15344. }
  15345. func resolveProtocolErrorType(headerType string, bodyInfo protocolErrorInfo) (string, bool) {
  15346. if len(headerType) != 0 {
  15347. return headerType, true
  15348. } else if len(bodyInfo.Type) != 0 {
  15349. return bodyInfo.Type, true
  15350. } else if code, ok := bodyInfo.Code.(string); ok && len(code) != 0 {
  15351. return code, true
  15352. }
  15353. return "", false
  15354. }