OpenAPIv3.go 284 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633
  1. // Copyright 2020 Google LLC. All Rights Reserved.
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. // THIS FILE IS AUTOMATICALLY GENERATED.
  15. package openapi_v3
  16. import (
  17. "fmt"
  18. "regexp"
  19. "strings"
  20. "gopkg.in/yaml.v3"
  21. "github.com/google/gnostic-models/compiler"
  22. )
  23. // Version returns the package name (and OpenAPI version).
  24. func Version() string {
  25. return "openapi_v3"
  26. }
  27. // NewAdditionalPropertiesItem creates an object of type AdditionalPropertiesItem if possible, returning an error if not.
  28. func NewAdditionalPropertiesItem(in *yaml.Node, context *compiler.Context) (*AdditionalPropertiesItem, error) {
  29. errors := make([]error, 0)
  30. x := &AdditionalPropertiesItem{}
  31. matched := false
  32. // SchemaOrReference schema_or_reference = 1;
  33. {
  34. m, ok := compiler.UnpackMap(in)
  35. if ok {
  36. // errors might be ok here, they mean we just don't have the right subtype
  37. t, matchingError := NewSchemaOrReference(m, compiler.NewContext("schemaOrReference", m, context))
  38. if matchingError == nil {
  39. x.Oneof = &AdditionalPropertiesItem_SchemaOrReference{SchemaOrReference: t}
  40. matched = true
  41. } else {
  42. errors = append(errors, matchingError)
  43. }
  44. }
  45. }
  46. // bool boolean = 2;
  47. boolValue, ok := compiler.BoolForScalarNode(in)
  48. if ok {
  49. x.Oneof = &AdditionalPropertiesItem_Boolean{Boolean: boolValue}
  50. matched = true
  51. }
  52. if matched {
  53. // since the oneof matched one of its possibilities, discard any matching errors
  54. errors = make([]error, 0)
  55. } else {
  56. message := fmt.Sprintf("contains an invalid AdditionalPropertiesItem")
  57. err := compiler.NewError(context, message)
  58. errors = []error{err}
  59. }
  60. return x, compiler.NewErrorGroupOrNil(errors)
  61. }
  62. // NewAny creates an object of type Any if possible, returning an error if not.
  63. func NewAny(in *yaml.Node, context *compiler.Context) (*Any, error) {
  64. errors := make([]error, 0)
  65. x := &Any{}
  66. bytes := compiler.Marshal(in)
  67. x.Yaml = string(bytes)
  68. return x, compiler.NewErrorGroupOrNil(errors)
  69. }
  70. // NewAnyOrExpression creates an object of type AnyOrExpression if possible, returning an error if not.
  71. func NewAnyOrExpression(in *yaml.Node, context *compiler.Context) (*AnyOrExpression, error) {
  72. errors := make([]error, 0)
  73. x := &AnyOrExpression{}
  74. matched := false
  75. // Any any = 1;
  76. {
  77. m, ok := compiler.UnpackMap(in)
  78. if ok {
  79. // errors might be ok here, they mean we just don't have the right subtype
  80. t, matchingError := NewAny(m, compiler.NewContext("any", m, context))
  81. if matchingError == nil {
  82. x.Oneof = &AnyOrExpression_Any{Any: t}
  83. matched = true
  84. } else {
  85. errors = append(errors, matchingError)
  86. }
  87. }
  88. }
  89. // Expression expression = 2;
  90. {
  91. m, ok := compiler.UnpackMap(in)
  92. if ok {
  93. // errors might be ok here, they mean we just don't have the right subtype
  94. t, matchingError := NewExpression(m, compiler.NewContext("expression", m, context))
  95. if matchingError == nil {
  96. x.Oneof = &AnyOrExpression_Expression{Expression: t}
  97. matched = true
  98. } else {
  99. errors = append(errors, matchingError)
  100. }
  101. }
  102. }
  103. if matched {
  104. // since the oneof matched one of its possibilities, discard any matching errors
  105. errors = make([]error, 0)
  106. } else {
  107. message := fmt.Sprintf("contains an invalid AnyOrExpression")
  108. err := compiler.NewError(context, message)
  109. errors = []error{err}
  110. }
  111. return x, compiler.NewErrorGroupOrNil(errors)
  112. }
  113. // NewCallback creates an object of type Callback if possible, returning an error if not.
  114. func NewCallback(in *yaml.Node, context *compiler.Context) (*Callback, error) {
  115. errors := make([]error, 0)
  116. x := &Callback{}
  117. m, ok := compiler.UnpackMap(in)
  118. if !ok {
  119. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  120. errors = append(errors, compiler.NewError(context, message))
  121. } else {
  122. allowedKeys := []string{}
  123. allowedPatterns := []*regexp.Regexp{pattern0, pattern1}
  124. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  125. if len(invalidKeys) > 0 {
  126. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  127. errors = append(errors, compiler.NewError(context, message))
  128. }
  129. // repeated NamedPathItem path = 1;
  130. // MAP: PathItem ^
  131. x.Path = make([]*NamedPathItem, 0)
  132. for i := 0; i < len(m.Content); i += 2 {
  133. k, ok := compiler.StringForScalarNode(m.Content[i])
  134. if ok {
  135. v := m.Content[i+1]
  136. if true {
  137. pair := &NamedPathItem{}
  138. pair.Name = k
  139. var err error
  140. pair.Value, err = NewPathItem(v, compiler.NewContext(k, v, context))
  141. if err != nil {
  142. errors = append(errors, err)
  143. }
  144. x.Path = append(x.Path, pair)
  145. }
  146. }
  147. }
  148. // repeated NamedAny specification_extension = 2;
  149. // MAP: Any ^x-
  150. x.SpecificationExtension = make([]*NamedAny, 0)
  151. for i := 0; i < len(m.Content); i += 2 {
  152. k, ok := compiler.StringForScalarNode(m.Content[i])
  153. if ok {
  154. v := m.Content[i+1]
  155. if strings.HasPrefix(k, "x-") {
  156. pair := &NamedAny{}
  157. pair.Name = k
  158. result := &Any{}
  159. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  160. if handled {
  161. if err != nil {
  162. errors = append(errors, err)
  163. } else {
  164. bytes := compiler.Marshal(v)
  165. result.Yaml = string(bytes)
  166. result.Value = resultFromExt
  167. pair.Value = result
  168. }
  169. } else {
  170. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  171. if err != nil {
  172. errors = append(errors, err)
  173. }
  174. }
  175. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  176. }
  177. }
  178. }
  179. }
  180. return x, compiler.NewErrorGroupOrNil(errors)
  181. }
  182. // NewCallbackOrReference creates an object of type CallbackOrReference if possible, returning an error if not.
  183. func NewCallbackOrReference(in *yaml.Node, context *compiler.Context) (*CallbackOrReference, error) {
  184. errors := make([]error, 0)
  185. x := &CallbackOrReference{}
  186. matched := false
  187. // Callback callback = 1;
  188. {
  189. m, ok := compiler.UnpackMap(in)
  190. if ok {
  191. // errors might be ok here, they mean we just don't have the right subtype
  192. t, matchingError := NewCallback(m, compiler.NewContext("callback", m, context))
  193. if matchingError == nil {
  194. x.Oneof = &CallbackOrReference_Callback{Callback: t}
  195. matched = true
  196. } else {
  197. errors = append(errors, matchingError)
  198. }
  199. }
  200. }
  201. // Reference reference = 2;
  202. {
  203. m, ok := compiler.UnpackMap(in)
  204. if ok {
  205. // errors might be ok here, they mean we just don't have the right subtype
  206. t, matchingError := NewReference(m, compiler.NewContext("reference", m, context))
  207. if matchingError == nil {
  208. x.Oneof = &CallbackOrReference_Reference{Reference: t}
  209. matched = true
  210. } else {
  211. errors = append(errors, matchingError)
  212. }
  213. }
  214. }
  215. if matched {
  216. // since the oneof matched one of its possibilities, discard any matching errors
  217. errors = make([]error, 0)
  218. } else {
  219. message := fmt.Sprintf("contains an invalid CallbackOrReference")
  220. err := compiler.NewError(context, message)
  221. errors = []error{err}
  222. }
  223. return x, compiler.NewErrorGroupOrNil(errors)
  224. }
  225. // NewCallbacksOrReferences creates an object of type CallbacksOrReferences if possible, returning an error if not.
  226. func NewCallbacksOrReferences(in *yaml.Node, context *compiler.Context) (*CallbacksOrReferences, error) {
  227. errors := make([]error, 0)
  228. x := &CallbacksOrReferences{}
  229. m, ok := compiler.UnpackMap(in)
  230. if !ok {
  231. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  232. errors = append(errors, compiler.NewError(context, message))
  233. } else {
  234. // repeated NamedCallbackOrReference additional_properties = 1;
  235. // MAP: CallbackOrReference
  236. x.AdditionalProperties = make([]*NamedCallbackOrReference, 0)
  237. for i := 0; i < len(m.Content); i += 2 {
  238. k, ok := compiler.StringForScalarNode(m.Content[i])
  239. if ok {
  240. v := m.Content[i+1]
  241. pair := &NamedCallbackOrReference{}
  242. pair.Name = k
  243. var err error
  244. pair.Value, err = NewCallbackOrReference(v, compiler.NewContext(k, v, context))
  245. if err != nil {
  246. errors = append(errors, err)
  247. }
  248. x.AdditionalProperties = append(x.AdditionalProperties, pair)
  249. }
  250. }
  251. }
  252. return x, compiler.NewErrorGroupOrNil(errors)
  253. }
  254. // NewComponents creates an object of type Components if possible, returning an error if not.
  255. func NewComponents(in *yaml.Node, context *compiler.Context) (*Components, error) {
  256. errors := make([]error, 0)
  257. x := &Components{}
  258. m, ok := compiler.UnpackMap(in)
  259. if !ok {
  260. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  261. errors = append(errors, compiler.NewError(context, message))
  262. } else {
  263. allowedKeys := []string{"callbacks", "examples", "headers", "links", "parameters", "requestBodies", "responses", "schemas", "securitySchemes"}
  264. allowedPatterns := []*regexp.Regexp{pattern1}
  265. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  266. if len(invalidKeys) > 0 {
  267. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  268. errors = append(errors, compiler.NewError(context, message))
  269. }
  270. // SchemasOrReferences schemas = 1;
  271. v1 := compiler.MapValueForKey(m, "schemas")
  272. if v1 != nil {
  273. var err error
  274. x.Schemas, err = NewSchemasOrReferences(v1, compiler.NewContext("schemas", v1, context))
  275. if err != nil {
  276. errors = append(errors, err)
  277. }
  278. }
  279. // ResponsesOrReferences responses = 2;
  280. v2 := compiler.MapValueForKey(m, "responses")
  281. if v2 != nil {
  282. var err error
  283. x.Responses, err = NewResponsesOrReferences(v2, compiler.NewContext("responses", v2, context))
  284. if err != nil {
  285. errors = append(errors, err)
  286. }
  287. }
  288. // ParametersOrReferences parameters = 3;
  289. v3 := compiler.MapValueForKey(m, "parameters")
  290. if v3 != nil {
  291. var err error
  292. x.Parameters, err = NewParametersOrReferences(v3, compiler.NewContext("parameters", v3, context))
  293. if err != nil {
  294. errors = append(errors, err)
  295. }
  296. }
  297. // ExamplesOrReferences examples = 4;
  298. v4 := compiler.MapValueForKey(m, "examples")
  299. if v4 != nil {
  300. var err error
  301. x.Examples, err = NewExamplesOrReferences(v4, compiler.NewContext("examples", v4, context))
  302. if err != nil {
  303. errors = append(errors, err)
  304. }
  305. }
  306. // RequestBodiesOrReferences request_bodies = 5;
  307. v5 := compiler.MapValueForKey(m, "requestBodies")
  308. if v5 != nil {
  309. var err error
  310. x.RequestBodies, err = NewRequestBodiesOrReferences(v5, compiler.NewContext("requestBodies", v5, context))
  311. if err != nil {
  312. errors = append(errors, err)
  313. }
  314. }
  315. // HeadersOrReferences headers = 6;
  316. v6 := compiler.MapValueForKey(m, "headers")
  317. if v6 != nil {
  318. var err error
  319. x.Headers, err = NewHeadersOrReferences(v6, compiler.NewContext("headers", v6, context))
  320. if err != nil {
  321. errors = append(errors, err)
  322. }
  323. }
  324. // SecuritySchemesOrReferences security_schemes = 7;
  325. v7 := compiler.MapValueForKey(m, "securitySchemes")
  326. if v7 != nil {
  327. var err error
  328. x.SecuritySchemes, err = NewSecuritySchemesOrReferences(v7, compiler.NewContext("securitySchemes", v7, context))
  329. if err != nil {
  330. errors = append(errors, err)
  331. }
  332. }
  333. // LinksOrReferences links = 8;
  334. v8 := compiler.MapValueForKey(m, "links")
  335. if v8 != nil {
  336. var err error
  337. x.Links, err = NewLinksOrReferences(v8, compiler.NewContext("links", v8, context))
  338. if err != nil {
  339. errors = append(errors, err)
  340. }
  341. }
  342. // CallbacksOrReferences callbacks = 9;
  343. v9 := compiler.MapValueForKey(m, "callbacks")
  344. if v9 != nil {
  345. var err error
  346. x.Callbacks, err = NewCallbacksOrReferences(v9, compiler.NewContext("callbacks", v9, context))
  347. if err != nil {
  348. errors = append(errors, err)
  349. }
  350. }
  351. // repeated NamedAny specification_extension = 10;
  352. // MAP: Any ^x-
  353. x.SpecificationExtension = make([]*NamedAny, 0)
  354. for i := 0; i < len(m.Content); i += 2 {
  355. k, ok := compiler.StringForScalarNode(m.Content[i])
  356. if ok {
  357. v := m.Content[i+1]
  358. if strings.HasPrefix(k, "x-") {
  359. pair := &NamedAny{}
  360. pair.Name = k
  361. result := &Any{}
  362. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  363. if handled {
  364. if err != nil {
  365. errors = append(errors, err)
  366. } else {
  367. bytes := compiler.Marshal(v)
  368. result.Yaml = string(bytes)
  369. result.Value = resultFromExt
  370. pair.Value = result
  371. }
  372. } else {
  373. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  374. if err != nil {
  375. errors = append(errors, err)
  376. }
  377. }
  378. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  379. }
  380. }
  381. }
  382. }
  383. return x, compiler.NewErrorGroupOrNil(errors)
  384. }
  385. // NewContact creates an object of type Contact if possible, returning an error if not.
  386. func NewContact(in *yaml.Node, context *compiler.Context) (*Contact, error) {
  387. errors := make([]error, 0)
  388. x := &Contact{}
  389. m, ok := compiler.UnpackMap(in)
  390. if !ok {
  391. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  392. errors = append(errors, compiler.NewError(context, message))
  393. } else {
  394. allowedKeys := []string{"email", "name", "url"}
  395. allowedPatterns := []*regexp.Regexp{pattern1}
  396. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  397. if len(invalidKeys) > 0 {
  398. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  399. errors = append(errors, compiler.NewError(context, message))
  400. }
  401. // string name = 1;
  402. v1 := compiler.MapValueForKey(m, "name")
  403. if v1 != nil {
  404. x.Name, ok = compiler.StringForScalarNode(v1)
  405. if !ok {
  406. message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
  407. errors = append(errors, compiler.NewError(context, message))
  408. }
  409. }
  410. // string url = 2;
  411. v2 := compiler.MapValueForKey(m, "url")
  412. if v2 != nil {
  413. x.Url, ok = compiler.StringForScalarNode(v2)
  414. if !ok {
  415. message := fmt.Sprintf("has unexpected value for url: %s", compiler.Display(v2))
  416. errors = append(errors, compiler.NewError(context, message))
  417. }
  418. }
  419. // string email = 3;
  420. v3 := compiler.MapValueForKey(m, "email")
  421. if v3 != nil {
  422. x.Email, ok = compiler.StringForScalarNode(v3)
  423. if !ok {
  424. message := fmt.Sprintf("has unexpected value for email: %s", compiler.Display(v3))
  425. errors = append(errors, compiler.NewError(context, message))
  426. }
  427. }
  428. // repeated NamedAny specification_extension = 4;
  429. // MAP: Any ^x-
  430. x.SpecificationExtension = make([]*NamedAny, 0)
  431. for i := 0; i < len(m.Content); i += 2 {
  432. k, ok := compiler.StringForScalarNode(m.Content[i])
  433. if ok {
  434. v := m.Content[i+1]
  435. if strings.HasPrefix(k, "x-") {
  436. pair := &NamedAny{}
  437. pair.Name = k
  438. result := &Any{}
  439. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  440. if handled {
  441. if err != nil {
  442. errors = append(errors, err)
  443. } else {
  444. bytes := compiler.Marshal(v)
  445. result.Yaml = string(bytes)
  446. result.Value = resultFromExt
  447. pair.Value = result
  448. }
  449. } else {
  450. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  451. if err != nil {
  452. errors = append(errors, err)
  453. }
  454. }
  455. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  456. }
  457. }
  458. }
  459. }
  460. return x, compiler.NewErrorGroupOrNil(errors)
  461. }
  462. // NewDefaultType creates an object of type DefaultType if possible, returning an error if not.
  463. func NewDefaultType(in *yaml.Node, context *compiler.Context) (*DefaultType, error) {
  464. errors := make([]error, 0)
  465. x := &DefaultType{}
  466. matched := false
  467. switch in.Tag {
  468. case "!!bool":
  469. var v bool
  470. v, matched = compiler.BoolForScalarNode(in)
  471. x.Oneof = &DefaultType_Boolean{Boolean: v}
  472. case "!!str":
  473. var v string
  474. v, matched = compiler.StringForScalarNode(in)
  475. x.Oneof = &DefaultType_String_{String_: v}
  476. case "!!float":
  477. var v float64
  478. v, matched = compiler.FloatForScalarNode(in)
  479. x.Oneof = &DefaultType_Number{Number: v}
  480. case "!!int":
  481. var v int64
  482. v, matched = compiler.IntForScalarNode(in)
  483. x.Oneof = &DefaultType_Number{Number: float64(v)}
  484. }
  485. if matched {
  486. // since the oneof matched one of its possibilities, discard any matching errors
  487. errors = make([]error, 0)
  488. }
  489. return x, compiler.NewErrorGroupOrNil(errors)
  490. }
  491. // NewDiscriminator creates an object of type Discriminator if possible, returning an error if not.
  492. func NewDiscriminator(in *yaml.Node, context *compiler.Context) (*Discriminator, error) {
  493. errors := make([]error, 0)
  494. x := &Discriminator{}
  495. m, ok := compiler.UnpackMap(in)
  496. if !ok {
  497. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  498. errors = append(errors, compiler.NewError(context, message))
  499. } else {
  500. requiredKeys := []string{"propertyName"}
  501. missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
  502. if len(missingKeys) > 0 {
  503. message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
  504. errors = append(errors, compiler.NewError(context, message))
  505. }
  506. allowedKeys := []string{"mapping", "propertyName"}
  507. allowedPatterns := []*regexp.Regexp{pattern1}
  508. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  509. if len(invalidKeys) > 0 {
  510. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  511. errors = append(errors, compiler.NewError(context, message))
  512. }
  513. // string property_name = 1;
  514. v1 := compiler.MapValueForKey(m, "propertyName")
  515. if v1 != nil {
  516. x.PropertyName, ok = compiler.StringForScalarNode(v1)
  517. if !ok {
  518. message := fmt.Sprintf("has unexpected value for propertyName: %s", compiler.Display(v1))
  519. errors = append(errors, compiler.NewError(context, message))
  520. }
  521. }
  522. // Strings mapping = 2;
  523. v2 := compiler.MapValueForKey(m, "mapping")
  524. if v2 != nil {
  525. var err error
  526. x.Mapping, err = NewStrings(v2, compiler.NewContext("mapping", v2, context))
  527. if err != nil {
  528. errors = append(errors, err)
  529. }
  530. }
  531. // repeated NamedAny specification_extension = 3;
  532. // MAP: Any ^x-
  533. x.SpecificationExtension = make([]*NamedAny, 0)
  534. for i := 0; i < len(m.Content); i += 2 {
  535. k, ok := compiler.StringForScalarNode(m.Content[i])
  536. if ok {
  537. v := m.Content[i+1]
  538. if strings.HasPrefix(k, "x-") {
  539. pair := &NamedAny{}
  540. pair.Name = k
  541. result := &Any{}
  542. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  543. if handled {
  544. if err != nil {
  545. errors = append(errors, err)
  546. } else {
  547. bytes := compiler.Marshal(v)
  548. result.Yaml = string(bytes)
  549. result.Value = resultFromExt
  550. pair.Value = result
  551. }
  552. } else {
  553. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  554. if err != nil {
  555. errors = append(errors, err)
  556. }
  557. }
  558. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  559. }
  560. }
  561. }
  562. }
  563. return x, compiler.NewErrorGroupOrNil(errors)
  564. }
  565. // NewDocument creates an object of type Document if possible, returning an error if not.
  566. func NewDocument(in *yaml.Node, context *compiler.Context) (*Document, error) {
  567. errors := make([]error, 0)
  568. x := &Document{}
  569. m, ok := compiler.UnpackMap(in)
  570. if !ok {
  571. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  572. errors = append(errors, compiler.NewError(context, message))
  573. } else {
  574. requiredKeys := []string{"info", "openapi", "paths"}
  575. missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
  576. if len(missingKeys) > 0 {
  577. message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
  578. errors = append(errors, compiler.NewError(context, message))
  579. }
  580. allowedKeys := []string{"components", "externalDocs", "info", "openapi", "paths", "security", "servers", "tags"}
  581. allowedPatterns := []*regexp.Regexp{pattern1}
  582. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  583. if len(invalidKeys) > 0 {
  584. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  585. errors = append(errors, compiler.NewError(context, message))
  586. }
  587. // string openapi = 1;
  588. v1 := compiler.MapValueForKey(m, "openapi")
  589. if v1 != nil {
  590. x.Openapi, ok = compiler.StringForScalarNode(v1)
  591. if !ok {
  592. message := fmt.Sprintf("has unexpected value for openapi: %s", compiler.Display(v1))
  593. errors = append(errors, compiler.NewError(context, message))
  594. }
  595. }
  596. // Info info = 2;
  597. v2 := compiler.MapValueForKey(m, "info")
  598. if v2 != nil {
  599. var err error
  600. x.Info, err = NewInfo(v2, compiler.NewContext("info", v2, context))
  601. if err != nil {
  602. errors = append(errors, err)
  603. }
  604. }
  605. // repeated Server servers = 3;
  606. v3 := compiler.MapValueForKey(m, "servers")
  607. if v3 != nil {
  608. // repeated Server
  609. x.Servers = make([]*Server, 0)
  610. a, ok := compiler.SequenceNodeForNode(v3)
  611. if ok {
  612. for _, item := range a.Content {
  613. y, err := NewServer(item, compiler.NewContext("servers", item, context))
  614. if err != nil {
  615. errors = append(errors, err)
  616. }
  617. x.Servers = append(x.Servers, y)
  618. }
  619. }
  620. }
  621. // Paths paths = 4;
  622. v4 := compiler.MapValueForKey(m, "paths")
  623. if v4 != nil {
  624. var err error
  625. x.Paths, err = NewPaths(v4, compiler.NewContext("paths", v4, context))
  626. if err != nil {
  627. errors = append(errors, err)
  628. }
  629. }
  630. // Components components = 5;
  631. v5 := compiler.MapValueForKey(m, "components")
  632. if v5 != nil {
  633. var err error
  634. x.Components, err = NewComponents(v5, compiler.NewContext("components", v5, context))
  635. if err != nil {
  636. errors = append(errors, err)
  637. }
  638. }
  639. // repeated SecurityRequirement security = 6;
  640. v6 := compiler.MapValueForKey(m, "security")
  641. if v6 != nil {
  642. // repeated SecurityRequirement
  643. x.Security = make([]*SecurityRequirement, 0)
  644. a, ok := compiler.SequenceNodeForNode(v6)
  645. if ok {
  646. for _, item := range a.Content {
  647. y, err := NewSecurityRequirement(item, compiler.NewContext("security", item, context))
  648. if err != nil {
  649. errors = append(errors, err)
  650. }
  651. x.Security = append(x.Security, y)
  652. }
  653. }
  654. }
  655. // repeated Tag tags = 7;
  656. v7 := compiler.MapValueForKey(m, "tags")
  657. if v7 != nil {
  658. // repeated Tag
  659. x.Tags = make([]*Tag, 0)
  660. a, ok := compiler.SequenceNodeForNode(v7)
  661. if ok {
  662. for _, item := range a.Content {
  663. y, err := NewTag(item, compiler.NewContext("tags", item, context))
  664. if err != nil {
  665. errors = append(errors, err)
  666. }
  667. x.Tags = append(x.Tags, y)
  668. }
  669. }
  670. }
  671. // ExternalDocs external_docs = 8;
  672. v8 := compiler.MapValueForKey(m, "externalDocs")
  673. if v8 != nil {
  674. var err error
  675. x.ExternalDocs, err = NewExternalDocs(v8, compiler.NewContext("externalDocs", v8, context))
  676. if err != nil {
  677. errors = append(errors, err)
  678. }
  679. }
  680. // repeated NamedAny specification_extension = 9;
  681. // MAP: Any ^x-
  682. x.SpecificationExtension = make([]*NamedAny, 0)
  683. for i := 0; i < len(m.Content); i += 2 {
  684. k, ok := compiler.StringForScalarNode(m.Content[i])
  685. if ok {
  686. v := m.Content[i+1]
  687. if strings.HasPrefix(k, "x-") {
  688. pair := &NamedAny{}
  689. pair.Name = k
  690. result := &Any{}
  691. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  692. if handled {
  693. if err != nil {
  694. errors = append(errors, err)
  695. } else {
  696. bytes := compiler.Marshal(v)
  697. result.Yaml = string(bytes)
  698. result.Value = resultFromExt
  699. pair.Value = result
  700. }
  701. } else {
  702. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  703. if err != nil {
  704. errors = append(errors, err)
  705. }
  706. }
  707. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  708. }
  709. }
  710. }
  711. }
  712. return x, compiler.NewErrorGroupOrNil(errors)
  713. }
  714. // NewEncoding creates an object of type Encoding if possible, returning an error if not.
  715. func NewEncoding(in *yaml.Node, context *compiler.Context) (*Encoding, error) {
  716. errors := make([]error, 0)
  717. x := &Encoding{}
  718. m, ok := compiler.UnpackMap(in)
  719. if !ok {
  720. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  721. errors = append(errors, compiler.NewError(context, message))
  722. } else {
  723. allowedKeys := []string{"allowReserved", "contentType", "explode", "headers", "style"}
  724. allowedPatterns := []*regexp.Regexp{pattern1}
  725. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  726. if len(invalidKeys) > 0 {
  727. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  728. errors = append(errors, compiler.NewError(context, message))
  729. }
  730. // string content_type = 1;
  731. v1 := compiler.MapValueForKey(m, "contentType")
  732. if v1 != nil {
  733. x.ContentType, ok = compiler.StringForScalarNode(v1)
  734. if !ok {
  735. message := fmt.Sprintf("has unexpected value for contentType: %s", compiler.Display(v1))
  736. errors = append(errors, compiler.NewError(context, message))
  737. }
  738. }
  739. // HeadersOrReferences headers = 2;
  740. v2 := compiler.MapValueForKey(m, "headers")
  741. if v2 != nil {
  742. var err error
  743. x.Headers, err = NewHeadersOrReferences(v2, compiler.NewContext("headers", v2, context))
  744. if err != nil {
  745. errors = append(errors, err)
  746. }
  747. }
  748. // string style = 3;
  749. v3 := compiler.MapValueForKey(m, "style")
  750. if v3 != nil {
  751. x.Style, ok = compiler.StringForScalarNode(v3)
  752. if !ok {
  753. message := fmt.Sprintf("has unexpected value for style: %s", compiler.Display(v3))
  754. errors = append(errors, compiler.NewError(context, message))
  755. }
  756. }
  757. // bool explode = 4;
  758. v4 := compiler.MapValueForKey(m, "explode")
  759. if v4 != nil {
  760. x.Explode, ok = compiler.BoolForScalarNode(v4)
  761. if !ok {
  762. message := fmt.Sprintf("has unexpected value for explode: %s", compiler.Display(v4))
  763. errors = append(errors, compiler.NewError(context, message))
  764. }
  765. }
  766. // bool allow_reserved = 5;
  767. v5 := compiler.MapValueForKey(m, "allowReserved")
  768. if v5 != nil {
  769. x.AllowReserved, ok = compiler.BoolForScalarNode(v5)
  770. if !ok {
  771. message := fmt.Sprintf("has unexpected value for allowReserved: %s", compiler.Display(v5))
  772. errors = append(errors, compiler.NewError(context, message))
  773. }
  774. }
  775. // repeated NamedAny specification_extension = 6;
  776. // MAP: Any ^x-
  777. x.SpecificationExtension = make([]*NamedAny, 0)
  778. for i := 0; i < len(m.Content); i += 2 {
  779. k, ok := compiler.StringForScalarNode(m.Content[i])
  780. if ok {
  781. v := m.Content[i+1]
  782. if strings.HasPrefix(k, "x-") {
  783. pair := &NamedAny{}
  784. pair.Name = k
  785. result := &Any{}
  786. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  787. if handled {
  788. if err != nil {
  789. errors = append(errors, err)
  790. } else {
  791. bytes := compiler.Marshal(v)
  792. result.Yaml = string(bytes)
  793. result.Value = resultFromExt
  794. pair.Value = result
  795. }
  796. } else {
  797. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  798. if err != nil {
  799. errors = append(errors, err)
  800. }
  801. }
  802. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  803. }
  804. }
  805. }
  806. }
  807. return x, compiler.NewErrorGroupOrNil(errors)
  808. }
  809. // NewEncodings creates an object of type Encodings if possible, returning an error if not.
  810. func NewEncodings(in *yaml.Node, context *compiler.Context) (*Encodings, error) {
  811. errors := make([]error, 0)
  812. x := &Encodings{}
  813. m, ok := compiler.UnpackMap(in)
  814. if !ok {
  815. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  816. errors = append(errors, compiler.NewError(context, message))
  817. } else {
  818. // repeated NamedEncoding additional_properties = 1;
  819. // MAP: Encoding
  820. x.AdditionalProperties = make([]*NamedEncoding, 0)
  821. for i := 0; i < len(m.Content); i += 2 {
  822. k, ok := compiler.StringForScalarNode(m.Content[i])
  823. if ok {
  824. v := m.Content[i+1]
  825. pair := &NamedEncoding{}
  826. pair.Name = k
  827. var err error
  828. pair.Value, err = NewEncoding(v, compiler.NewContext(k, v, context))
  829. if err != nil {
  830. errors = append(errors, err)
  831. }
  832. x.AdditionalProperties = append(x.AdditionalProperties, pair)
  833. }
  834. }
  835. }
  836. return x, compiler.NewErrorGroupOrNil(errors)
  837. }
  838. // NewExample creates an object of type Example if possible, returning an error if not.
  839. func NewExample(in *yaml.Node, context *compiler.Context) (*Example, error) {
  840. errors := make([]error, 0)
  841. x := &Example{}
  842. m, ok := compiler.UnpackMap(in)
  843. if !ok {
  844. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  845. errors = append(errors, compiler.NewError(context, message))
  846. } else {
  847. allowedKeys := []string{"description", "externalValue", "summary", "value"}
  848. allowedPatterns := []*regexp.Regexp{pattern1}
  849. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  850. if len(invalidKeys) > 0 {
  851. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  852. errors = append(errors, compiler.NewError(context, message))
  853. }
  854. // string summary = 1;
  855. v1 := compiler.MapValueForKey(m, "summary")
  856. if v1 != nil {
  857. x.Summary, ok = compiler.StringForScalarNode(v1)
  858. if !ok {
  859. message := fmt.Sprintf("has unexpected value for summary: %s", compiler.Display(v1))
  860. errors = append(errors, compiler.NewError(context, message))
  861. }
  862. }
  863. // string description = 2;
  864. v2 := compiler.MapValueForKey(m, "description")
  865. if v2 != nil {
  866. x.Description, ok = compiler.StringForScalarNode(v2)
  867. if !ok {
  868. message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v2))
  869. errors = append(errors, compiler.NewError(context, message))
  870. }
  871. }
  872. // Any value = 3;
  873. v3 := compiler.MapValueForKey(m, "value")
  874. if v3 != nil {
  875. var err error
  876. x.Value, err = NewAny(v3, compiler.NewContext("value", v3, context))
  877. if err != nil {
  878. errors = append(errors, err)
  879. }
  880. }
  881. // string external_value = 4;
  882. v4 := compiler.MapValueForKey(m, "externalValue")
  883. if v4 != nil {
  884. x.ExternalValue, ok = compiler.StringForScalarNode(v4)
  885. if !ok {
  886. message := fmt.Sprintf("has unexpected value for externalValue: %s", compiler.Display(v4))
  887. errors = append(errors, compiler.NewError(context, message))
  888. }
  889. }
  890. // repeated NamedAny specification_extension = 5;
  891. // MAP: Any ^x-
  892. x.SpecificationExtension = make([]*NamedAny, 0)
  893. for i := 0; i < len(m.Content); i += 2 {
  894. k, ok := compiler.StringForScalarNode(m.Content[i])
  895. if ok {
  896. v := m.Content[i+1]
  897. if strings.HasPrefix(k, "x-") {
  898. pair := &NamedAny{}
  899. pair.Name = k
  900. result := &Any{}
  901. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  902. if handled {
  903. if err != nil {
  904. errors = append(errors, err)
  905. } else {
  906. bytes := compiler.Marshal(v)
  907. result.Yaml = string(bytes)
  908. result.Value = resultFromExt
  909. pair.Value = result
  910. }
  911. } else {
  912. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  913. if err != nil {
  914. errors = append(errors, err)
  915. }
  916. }
  917. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  918. }
  919. }
  920. }
  921. }
  922. return x, compiler.NewErrorGroupOrNil(errors)
  923. }
  924. // NewExampleOrReference creates an object of type ExampleOrReference if possible, returning an error if not.
  925. func NewExampleOrReference(in *yaml.Node, context *compiler.Context) (*ExampleOrReference, error) {
  926. errors := make([]error, 0)
  927. x := &ExampleOrReference{}
  928. matched := false
  929. // Example example = 1;
  930. {
  931. m, ok := compiler.UnpackMap(in)
  932. if ok {
  933. // errors might be ok here, they mean we just don't have the right subtype
  934. t, matchingError := NewExample(m, compiler.NewContext("example", m, context))
  935. if matchingError == nil {
  936. x.Oneof = &ExampleOrReference_Example{Example: t}
  937. matched = true
  938. } else {
  939. errors = append(errors, matchingError)
  940. }
  941. }
  942. }
  943. // Reference reference = 2;
  944. {
  945. m, ok := compiler.UnpackMap(in)
  946. if ok {
  947. // errors might be ok here, they mean we just don't have the right subtype
  948. t, matchingError := NewReference(m, compiler.NewContext("reference", m, context))
  949. if matchingError == nil {
  950. x.Oneof = &ExampleOrReference_Reference{Reference: t}
  951. matched = true
  952. } else {
  953. errors = append(errors, matchingError)
  954. }
  955. }
  956. }
  957. if matched {
  958. // since the oneof matched one of its possibilities, discard any matching errors
  959. errors = make([]error, 0)
  960. } else {
  961. message := fmt.Sprintf("contains an invalid ExampleOrReference")
  962. err := compiler.NewError(context, message)
  963. errors = []error{err}
  964. }
  965. return x, compiler.NewErrorGroupOrNil(errors)
  966. }
  967. // NewExamplesOrReferences creates an object of type ExamplesOrReferences if possible, returning an error if not.
  968. func NewExamplesOrReferences(in *yaml.Node, context *compiler.Context) (*ExamplesOrReferences, error) {
  969. errors := make([]error, 0)
  970. x := &ExamplesOrReferences{}
  971. m, ok := compiler.UnpackMap(in)
  972. if !ok {
  973. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  974. errors = append(errors, compiler.NewError(context, message))
  975. } else {
  976. // repeated NamedExampleOrReference additional_properties = 1;
  977. // MAP: ExampleOrReference
  978. x.AdditionalProperties = make([]*NamedExampleOrReference, 0)
  979. for i := 0; i < len(m.Content); i += 2 {
  980. k, ok := compiler.StringForScalarNode(m.Content[i])
  981. if ok {
  982. v := m.Content[i+1]
  983. pair := &NamedExampleOrReference{}
  984. pair.Name = k
  985. var err error
  986. pair.Value, err = NewExampleOrReference(v, compiler.NewContext(k, v, context))
  987. if err != nil {
  988. errors = append(errors, err)
  989. }
  990. x.AdditionalProperties = append(x.AdditionalProperties, pair)
  991. }
  992. }
  993. }
  994. return x, compiler.NewErrorGroupOrNil(errors)
  995. }
  996. // NewExpression creates an object of type Expression if possible, returning an error if not.
  997. func NewExpression(in *yaml.Node, context *compiler.Context) (*Expression, error) {
  998. errors := make([]error, 0)
  999. x := &Expression{}
  1000. m, ok := compiler.UnpackMap(in)
  1001. if !ok {
  1002. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  1003. errors = append(errors, compiler.NewError(context, message))
  1004. } else {
  1005. // repeated NamedAny additional_properties = 1;
  1006. // MAP: Any
  1007. x.AdditionalProperties = make([]*NamedAny, 0)
  1008. for i := 0; i < len(m.Content); i += 2 {
  1009. k, ok := compiler.StringForScalarNode(m.Content[i])
  1010. if ok {
  1011. v := m.Content[i+1]
  1012. pair := &NamedAny{}
  1013. pair.Name = k
  1014. result := &Any{}
  1015. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  1016. if handled {
  1017. if err != nil {
  1018. errors = append(errors, err)
  1019. } else {
  1020. bytes := compiler.Marshal(v)
  1021. result.Yaml = string(bytes)
  1022. result.Value = resultFromExt
  1023. pair.Value = result
  1024. }
  1025. } else {
  1026. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  1027. if err != nil {
  1028. errors = append(errors, err)
  1029. }
  1030. }
  1031. x.AdditionalProperties = append(x.AdditionalProperties, pair)
  1032. }
  1033. }
  1034. }
  1035. return x, compiler.NewErrorGroupOrNil(errors)
  1036. }
  1037. // NewExternalDocs creates an object of type ExternalDocs if possible, returning an error if not.
  1038. func NewExternalDocs(in *yaml.Node, context *compiler.Context) (*ExternalDocs, error) {
  1039. errors := make([]error, 0)
  1040. x := &ExternalDocs{}
  1041. m, ok := compiler.UnpackMap(in)
  1042. if !ok {
  1043. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  1044. errors = append(errors, compiler.NewError(context, message))
  1045. } else {
  1046. requiredKeys := []string{"url"}
  1047. missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
  1048. if len(missingKeys) > 0 {
  1049. message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
  1050. errors = append(errors, compiler.NewError(context, message))
  1051. }
  1052. allowedKeys := []string{"description", "url"}
  1053. allowedPatterns := []*regexp.Regexp{pattern1}
  1054. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  1055. if len(invalidKeys) > 0 {
  1056. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  1057. errors = append(errors, compiler.NewError(context, message))
  1058. }
  1059. // string description = 1;
  1060. v1 := compiler.MapValueForKey(m, "description")
  1061. if v1 != nil {
  1062. x.Description, ok = compiler.StringForScalarNode(v1)
  1063. if !ok {
  1064. message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v1))
  1065. errors = append(errors, compiler.NewError(context, message))
  1066. }
  1067. }
  1068. // string url = 2;
  1069. v2 := compiler.MapValueForKey(m, "url")
  1070. if v2 != nil {
  1071. x.Url, ok = compiler.StringForScalarNode(v2)
  1072. if !ok {
  1073. message := fmt.Sprintf("has unexpected value for url: %s", compiler.Display(v2))
  1074. errors = append(errors, compiler.NewError(context, message))
  1075. }
  1076. }
  1077. // repeated NamedAny specification_extension = 3;
  1078. // MAP: Any ^x-
  1079. x.SpecificationExtension = make([]*NamedAny, 0)
  1080. for i := 0; i < len(m.Content); i += 2 {
  1081. k, ok := compiler.StringForScalarNode(m.Content[i])
  1082. if ok {
  1083. v := m.Content[i+1]
  1084. if strings.HasPrefix(k, "x-") {
  1085. pair := &NamedAny{}
  1086. pair.Name = k
  1087. result := &Any{}
  1088. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  1089. if handled {
  1090. if err != nil {
  1091. errors = append(errors, err)
  1092. } else {
  1093. bytes := compiler.Marshal(v)
  1094. result.Yaml = string(bytes)
  1095. result.Value = resultFromExt
  1096. pair.Value = result
  1097. }
  1098. } else {
  1099. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  1100. if err != nil {
  1101. errors = append(errors, err)
  1102. }
  1103. }
  1104. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  1105. }
  1106. }
  1107. }
  1108. }
  1109. return x, compiler.NewErrorGroupOrNil(errors)
  1110. }
  1111. // NewHeader creates an object of type Header if possible, returning an error if not.
  1112. func NewHeader(in *yaml.Node, context *compiler.Context) (*Header, error) {
  1113. errors := make([]error, 0)
  1114. x := &Header{}
  1115. m, ok := compiler.UnpackMap(in)
  1116. if !ok {
  1117. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  1118. errors = append(errors, compiler.NewError(context, message))
  1119. } else {
  1120. allowedKeys := []string{"allowEmptyValue", "allowReserved", "content", "deprecated", "description", "example", "examples", "explode", "required", "schema", "style"}
  1121. allowedPatterns := []*regexp.Regexp{pattern1}
  1122. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  1123. if len(invalidKeys) > 0 {
  1124. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  1125. errors = append(errors, compiler.NewError(context, message))
  1126. }
  1127. // string description = 1;
  1128. v1 := compiler.MapValueForKey(m, "description")
  1129. if v1 != nil {
  1130. x.Description, ok = compiler.StringForScalarNode(v1)
  1131. if !ok {
  1132. message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v1))
  1133. errors = append(errors, compiler.NewError(context, message))
  1134. }
  1135. }
  1136. // bool required = 2;
  1137. v2 := compiler.MapValueForKey(m, "required")
  1138. if v2 != nil {
  1139. x.Required, ok = compiler.BoolForScalarNode(v2)
  1140. if !ok {
  1141. message := fmt.Sprintf("has unexpected value for required: %s", compiler.Display(v2))
  1142. errors = append(errors, compiler.NewError(context, message))
  1143. }
  1144. }
  1145. // bool deprecated = 3;
  1146. v3 := compiler.MapValueForKey(m, "deprecated")
  1147. if v3 != nil {
  1148. x.Deprecated, ok = compiler.BoolForScalarNode(v3)
  1149. if !ok {
  1150. message := fmt.Sprintf("has unexpected value for deprecated: %s", compiler.Display(v3))
  1151. errors = append(errors, compiler.NewError(context, message))
  1152. }
  1153. }
  1154. // bool allow_empty_value = 4;
  1155. v4 := compiler.MapValueForKey(m, "allowEmptyValue")
  1156. if v4 != nil {
  1157. x.AllowEmptyValue, ok = compiler.BoolForScalarNode(v4)
  1158. if !ok {
  1159. message := fmt.Sprintf("has unexpected value for allowEmptyValue: %s", compiler.Display(v4))
  1160. errors = append(errors, compiler.NewError(context, message))
  1161. }
  1162. }
  1163. // string style = 5;
  1164. v5 := compiler.MapValueForKey(m, "style")
  1165. if v5 != nil {
  1166. x.Style, ok = compiler.StringForScalarNode(v5)
  1167. if !ok {
  1168. message := fmt.Sprintf("has unexpected value for style: %s", compiler.Display(v5))
  1169. errors = append(errors, compiler.NewError(context, message))
  1170. }
  1171. }
  1172. // bool explode = 6;
  1173. v6 := compiler.MapValueForKey(m, "explode")
  1174. if v6 != nil {
  1175. x.Explode, ok = compiler.BoolForScalarNode(v6)
  1176. if !ok {
  1177. message := fmt.Sprintf("has unexpected value for explode: %s", compiler.Display(v6))
  1178. errors = append(errors, compiler.NewError(context, message))
  1179. }
  1180. }
  1181. // bool allow_reserved = 7;
  1182. v7 := compiler.MapValueForKey(m, "allowReserved")
  1183. if v7 != nil {
  1184. x.AllowReserved, ok = compiler.BoolForScalarNode(v7)
  1185. if !ok {
  1186. message := fmt.Sprintf("has unexpected value for allowReserved: %s", compiler.Display(v7))
  1187. errors = append(errors, compiler.NewError(context, message))
  1188. }
  1189. }
  1190. // SchemaOrReference schema = 8;
  1191. v8 := compiler.MapValueForKey(m, "schema")
  1192. if v8 != nil {
  1193. var err error
  1194. x.Schema, err = NewSchemaOrReference(v8, compiler.NewContext("schema", v8, context))
  1195. if err != nil {
  1196. errors = append(errors, err)
  1197. }
  1198. }
  1199. // Any example = 9;
  1200. v9 := compiler.MapValueForKey(m, "example")
  1201. if v9 != nil {
  1202. var err error
  1203. x.Example, err = NewAny(v9, compiler.NewContext("example", v9, context))
  1204. if err != nil {
  1205. errors = append(errors, err)
  1206. }
  1207. }
  1208. // ExamplesOrReferences examples = 10;
  1209. v10 := compiler.MapValueForKey(m, "examples")
  1210. if v10 != nil {
  1211. var err error
  1212. x.Examples, err = NewExamplesOrReferences(v10, compiler.NewContext("examples", v10, context))
  1213. if err != nil {
  1214. errors = append(errors, err)
  1215. }
  1216. }
  1217. // MediaTypes content = 11;
  1218. v11 := compiler.MapValueForKey(m, "content")
  1219. if v11 != nil {
  1220. var err error
  1221. x.Content, err = NewMediaTypes(v11, compiler.NewContext("content", v11, context))
  1222. if err != nil {
  1223. errors = append(errors, err)
  1224. }
  1225. }
  1226. // repeated NamedAny specification_extension = 12;
  1227. // MAP: Any ^x-
  1228. x.SpecificationExtension = make([]*NamedAny, 0)
  1229. for i := 0; i < len(m.Content); i += 2 {
  1230. k, ok := compiler.StringForScalarNode(m.Content[i])
  1231. if ok {
  1232. v := m.Content[i+1]
  1233. if strings.HasPrefix(k, "x-") {
  1234. pair := &NamedAny{}
  1235. pair.Name = k
  1236. result := &Any{}
  1237. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  1238. if handled {
  1239. if err != nil {
  1240. errors = append(errors, err)
  1241. } else {
  1242. bytes := compiler.Marshal(v)
  1243. result.Yaml = string(bytes)
  1244. result.Value = resultFromExt
  1245. pair.Value = result
  1246. }
  1247. } else {
  1248. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  1249. if err != nil {
  1250. errors = append(errors, err)
  1251. }
  1252. }
  1253. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  1254. }
  1255. }
  1256. }
  1257. }
  1258. return x, compiler.NewErrorGroupOrNil(errors)
  1259. }
  1260. // NewHeaderOrReference creates an object of type HeaderOrReference if possible, returning an error if not.
  1261. func NewHeaderOrReference(in *yaml.Node, context *compiler.Context) (*HeaderOrReference, error) {
  1262. errors := make([]error, 0)
  1263. x := &HeaderOrReference{}
  1264. matched := false
  1265. // Header header = 1;
  1266. {
  1267. m, ok := compiler.UnpackMap(in)
  1268. if ok {
  1269. // errors might be ok here, they mean we just don't have the right subtype
  1270. t, matchingError := NewHeader(m, compiler.NewContext("header", m, context))
  1271. if matchingError == nil {
  1272. x.Oneof = &HeaderOrReference_Header{Header: t}
  1273. matched = true
  1274. } else {
  1275. errors = append(errors, matchingError)
  1276. }
  1277. }
  1278. }
  1279. // Reference reference = 2;
  1280. {
  1281. m, ok := compiler.UnpackMap(in)
  1282. if ok {
  1283. // errors might be ok here, they mean we just don't have the right subtype
  1284. t, matchingError := NewReference(m, compiler.NewContext("reference", m, context))
  1285. if matchingError == nil {
  1286. x.Oneof = &HeaderOrReference_Reference{Reference: t}
  1287. matched = true
  1288. } else {
  1289. errors = append(errors, matchingError)
  1290. }
  1291. }
  1292. }
  1293. if matched {
  1294. // since the oneof matched one of its possibilities, discard any matching errors
  1295. errors = make([]error, 0)
  1296. } else {
  1297. message := fmt.Sprintf("contains an invalid HeaderOrReference")
  1298. err := compiler.NewError(context, message)
  1299. errors = []error{err}
  1300. }
  1301. return x, compiler.NewErrorGroupOrNil(errors)
  1302. }
  1303. // NewHeadersOrReferences creates an object of type HeadersOrReferences if possible, returning an error if not.
  1304. func NewHeadersOrReferences(in *yaml.Node, context *compiler.Context) (*HeadersOrReferences, error) {
  1305. errors := make([]error, 0)
  1306. x := &HeadersOrReferences{}
  1307. m, ok := compiler.UnpackMap(in)
  1308. if !ok {
  1309. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  1310. errors = append(errors, compiler.NewError(context, message))
  1311. } else {
  1312. // repeated NamedHeaderOrReference additional_properties = 1;
  1313. // MAP: HeaderOrReference
  1314. x.AdditionalProperties = make([]*NamedHeaderOrReference, 0)
  1315. for i := 0; i < len(m.Content); i += 2 {
  1316. k, ok := compiler.StringForScalarNode(m.Content[i])
  1317. if ok {
  1318. v := m.Content[i+1]
  1319. pair := &NamedHeaderOrReference{}
  1320. pair.Name = k
  1321. var err error
  1322. pair.Value, err = NewHeaderOrReference(v, compiler.NewContext(k, v, context))
  1323. if err != nil {
  1324. errors = append(errors, err)
  1325. }
  1326. x.AdditionalProperties = append(x.AdditionalProperties, pair)
  1327. }
  1328. }
  1329. }
  1330. return x, compiler.NewErrorGroupOrNil(errors)
  1331. }
  1332. // NewInfo creates an object of type Info if possible, returning an error if not.
  1333. func NewInfo(in *yaml.Node, context *compiler.Context) (*Info, error) {
  1334. errors := make([]error, 0)
  1335. x := &Info{}
  1336. m, ok := compiler.UnpackMap(in)
  1337. if !ok {
  1338. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  1339. errors = append(errors, compiler.NewError(context, message))
  1340. } else {
  1341. requiredKeys := []string{"title", "version"}
  1342. missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
  1343. if len(missingKeys) > 0 {
  1344. message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
  1345. errors = append(errors, compiler.NewError(context, message))
  1346. }
  1347. allowedKeys := []string{"contact", "description", "license", "summary", "termsOfService", "title", "version"}
  1348. allowedPatterns := []*regexp.Regexp{pattern1}
  1349. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  1350. if len(invalidKeys) > 0 {
  1351. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  1352. errors = append(errors, compiler.NewError(context, message))
  1353. }
  1354. // string title = 1;
  1355. v1 := compiler.MapValueForKey(m, "title")
  1356. if v1 != nil {
  1357. x.Title, ok = compiler.StringForScalarNode(v1)
  1358. if !ok {
  1359. message := fmt.Sprintf("has unexpected value for title: %s", compiler.Display(v1))
  1360. errors = append(errors, compiler.NewError(context, message))
  1361. }
  1362. }
  1363. // string description = 2;
  1364. v2 := compiler.MapValueForKey(m, "description")
  1365. if v2 != nil {
  1366. x.Description, ok = compiler.StringForScalarNode(v2)
  1367. if !ok {
  1368. message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v2))
  1369. errors = append(errors, compiler.NewError(context, message))
  1370. }
  1371. }
  1372. // string terms_of_service = 3;
  1373. v3 := compiler.MapValueForKey(m, "termsOfService")
  1374. if v3 != nil {
  1375. x.TermsOfService, ok = compiler.StringForScalarNode(v3)
  1376. if !ok {
  1377. message := fmt.Sprintf("has unexpected value for termsOfService: %s", compiler.Display(v3))
  1378. errors = append(errors, compiler.NewError(context, message))
  1379. }
  1380. }
  1381. // Contact contact = 4;
  1382. v4 := compiler.MapValueForKey(m, "contact")
  1383. if v4 != nil {
  1384. var err error
  1385. x.Contact, err = NewContact(v4, compiler.NewContext("contact", v4, context))
  1386. if err != nil {
  1387. errors = append(errors, err)
  1388. }
  1389. }
  1390. // License license = 5;
  1391. v5 := compiler.MapValueForKey(m, "license")
  1392. if v5 != nil {
  1393. var err error
  1394. x.License, err = NewLicense(v5, compiler.NewContext("license", v5, context))
  1395. if err != nil {
  1396. errors = append(errors, err)
  1397. }
  1398. }
  1399. // string version = 6;
  1400. v6 := compiler.MapValueForKey(m, "version")
  1401. if v6 != nil {
  1402. x.Version, ok = compiler.StringForScalarNode(v6)
  1403. if !ok {
  1404. message := fmt.Sprintf("has unexpected value for version: %s", compiler.Display(v6))
  1405. errors = append(errors, compiler.NewError(context, message))
  1406. }
  1407. }
  1408. // string summary = 7;
  1409. v7 := compiler.MapValueForKey(m, "summary")
  1410. if v7 != nil {
  1411. x.Summary, ok = compiler.StringForScalarNode(v7)
  1412. if !ok {
  1413. message := fmt.Sprintf("has unexpected value for summary: %s", compiler.Display(v7))
  1414. errors = append(errors, compiler.NewError(context, message))
  1415. }
  1416. }
  1417. // repeated NamedAny specification_extension = 8;
  1418. // MAP: Any ^x-
  1419. x.SpecificationExtension = make([]*NamedAny, 0)
  1420. for i := 0; i < len(m.Content); i += 2 {
  1421. k, ok := compiler.StringForScalarNode(m.Content[i])
  1422. if ok {
  1423. v := m.Content[i+1]
  1424. if strings.HasPrefix(k, "x-") {
  1425. pair := &NamedAny{}
  1426. pair.Name = k
  1427. result := &Any{}
  1428. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  1429. if handled {
  1430. if err != nil {
  1431. errors = append(errors, err)
  1432. } else {
  1433. bytes := compiler.Marshal(v)
  1434. result.Yaml = string(bytes)
  1435. result.Value = resultFromExt
  1436. pair.Value = result
  1437. }
  1438. } else {
  1439. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  1440. if err != nil {
  1441. errors = append(errors, err)
  1442. }
  1443. }
  1444. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  1445. }
  1446. }
  1447. }
  1448. }
  1449. return x, compiler.NewErrorGroupOrNil(errors)
  1450. }
  1451. // NewItemsItem creates an object of type ItemsItem if possible, returning an error if not.
  1452. func NewItemsItem(in *yaml.Node, context *compiler.Context) (*ItemsItem, error) {
  1453. errors := make([]error, 0)
  1454. x := &ItemsItem{}
  1455. m, ok := compiler.UnpackMap(in)
  1456. if !ok {
  1457. message := fmt.Sprintf("has unexpected value for item array: %+v (%T)", in, in)
  1458. errors = append(errors, compiler.NewError(context, message))
  1459. } else {
  1460. x.SchemaOrReference = make([]*SchemaOrReference, 0)
  1461. y, err := NewSchemaOrReference(m, compiler.NewContext("<array>", m, context))
  1462. if err != nil {
  1463. return nil, err
  1464. }
  1465. x.SchemaOrReference = append(x.SchemaOrReference, y)
  1466. }
  1467. return x, compiler.NewErrorGroupOrNil(errors)
  1468. }
  1469. // NewLicense creates an object of type License if possible, returning an error if not.
  1470. func NewLicense(in *yaml.Node, context *compiler.Context) (*License, error) {
  1471. errors := make([]error, 0)
  1472. x := &License{}
  1473. m, ok := compiler.UnpackMap(in)
  1474. if !ok {
  1475. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  1476. errors = append(errors, compiler.NewError(context, message))
  1477. } else {
  1478. requiredKeys := []string{"name"}
  1479. missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
  1480. if len(missingKeys) > 0 {
  1481. message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
  1482. errors = append(errors, compiler.NewError(context, message))
  1483. }
  1484. allowedKeys := []string{"name", "url"}
  1485. allowedPatterns := []*regexp.Regexp{pattern1}
  1486. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  1487. if len(invalidKeys) > 0 {
  1488. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  1489. errors = append(errors, compiler.NewError(context, message))
  1490. }
  1491. // string name = 1;
  1492. v1 := compiler.MapValueForKey(m, "name")
  1493. if v1 != nil {
  1494. x.Name, ok = compiler.StringForScalarNode(v1)
  1495. if !ok {
  1496. message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
  1497. errors = append(errors, compiler.NewError(context, message))
  1498. }
  1499. }
  1500. // string url = 2;
  1501. v2 := compiler.MapValueForKey(m, "url")
  1502. if v2 != nil {
  1503. x.Url, ok = compiler.StringForScalarNode(v2)
  1504. if !ok {
  1505. message := fmt.Sprintf("has unexpected value for url: %s", compiler.Display(v2))
  1506. errors = append(errors, compiler.NewError(context, message))
  1507. }
  1508. }
  1509. // repeated NamedAny specification_extension = 3;
  1510. // MAP: Any ^x-
  1511. x.SpecificationExtension = make([]*NamedAny, 0)
  1512. for i := 0; i < len(m.Content); i += 2 {
  1513. k, ok := compiler.StringForScalarNode(m.Content[i])
  1514. if ok {
  1515. v := m.Content[i+1]
  1516. if strings.HasPrefix(k, "x-") {
  1517. pair := &NamedAny{}
  1518. pair.Name = k
  1519. result := &Any{}
  1520. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  1521. if handled {
  1522. if err != nil {
  1523. errors = append(errors, err)
  1524. } else {
  1525. bytes := compiler.Marshal(v)
  1526. result.Yaml = string(bytes)
  1527. result.Value = resultFromExt
  1528. pair.Value = result
  1529. }
  1530. } else {
  1531. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  1532. if err != nil {
  1533. errors = append(errors, err)
  1534. }
  1535. }
  1536. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  1537. }
  1538. }
  1539. }
  1540. }
  1541. return x, compiler.NewErrorGroupOrNil(errors)
  1542. }
  1543. // NewLink creates an object of type Link if possible, returning an error if not.
  1544. func NewLink(in *yaml.Node, context *compiler.Context) (*Link, error) {
  1545. errors := make([]error, 0)
  1546. x := &Link{}
  1547. m, ok := compiler.UnpackMap(in)
  1548. if !ok {
  1549. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  1550. errors = append(errors, compiler.NewError(context, message))
  1551. } else {
  1552. allowedKeys := []string{"description", "operationId", "operationRef", "parameters", "requestBody", "server"}
  1553. allowedPatterns := []*regexp.Regexp{pattern1}
  1554. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  1555. if len(invalidKeys) > 0 {
  1556. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  1557. errors = append(errors, compiler.NewError(context, message))
  1558. }
  1559. // string operation_ref = 1;
  1560. v1 := compiler.MapValueForKey(m, "operationRef")
  1561. if v1 != nil {
  1562. x.OperationRef, ok = compiler.StringForScalarNode(v1)
  1563. if !ok {
  1564. message := fmt.Sprintf("has unexpected value for operationRef: %s", compiler.Display(v1))
  1565. errors = append(errors, compiler.NewError(context, message))
  1566. }
  1567. }
  1568. // string operation_id = 2;
  1569. v2 := compiler.MapValueForKey(m, "operationId")
  1570. if v2 != nil {
  1571. x.OperationId, ok = compiler.StringForScalarNode(v2)
  1572. if !ok {
  1573. message := fmt.Sprintf("has unexpected value for operationId: %s", compiler.Display(v2))
  1574. errors = append(errors, compiler.NewError(context, message))
  1575. }
  1576. }
  1577. // AnyOrExpression parameters = 3;
  1578. v3 := compiler.MapValueForKey(m, "parameters")
  1579. if v3 != nil {
  1580. var err error
  1581. x.Parameters, err = NewAnyOrExpression(v3, compiler.NewContext("parameters", v3, context))
  1582. if err != nil {
  1583. errors = append(errors, err)
  1584. }
  1585. }
  1586. // AnyOrExpression request_body = 4;
  1587. v4 := compiler.MapValueForKey(m, "requestBody")
  1588. if v4 != nil {
  1589. var err error
  1590. x.RequestBody, err = NewAnyOrExpression(v4, compiler.NewContext("requestBody", v4, context))
  1591. if err != nil {
  1592. errors = append(errors, err)
  1593. }
  1594. }
  1595. // string description = 5;
  1596. v5 := compiler.MapValueForKey(m, "description")
  1597. if v5 != nil {
  1598. x.Description, ok = compiler.StringForScalarNode(v5)
  1599. if !ok {
  1600. message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v5))
  1601. errors = append(errors, compiler.NewError(context, message))
  1602. }
  1603. }
  1604. // Server server = 6;
  1605. v6 := compiler.MapValueForKey(m, "server")
  1606. if v6 != nil {
  1607. var err error
  1608. x.Server, err = NewServer(v6, compiler.NewContext("server", v6, context))
  1609. if err != nil {
  1610. errors = append(errors, err)
  1611. }
  1612. }
  1613. // repeated NamedAny specification_extension = 7;
  1614. // MAP: Any ^x-
  1615. x.SpecificationExtension = make([]*NamedAny, 0)
  1616. for i := 0; i < len(m.Content); i += 2 {
  1617. k, ok := compiler.StringForScalarNode(m.Content[i])
  1618. if ok {
  1619. v := m.Content[i+1]
  1620. if strings.HasPrefix(k, "x-") {
  1621. pair := &NamedAny{}
  1622. pair.Name = k
  1623. result := &Any{}
  1624. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  1625. if handled {
  1626. if err != nil {
  1627. errors = append(errors, err)
  1628. } else {
  1629. bytes := compiler.Marshal(v)
  1630. result.Yaml = string(bytes)
  1631. result.Value = resultFromExt
  1632. pair.Value = result
  1633. }
  1634. } else {
  1635. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  1636. if err != nil {
  1637. errors = append(errors, err)
  1638. }
  1639. }
  1640. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  1641. }
  1642. }
  1643. }
  1644. }
  1645. return x, compiler.NewErrorGroupOrNil(errors)
  1646. }
  1647. // NewLinkOrReference creates an object of type LinkOrReference if possible, returning an error if not.
  1648. func NewLinkOrReference(in *yaml.Node, context *compiler.Context) (*LinkOrReference, error) {
  1649. errors := make([]error, 0)
  1650. x := &LinkOrReference{}
  1651. matched := false
  1652. // Link link = 1;
  1653. {
  1654. m, ok := compiler.UnpackMap(in)
  1655. if ok {
  1656. // errors might be ok here, they mean we just don't have the right subtype
  1657. t, matchingError := NewLink(m, compiler.NewContext("link", m, context))
  1658. if matchingError == nil {
  1659. x.Oneof = &LinkOrReference_Link{Link: t}
  1660. matched = true
  1661. } else {
  1662. errors = append(errors, matchingError)
  1663. }
  1664. }
  1665. }
  1666. // Reference reference = 2;
  1667. {
  1668. m, ok := compiler.UnpackMap(in)
  1669. if ok {
  1670. // errors might be ok here, they mean we just don't have the right subtype
  1671. t, matchingError := NewReference(m, compiler.NewContext("reference", m, context))
  1672. if matchingError == nil {
  1673. x.Oneof = &LinkOrReference_Reference{Reference: t}
  1674. matched = true
  1675. } else {
  1676. errors = append(errors, matchingError)
  1677. }
  1678. }
  1679. }
  1680. if matched {
  1681. // since the oneof matched one of its possibilities, discard any matching errors
  1682. errors = make([]error, 0)
  1683. } else {
  1684. message := fmt.Sprintf("contains an invalid LinkOrReference")
  1685. err := compiler.NewError(context, message)
  1686. errors = []error{err}
  1687. }
  1688. return x, compiler.NewErrorGroupOrNil(errors)
  1689. }
  1690. // NewLinksOrReferences creates an object of type LinksOrReferences if possible, returning an error if not.
  1691. func NewLinksOrReferences(in *yaml.Node, context *compiler.Context) (*LinksOrReferences, error) {
  1692. errors := make([]error, 0)
  1693. x := &LinksOrReferences{}
  1694. m, ok := compiler.UnpackMap(in)
  1695. if !ok {
  1696. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  1697. errors = append(errors, compiler.NewError(context, message))
  1698. } else {
  1699. // repeated NamedLinkOrReference additional_properties = 1;
  1700. // MAP: LinkOrReference
  1701. x.AdditionalProperties = make([]*NamedLinkOrReference, 0)
  1702. for i := 0; i < len(m.Content); i += 2 {
  1703. k, ok := compiler.StringForScalarNode(m.Content[i])
  1704. if ok {
  1705. v := m.Content[i+1]
  1706. pair := &NamedLinkOrReference{}
  1707. pair.Name = k
  1708. var err error
  1709. pair.Value, err = NewLinkOrReference(v, compiler.NewContext(k, v, context))
  1710. if err != nil {
  1711. errors = append(errors, err)
  1712. }
  1713. x.AdditionalProperties = append(x.AdditionalProperties, pair)
  1714. }
  1715. }
  1716. }
  1717. return x, compiler.NewErrorGroupOrNil(errors)
  1718. }
  1719. // NewMediaType creates an object of type MediaType if possible, returning an error if not.
  1720. func NewMediaType(in *yaml.Node, context *compiler.Context) (*MediaType, error) {
  1721. errors := make([]error, 0)
  1722. x := &MediaType{}
  1723. m, ok := compiler.UnpackMap(in)
  1724. if !ok {
  1725. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  1726. errors = append(errors, compiler.NewError(context, message))
  1727. } else {
  1728. allowedKeys := []string{"encoding", "example", "examples", "schema"}
  1729. allowedPatterns := []*regexp.Regexp{pattern1}
  1730. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  1731. if len(invalidKeys) > 0 {
  1732. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  1733. errors = append(errors, compiler.NewError(context, message))
  1734. }
  1735. // SchemaOrReference schema = 1;
  1736. v1 := compiler.MapValueForKey(m, "schema")
  1737. if v1 != nil {
  1738. var err error
  1739. x.Schema, err = NewSchemaOrReference(v1, compiler.NewContext("schema", v1, context))
  1740. if err != nil {
  1741. errors = append(errors, err)
  1742. }
  1743. }
  1744. // Any example = 2;
  1745. v2 := compiler.MapValueForKey(m, "example")
  1746. if v2 != nil {
  1747. var err error
  1748. x.Example, err = NewAny(v2, compiler.NewContext("example", v2, context))
  1749. if err != nil {
  1750. errors = append(errors, err)
  1751. }
  1752. }
  1753. // ExamplesOrReferences examples = 3;
  1754. v3 := compiler.MapValueForKey(m, "examples")
  1755. if v3 != nil {
  1756. var err error
  1757. x.Examples, err = NewExamplesOrReferences(v3, compiler.NewContext("examples", v3, context))
  1758. if err != nil {
  1759. errors = append(errors, err)
  1760. }
  1761. }
  1762. // Encodings encoding = 4;
  1763. v4 := compiler.MapValueForKey(m, "encoding")
  1764. if v4 != nil {
  1765. var err error
  1766. x.Encoding, err = NewEncodings(v4, compiler.NewContext("encoding", v4, context))
  1767. if err != nil {
  1768. errors = append(errors, err)
  1769. }
  1770. }
  1771. // repeated NamedAny specification_extension = 5;
  1772. // MAP: Any ^x-
  1773. x.SpecificationExtension = make([]*NamedAny, 0)
  1774. for i := 0; i < len(m.Content); i += 2 {
  1775. k, ok := compiler.StringForScalarNode(m.Content[i])
  1776. if ok {
  1777. v := m.Content[i+1]
  1778. if strings.HasPrefix(k, "x-") {
  1779. pair := &NamedAny{}
  1780. pair.Name = k
  1781. result := &Any{}
  1782. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  1783. if handled {
  1784. if err != nil {
  1785. errors = append(errors, err)
  1786. } else {
  1787. bytes := compiler.Marshal(v)
  1788. result.Yaml = string(bytes)
  1789. result.Value = resultFromExt
  1790. pair.Value = result
  1791. }
  1792. } else {
  1793. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  1794. if err != nil {
  1795. errors = append(errors, err)
  1796. }
  1797. }
  1798. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  1799. }
  1800. }
  1801. }
  1802. }
  1803. return x, compiler.NewErrorGroupOrNil(errors)
  1804. }
  1805. // NewMediaTypes creates an object of type MediaTypes if possible, returning an error if not.
  1806. func NewMediaTypes(in *yaml.Node, context *compiler.Context) (*MediaTypes, error) {
  1807. errors := make([]error, 0)
  1808. x := &MediaTypes{}
  1809. m, ok := compiler.UnpackMap(in)
  1810. if !ok {
  1811. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  1812. errors = append(errors, compiler.NewError(context, message))
  1813. } else {
  1814. // repeated NamedMediaType additional_properties = 1;
  1815. // MAP: MediaType
  1816. x.AdditionalProperties = make([]*NamedMediaType, 0)
  1817. for i := 0; i < len(m.Content); i += 2 {
  1818. k, ok := compiler.StringForScalarNode(m.Content[i])
  1819. if ok {
  1820. v := m.Content[i+1]
  1821. pair := &NamedMediaType{}
  1822. pair.Name = k
  1823. var err error
  1824. pair.Value, err = NewMediaType(v, compiler.NewContext(k, v, context))
  1825. if err != nil {
  1826. errors = append(errors, err)
  1827. }
  1828. x.AdditionalProperties = append(x.AdditionalProperties, pair)
  1829. }
  1830. }
  1831. }
  1832. return x, compiler.NewErrorGroupOrNil(errors)
  1833. }
  1834. // NewNamedAny creates an object of type NamedAny if possible, returning an error if not.
  1835. func NewNamedAny(in *yaml.Node, context *compiler.Context) (*NamedAny, error) {
  1836. errors := make([]error, 0)
  1837. x := &NamedAny{}
  1838. m, ok := compiler.UnpackMap(in)
  1839. if !ok {
  1840. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  1841. errors = append(errors, compiler.NewError(context, message))
  1842. } else {
  1843. allowedKeys := []string{"name", "value"}
  1844. var allowedPatterns []*regexp.Regexp
  1845. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  1846. if len(invalidKeys) > 0 {
  1847. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  1848. errors = append(errors, compiler.NewError(context, message))
  1849. }
  1850. // string name = 1;
  1851. v1 := compiler.MapValueForKey(m, "name")
  1852. if v1 != nil {
  1853. x.Name, ok = compiler.StringForScalarNode(v1)
  1854. if !ok {
  1855. message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
  1856. errors = append(errors, compiler.NewError(context, message))
  1857. }
  1858. }
  1859. // Any value = 2;
  1860. v2 := compiler.MapValueForKey(m, "value")
  1861. if v2 != nil {
  1862. var err error
  1863. x.Value, err = NewAny(v2, compiler.NewContext("value", v2, context))
  1864. if err != nil {
  1865. errors = append(errors, err)
  1866. }
  1867. }
  1868. }
  1869. return x, compiler.NewErrorGroupOrNil(errors)
  1870. }
  1871. // NewNamedCallbackOrReference creates an object of type NamedCallbackOrReference if possible, returning an error if not.
  1872. func NewNamedCallbackOrReference(in *yaml.Node, context *compiler.Context) (*NamedCallbackOrReference, error) {
  1873. errors := make([]error, 0)
  1874. x := &NamedCallbackOrReference{}
  1875. m, ok := compiler.UnpackMap(in)
  1876. if !ok {
  1877. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  1878. errors = append(errors, compiler.NewError(context, message))
  1879. } else {
  1880. allowedKeys := []string{"name", "value"}
  1881. var allowedPatterns []*regexp.Regexp
  1882. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  1883. if len(invalidKeys) > 0 {
  1884. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  1885. errors = append(errors, compiler.NewError(context, message))
  1886. }
  1887. // string name = 1;
  1888. v1 := compiler.MapValueForKey(m, "name")
  1889. if v1 != nil {
  1890. x.Name, ok = compiler.StringForScalarNode(v1)
  1891. if !ok {
  1892. message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
  1893. errors = append(errors, compiler.NewError(context, message))
  1894. }
  1895. }
  1896. // CallbackOrReference value = 2;
  1897. v2 := compiler.MapValueForKey(m, "value")
  1898. if v2 != nil {
  1899. var err error
  1900. x.Value, err = NewCallbackOrReference(v2, compiler.NewContext("value", v2, context))
  1901. if err != nil {
  1902. errors = append(errors, err)
  1903. }
  1904. }
  1905. }
  1906. return x, compiler.NewErrorGroupOrNil(errors)
  1907. }
  1908. // NewNamedEncoding creates an object of type NamedEncoding if possible, returning an error if not.
  1909. func NewNamedEncoding(in *yaml.Node, context *compiler.Context) (*NamedEncoding, error) {
  1910. errors := make([]error, 0)
  1911. x := &NamedEncoding{}
  1912. m, ok := compiler.UnpackMap(in)
  1913. if !ok {
  1914. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  1915. errors = append(errors, compiler.NewError(context, message))
  1916. } else {
  1917. allowedKeys := []string{"name", "value"}
  1918. var allowedPatterns []*regexp.Regexp
  1919. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  1920. if len(invalidKeys) > 0 {
  1921. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  1922. errors = append(errors, compiler.NewError(context, message))
  1923. }
  1924. // string name = 1;
  1925. v1 := compiler.MapValueForKey(m, "name")
  1926. if v1 != nil {
  1927. x.Name, ok = compiler.StringForScalarNode(v1)
  1928. if !ok {
  1929. message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
  1930. errors = append(errors, compiler.NewError(context, message))
  1931. }
  1932. }
  1933. // Encoding value = 2;
  1934. v2 := compiler.MapValueForKey(m, "value")
  1935. if v2 != nil {
  1936. var err error
  1937. x.Value, err = NewEncoding(v2, compiler.NewContext("value", v2, context))
  1938. if err != nil {
  1939. errors = append(errors, err)
  1940. }
  1941. }
  1942. }
  1943. return x, compiler.NewErrorGroupOrNil(errors)
  1944. }
  1945. // NewNamedExampleOrReference creates an object of type NamedExampleOrReference if possible, returning an error if not.
  1946. func NewNamedExampleOrReference(in *yaml.Node, context *compiler.Context) (*NamedExampleOrReference, error) {
  1947. errors := make([]error, 0)
  1948. x := &NamedExampleOrReference{}
  1949. m, ok := compiler.UnpackMap(in)
  1950. if !ok {
  1951. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  1952. errors = append(errors, compiler.NewError(context, message))
  1953. } else {
  1954. allowedKeys := []string{"name", "value"}
  1955. var allowedPatterns []*regexp.Regexp
  1956. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  1957. if len(invalidKeys) > 0 {
  1958. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  1959. errors = append(errors, compiler.NewError(context, message))
  1960. }
  1961. // string name = 1;
  1962. v1 := compiler.MapValueForKey(m, "name")
  1963. if v1 != nil {
  1964. x.Name, ok = compiler.StringForScalarNode(v1)
  1965. if !ok {
  1966. message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
  1967. errors = append(errors, compiler.NewError(context, message))
  1968. }
  1969. }
  1970. // ExampleOrReference value = 2;
  1971. v2 := compiler.MapValueForKey(m, "value")
  1972. if v2 != nil {
  1973. var err error
  1974. x.Value, err = NewExampleOrReference(v2, compiler.NewContext("value", v2, context))
  1975. if err != nil {
  1976. errors = append(errors, err)
  1977. }
  1978. }
  1979. }
  1980. return x, compiler.NewErrorGroupOrNil(errors)
  1981. }
  1982. // NewNamedHeaderOrReference creates an object of type NamedHeaderOrReference if possible, returning an error if not.
  1983. func NewNamedHeaderOrReference(in *yaml.Node, context *compiler.Context) (*NamedHeaderOrReference, error) {
  1984. errors := make([]error, 0)
  1985. x := &NamedHeaderOrReference{}
  1986. m, ok := compiler.UnpackMap(in)
  1987. if !ok {
  1988. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  1989. errors = append(errors, compiler.NewError(context, message))
  1990. } else {
  1991. allowedKeys := []string{"name", "value"}
  1992. var allowedPatterns []*regexp.Regexp
  1993. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  1994. if len(invalidKeys) > 0 {
  1995. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  1996. errors = append(errors, compiler.NewError(context, message))
  1997. }
  1998. // string name = 1;
  1999. v1 := compiler.MapValueForKey(m, "name")
  2000. if v1 != nil {
  2001. x.Name, ok = compiler.StringForScalarNode(v1)
  2002. if !ok {
  2003. message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
  2004. errors = append(errors, compiler.NewError(context, message))
  2005. }
  2006. }
  2007. // HeaderOrReference value = 2;
  2008. v2 := compiler.MapValueForKey(m, "value")
  2009. if v2 != nil {
  2010. var err error
  2011. x.Value, err = NewHeaderOrReference(v2, compiler.NewContext("value", v2, context))
  2012. if err != nil {
  2013. errors = append(errors, err)
  2014. }
  2015. }
  2016. }
  2017. return x, compiler.NewErrorGroupOrNil(errors)
  2018. }
  2019. // NewNamedLinkOrReference creates an object of type NamedLinkOrReference if possible, returning an error if not.
  2020. func NewNamedLinkOrReference(in *yaml.Node, context *compiler.Context) (*NamedLinkOrReference, error) {
  2021. errors := make([]error, 0)
  2022. x := &NamedLinkOrReference{}
  2023. m, ok := compiler.UnpackMap(in)
  2024. if !ok {
  2025. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  2026. errors = append(errors, compiler.NewError(context, message))
  2027. } else {
  2028. allowedKeys := []string{"name", "value"}
  2029. var allowedPatterns []*regexp.Regexp
  2030. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  2031. if len(invalidKeys) > 0 {
  2032. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  2033. errors = append(errors, compiler.NewError(context, message))
  2034. }
  2035. // string name = 1;
  2036. v1 := compiler.MapValueForKey(m, "name")
  2037. if v1 != nil {
  2038. x.Name, ok = compiler.StringForScalarNode(v1)
  2039. if !ok {
  2040. message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
  2041. errors = append(errors, compiler.NewError(context, message))
  2042. }
  2043. }
  2044. // LinkOrReference value = 2;
  2045. v2 := compiler.MapValueForKey(m, "value")
  2046. if v2 != nil {
  2047. var err error
  2048. x.Value, err = NewLinkOrReference(v2, compiler.NewContext("value", v2, context))
  2049. if err != nil {
  2050. errors = append(errors, err)
  2051. }
  2052. }
  2053. }
  2054. return x, compiler.NewErrorGroupOrNil(errors)
  2055. }
  2056. // NewNamedMediaType creates an object of type NamedMediaType if possible, returning an error if not.
  2057. func NewNamedMediaType(in *yaml.Node, context *compiler.Context) (*NamedMediaType, error) {
  2058. errors := make([]error, 0)
  2059. x := &NamedMediaType{}
  2060. m, ok := compiler.UnpackMap(in)
  2061. if !ok {
  2062. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  2063. errors = append(errors, compiler.NewError(context, message))
  2064. } else {
  2065. allowedKeys := []string{"name", "value"}
  2066. var allowedPatterns []*regexp.Regexp
  2067. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  2068. if len(invalidKeys) > 0 {
  2069. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  2070. errors = append(errors, compiler.NewError(context, message))
  2071. }
  2072. // string name = 1;
  2073. v1 := compiler.MapValueForKey(m, "name")
  2074. if v1 != nil {
  2075. x.Name, ok = compiler.StringForScalarNode(v1)
  2076. if !ok {
  2077. message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
  2078. errors = append(errors, compiler.NewError(context, message))
  2079. }
  2080. }
  2081. // MediaType value = 2;
  2082. v2 := compiler.MapValueForKey(m, "value")
  2083. if v2 != nil {
  2084. var err error
  2085. x.Value, err = NewMediaType(v2, compiler.NewContext("value", v2, context))
  2086. if err != nil {
  2087. errors = append(errors, err)
  2088. }
  2089. }
  2090. }
  2091. return x, compiler.NewErrorGroupOrNil(errors)
  2092. }
  2093. // NewNamedParameterOrReference creates an object of type NamedParameterOrReference if possible, returning an error if not.
  2094. func NewNamedParameterOrReference(in *yaml.Node, context *compiler.Context) (*NamedParameterOrReference, error) {
  2095. errors := make([]error, 0)
  2096. x := &NamedParameterOrReference{}
  2097. m, ok := compiler.UnpackMap(in)
  2098. if !ok {
  2099. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  2100. errors = append(errors, compiler.NewError(context, message))
  2101. } else {
  2102. allowedKeys := []string{"name", "value"}
  2103. var allowedPatterns []*regexp.Regexp
  2104. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  2105. if len(invalidKeys) > 0 {
  2106. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  2107. errors = append(errors, compiler.NewError(context, message))
  2108. }
  2109. // string name = 1;
  2110. v1 := compiler.MapValueForKey(m, "name")
  2111. if v1 != nil {
  2112. x.Name, ok = compiler.StringForScalarNode(v1)
  2113. if !ok {
  2114. message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
  2115. errors = append(errors, compiler.NewError(context, message))
  2116. }
  2117. }
  2118. // ParameterOrReference value = 2;
  2119. v2 := compiler.MapValueForKey(m, "value")
  2120. if v2 != nil {
  2121. var err error
  2122. x.Value, err = NewParameterOrReference(v2, compiler.NewContext("value", v2, context))
  2123. if err != nil {
  2124. errors = append(errors, err)
  2125. }
  2126. }
  2127. }
  2128. return x, compiler.NewErrorGroupOrNil(errors)
  2129. }
  2130. // NewNamedPathItem creates an object of type NamedPathItem if possible, returning an error if not.
  2131. func NewNamedPathItem(in *yaml.Node, context *compiler.Context) (*NamedPathItem, error) {
  2132. errors := make([]error, 0)
  2133. x := &NamedPathItem{}
  2134. m, ok := compiler.UnpackMap(in)
  2135. if !ok {
  2136. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  2137. errors = append(errors, compiler.NewError(context, message))
  2138. } else {
  2139. allowedKeys := []string{"name", "value"}
  2140. var allowedPatterns []*regexp.Regexp
  2141. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  2142. if len(invalidKeys) > 0 {
  2143. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  2144. errors = append(errors, compiler.NewError(context, message))
  2145. }
  2146. // string name = 1;
  2147. v1 := compiler.MapValueForKey(m, "name")
  2148. if v1 != nil {
  2149. x.Name, ok = compiler.StringForScalarNode(v1)
  2150. if !ok {
  2151. message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
  2152. errors = append(errors, compiler.NewError(context, message))
  2153. }
  2154. }
  2155. // PathItem value = 2;
  2156. v2 := compiler.MapValueForKey(m, "value")
  2157. if v2 != nil {
  2158. var err error
  2159. x.Value, err = NewPathItem(v2, compiler.NewContext("value", v2, context))
  2160. if err != nil {
  2161. errors = append(errors, err)
  2162. }
  2163. }
  2164. }
  2165. return x, compiler.NewErrorGroupOrNil(errors)
  2166. }
  2167. // NewNamedRequestBodyOrReference creates an object of type NamedRequestBodyOrReference if possible, returning an error if not.
  2168. func NewNamedRequestBodyOrReference(in *yaml.Node, context *compiler.Context) (*NamedRequestBodyOrReference, error) {
  2169. errors := make([]error, 0)
  2170. x := &NamedRequestBodyOrReference{}
  2171. m, ok := compiler.UnpackMap(in)
  2172. if !ok {
  2173. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  2174. errors = append(errors, compiler.NewError(context, message))
  2175. } else {
  2176. allowedKeys := []string{"name", "value"}
  2177. var allowedPatterns []*regexp.Regexp
  2178. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  2179. if len(invalidKeys) > 0 {
  2180. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  2181. errors = append(errors, compiler.NewError(context, message))
  2182. }
  2183. // string name = 1;
  2184. v1 := compiler.MapValueForKey(m, "name")
  2185. if v1 != nil {
  2186. x.Name, ok = compiler.StringForScalarNode(v1)
  2187. if !ok {
  2188. message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
  2189. errors = append(errors, compiler.NewError(context, message))
  2190. }
  2191. }
  2192. // RequestBodyOrReference value = 2;
  2193. v2 := compiler.MapValueForKey(m, "value")
  2194. if v2 != nil {
  2195. var err error
  2196. x.Value, err = NewRequestBodyOrReference(v2, compiler.NewContext("value", v2, context))
  2197. if err != nil {
  2198. errors = append(errors, err)
  2199. }
  2200. }
  2201. }
  2202. return x, compiler.NewErrorGroupOrNil(errors)
  2203. }
  2204. // NewNamedResponseOrReference creates an object of type NamedResponseOrReference if possible, returning an error if not.
  2205. func NewNamedResponseOrReference(in *yaml.Node, context *compiler.Context) (*NamedResponseOrReference, error) {
  2206. errors := make([]error, 0)
  2207. x := &NamedResponseOrReference{}
  2208. m, ok := compiler.UnpackMap(in)
  2209. if !ok {
  2210. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  2211. errors = append(errors, compiler.NewError(context, message))
  2212. } else {
  2213. allowedKeys := []string{"name", "value"}
  2214. var allowedPatterns []*regexp.Regexp
  2215. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  2216. if len(invalidKeys) > 0 {
  2217. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  2218. errors = append(errors, compiler.NewError(context, message))
  2219. }
  2220. // string name = 1;
  2221. v1 := compiler.MapValueForKey(m, "name")
  2222. if v1 != nil {
  2223. x.Name, ok = compiler.StringForScalarNode(v1)
  2224. if !ok {
  2225. message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
  2226. errors = append(errors, compiler.NewError(context, message))
  2227. }
  2228. }
  2229. // ResponseOrReference value = 2;
  2230. v2 := compiler.MapValueForKey(m, "value")
  2231. if v2 != nil {
  2232. var err error
  2233. x.Value, err = NewResponseOrReference(v2, compiler.NewContext("value", v2, context))
  2234. if err != nil {
  2235. errors = append(errors, err)
  2236. }
  2237. }
  2238. }
  2239. return x, compiler.NewErrorGroupOrNil(errors)
  2240. }
  2241. // NewNamedSchemaOrReference creates an object of type NamedSchemaOrReference if possible, returning an error if not.
  2242. func NewNamedSchemaOrReference(in *yaml.Node, context *compiler.Context) (*NamedSchemaOrReference, error) {
  2243. errors := make([]error, 0)
  2244. x := &NamedSchemaOrReference{}
  2245. m, ok := compiler.UnpackMap(in)
  2246. if !ok {
  2247. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  2248. errors = append(errors, compiler.NewError(context, message))
  2249. } else {
  2250. allowedKeys := []string{"name", "value"}
  2251. var allowedPatterns []*regexp.Regexp
  2252. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  2253. if len(invalidKeys) > 0 {
  2254. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  2255. errors = append(errors, compiler.NewError(context, message))
  2256. }
  2257. // string name = 1;
  2258. v1 := compiler.MapValueForKey(m, "name")
  2259. if v1 != nil {
  2260. x.Name, ok = compiler.StringForScalarNode(v1)
  2261. if !ok {
  2262. message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
  2263. errors = append(errors, compiler.NewError(context, message))
  2264. }
  2265. }
  2266. // SchemaOrReference value = 2;
  2267. v2 := compiler.MapValueForKey(m, "value")
  2268. if v2 != nil {
  2269. var err error
  2270. x.Value, err = NewSchemaOrReference(v2, compiler.NewContext("value", v2, context))
  2271. if err != nil {
  2272. errors = append(errors, err)
  2273. }
  2274. }
  2275. }
  2276. return x, compiler.NewErrorGroupOrNil(errors)
  2277. }
  2278. // NewNamedSecuritySchemeOrReference creates an object of type NamedSecuritySchemeOrReference if possible, returning an error if not.
  2279. func NewNamedSecuritySchemeOrReference(in *yaml.Node, context *compiler.Context) (*NamedSecuritySchemeOrReference, error) {
  2280. errors := make([]error, 0)
  2281. x := &NamedSecuritySchemeOrReference{}
  2282. m, ok := compiler.UnpackMap(in)
  2283. if !ok {
  2284. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  2285. errors = append(errors, compiler.NewError(context, message))
  2286. } else {
  2287. allowedKeys := []string{"name", "value"}
  2288. var allowedPatterns []*regexp.Regexp
  2289. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  2290. if len(invalidKeys) > 0 {
  2291. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  2292. errors = append(errors, compiler.NewError(context, message))
  2293. }
  2294. // string name = 1;
  2295. v1 := compiler.MapValueForKey(m, "name")
  2296. if v1 != nil {
  2297. x.Name, ok = compiler.StringForScalarNode(v1)
  2298. if !ok {
  2299. message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
  2300. errors = append(errors, compiler.NewError(context, message))
  2301. }
  2302. }
  2303. // SecuritySchemeOrReference value = 2;
  2304. v2 := compiler.MapValueForKey(m, "value")
  2305. if v2 != nil {
  2306. var err error
  2307. x.Value, err = NewSecuritySchemeOrReference(v2, compiler.NewContext("value", v2, context))
  2308. if err != nil {
  2309. errors = append(errors, err)
  2310. }
  2311. }
  2312. }
  2313. return x, compiler.NewErrorGroupOrNil(errors)
  2314. }
  2315. // NewNamedServerVariable creates an object of type NamedServerVariable if possible, returning an error if not.
  2316. func NewNamedServerVariable(in *yaml.Node, context *compiler.Context) (*NamedServerVariable, error) {
  2317. errors := make([]error, 0)
  2318. x := &NamedServerVariable{}
  2319. m, ok := compiler.UnpackMap(in)
  2320. if !ok {
  2321. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  2322. errors = append(errors, compiler.NewError(context, message))
  2323. } else {
  2324. allowedKeys := []string{"name", "value"}
  2325. var allowedPatterns []*regexp.Regexp
  2326. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  2327. if len(invalidKeys) > 0 {
  2328. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  2329. errors = append(errors, compiler.NewError(context, message))
  2330. }
  2331. // string name = 1;
  2332. v1 := compiler.MapValueForKey(m, "name")
  2333. if v1 != nil {
  2334. x.Name, ok = compiler.StringForScalarNode(v1)
  2335. if !ok {
  2336. message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
  2337. errors = append(errors, compiler.NewError(context, message))
  2338. }
  2339. }
  2340. // ServerVariable value = 2;
  2341. v2 := compiler.MapValueForKey(m, "value")
  2342. if v2 != nil {
  2343. var err error
  2344. x.Value, err = NewServerVariable(v2, compiler.NewContext("value", v2, context))
  2345. if err != nil {
  2346. errors = append(errors, err)
  2347. }
  2348. }
  2349. }
  2350. return x, compiler.NewErrorGroupOrNil(errors)
  2351. }
  2352. // NewNamedString creates an object of type NamedString if possible, returning an error if not.
  2353. func NewNamedString(in *yaml.Node, context *compiler.Context) (*NamedString, error) {
  2354. errors := make([]error, 0)
  2355. x := &NamedString{}
  2356. m, ok := compiler.UnpackMap(in)
  2357. if !ok {
  2358. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  2359. errors = append(errors, compiler.NewError(context, message))
  2360. } else {
  2361. allowedKeys := []string{"name", "value"}
  2362. var allowedPatterns []*regexp.Regexp
  2363. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  2364. if len(invalidKeys) > 0 {
  2365. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  2366. errors = append(errors, compiler.NewError(context, message))
  2367. }
  2368. // string name = 1;
  2369. v1 := compiler.MapValueForKey(m, "name")
  2370. if v1 != nil {
  2371. x.Name, ok = compiler.StringForScalarNode(v1)
  2372. if !ok {
  2373. message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
  2374. errors = append(errors, compiler.NewError(context, message))
  2375. }
  2376. }
  2377. // string value = 2;
  2378. v2 := compiler.MapValueForKey(m, "value")
  2379. if v2 != nil {
  2380. x.Value, ok = compiler.StringForScalarNode(v2)
  2381. if !ok {
  2382. message := fmt.Sprintf("has unexpected value for value: %s", compiler.Display(v2))
  2383. errors = append(errors, compiler.NewError(context, message))
  2384. }
  2385. }
  2386. }
  2387. return x, compiler.NewErrorGroupOrNil(errors)
  2388. }
  2389. // NewNamedStringArray creates an object of type NamedStringArray if possible, returning an error if not.
  2390. func NewNamedStringArray(in *yaml.Node, context *compiler.Context) (*NamedStringArray, error) {
  2391. errors := make([]error, 0)
  2392. x := &NamedStringArray{}
  2393. m, ok := compiler.UnpackMap(in)
  2394. if !ok {
  2395. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  2396. errors = append(errors, compiler.NewError(context, message))
  2397. } else {
  2398. allowedKeys := []string{"name", "value"}
  2399. var allowedPatterns []*regexp.Regexp
  2400. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  2401. if len(invalidKeys) > 0 {
  2402. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  2403. errors = append(errors, compiler.NewError(context, message))
  2404. }
  2405. // string name = 1;
  2406. v1 := compiler.MapValueForKey(m, "name")
  2407. if v1 != nil {
  2408. x.Name, ok = compiler.StringForScalarNode(v1)
  2409. if !ok {
  2410. message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
  2411. errors = append(errors, compiler.NewError(context, message))
  2412. }
  2413. }
  2414. // StringArray value = 2;
  2415. v2 := compiler.MapValueForKey(m, "value")
  2416. if v2 != nil {
  2417. var err error
  2418. x.Value, err = NewStringArray(v2, compiler.NewContext("value", v2, context))
  2419. if err != nil {
  2420. errors = append(errors, err)
  2421. }
  2422. }
  2423. }
  2424. return x, compiler.NewErrorGroupOrNil(errors)
  2425. }
  2426. // NewOauthFlow creates an object of type OauthFlow if possible, returning an error if not.
  2427. func NewOauthFlow(in *yaml.Node, context *compiler.Context) (*OauthFlow, error) {
  2428. errors := make([]error, 0)
  2429. x := &OauthFlow{}
  2430. m, ok := compiler.UnpackMap(in)
  2431. if !ok {
  2432. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  2433. errors = append(errors, compiler.NewError(context, message))
  2434. } else {
  2435. allowedKeys := []string{"authorizationUrl", "refreshUrl", "scopes", "tokenUrl"}
  2436. allowedPatterns := []*regexp.Regexp{pattern1}
  2437. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  2438. if len(invalidKeys) > 0 {
  2439. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  2440. errors = append(errors, compiler.NewError(context, message))
  2441. }
  2442. // string authorization_url = 1;
  2443. v1 := compiler.MapValueForKey(m, "authorizationUrl")
  2444. if v1 != nil {
  2445. x.AuthorizationUrl, ok = compiler.StringForScalarNode(v1)
  2446. if !ok {
  2447. message := fmt.Sprintf("has unexpected value for authorizationUrl: %s", compiler.Display(v1))
  2448. errors = append(errors, compiler.NewError(context, message))
  2449. }
  2450. }
  2451. // string token_url = 2;
  2452. v2 := compiler.MapValueForKey(m, "tokenUrl")
  2453. if v2 != nil {
  2454. x.TokenUrl, ok = compiler.StringForScalarNode(v2)
  2455. if !ok {
  2456. message := fmt.Sprintf("has unexpected value for tokenUrl: %s", compiler.Display(v2))
  2457. errors = append(errors, compiler.NewError(context, message))
  2458. }
  2459. }
  2460. // string refresh_url = 3;
  2461. v3 := compiler.MapValueForKey(m, "refreshUrl")
  2462. if v3 != nil {
  2463. x.RefreshUrl, ok = compiler.StringForScalarNode(v3)
  2464. if !ok {
  2465. message := fmt.Sprintf("has unexpected value for refreshUrl: %s", compiler.Display(v3))
  2466. errors = append(errors, compiler.NewError(context, message))
  2467. }
  2468. }
  2469. // Strings scopes = 4;
  2470. v4 := compiler.MapValueForKey(m, "scopes")
  2471. if v4 != nil {
  2472. var err error
  2473. x.Scopes, err = NewStrings(v4, compiler.NewContext("scopes", v4, context))
  2474. if err != nil {
  2475. errors = append(errors, err)
  2476. }
  2477. }
  2478. // repeated NamedAny specification_extension = 5;
  2479. // MAP: Any ^x-
  2480. x.SpecificationExtension = make([]*NamedAny, 0)
  2481. for i := 0; i < len(m.Content); i += 2 {
  2482. k, ok := compiler.StringForScalarNode(m.Content[i])
  2483. if ok {
  2484. v := m.Content[i+1]
  2485. if strings.HasPrefix(k, "x-") {
  2486. pair := &NamedAny{}
  2487. pair.Name = k
  2488. result := &Any{}
  2489. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  2490. if handled {
  2491. if err != nil {
  2492. errors = append(errors, err)
  2493. } else {
  2494. bytes := compiler.Marshal(v)
  2495. result.Yaml = string(bytes)
  2496. result.Value = resultFromExt
  2497. pair.Value = result
  2498. }
  2499. } else {
  2500. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  2501. if err != nil {
  2502. errors = append(errors, err)
  2503. }
  2504. }
  2505. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  2506. }
  2507. }
  2508. }
  2509. }
  2510. return x, compiler.NewErrorGroupOrNil(errors)
  2511. }
  2512. // NewOauthFlows creates an object of type OauthFlows if possible, returning an error if not.
  2513. func NewOauthFlows(in *yaml.Node, context *compiler.Context) (*OauthFlows, error) {
  2514. errors := make([]error, 0)
  2515. x := &OauthFlows{}
  2516. m, ok := compiler.UnpackMap(in)
  2517. if !ok {
  2518. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  2519. errors = append(errors, compiler.NewError(context, message))
  2520. } else {
  2521. allowedKeys := []string{"authorizationCode", "clientCredentials", "implicit", "password"}
  2522. allowedPatterns := []*regexp.Regexp{pattern1}
  2523. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  2524. if len(invalidKeys) > 0 {
  2525. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  2526. errors = append(errors, compiler.NewError(context, message))
  2527. }
  2528. // OauthFlow implicit = 1;
  2529. v1 := compiler.MapValueForKey(m, "implicit")
  2530. if v1 != nil {
  2531. var err error
  2532. x.Implicit, err = NewOauthFlow(v1, compiler.NewContext("implicit", v1, context))
  2533. if err != nil {
  2534. errors = append(errors, err)
  2535. }
  2536. }
  2537. // OauthFlow password = 2;
  2538. v2 := compiler.MapValueForKey(m, "password")
  2539. if v2 != nil {
  2540. var err error
  2541. x.Password, err = NewOauthFlow(v2, compiler.NewContext("password", v2, context))
  2542. if err != nil {
  2543. errors = append(errors, err)
  2544. }
  2545. }
  2546. // OauthFlow client_credentials = 3;
  2547. v3 := compiler.MapValueForKey(m, "clientCredentials")
  2548. if v3 != nil {
  2549. var err error
  2550. x.ClientCredentials, err = NewOauthFlow(v3, compiler.NewContext("clientCredentials", v3, context))
  2551. if err != nil {
  2552. errors = append(errors, err)
  2553. }
  2554. }
  2555. // OauthFlow authorization_code = 4;
  2556. v4 := compiler.MapValueForKey(m, "authorizationCode")
  2557. if v4 != nil {
  2558. var err error
  2559. x.AuthorizationCode, err = NewOauthFlow(v4, compiler.NewContext("authorizationCode", v4, context))
  2560. if err != nil {
  2561. errors = append(errors, err)
  2562. }
  2563. }
  2564. // repeated NamedAny specification_extension = 5;
  2565. // MAP: Any ^x-
  2566. x.SpecificationExtension = make([]*NamedAny, 0)
  2567. for i := 0; i < len(m.Content); i += 2 {
  2568. k, ok := compiler.StringForScalarNode(m.Content[i])
  2569. if ok {
  2570. v := m.Content[i+1]
  2571. if strings.HasPrefix(k, "x-") {
  2572. pair := &NamedAny{}
  2573. pair.Name = k
  2574. result := &Any{}
  2575. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  2576. if handled {
  2577. if err != nil {
  2578. errors = append(errors, err)
  2579. } else {
  2580. bytes := compiler.Marshal(v)
  2581. result.Yaml = string(bytes)
  2582. result.Value = resultFromExt
  2583. pair.Value = result
  2584. }
  2585. } else {
  2586. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  2587. if err != nil {
  2588. errors = append(errors, err)
  2589. }
  2590. }
  2591. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  2592. }
  2593. }
  2594. }
  2595. }
  2596. return x, compiler.NewErrorGroupOrNil(errors)
  2597. }
  2598. // NewObject creates an object of type Object if possible, returning an error if not.
  2599. func NewObject(in *yaml.Node, context *compiler.Context) (*Object, error) {
  2600. errors := make([]error, 0)
  2601. x := &Object{}
  2602. m, ok := compiler.UnpackMap(in)
  2603. if !ok {
  2604. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  2605. errors = append(errors, compiler.NewError(context, message))
  2606. } else {
  2607. // repeated NamedAny additional_properties = 1;
  2608. // MAP: Any
  2609. x.AdditionalProperties = make([]*NamedAny, 0)
  2610. for i := 0; i < len(m.Content); i += 2 {
  2611. k, ok := compiler.StringForScalarNode(m.Content[i])
  2612. if ok {
  2613. v := m.Content[i+1]
  2614. pair := &NamedAny{}
  2615. pair.Name = k
  2616. result := &Any{}
  2617. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  2618. if handled {
  2619. if err != nil {
  2620. errors = append(errors, err)
  2621. } else {
  2622. bytes := compiler.Marshal(v)
  2623. result.Yaml = string(bytes)
  2624. result.Value = resultFromExt
  2625. pair.Value = result
  2626. }
  2627. } else {
  2628. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  2629. if err != nil {
  2630. errors = append(errors, err)
  2631. }
  2632. }
  2633. x.AdditionalProperties = append(x.AdditionalProperties, pair)
  2634. }
  2635. }
  2636. }
  2637. return x, compiler.NewErrorGroupOrNil(errors)
  2638. }
  2639. // NewOperation creates an object of type Operation if possible, returning an error if not.
  2640. func NewOperation(in *yaml.Node, context *compiler.Context) (*Operation, error) {
  2641. errors := make([]error, 0)
  2642. x := &Operation{}
  2643. m, ok := compiler.UnpackMap(in)
  2644. if !ok {
  2645. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  2646. errors = append(errors, compiler.NewError(context, message))
  2647. } else {
  2648. requiredKeys := []string{"responses"}
  2649. missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
  2650. if len(missingKeys) > 0 {
  2651. message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
  2652. errors = append(errors, compiler.NewError(context, message))
  2653. }
  2654. allowedKeys := []string{"callbacks", "deprecated", "description", "externalDocs", "operationId", "parameters", "requestBody", "responses", "security", "servers", "summary", "tags"}
  2655. allowedPatterns := []*regexp.Regexp{pattern1}
  2656. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  2657. if len(invalidKeys) > 0 {
  2658. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  2659. errors = append(errors, compiler.NewError(context, message))
  2660. }
  2661. // repeated string tags = 1;
  2662. v1 := compiler.MapValueForKey(m, "tags")
  2663. if v1 != nil {
  2664. v, ok := compiler.SequenceNodeForNode(v1)
  2665. if ok {
  2666. x.Tags = compiler.StringArrayForSequenceNode(v)
  2667. } else {
  2668. message := fmt.Sprintf("has unexpected value for tags: %s", compiler.Display(v1))
  2669. errors = append(errors, compiler.NewError(context, message))
  2670. }
  2671. }
  2672. // string summary = 2;
  2673. v2 := compiler.MapValueForKey(m, "summary")
  2674. if v2 != nil {
  2675. x.Summary, ok = compiler.StringForScalarNode(v2)
  2676. if !ok {
  2677. message := fmt.Sprintf("has unexpected value for summary: %s", compiler.Display(v2))
  2678. errors = append(errors, compiler.NewError(context, message))
  2679. }
  2680. }
  2681. // string description = 3;
  2682. v3 := compiler.MapValueForKey(m, "description")
  2683. if v3 != nil {
  2684. x.Description, ok = compiler.StringForScalarNode(v3)
  2685. if !ok {
  2686. message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v3))
  2687. errors = append(errors, compiler.NewError(context, message))
  2688. }
  2689. }
  2690. // ExternalDocs external_docs = 4;
  2691. v4 := compiler.MapValueForKey(m, "externalDocs")
  2692. if v4 != nil {
  2693. var err error
  2694. x.ExternalDocs, err = NewExternalDocs(v4, compiler.NewContext("externalDocs", v4, context))
  2695. if err != nil {
  2696. errors = append(errors, err)
  2697. }
  2698. }
  2699. // string operation_id = 5;
  2700. v5 := compiler.MapValueForKey(m, "operationId")
  2701. if v5 != nil {
  2702. x.OperationId, ok = compiler.StringForScalarNode(v5)
  2703. if !ok {
  2704. message := fmt.Sprintf("has unexpected value for operationId: %s", compiler.Display(v5))
  2705. errors = append(errors, compiler.NewError(context, message))
  2706. }
  2707. }
  2708. // repeated ParameterOrReference parameters = 6;
  2709. v6 := compiler.MapValueForKey(m, "parameters")
  2710. if v6 != nil {
  2711. // repeated ParameterOrReference
  2712. x.Parameters = make([]*ParameterOrReference, 0)
  2713. a, ok := compiler.SequenceNodeForNode(v6)
  2714. if ok {
  2715. for _, item := range a.Content {
  2716. y, err := NewParameterOrReference(item, compiler.NewContext("parameters", item, context))
  2717. if err != nil {
  2718. errors = append(errors, err)
  2719. }
  2720. x.Parameters = append(x.Parameters, y)
  2721. }
  2722. }
  2723. }
  2724. // RequestBodyOrReference request_body = 7;
  2725. v7 := compiler.MapValueForKey(m, "requestBody")
  2726. if v7 != nil {
  2727. var err error
  2728. x.RequestBody, err = NewRequestBodyOrReference(v7, compiler.NewContext("requestBody", v7, context))
  2729. if err != nil {
  2730. errors = append(errors, err)
  2731. }
  2732. }
  2733. // Responses responses = 8;
  2734. v8 := compiler.MapValueForKey(m, "responses")
  2735. if v8 != nil {
  2736. var err error
  2737. x.Responses, err = NewResponses(v8, compiler.NewContext("responses", v8, context))
  2738. if err != nil {
  2739. errors = append(errors, err)
  2740. }
  2741. }
  2742. // CallbacksOrReferences callbacks = 9;
  2743. v9 := compiler.MapValueForKey(m, "callbacks")
  2744. if v9 != nil {
  2745. var err error
  2746. x.Callbacks, err = NewCallbacksOrReferences(v9, compiler.NewContext("callbacks", v9, context))
  2747. if err != nil {
  2748. errors = append(errors, err)
  2749. }
  2750. }
  2751. // bool deprecated = 10;
  2752. v10 := compiler.MapValueForKey(m, "deprecated")
  2753. if v10 != nil {
  2754. x.Deprecated, ok = compiler.BoolForScalarNode(v10)
  2755. if !ok {
  2756. message := fmt.Sprintf("has unexpected value for deprecated: %s", compiler.Display(v10))
  2757. errors = append(errors, compiler.NewError(context, message))
  2758. }
  2759. }
  2760. // repeated SecurityRequirement security = 11;
  2761. v11 := compiler.MapValueForKey(m, "security")
  2762. if v11 != nil {
  2763. // repeated SecurityRequirement
  2764. x.Security = make([]*SecurityRequirement, 0)
  2765. a, ok := compiler.SequenceNodeForNode(v11)
  2766. if ok {
  2767. for _, item := range a.Content {
  2768. y, err := NewSecurityRequirement(item, compiler.NewContext("security", item, context))
  2769. if err != nil {
  2770. errors = append(errors, err)
  2771. }
  2772. x.Security = append(x.Security, y)
  2773. }
  2774. }
  2775. }
  2776. // repeated Server servers = 12;
  2777. v12 := compiler.MapValueForKey(m, "servers")
  2778. if v12 != nil {
  2779. // repeated Server
  2780. x.Servers = make([]*Server, 0)
  2781. a, ok := compiler.SequenceNodeForNode(v12)
  2782. if ok {
  2783. for _, item := range a.Content {
  2784. y, err := NewServer(item, compiler.NewContext("servers", item, context))
  2785. if err != nil {
  2786. errors = append(errors, err)
  2787. }
  2788. x.Servers = append(x.Servers, y)
  2789. }
  2790. }
  2791. }
  2792. // repeated NamedAny specification_extension = 13;
  2793. // MAP: Any ^x-
  2794. x.SpecificationExtension = make([]*NamedAny, 0)
  2795. for i := 0; i < len(m.Content); i += 2 {
  2796. k, ok := compiler.StringForScalarNode(m.Content[i])
  2797. if ok {
  2798. v := m.Content[i+1]
  2799. if strings.HasPrefix(k, "x-") {
  2800. pair := &NamedAny{}
  2801. pair.Name = k
  2802. result := &Any{}
  2803. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  2804. if handled {
  2805. if err != nil {
  2806. errors = append(errors, err)
  2807. } else {
  2808. bytes := compiler.Marshal(v)
  2809. result.Yaml = string(bytes)
  2810. result.Value = resultFromExt
  2811. pair.Value = result
  2812. }
  2813. } else {
  2814. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  2815. if err != nil {
  2816. errors = append(errors, err)
  2817. }
  2818. }
  2819. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  2820. }
  2821. }
  2822. }
  2823. }
  2824. return x, compiler.NewErrorGroupOrNil(errors)
  2825. }
  2826. // NewParameter creates an object of type Parameter if possible, returning an error if not.
  2827. func NewParameter(in *yaml.Node, context *compiler.Context) (*Parameter, error) {
  2828. errors := make([]error, 0)
  2829. x := &Parameter{}
  2830. m, ok := compiler.UnpackMap(in)
  2831. if !ok {
  2832. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  2833. errors = append(errors, compiler.NewError(context, message))
  2834. } else {
  2835. requiredKeys := []string{"in", "name"}
  2836. missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
  2837. if len(missingKeys) > 0 {
  2838. message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
  2839. errors = append(errors, compiler.NewError(context, message))
  2840. }
  2841. allowedKeys := []string{"allowEmptyValue", "allowReserved", "content", "deprecated", "description", "example", "examples", "explode", "in", "name", "required", "schema", "style"}
  2842. allowedPatterns := []*regexp.Regexp{pattern1}
  2843. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  2844. if len(invalidKeys) > 0 {
  2845. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  2846. errors = append(errors, compiler.NewError(context, message))
  2847. }
  2848. // string name = 1;
  2849. v1 := compiler.MapValueForKey(m, "name")
  2850. if v1 != nil {
  2851. x.Name, ok = compiler.StringForScalarNode(v1)
  2852. if !ok {
  2853. message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
  2854. errors = append(errors, compiler.NewError(context, message))
  2855. }
  2856. }
  2857. // string in = 2;
  2858. v2 := compiler.MapValueForKey(m, "in")
  2859. if v2 != nil {
  2860. x.In, ok = compiler.StringForScalarNode(v2)
  2861. if !ok {
  2862. message := fmt.Sprintf("has unexpected value for in: %s", compiler.Display(v2))
  2863. errors = append(errors, compiler.NewError(context, message))
  2864. }
  2865. }
  2866. // string description = 3;
  2867. v3 := compiler.MapValueForKey(m, "description")
  2868. if v3 != nil {
  2869. x.Description, ok = compiler.StringForScalarNode(v3)
  2870. if !ok {
  2871. message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v3))
  2872. errors = append(errors, compiler.NewError(context, message))
  2873. }
  2874. }
  2875. // bool required = 4;
  2876. v4 := compiler.MapValueForKey(m, "required")
  2877. if v4 != nil {
  2878. x.Required, ok = compiler.BoolForScalarNode(v4)
  2879. if !ok {
  2880. message := fmt.Sprintf("has unexpected value for required: %s", compiler.Display(v4))
  2881. errors = append(errors, compiler.NewError(context, message))
  2882. }
  2883. }
  2884. // bool deprecated = 5;
  2885. v5 := compiler.MapValueForKey(m, "deprecated")
  2886. if v5 != nil {
  2887. x.Deprecated, ok = compiler.BoolForScalarNode(v5)
  2888. if !ok {
  2889. message := fmt.Sprintf("has unexpected value for deprecated: %s", compiler.Display(v5))
  2890. errors = append(errors, compiler.NewError(context, message))
  2891. }
  2892. }
  2893. // bool allow_empty_value = 6;
  2894. v6 := compiler.MapValueForKey(m, "allowEmptyValue")
  2895. if v6 != nil {
  2896. x.AllowEmptyValue, ok = compiler.BoolForScalarNode(v6)
  2897. if !ok {
  2898. message := fmt.Sprintf("has unexpected value for allowEmptyValue: %s", compiler.Display(v6))
  2899. errors = append(errors, compiler.NewError(context, message))
  2900. }
  2901. }
  2902. // string style = 7;
  2903. v7 := compiler.MapValueForKey(m, "style")
  2904. if v7 != nil {
  2905. x.Style, ok = compiler.StringForScalarNode(v7)
  2906. if !ok {
  2907. message := fmt.Sprintf("has unexpected value for style: %s", compiler.Display(v7))
  2908. errors = append(errors, compiler.NewError(context, message))
  2909. }
  2910. }
  2911. // bool explode = 8;
  2912. v8 := compiler.MapValueForKey(m, "explode")
  2913. if v8 != nil {
  2914. x.Explode, ok = compiler.BoolForScalarNode(v8)
  2915. if !ok {
  2916. message := fmt.Sprintf("has unexpected value for explode: %s", compiler.Display(v8))
  2917. errors = append(errors, compiler.NewError(context, message))
  2918. }
  2919. }
  2920. // bool allow_reserved = 9;
  2921. v9 := compiler.MapValueForKey(m, "allowReserved")
  2922. if v9 != nil {
  2923. x.AllowReserved, ok = compiler.BoolForScalarNode(v9)
  2924. if !ok {
  2925. message := fmt.Sprintf("has unexpected value for allowReserved: %s", compiler.Display(v9))
  2926. errors = append(errors, compiler.NewError(context, message))
  2927. }
  2928. }
  2929. // SchemaOrReference schema = 10;
  2930. v10 := compiler.MapValueForKey(m, "schema")
  2931. if v10 != nil {
  2932. var err error
  2933. x.Schema, err = NewSchemaOrReference(v10, compiler.NewContext("schema", v10, context))
  2934. if err != nil {
  2935. errors = append(errors, err)
  2936. }
  2937. }
  2938. // Any example = 11;
  2939. v11 := compiler.MapValueForKey(m, "example")
  2940. if v11 != nil {
  2941. var err error
  2942. x.Example, err = NewAny(v11, compiler.NewContext("example", v11, context))
  2943. if err != nil {
  2944. errors = append(errors, err)
  2945. }
  2946. }
  2947. // ExamplesOrReferences examples = 12;
  2948. v12 := compiler.MapValueForKey(m, "examples")
  2949. if v12 != nil {
  2950. var err error
  2951. x.Examples, err = NewExamplesOrReferences(v12, compiler.NewContext("examples", v12, context))
  2952. if err != nil {
  2953. errors = append(errors, err)
  2954. }
  2955. }
  2956. // MediaTypes content = 13;
  2957. v13 := compiler.MapValueForKey(m, "content")
  2958. if v13 != nil {
  2959. var err error
  2960. x.Content, err = NewMediaTypes(v13, compiler.NewContext("content", v13, context))
  2961. if err != nil {
  2962. errors = append(errors, err)
  2963. }
  2964. }
  2965. // repeated NamedAny specification_extension = 14;
  2966. // MAP: Any ^x-
  2967. x.SpecificationExtension = make([]*NamedAny, 0)
  2968. for i := 0; i < len(m.Content); i += 2 {
  2969. k, ok := compiler.StringForScalarNode(m.Content[i])
  2970. if ok {
  2971. v := m.Content[i+1]
  2972. if strings.HasPrefix(k, "x-") {
  2973. pair := &NamedAny{}
  2974. pair.Name = k
  2975. result := &Any{}
  2976. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  2977. if handled {
  2978. if err != nil {
  2979. errors = append(errors, err)
  2980. } else {
  2981. bytes := compiler.Marshal(v)
  2982. result.Yaml = string(bytes)
  2983. result.Value = resultFromExt
  2984. pair.Value = result
  2985. }
  2986. } else {
  2987. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  2988. if err != nil {
  2989. errors = append(errors, err)
  2990. }
  2991. }
  2992. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  2993. }
  2994. }
  2995. }
  2996. }
  2997. return x, compiler.NewErrorGroupOrNil(errors)
  2998. }
  2999. // NewParameterOrReference creates an object of type ParameterOrReference if possible, returning an error if not.
  3000. func NewParameterOrReference(in *yaml.Node, context *compiler.Context) (*ParameterOrReference, error) {
  3001. errors := make([]error, 0)
  3002. x := &ParameterOrReference{}
  3003. matched := false
  3004. // Parameter parameter = 1;
  3005. {
  3006. m, ok := compiler.UnpackMap(in)
  3007. if ok {
  3008. // errors might be ok here, they mean we just don't have the right subtype
  3009. t, matchingError := NewParameter(m, compiler.NewContext("parameter", m, context))
  3010. if matchingError == nil {
  3011. x.Oneof = &ParameterOrReference_Parameter{Parameter: t}
  3012. matched = true
  3013. } else {
  3014. errors = append(errors, matchingError)
  3015. }
  3016. }
  3017. }
  3018. // Reference reference = 2;
  3019. {
  3020. m, ok := compiler.UnpackMap(in)
  3021. if ok {
  3022. // errors might be ok here, they mean we just don't have the right subtype
  3023. t, matchingError := NewReference(m, compiler.NewContext("reference", m, context))
  3024. if matchingError == nil {
  3025. x.Oneof = &ParameterOrReference_Reference{Reference: t}
  3026. matched = true
  3027. } else {
  3028. errors = append(errors, matchingError)
  3029. }
  3030. }
  3031. }
  3032. if matched {
  3033. // since the oneof matched one of its possibilities, discard any matching errors
  3034. errors = make([]error, 0)
  3035. } else {
  3036. message := fmt.Sprintf("contains an invalid ParameterOrReference")
  3037. err := compiler.NewError(context, message)
  3038. errors = []error{err}
  3039. }
  3040. return x, compiler.NewErrorGroupOrNil(errors)
  3041. }
  3042. // NewParametersOrReferences creates an object of type ParametersOrReferences if possible, returning an error if not.
  3043. func NewParametersOrReferences(in *yaml.Node, context *compiler.Context) (*ParametersOrReferences, error) {
  3044. errors := make([]error, 0)
  3045. x := &ParametersOrReferences{}
  3046. m, ok := compiler.UnpackMap(in)
  3047. if !ok {
  3048. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  3049. errors = append(errors, compiler.NewError(context, message))
  3050. } else {
  3051. // repeated NamedParameterOrReference additional_properties = 1;
  3052. // MAP: ParameterOrReference
  3053. x.AdditionalProperties = make([]*NamedParameterOrReference, 0)
  3054. for i := 0; i < len(m.Content); i += 2 {
  3055. k, ok := compiler.StringForScalarNode(m.Content[i])
  3056. if ok {
  3057. v := m.Content[i+1]
  3058. pair := &NamedParameterOrReference{}
  3059. pair.Name = k
  3060. var err error
  3061. pair.Value, err = NewParameterOrReference(v, compiler.NewContext(k, v, context))
  3062. if err != nil {
  3063. errors = append(errors, err)
  3064. }
  3065. x.AdditionalProperties = append(x.AdditionalProperties, pair)
  3066. }
  3067. }
  3068. }
  3069. return x, compiler.NewErrorGroupOrNil(errors)
  3070. }
  3071. // NewPathItem creates an object of type PathItem if possible, returning an error if not.
  3072. func NewPathItem(in *yaml.Node, context *compiler.Context) (*PathItem, error) {
  3073. errors := make([]error, 0)
  3074. x := &PathItem{}
  3075. m, ok := compiler.UnpackMap(in)
  3076. if !ok {
  3077. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  3078. errors = append(errors, compiler.NewError(context, message))
  3079. } else {
  3080. allowedKeys := []string{"$ref", "delete", "description", "get", "head", "options", "parameters", "patch", "post", "put", "servers", "summary", "trace"}
  3081. allowedPatterns := []*regexp.Regexp{pattern1}
  3082. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  3083. if len(invalidKeys) > 0 {
  3084. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  3085. errors = append(errors, compiler.NewError(context, message))
  3086. }
  3087. // string _ref = 1;
  3088. v1 := compiler.MapValueForKey(m, "$ref")
  3089. if v1 != nil {
  3090. x.XRef, ok = compiler.StringForScalarNode(v1)
  3091. if !ok {
  3092. message := fmt.Sprintf("has unexpected value for $ref: %s", compiler.Display(v1))
  3093. errors = append(errors, compiler.NewError(context, message))
  3094. }
  3095. }
  3096. // string summary = 2;
  3097. v2 := compiler.MapValueForKey(m, "summary")
  3098. if v2 != nil {
  3099. x.Summary, ok = compiler.StringForScalarNode(v2)
  3100. if !ok {
  3101. message := fmt.Sprintf("has unexpected value for summary: %s", compiler.Display(v2))
  3102. errors = append(errors, compiler.NewError(context, message))
  3103. }
  3104. }
  3105. // string description = 3;
  3106. v3 := compiler.MapValueForKey(m, "description")
  3107. if v3 != nil {
  3108. x.Description, ok = compiler.StringForScalarNode(v3)
  3109. if !ok {
  3110. message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v3))
  3111. errors = append(errors, compiler.NewError(context, message))
  3112. }
  3113. }
  3114. // Operation get = 4;
  3115. v4 := compiler.MapValueForKey(m, "get")
  3116. if v4 != nil {
  3117. var err error
  3118. x.Get, err = NewOperation(v4, compiler.NewContext("get", v4, context))
  3119. if err != nil {
  3120. errors = append(errors, err)
  3121. }
  3122. }
  3123. // Operation put = 5;
  3124. v5 := compiler.MapValueForKey(m, "put")
  3125. if v5 != nil {
  3126. var err error
  3127. x.Put, err = NewOperation(v5, compiler.NewContext("put", v5, context))
  3128. if err != nil {
  3129. errors = append(errors, err)
  3130. }
  3131. }
  3132. // Operation post = 6;
  3133. v6 := compiler.MapValueForKey(m, "post")
  3134. if v6 != nil {
  3135. var err error
  3136. x.Post, err = NewOperation(v6, compiler.NewContext("post", v6, context))
  3137. if err != nil {
  3138. errors = append(errors, err)
  3139. }
  3140. }
  3141. // Operation delete = 7;
  3142. v7 := compiler.MapValueForKey(m, "delete")
  3143. if v7 != nil {
  3144. var err error
  3145. x.Delete, err = NewOperation(v7, compiler.NewContext("delete", v7, context))
  3146. if err != nil {
  3147. errors = append(errors, err)
  3148. }
  3149. }
  3150. // Operation options = 8;
  3151. v8 := compiler.MapValueForKey(m, "options")
  3152. if v8 != nil {
  3153. var err error
  3154. x.Options, err = NewOperation(v8, compiler.NewContext("options", v8, context))
  3155. if err != nil {
  3156. errors = append(errors, err)
  3157. }
  3158. }
  3159. // Operation head = 9;
  3160. v9 := compiler.MapValueForKey(m, "head")
  3161. if v9 != nil {
  3162. var err error
  3163. x.Head, err = NewOperation(v9, compiler.NewContext("head", v9, context))
  3164. if err != nil {
  3165. errors = append(errors, err)
  3166. }
  3167. }
  3168. // Operation patch = 10;
  3169. v10 := compiler.MapValueForKey(m, "patch")
  3170. if v10 != nil {
  3171. var err error
  3172. x.Patch, err = NewOperation(v10, compiler.NewContext("patch", v10, context))
  3173. if err != nil {
  3174. errors = append(errors, err)
  3175. }
  3176. }
  3177. // Operation trace = 11;
  3178. v11 := compiler.MapValueForKey(m, "trace")
  3179. if v11 != nil {
  3180. var err error
  3181. x.Trace, err = NewOperation(v11, compiler.NewContext("trace", v11, context))
  3182. if err != nil {
  3183. errors = append(errors, err)
  3184. }
  3185. }
  3186. // repeated Server servers = 12;
  3187. v12 := compiler.MapValueForKey(m, "servers")
  3188. if v12 != nil {
  3189. // repeated Server
  3190. x.Servers = make([]*Server, 0)
  3191. a, ok := compiler.SequenceNodeForNode(v12)
  3192. if ok {
  3193. for _, item := range a.Content {
  3194. y, err := NewServer(item, compiler.NewContext("servers", item, context))
  3195. if err != nil {
  3196. errors = append(errors, err)
  3197. }
  3198. x.Servers = append(x.Servers, y)
  3199. }
  3200. }
  3201. }
  3202. // repeated ParameterOrReference parameters = 13;
  3203. v13 := compiler.MapValueForKey(m, "parameters")
  3204. if v13 != nil {
  3205. // repeated ParameterOrReference
  3206. x.Parameters = make([]*ParameterOrReference, 0)
  3207. a, ok := compiler.SequenceNodeForNode(v13)
  3208. if ok {
  3209. for _, item := range a.Content {
  3210. y, err := NewParameterOrReference(item, compiler.NewContext("parameters", item, context))
  3211. if err != nil {
  3212. errors = append(errors, err)
  3213. }
  3214. x.Parameters = append(x.Parameters, y)
  3215. }
  3216. }
  3217. }
  3218. // repeated NamedAny specification_extension = 14;
  3219. // MAP: Any ^x-
  3220. x.SpecificationExtension = make([]*NamedAny, 0)
  3221. for i := 0; i < len(m.Content); i += 2 {
  3222. k, ok := compiler.StringForScalarNode(m.Content[i])
  3223. if ok {
  3224. v := m.Content[i+1]
  3225. if strings.HasPrefix(k, "x-") {
  3226. pair := &NamedAny{}
  3227. pair.Name = k
  3228. result := &Any{}
  3229. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  3230. if handled {
  3231. if err != nil {
  3232. errors = append(errors, err)
  3233. } else {
  3234. bytes := compiler.Marshal(v)
  3235. result.Yaml = string(bytes)
  3236. result.Value = resultFromExt
  3237. pair.Value = result
  3238. }
  3239. } else {
  3240. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  3241. if err != nil {
  3242. errors = append(errors, err)
  3243. }
  3244. }
  3245. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  3246. }
  3247. }
  3248. }
  3249. }
  3250. return x, compiler.NewErrorGroupOrNil(errors)
  3251. }
  3252. // NewPaths creates an object of type Paths if possible, returning an error if not.
  3253. func NewPaths(in *yaml.Node, context *compiler.Context) (*Paths, error) {
  3254. errors := make([]error, 0)
  3255. x := &Paths{}
  3256. m, ok := compiler.UnpackMap(in)
  3257. if !ok {
  3258. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  3259. errors = append(errors, compiler.NewError(context, message))
  3260. } else {
  3261. allowedKeys := []string{}
  3262. allowedPatterns := []*regexp.Regexp{pattern2, pattern1}
  3263. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  3264. if len(invalidKeys) > 0 {
  3265. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  3266. errors = append(errors, compiler.NewError(context, message))
  3267. }
  3268. // repeated NamedPathItem path = 1;
  3269. // MAP: PathItem ^/
  3270. x.Path = make([]*NamedPathItem, 0)
  3271. for i := 0; i < len(m.Content); i += 2 {
  3272. k, ok := compiler.StringForScalarNode(m.Content[i])
  3273. if ok {
  3274. v := m.Content[i+1]
  3275. if strings.HasPrefix(k, "/") {
  3276. pair := &NamedPathItem{}
  3277. pair.Name = k
  3278. var err error
  3279. pair.Value, err = NewPathItem(v, compiler.NewContext(k, v, context))
  3280. if err != nil {
  3281. errors = append(errors, err)
  3282. }
  3283. x.Path = append(x.Path, pair)
  3284. }
  3285. }
  3286. }
  3287. // repeated NamedAny specification_extension = 2;
  3288. // MAP: Any ^x-
  3289. x.SpecificationExtension = make([]*NamedAny, 0)
  3290. for i := 0; i < len(m.Content); i += 2 {
  3291. k, ok := compiler.StringForScalarNode(m.Content[i])
  3292. if ok {
  3293. v := m.Content[i+1]
  3294. if strings.HasPrefix(k, "x-") {
  3295. pair := &NamedAny{}
  3296. pair.Name = k
  3297. result := &Any{}
  3298. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  3299. if handled {
  3300. if err != nil {
  3301. errors = append(errors, err)
  3302. } else {
  3303. bytes := compiler.Marshal(v)
  3304. result.Yaml = string(bytes)
  3305. result.Value = resultFromExt
  3306. pair.Value = result
  3307. }
  3308. } else {
  3309. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  3310. if err != nil {
  3311. errors = append(errors, err)
  3312. }
  3313. }
  3314. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  3315. }
  3316. }
  3317. }
  3318. }
  3319. return x, compiler.NewErrorGroupOrNil(errors)
  3320. }
  3321. // NewProperties creates an object of type Properties if possible, returning an error if not.
  3322. func NewProperties(in *yaml.Node, context *compiler.Context) (*Properties, error) {
  3323. errors := make([]error, 0)
  3324. x := &Properties{}
  3325. m, ok := compiler.UnpackMap(in)
  3326. if !ok {
  3327. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  3328. errors = append(errors, compiler.NewError(context, message))
  3329. } else {
  3330. // repeated NamedSchemaOrReference additional_properties = 1;
  3331. // MAP: SchemaOrReference
  3332. x.AdditionalProperties = make([]*NamedSchemaOrReference, 0)
  3333. for i := 0; i < len(m.Content); i += 2 {
  3334. k, ok := compiler.StringForScalarNode(m.Content[i])
  3335. if ok {
  3336. v := m.Content[i+1]
  3337. pair := &NamedSchemaOrReference{}
  3338. pair.Name = k
  3339. var err error
  3340. pair.Value, err = NewSchemaOrReference(v, compiler.NewContext(k, v, context))
  3341. if err != nil {
  3342. errors = append(errors, err)
  3343. }
  3344. x.AdditionalProperties = append(x.AdditionalProperties, pair)
  3345. }
  3346. }
  3347. }
  3348. return x, compiler.NewErrorGroupOrNil(errors)
  3349. }
  3350. // NewReference creates an object of type Reference if possible, returning an error if not.
  3351. func NewReference(in *yaml.Node, context *compiler.Context) (*Reference, error) {
  3352. errors := make([]error, 0)
  3353. x := &Reference{}
  3354. m, ok := compiler.UnpackMap(in)
  3355. if !ok {
  3356. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  3357. errors = append(errors, compiler.NewError(context, message))
  3358. } else {
  3359. requiredKeys := []string{"$ref"}
  3360. missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
  3361. if len(missingKeys) > 0 {
  3362. message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
  3363. errors = append(errors, compiler.NewError(context, message))
  3364. }
  3365. // string _ref = 1;
  3366. v1 := compiler.MapValueForKey(m, "$ref")
  3367. if v1 != nil {
  3368. x.XRef, ok = compiler.StringForScalarNode(v1)
  3369. if !ok {
  3370. message := fmt.Sprintf("has unexpected value for $ref: %s", compiler.Display(v1))
  3371. errors = append(errors, compiler.NewError(context, message))
  3372. }
  3373. }
  3374. // string summary = 2;
  3375. v2 := compiler.MapValueForKey(m, "summary")
  3376. if v2 != nil {
  3377. x.Summary, ok = compiler.StringForScalarNode(v2)
  3378. if !ok {
  3379. message := fmt.Sprintf("has unexpected value for summary: %s", compiler.Display(v2))
  3380. errors = append(errors, compiler.NewError(context, message))
  3381. }
  3382. }
  3383. // string description = 3;
  3384. v3 := compiler.MapValueForKey(m, "description")
  3385. if v3 != nil {
  3386. x.Description, ok = compiler.StringForScalarNode(v3)
  3387. if !ok {
  3388. message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v3))
  3389. errors = append(errors, compiler.NewError(context, message))
  3390. }
  3391. }
  3392. }
  3393. return x, compiler.NewErrorGroupOrNil(errors)
  3394. }
  3395. // NewRequestBodiesOrReferences creates an object of type RequestBodiesOrReferences if possible, returning an error if not.
  3396. func NewRequestBodiesOrReferences(in *yaml.Node, context *compiler.Context) (*RequestBodiesOrReferences, error) {
  3397. errors := make([]error, 0)
  3398. x := &RequestBodiesOrReferences{}
  3399. m, ok := compiler.UnpackMap(in)
  3400. if !ok {
  3401. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  3402. errors = append(errors, compiler.NewError(context, message))
  3403. } else {
  3404. // repeated NamedRequestBodyOrReference additional_properties = 1;
  3405. // MAP: RequestBodyOrReference
  3406. x.AdditionalProperties = make([]*NamedRequestBodyOrReference, 0)
  3407. for i := 0; i < len(m.Content); i += 2 {
  3408. k, ok := compiler.StringForScalarNode(m.Content[i])
  3409. if ok {
  3410. v := m.Content[i+1]
  3411. pair := &NamedRequestBodyOrReference{}
  3412. pair.Name = k
  3413. var err error
  3414. pair.Value, err = NewRequestBodyOrReference(v, compiler.NewContext(k, v, context))
  3415. if err != nil {
  3416. errors = append(errors, err)
  3417. }
  3418. x.AdditionalProperties = append(x.AdditionalProperties, pair)
  3419. }
  3420. }
  3421. }
  3422. return x, compiler.NewErrorGroupOrNil(errors)
  3423. }
  3424. // NewRequestBody creates an object of type RequestBody if possible, returning an error if not.
  3425. func NewRequestBody(in *yaml.Node, context *compiler.Context) (*RequestBody, error) {
  3426. errors := make([]error, 0)
  3427. x := &RequestBody{}
  3428. m, ok := compiler.UnpackMap(in)
  3429. if !ok {
  3430. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  3431. errors = append(errors, compiler.NewError(context, message))
  3432. } else {
  3433. requiredKeys := []string{"content"}
  3434. missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
  3435. if len(missingKeys) > 0 {
  3436. message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
  3437. errors = append(errors, compiler.NewError(context, message))
  3438. }
  3439. allowedKeys := []string{"content", "description", "required"}
  3440. allowedPatterns := []*regexp.Regexp{pattern1}
  3441. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  3442. if len(invalidKeys) > 0 {
  3443. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  3444. errors = append(errors, compiler.NewError(context, message))
  3445. }
  3446. // string description = 1;
  3447. v1 := compiler.MapValueForKey(m, "description")
  3448. if v1 != nil {
  3449. x.Description, ok = compiler.StringForScalarNode(v1)
  3450. if !ok {
  3451. message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v1))
  3452. errors = append(errors, compiler.NewError(context, message))
  3453. }
  3454. }
  3455. // MediaTypes content = 2;
  3456. v2 := compiler.MapValueForKey(m, "content")
  3457. if v2 != nil {
  3458. var err error
  3459. x.Content, err = NewMediaTypes(v2, compiler.NewContext("content", v2, context))
  3460. if err != nil {
  3461. errors = append(errors, err)
  3462. }
  3463. }
  3464. // bool required = 3;
  3465. v3 := compiler.MapValueForKey(m, "required")
  3466. if v3 != nil {
  3467. x.Required, ok = compiler.BoolForScalarNode(v3)
  3468. if !ok {
  3469. message := fmt.Sprintf("has unexpected value for required: %s", compiler.Display(v3))
  3470. errors = append(errors, compiler.NewError(context, message))
  3471. }
  3472. }
  3473. // repeated NamedAny specification_extension = 4;
  3474. // MAP: Any ^x-
  3475. x.SpecificationExtension = make([]*NamedAny, 0)
  3476. for i := 0; i < len(m.Content); i += 2 {
  3477. k, ok := compiler.StringForScalarNode(m.Content[i])
  3478. if ok {
  3479. v := m.Content[i+1]
  3480. if strings.HasPrefix(k, "x-") {
  3481. pair := &NamedAny{}
  3482. pair.Name = k
  3483. result := &Any{}
  3484. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  3485. if handled {
  3486. if err != nil {
  3487. errors = append(errors, err)
  3488. } else {
  3489. bytes := compiler.Marshal(v)
  3490. result.Yaml = string(bytes)
  3491. result.Value = resultFromExt
  3492. pair.Value = result
  3493. }
  3494. } else {
  3495. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  3496. if err != nil {
  3497. errors = append(errors, err)
  3498. }
  3499. }
  3500. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  3501. }
  3502. }
  3503. }
  3504. }
  3505. return x, compiler.NewErrorGroupOrNil(errors)
  3506. }
  3507. // NewRequestBodyOrReference creates an object of type RequestBodyOrReference if possible, returning an error if not.
  3508. func NewRequestBodyOrReference(in *yaml.Node, context *compiler.Context) (*RequestBodyOrReference, error) {
  3509. errors := make([]error, 0)
  3510. x := &RequestBodyOrReference{}
  3511. matched := false
  3512. // RequestBody request_body = 1;
  3513. {
  3514. m, ok := compiler.UnpackMap(in)
  3515. if ok {
  3516. // errors might be ok here, they mean we just don't have the right subtype
  3517. t, matchingError := NewRequestBody(m, compiler.NewContext("requestBody", m, context))
  3518. if matchingError == nil {
  3519. x.Oneof = &RequestBodyOrReference_RequestBody{RequestBody: t}
  3520. matched = true
  3521. } else {
  3522. errors = append(errors, matchingError)
  3523. }
  3524. }
  3525. }
  3526. // Reference reference = 2;
  3527. {
  3528. m, ok := compiler.UnpackMap(in)
  3529. if ok {
  3530. // errors might be ok here, they mean we just don't have the right subtype
  3531. t, matchingError := NewReference(m, compiler.NewContext("reference", m, context))
  3532. if matchingError == nil {
  3533. x.Oneof = &RequestBodyOrReference_Reference{Reference: t}
  3534. matched = true
  3535. } else {
  3536. errors = append(errors, matchingError)
  3537. }
  3538. }
  3539. }
  3540. if matched {
  3541. // since the oneof matched one of its possibilities, discard any matching errors
  3542. errors = make([]error, 0)
  3543. } else {
  3544. message := fmt.Sprintf("contains an invalid RequestBodyOrReference")
  3545. err := compiler.NewError(context, message)
  3546. errors = []error{err}
  3547. }
  3548. return x, compiler.NewErrorGroupOrNil(errors)
  3549. }
  3550. // NewResponse creates an object of type Response if possible, returning an error if not.
  3551. func NewResponse(in *yaml.Node, context *compiler.Context) (*Response, error) {
  3552. errors := make([]error, 0)
  3553. x := &Response{}
  3554. m, ok := compiler.UnpackMap(in)
  3555. if !ok {
  3556. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  3557. errors = append(errors, compiler.NewError(context, message))
  3558. } else {
  3559. requiredKeys := []string{"description"}
  3560. missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
  3561. if len(missingKeys) > 0 {
  3562. message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
  3563. errors = append(errors, compiler.NewError(context, message))
  3564. }
  3565. allowedKeys := []string{"content", "description", "headers", "links"}
  3566. allowedPatterns := []*regexp.Regexp{pattern1}
  3567. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  3568. if len(invalidKeys) > 0 {
  3569. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  3570. errors = append(errors, compiler.NewError(context, message))
  3571. }
  3572. // string description = 1;
  3573. v1 := compiler.MapValueForKey(m, "description")
  3574. if v1 != nil {
  3575. x.Description, ok = compiler.StringForScalarNode(v1)
  3576. if !ok {
  3577. message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v1))
  3578. errors = append(errors, compiler.NewError(context, message))
  3579. }
  3580. }
  3581. // HeadersOrReferences headers = 2;
  3582. v2 := compiler.MapValueForKey(m, "headers")
  3583. if v2 != nil {
  3584. var err error
  3585. x.Headers, err = NewHeadersOrReferences(v2, compiler.NewContext("headers", v2, context))
  3586. if err != nil {
  3587. errors = append(errors, err)
  3588. }
  3589. }
  3590. // MediaTypes content = 3;
  3591. v3 := compiler.MapValueForKey(m, "content")
  3592. if v3 != nil {
  3593. var err error
  3594. x.Content, err = NewMediaTypes(v3, compiler.NewContext("content", v3, context))
  3595. if err != nil {
  3596. errors = append(errors, err)
  3597. }
  3598. }
  3599. // LinksOrReferences links = 4;
  3600. v4 := compiler.MapValueForKey(m, "links")
  3601. if v4 != nil {
  3602. var err error
  3603. x.Links, err = NewLinksOrReferences(v4, compiler.NewContext("links", v4, context))
  3604. if err != nil {
  3605. errors = append(errors, err)
  3606. }
  3607. }
  3608. // repeated NamedAny specification_extension = 5;
  3609. // MAP: Any ^x-
  3610. x.SpecificationExtension = make([]*NamedAny, 0)
  3611. for i := 0; i < len(m.Content); i += 2 {
  3612. k, ok := compiler.StringForScalarNode(m.Content[i])
  3613. if ok {
  3614. v := m.Content[i+1]
  3615. if strings.HasPrefix(k, "x-") {
  3616. pair := &NamedAny{}
  3617. pair.Name = k
  3618. result := &Any{}
  3619. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  3620. if handled {
  3621. if err != nil {
  3622. errors = append(errors, err)
  3623. } else {
  3624. bytes := compiler.Marshal(v)
  3625. result.Yaml = string(bytes)
  3626. result.Value = resultFromExt
  3627. pair.Value = result
  3628. }
  3629. } else {
  3630. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  3631. if err != nil {
  3632. errors = append(errors, err)
  3633. }
  3634. }
  3635. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  3636. }
  3637. }
  3638. }
  3639. }
  3640. return x, compiler.NewErrorGroupOrNil(errors)
  3641. }
  3642. // NewResponseOrReference creates an object of type ResponseOrReference if possible, returning an error if not.
  3643. func NewResponseOrReference(in *yaml.Node, context *compiler.Context) (*ResponseOrReference, error) {
  3644. errors := make([]error, 0)
  3645. x := &ResponseOrReference{}
  3646. matched := false
  3647. // Response response = 1;
  3648. {
  3649. m, ok := compiler.UnpackMap(in)
  3650. if ok {
  3651. // errors might be ok here, they mean we just don't have the right subtype
  3652. t, matchingError := NewResponse(m, compiler.NewContext("response", m, context))
  3653. if matchingError == nil {
  3654. x.Oneof = &ResponseOrReference_Response{Response: t}
  3655. matched = true
  3656. } else {
  3657. errors = append(errors, matchingError)
  3658. }
  3659. }
  3660. }
  3661. // Reference reference = 2;
  3662. {
  3663. m, ok := compiler.UnpackMap(in)
  3664. if ok {
  3665. // errors might be ok here, they mean we just don't have the right subtype
  3666. t, matchingError := NewReference(m, compiler.NewContext("reference", m, context))
  3667. if matchingError == nil {
  3668. x.Oneof = &ResponseOrReference_Reference{Reference: t}
  3669. matched = true
  3670. } else {
  3671. errors = append(errors, matchingError)
  3672. }
  3673. }
  3674. }
  3675. if matched {
  3676. // since the oneof matched one of its possibilities, discard any matching errors
  3677. errors = make([]error, 0)
  3678. } else {
  3679. message := fmt.Sprintf("contains an invalid ResponseOrReference")
  3680. err := compiler.NewError(context, message)
  3681. errors = []error{err}
  3682. }
  3683. return x, compiler.NewErrorGroupOrNil(errors)
  3684. }
  3685. // NewResponses creates an object of type Responses if possible, returning an error if not.
  3686. func NewResponses(in *yaml.Node, context *compiler.Context) (*Responses, error) {
  3687. errors := make([]error, 0)
  3688. x := &Responses{}
  3689. m, ok := compiler.UnpackMap(in)
  3690. if !ok {
  3691. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  3692. errors = append(errors, compiler.NewError(context, message))
  3693. } else {
  3694. allowedKeys := []string{"default"}
  3695. allowedPatterns := []*regexp.Regexp{pattern3, pattern1}
  3696. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  3697. if len(invalidKeys) > 0 {
  3698. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  3699. errors = append(errors, compiler.NewError(context, message))
  3700. }
  3701. // ResponseOrReference default = 1;
  3702. v1 := compiler.MapValueForKey(m, "default")
  3703. if v1 != nil {
  3704. var err error
  3705. x.Default, err = NewResponseOrReference(v1, compiler.NewContext("default", v1, context))
  3706. if err != nil {
  3707. errors = append(errors, err)
  3708. }
  3709. }
  3710. // repeated NamedResponseOrReference response_or_reference = 2;
  3711. // MAP: ResponseOrReference ^([0-9X]{3})$
  3712. x.ResponseOrReference = make([]*NamedResponseOrReference, 0)
  3713. for i := 0; i < len(m.Content); i += 2 {
  3714. k, ok := compiler.StringForScalarNode(m.Content[i])
  3715. if ok {
  3716. v := m.Content[i+1]
  3717. if pattern3.MatchString(k) {
  3718. pair := &NamedResponseOrReference{}
  3719. pair.Name = k
  3720. var err error
  3721. pair.Value, err = NewResponseOrReference(v, compiler.NewContext(k, v, context))
  3722. if err != nil {
  3723. errors = append(errors, err)
  3724. }
  3725. x.ResponseOrReference = append(x.ResponseOrReference, pair)
  3726. }
  3727. }
  3728. }
  3729. // repeated NamedAny specification_extension = 3;
  3730. // MAP: Any ^x-
  3731. x.SpecificationExtension = make([]*NamedAny, 0)
  3732. for i := 0; i < len(m.Content); i += 2 {
  3733. k, ok := compiler.StringForScalarNode(m.Content[i])
  3734. if ok {
  3735. v := m.Content[i+1]
  3736. if strings.HasPrefix(k, "x-") {
  3737. pair := &NamedAny{}
  3738. pair.Name = k
  3739. result := &Any{}
  3740. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  3741. if handled {
  3742. if err != nil {
  3743. errors = append(errors, err)
  3744. } else {
  3745. bytes := compiler.Marshal(v)
  3746. result.Yaml = string(bytes)
  3747. result.Value = resultFromExt
  3748. pair.Value = result
  3749. }
  3750. } else {
  3751. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  3752. if err != nil {
  3753. errors = append(errors, err)
  3754. }
  3755. }
  3756. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  3757. }
  3758. }
  3759. }
  3760. }
  3761. return x, compiler.NewErrorGroupOrNil(errors)
  3762. }
  3763. // NewResponsesOrReferences creates an object of type ResponsesOrReferences if possible, returning an error if not.
  3764. func NewResponsesOrReferences(in *yaml.Node, context *compiler.Context) (*ResponsesOrReferences, error) {
  3765. errors := make([]error, 0)
  3766. x := &ResponsesOrReferences{}
  3767. m, ok := compiler.UnpackMap(in)
  3768. if !ok {
  3769. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  3770. errors = append(errors, compiler.NewError(context, message))
  3771. } else {
  3772. // repeated NamedResponseOrReference additional_properties = 1;
  3773. // MAP: ResponseOrReference
  3774. x.AdditionalProperties = make([]*NamedResponseOrReference, 0)
  3775. for i := 0; i < len(m.Content); i += 2 {
  3776. k, ok := compiler.StringForScalarNode(m.Content[i])
  3777. if ok {
  3778. v := m.Content[i+1]
  3779. pair := &NamedResponseOrReference{}
  3780. pair.Name = k
  3781. var err error
  3782. pair.Value, err = NewResponseOrReference(v, compiler.NewContext(k, v, context))
  3783. if err != nil {
  3784. errors = append(errors, err)
  3785. }
  3786. x.AdditionalProperties = append(x.AdditionalProperties, pair)
  3787. }
  3788. }
  3789. }
  3790. return x, compiler.NewErrorGroupOrNil(errors)
  3791. }
  3792. // NewSchema creates an object of type Schema if possible, returning an error if not.
  3793. func NewSchema(in *yaml.Node, context *compiler.Context) (*Schema, error) {
  3794. errors := make([]error, 0)
  3795. x := &Schema{}
  3796. m, ok := compiler.UnpackMap(in)
  3797. if !ok {
  3798. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  3799. errors = append(errors, compiler.NewError(context, message))
  3800. } else {
  3801. allowedKeys := []string{"additionalProperties", "allOf", "anyOf", "default", "deprecated", "description", "discriminator", "enum", "example", "exclusiveMaximum", "exclusiveMinimum", "externalDocs", "format", "items", "maxItems", "maxLength", "maxProperties", "maximum", "minItems", "minLength", "minProperties", "minimum", "multipleOf", "not", "nullable", "oneOf", "pattern", "properties", "readOnly", "required", "title", "type", "uniqueItems", "writeOnly", "xml"}
  3802. allowedPatterns := []*regexp.Regexp{pattern1}
  3803. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  3804. if len(invalidKeys) > 0 {
  3805. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  3806. errors = append(errors, compiler.NewError(context, message))
  3807. }
  3808. // bool nullable = 1;
  3809. v1 := compiler.MapValueForKey(m, "nullable")
  3810. if v1 != nil {
  3811. x.Nullable, ok = compiler.BoolForScalarNode(v1)
  3812. if !ok {
  3813. message := fmt.Sprintf("has unexpected value for nullable: %s", compiler.Display(v1))
  3814. errors = append(errors, compiler.NewError(context, message))
  3815. }
  3816. }
  3817. // Discriminator discriminator = 2;
  3818. v2 := compiler.MapValueForKey(m, "discriminator")
  3819. if v2 != nil {
  3820. var err error
  3821. x.Discriminator, err = NewDiscriminator(v2, compiler.NewContext("discriminator", v2, context))
  3822. if err != nil {
  3823. errors = append(errors, err)
  3824. }
  3825. }
  3826. // bool read_only = 3;
  3827. v3 := compiler.MapValueForKey(m, "readOnly")
  3828. if v3 != nil {
  3829. x.ReadOnly, ok = compiler.BoolForScalarNode(v3)
  3830. if !ok {
  3831. message := fmt.Sprintf("has unexpected value for readOnly: %s", compiler.Display(v3))
  3832. errors = append(errors, compiler.NewError(context, message))
  3833. }
  3834. }
  3835. // bool write_only = 4;
  3836. v4 := compiler.MapValueForKey(m, "writeOnly")
  3837. if v4 != nil {
  3838. x.WriteOnly, ok = compiler.BoolForScalarNode(v4)
  3839. if !ok {
  3840. message := fmt.Sprintf("has unexpected value for writeOnly: %s", compiler.Display(v4))
  3841. errors = append(errors, compiler.NewError(context, message))
  3842. }
  3843. }
  3844. // Xml xml = 5;
  3845. v5 := compiler.MapValueForKey(m, "xml")
  3846. if v5 != nil {
  3847. var err error
  3848. x.Xml, err = NewXml(v5, compiler.NewContext("xml", v5, context))
  3849. if err != nil {
  3850. errors = append(errors, err)
  3851. }
  3852. }
  3853. // ExternalDocs external_docs = 6;
  3854. v6 := compiler.MapValueForKey(m, "externalDocs")
  3855. if v6 != nil {
  3856. var err error
  3857. x.ExternalDocs, err = NewExternalDocs(v6, compiler.NewContext("externalDocs", v6, context))
  3858. if err != nil {
  3859. errors = append(errors, err)
  3860. }
  3861. }
  3862. // Any example = 7;
  3863. v7 := compiler.MapValueForKey(m, "example")
  3864. if v7 != nil {
  3865. var err error
  3866. x.Example, err = NewAny(v7, compiler.NewContext("example", v7, context))
  3867. if err != nil {
  3868. errors = append(errors, err)
  3869. }
  3870. }
  3871. // bool deprecated = 8;
  3872. v8 := compiler.MapValueForKey(m, "deprecated")
  3873. if v8 != nil {
  3874. x.Deprecated, ok = compiler.BoolForScalarNode(v8)
  3875. if !ok {
  3876. message := fmt.Sprintf("has unexpected value for deprecated: %s", compiler.Display(v8))
  3877. errors = append(errors, compiler.NewError(context, message))
  3878. }
  3879. }
  3880. // string title = 9;
  3881. v9 := compiler.MapValueForKey(m, "title")
  3882. if v9 != nil {
  3883. x.Title, ok = compiler.StringForScalarNode(v9)
  3884. if !ok {
  3885. message := fmt.Sprintf("has unexpected value for title: %s", compiler.Display(v9))
  3886. errors = append(errors, compiler.NewError(context, message))
  3887. }
  3888. }
  3889. // float multiple_of = 10;
  3890. v10 := compiler.MapValueForKey(m, "multipleOf")
  3891. if v10 != nil {
  3892. v, ok := compiler.FloatForScalarNode(v10)
  3893. if ok {
  3894. x.MultipleOf = v
  3895. } else {
  3896. message := fmt.Sprintf("has unexpected value for multipleOf: %s", compiler.Display(v10))
  3897. errors = append(errors, compiler.NewError(context, message))
  3898. }
  3899. }
  3900. // float maximum = 11;
  3901. v11 := compiler.MapValueForKey(m, "maximum")
  3902. if v11 != nil {
  3903. v, ok := compiler.FloatForScalarNode(v11)
  3904. if ok {
  3905. x.Maximum = v
  3906. } else {
  3907. message := fmt.Sprintf("has unexpected value for maximum: %s", compiler.Display(v11))
  3908. errors = append(errors, compiler.NewError(context, message))
  3909. }
  3910. }
  3911. // bool exclusive_maximum = 12;
  3912. v12 := compiler.MapValueForKey(m, "exclusiveMaximum")
  3913. if v12 != nil {
  3914. x.ExclusiveMaximum, ok = compiler.BoolForScalarNode(v12)
  3915. if !ok {
  3916. message := fmt.Sprintf("has unexpected value for exclusiveMaximum: %s", compiler.Display(v12))
  3917. errors = append(errors, compiler.NewError(context, message))
  3918. }
  3919. }
  3920. // float minimum = 13;
  3921. v13 := compiler.MapValueForKey(m, "minimum")
  3922. if v13 != nil {
  3923. v, ok := compiler.FloatForScalarNode(v13)
  3924. if ok {
  3925. x.Minimum = v
  3926. } else {
  3927. message := fmt.Sprintf("has unexpected value for minimum: %s", compiler.Display(v13))
  3928. errors = append(errors, compiler.NewError(context, message))
  3929. }
  3930. }
  3931. // bool exclusive_minimum = 14;
  3932. v14 := compiler.MapValueForKey(m, "exclusiveMinimum")
  3933. if v14 != nil {
  3934. x.ExclusiveMinimum, ok = compiler.BoolForScalarNode(v14)
  3935. if !ok {
  3936. message := fmt.Sprintf("has unexpected value for exclusiveMinimum: %s", compiler.Display(v14))
  3937. errors = append(errors, compiler.NewError(context, message))
  3938. }
  3939. }
  3940. // int64 max_length = 15;
  3941. v15 := compiler.MapValueForKey(m, "maxLength")
  3942. if v15 != nil {
  3943. t, ok := compiler.IntForScalarNode(v15)
  3944. if ok {
  3945. x.MaxLength = int64(t)
  3946. } else {
  3947. message := fmt.Sprintf("has unexpected value for maxLength: %s", compiler.Display(v15))
  3948. errors = append(errors, compiler.NewError(context, message))
  3949. }
  3950. }
  3951. // int64 min_length = 16;
  3952. v16 := compiler.MapValueForKey(m, "minLength")
  3953. if v16 != nil {
  3954. t, ok := compiler.IntForScalarNode(v16)
  3955. if ok {
  3956. x.MinLength = int64(t)
  3957. } else {
  3958. message := fmt.Sprintf("has unexpected value for minLength: %s", compiler.Display(v16))
  3959. errors = append(errors, compiler.NewError(context, message))
  3960. }
  3961. }
  3962. // string pattern = 17;
  3963. v17 := compiler.MapValueForKey(m, "pattern")
  3964. if v17 != nil {
  3965. x.Pattern, ok = compiler.StringForScalarNode(v17)
  3966. if !ok {
  3967. message := fmt.Sprintf("has unexpected value for pattern: %s", compiler.Display(v17))
  3968. errors = append(errors, compiler.NewError(context, message))
  3969. }
  3970. }
  3971. // int64 max_items = 18;
  3972. v18 := compiler.MapValueForKey(m, "maxItems")
  3973. if v18 != nil {
  3974. t, ok := compiler.IntForScalarNode(v18)
  3975. if ok {
  3976. x.MaxItems = int64(t)
  3977. } else {
  3978. message := fmt.Sprintf("has unexpected value for maxItems: %s", compiler.Display(v18))
  3979. errors = append(errors, compiler.NewError(context, message))
  3980. }
  3981. }
  3982. // int64 min_items = 19;
  3983. v19 := compiler.MapValueForKey(m, "minItems")
  3984. if v19 != nil {
  3985. t, ok := compiler.IntForScalarNode(v19)
  3986. if ok {
  3987. x.MinItems = int64(t)
  3988. } else {
  3989. message := fmt.Sprintf("has unexpected value for minItems: %s", compiler.Display(v19))
  3990. errors = append(errors, compiler.NewError(context, message))
  3991. }
  3992. }
  3993. // bool unique_items = 20;
  3994. v20 := compiler.MapValueForKey(m, "uniqueItems")
  3995. if v20 != nil {
  3996. x.UniqueItems, ok = compiler.BoolForScalarNode(v20)
  3997. if !ok {
  3998. message := fmt.Sprintf("has unexpected value for uniqueItems: %s", compiler.Display(v20))
  3999. errors = append(errors, compiler.NewError(context, message))
  4000. }
  4001. }
  4002. // int64 max_properties = 21;
  4003. v21 := compiler.MapValueForKey(m, "maxProperties")
  4004. if v21 != nil {
  4005. t, ok := compiler.IntForScalarNode(v21)
  4006. if ok {
  4007. x.MaxProperties = int64(t)
  4008. } else {
  4009. message := fmt.Sprintf("has unexpected value for maxProperties: %s", compiler.Display(v21))
  4010. errors = append(errors, compiler.NewError(context, message))
  4011. }
  4012. }
  4013. // int64 min_properties = 22;
  4014. v22 := compiler.MapValueForKey(m, "minProperties")
  4015. if v22 != nil {
  4016. t, ok := compiler.IntForScalarNode(v22)
  4017. if ok {
  4018. x.MinProperties = int64(t)
  4019. } else {
  4020. message := fmt.Sprintf("has unexpected value for minProperties: %s", compiler.Display(v22))
  4021. errors = append(errors, compiler.NewError(context, message))
  4022. }
  4023. }
  4024. // repeated string required = 23;
  4025. v23 := compiler.MapValueForKey(m, "required")
  4026. if v23 != nil {
  4027. v, ok := compiler.SequenceNodeForNode(v23)
  4028. if ok {
  4029. x.Required = compiler.StringArrayForSequenceNode(v)
  4030. } else {
  4031. message := fmt.Sprintf("has unexpected value for required: %s", compiler.Display(v23))
  4032. errors = append(errors, compiler.NewError(context, message))
  4033. }
  4034. }
  4035. // repeated Any enum = 24;
  4036. v24 := compiler.MapValueForKey(m, "enum")
  4037. if v24 != nil {
  4038. // repeated Any
  4039. x.Enum = make([]*Any, 0)
  4040. a, ok := compiler.SequenceNodeForNode(v24)
  4041. if ok {
  4042. for _, item := range a.Content {
  4043. y, err := NewAny(item, compiler.NewContext("enum", item, context))
  4044. if err != nil {
  4045. errors = append(errors, err)
  4046. }
  4047. x.Enum = append(x.Enum, y)
  4048. }
  4049. }
  4050. }
  4051. // string type = 25;
  4052. v25 := compiler.MapValueForKey(m, "type")
  4053. if v25 != nil {
  4054. x.Type, ok = compiler.StringForScalarNode(v25)
  4055. if !ok {
  4056. message := fmt.Sprintf("has unexpected value for type: %s", compiler.Display(v25))
  4057. errors = append(errors, compiler.NewError(context, message))
  4058. }
  4059. }
  4060. // repeated SchemaOrReference all_of = 26;
  4061. v26 := compiler.MapValueForKey(m, "allOf")
  4062. if v26 != nil {
  4063. // repeated SchemaOrReference
  4064. x.AllOf = make([]*SchemaOrReference, 0)
  4065. a, ok := compiler.SequenceNodeForNode(v26)
  4066. if ok {
  4067. for _, item := range a.Content {
  4068. y, err := NewSchemaOrReference(item, compiler.NewContext("allOf", item, context))
  4069. if err != nil {
  4070. errors = append(errors, err)
  4071. }
  4072. x.AllOf = append(x.AllOf, y)
  4073. }
  4074. }
  4075. }
  4076. // repeated SchemaOrReference one_of = 27;
  4077. v27 := compiler.MapValueForKey(m, "oneOf")
  4078. if v27 != nil {
  4079. // repeated SchemaOrReference
  4080. x.OneOf = make([]*SchemaOrReference, 0)
  4081. a, ok := compiler.SequenceNodeForNode(v27)
  4082. if ok {
  4083. for _, item := range a.Content {
  4084. y, err := NewSchemaOrReference(item, compiler.NewContext("oneOf", item, context))
  4085. if err != nil {
  4086. errors = append(errors, err)
  4087. }
  4088. x.OneOf = append(x.OneOf, y)
  4089. }
  4090. }
  4091. }
  4092. // repeated SchemaOrReference any_of = 28;
  4093. v28 := compiler.MapValueForKey(m, "anyOf")
  4094. if v28 != nil {
  4095. // repeated SchemaOrReference
  4096. x.AnyOf = make([]*SchemaOrReference, 0)
  4097. a, ok := compiler.SequenceNodeForNode(v28)
  4098. if ok {
  4099. for _, item := range a.Content {
  4100. y, err := NewSchemaOrReference(item, compiler.NewContext("anyOf", item, context))
  4101. if err != nil {
  4102. errors = append(errors, err)
  4103. }
  4104. x.AnyOf = append(x.AnyOf, y)
  4105. }
  4106. }
  4107. }
  4108. // Schema not = 29;
  4109. v29 := compiler.MapValueForKey(m, "not")
  4110. if v29 != nil {
  4111. var err error
  4112. x.Not, err = NewSchema(v29, compiler.NewContext("not", v29, context))
  4113. if err != nil {
  4114. errors = append(errors, err)
  4115. }
  4116. }
  4117. // ItemsItem items = 30;
  4118. v30 := compiler.MapValueForKey(m, "items")
  4119. if v30 != nil {
  4120. var err error
  4121. x.Items, err = NewItemsItem(v30, compiler.NewContext("items", v30, context))
  4122. if err != nil {
  4123. errors = append(errors, err)
  4124. }
  4125. }
  4126. // Properties properties = 31;
  4127. v31 := compiler.MapValueForKey(m, "properties")
  4128. if v31 != nil {
  4129. var err error
  4130. x.Properties, err = NewProperties(v31, compiler.NewContext("properties", v31, context))
  4131. if err != nil {
  4132. errors = append(errors, err)
  4133. }
  4134. }
  4135. // AdditionalPropertiesItem additional_properties = 32;
  4136. v32 := compiler.MapValueForKey(m, "additionalProperties")
  4137. if v32 != nil {
  4138. var err error
  4139. x.AdditionalProperties, err = NewAdditionalPropertiesItem(v32, compiler.NewContext("additionalProperties", v32, context))
  4140. if err != nil {
  4141. errors = append(errors, err)
  4142. }
  4143. }
  4144. // DefaultType default = 33;
  4145. v33 := compiler.MapValueForKey(m, "default")
  4146. if v33 != nil {
  4147. var err error
  4148. x.Default, err = NewDefaultType(v33, compiler.NewContext("default", v33, context))
  4149. if err != nil {
  4150. errors = append(errors, err)
  4151. }
  4152. }
  4153. // string description = 34;
  4154. v34 := compiler.MapValueForKey(m, "description")
  4155. if v34 != nil {
  4156. x.Description, ok = compiler.StringForScalarNode(v34)
  4157. if !ok {
  4158. message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v34))
  4159. errors = append(errors, compiler.NewError(context, message))
  4160. }
  4161. }
  4162. // string format = 35;
  4163. v35 := compiler.MapValueForKey(m, "format")
  4164. if v35 != nil {
  4165. x.Format, ok = compiler.StringForScalarNode(v35)
  4166. if !ok {
  4167. message := fmt.Sprintf("has unexpected value for format: %s", compiler.Display(v35))
  4168. errors = append(errors, compiler.NewError(context, message))
  4169. }
  4170. }
  4171. // repeated NamedAny specification_extension = 36;
  4172. // MAP: Any ^x-
  4173. x.SpecificationExtension = make([]*NamedAny, 0)
  4174. for i := 0; i < len(m.Content); i += 2 {
  4175. k, ok := compiler.StringForScalarNode(m.Content[i])
  4176. if ok {
  4177. v := m.Content[i+1]
  4178. if strings.HasPrefix(k, "x-") {
  4179. pair := &NamedAny{}
  4180. pair.Name = k
  4181. result := &Any{}
  4182. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  4183. if handled {
  4184. if err != nil {
  4185. errors = append(errors, err)
  4186. } else {
  4187. bytes := compiler.Marshal(v)
  4188. result.Yaml = string(bytes)
  4189. result.Value = resultFromExt
  4190. pair.Value = result
  4191. }
  4192. } else {
  4193. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  4194. if err != nil {
  4195. errors = append(errors, err)
  4196. }
  4197. }
  4198. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  4199. }
  4200. }
  4201. }
  4202. }
  4203. return x, compiler.NewErrorGroupOrNil(errors)
  4204. }
  4205. // NewSchemaOrReference creates an object of type SchemaOrReference if possible, returning an error if not.
  4206. func NewSchemaOrReference(in *yaml.Node, context *compiler.Context) (*SchemaOrReference, error) {
  4207. errors := make([]error, 0)
  4208. x := &SchemaOrReference{}
  4209. matched := false
  4210. // Schema schema = 1;
  4211. {
  4212. m, ok := compiler.UnpackMap(in)
  4213. if ok {
  4214. // errors might be ok here, they mean we just don't have the right subtype
  4215. t, matchingError := NewSchema(m, compiler.NewContext("schema", m, context))
  4216. if matchingError == nil {
  4217. x.Oneof = &SchemaOrReference_Schema{Schema: t}
  4218. matched = true
  4219. } else {
  4220. errors = append(errors, matchingError)
  4221. }
  4222. }
  4223. }
  4224. // Reference reference = 2;
  4225. {
  4226. m, ok := compiler.UnpackMap(in)
  4227. if ok {
  4228. // errors might be ok here, they mean we just don't have the right subtype
  4229. t, matchingError := NewReference(m, compiler.NewContext("reference", m, context))
  4230. if matchingError == nil {
  4231. x.Oneof = &SchemaOrReference_Reference{Reference: t}
  4232. matched = true
  4233. } else {
  4234. errors = append(errors, matchingError)
  4235. }
  4236. }
  4237. }
  4238. if matched {
  4239. // since the oneof matched one of its possibilities, discard any matching errors
  4240. errors = make([]error, 0)
  4241. } else {
  4242. message := fmt.Sprintf("contains an invalid SchemaOrReference")
  4243. err := compiler.NewError(context, message)
  4244. errors = []error{err}
  4245. }
  4246. return x, compiler.NewErrorGroupOrNil(errors)
  4247. }
  4248. // NewSchemasOrReferences creates an object of type SchemasOrReferences if possible, returning an error if not.
  4249. func NewSchemasOrReferences(in *yaml.Node, context *compiler.Context) (*SchemasOrReferences, error) {
  4250. errors := make([]error, 0)
  4251. x := &SchemasOrReferences{}
  4252. m, ok := compiler.UnpackMap(in)
  4253. if !ok {
  4254. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  4255. errors = append(errors, compiler.NewError(context, message))
  4256. } else {
  4257. // repeated NamedSchemaOrReference additional_properties = 1;
  4258. // MAP: SchemaOrReference
  4259. x.AdditionalProperties = make([]*NamedSchemaOrReference, 0)
  4260. for i := 0; i < len(m.Content); i += 2 {
  4261. k, ok := compiler.StringForScalarNode(m.Content[i])
  4262. if ok {
  4263. v := m.Content[i+1]
  4264. pair := &NamedSchemaOrReference{}
  4265. pair.Name = k
  4266. var err error
  4267. pair.Value, err = NewSchemaOrReference(v, compiler.NewContext(k, v, context))
  4268. if err != nil {
  4269. errors = append(errors, err)
  4270. }
  4271. x.AdditionalProperties = append(x.AdditionalProperties, pair)
  4272. }
  4273. }
  4274. }
  4275. return x, compiler.NewErrorGroupOrNil(errors)
  4276. }
  4277. // NewSecurityRequirement creates an object of type SecurityRequirement if possible, returning an error if not.
  4278. func NewSecurityRequirement(in *yaml.Node, context *compiler.Context) (*SecurityRequirement, error) {
  4279. errors := make([]error, 0)
  4280. x := &SecurityRequirement{}
  4281. m, ok := compiler.UnpackMap(in)
  4282. if !ok {
  4283. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  4284. errors = append(errors, compiler.NewError(context, message))
  4285. } else {
  4286. // repeated NamedStringArray additional_properties = 1;
  4287. // MAP: StringArray
  4288. x.AdditionalProperties = make([]*NamedStringArray, 0)
  4289. for i := 0; i < len(m.Content); i += 2 {
  4290. k, ok := compiler.StringForScalarNode(m.Content[i])
  4291. if ok {
  4292. v := m.Content[i+1]
  4293. pair := &NamedStringArray{}
  4294. pair.Name = k
  4295. var err error
  4296. pair.Value, err = NewStringArray(v, compiler.NewContext(k, v, context))
  4297. if err != nil {
  4298. errors = append(errors, err)
  4299. }
  4300. x.AdditionalProperties = append(x.AdditionalProperties, pair)
  4301. }
  4302. }
  4303. }
  4304. return x, compiler.NewErrorGroupOrNil(errors)
  4305. }
  4306. // NewSecurityScheme creates an object of type SecurityScheme if possible, returning an error if not.
  4307. func NewSecurityScheme(in *yaml.Node, context *compiler.Context) (*SecurityScheme, error) {
  4308. errors := make([]error, 0)
  4309. x := &SecurityScheme{}
  4310. m, ok := compiler.UnpackMap(in)
  4311. if !ok {
  4312. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  4313. errors = append(errors, compiler.NewError(context, message))
  4314. } else {
  4315. requiredKeys := []string{"type"}
  4316. missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
  4317. if len(missingKeys) > 0 {
  4318. message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
  4319. errors = append(errors, compiler.NewError(context, message))
  4320. }
  4321. allowedKeys := []string{"bearerFormat", "description", "flows", "in", "name", "openIdConnectUrl", "scheme", "type"}
  4322. allowedPatterns := []*regexp.Regexp{pattern1}
  4323. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  4324. if len(invalidKeys) > 0 {
  4325. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  4326. errors = append(errors, compiler.NewError(context, message))
  4327. }
  4328. // string type = 1;
  4329. v1 := compiler.MapValueForKey(m, "type")
  4330. if v1 != nil {
  4331. x.Type, ok = compiler.StringForScalarNode(v1)
  4332. if !ok {
  4333. message := fmt.Sprintf("has unexpected value for type: %s", compiler.Display(v1))
  4334. errors = append(errors, compiler.NewError(context, message))
  4335. }
  4336. }
  4337. // string description = 2;
  4338. v2 := compiler.MapValueForKey(m, "description")
  4339. if v2 != nil {
  4340. x.Description, ok = compiler.StringForScalarNode(v2)
  4341. if !ok {
  4342. message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v2))
  4343. errors = append(errors, compiler.NewError(context, message))
  4344. }
  4345. }
  4346. // string name = 3;
  4347. v3 := compiler.MapValueForKey(m, "name")
  4348. if v3 != nil {
  4349. x.Name, ok = compiler.StringForScalarNode(v3)
  4350. if !ok {
  4351. message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v3))
  4352. errors = append(errors, compiler.NewError(context, message))
  4353. }
  4354. }
  4355. // string in = 4;
  4356. v4 := compiler.MapValueForKey(m, "in")
  4357. if v4 != nil {
  4358. x.In, ok = compiler.StringForScalarNode(v4)
  4359. if !ok {
  4360. message := fmt.Sprintf("has unexpected value for in: %s", compiler.Display(v4))
  4361. errors = append(errors, compiler.NewError(context, message))
  4362. }
  4363. }
  4364. // string scheme = 5;
  4365. v5 := compiler.MapValueForKey(m, "scheme")
  4366. if v5 != nil {
  4367. x.Scheme, ok = compiler.StringForScalarNode(v5)
  4368. if !ok {
  4369. message := fmt.Sprintf("has unexpected value for scheme: %s", compiler.Display(v5))
  4370. errors = append(errors, compiler.NewError(context, message))
  4371. }
  4372. }
  4373. // string bearer_format = 6;
  4374. v6 := compiler.MapValueForKey(m, "bearerFormat")
  4375. if v6 != nil {
  4376. x.BearerFormat, ok = compiler.StringForScalarNode(v6)
  4377. if !ok {
  4378. message := fmt.Sprintf("has unexpected value for bearerFormat: %s", compiler.Display(v6))
  4379. errors = append(errors, compiler.NewError(context, message))
  4380. }
  4381. }
  4382. // OauthFlows flows = 7;
  4383. v7 := compiler.MapValueForKey(m, "flows")
  4384. if v7 != nil {
  4385. var err error
  4386. x.Flows, err = NewOauthFlows(v7, compiler.NewContext("flows", v7, context))
  4387. if err != nil {
  4388. errors = append(errors, err)
  4389. }
  4390. }
  4391. // string open_id_connect_url = 8;
  4392. v8 := compiler.MapValueForKey(m, "openIdConnectUrl")
  4393. if v8 != nil {
  4394. x.OpenIdConnectUrl, ok = compiler.StringForScalarNode(v8)
  4395. if !ok {
  4396. message := fmt.Sprintf("has unexpected value for openIdConnectUrl: %s", compiler.Display(v8))
  4397. errors = append(errors, compiler.NewError(context, message))
  4398. }
  4399. }
  4400. // repeated NamedAny specification_extension = 9;
  4401. // MAP: Any ^x-
  4402. x.SpecificationExtension = make([]*NamedAny, 0)
  4403. for i := 0; i < len(m.Content); i += 2 {
  4404. k, ok := compiler.StringForScalarNode(m.Content[i])
  4405. if ok {
  4406. v := m.Content[i+1]
  4407. if strings.HasPrefix(k, "x-") {
  4408. pair := &NamedAny{}
  4409. pair.Name = k
  4410. result := &Any{}
  4411. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  4412. if handled {
  4413. if err != nil {
  4414. errors = append(errors, err)
  4415. } else {
  4416. bytes := compiler.Marshal(v)
  4417. result.Yaml = string(bytes)
  4418. result.Value = resultFromExt
  4419. pair.Value = result
  4420. }
  4421. } else {
  4422. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  4423. if err != nil {
  4424. errors = append(errors, err)
  4425. }
  4426. }
  4427. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  4428. }
  4429. }
  4430. }
  4431. }
  4432. return x, compiler.NewErrorGroupOrNil(errors)
  4433. }
  4434. // NewSecuritySchemeOrReference creates an object of type SecuritySchemeOrReference if possible, returning an error if not.
  4435. func NewSecuritySchemeOrReference(in *yaml.Node, context *compiler.Context) (*SecuritySchemeOrReference, error) {
  4436. errors := make([]error, 0)
  4437. x := &SecuritySchemeOrReference{}
  4438. matched := false
  4439. // SecurityScheme security_scheme = 1;
  4440. {
  4441. m, ok := compiler.UnpackMap(in)
  4442. if ok {
  4443. // errors might be ok here, they mean we just don't have the right subtype
  4444. t, matchingError := NewSecurityScheme(m, compiler.NewContext("securityScheme", m, context))
  4445. if matchingError == nil {
  4446. x.Oneof = &SecuritySchemeOrReference_SecurityScheme{SecurityScheme: t}
  4447. matched = true
  4448. } else {
  4449. errors = append(errors, matchingError)
  4450. }
  4451. }
  4452. }
  4453. // Reference reference = 2;
  4454. {
  4455. m, ok := compiler.UnpackMap(in)
  4456. if ok {
  4457. // errors might be ok here, they mean we just don't have the right subtype
  4458. t, matchingError := NewReference(m, compiler.NewContext("reference", m, context))
  4459. if matchingError == nil {
  4460. x.Oneof = &SecuritySchemeOrReference_Reference{Reference: t}
  4461. matched = true
  4462. } else {
  4463. errors = append(errors, matchingError)
  4464. }
  4465. }
  4466. }
  4467. if matched {
  4468. // since the oneof matched one of its possibilities, discard any matching errors
  4469. errors = make([]error, 0)
  4470. } else {
  4471. message := fmt.Sprintf("contains an invalid SecuritySchemeOrReference")
  4472. err := compiler.NewError(context, message)
  4473. errors = []error{err}
  4474. }
  4475. return x, compiler.NewErrorGroupOrNil(errors)
  4476. }
  4477. // NewSecuritySchemesOrReferences creates an object of type SecuritySchemesOrReferences if possible, returning an error if not.
  4478. func NewSecuritySchemesOrReferences(in *yaml.Node, context *compiler.Context) (*SecuritySchemesOrReferences, error) {
  4479. errors := make([]error, 0)
  4480. x := &SecuritySchemesOrReferences{}
  4481. m, ok := compiler.UnpackMap(in)
  4482. if !ok {
  4483. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  4484. errors = append(errors, compiler.NewError(context, message))
  4485. } else {
  4486. // repeated NamedSecuritySchemeOrReference additional_properties = 1;
  4487. // MAP: SecuritySchemeOrReference
  4488. x.AdditionalProperties = make([]*NamedSecuritySchemeOrReference, 0)
  4489. for i := 0; i < len(m.Content); i += 2 {
  4490. k, ok := compiler.StringForScalarNode(m.Content[i])
  4491. if ok {
  4492. v := m.Content[i+1]
  4493. pair := &NamedSecuritySchemeOrReference{}
  4494. pair.Name = k
  4495. var err error
  4496. pair.Value, err = NewSecuritySchemeOrReference(v, compiler.NewContext(k, v, context))
  4497. if err != nil {
  4498. errors = append(errors, err)
  4499. }
  4500. x.AdditionalProperties = append(x.AdditionalProperties, pair)
  4501. }
  4502. }
  4503. }
  4504. return x, compiler.NewErrorGroupOrNil(errors)
  4505. }
  4506. // NewServer creates an object of type Server if possible, returning an error if not.
  4507. func NewServer(in *yaml.Node, context *compiler.Context) (*Server, error) {
  4508. errors := make([]error, 0)
  4509. x := &Server{}
  4510. m, ok := compiler.UnpackMap(in)
  4511. if !ok {
  4512. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  4513. errors = append(errors, compiler.NewError(context, message))
  4514. } else {
  4515. requiredKeys := []string{"url"}
  4516. missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
  4517. if len(missingKeys) > 0 {
  4518. message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
  4519. errors = append(errors, compiler.NewError(context, message))
  4520. }
  4521. allowedKeys := []string{"description", "url", "variables"}
  4522. allowedPatterns := []*regexp.Regexp{pattern1}
  4523. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  4524. if len(invalidKeys) > 0 {
  4525. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  4526. errors = append(errors, compiler.NewError(context, message))
  4527. }
  4528. // string url = 1;
  4529. v1 := compiler.MapValueForKey(m, "url")
  4530. if v1 != nil {
  4531. x.Url, ok = compiler.StringForScalarNode(v1)
  4532. if !ok {
  4533. message := fmt.Sprintf("has unexpected value for url: %s", compiler.Display(v1))
  4534. errors = append(errors, compiler.NewError(context, message))
  4535. }
  4536. }
  4537. // string description = 2;
  4538. v2 := compiler.MapValueForKey(m, "description")
  4539. if v2 != nil {
  4540. x.Description, ok = compiler.StringForScalarNode(v2)
  4541. if !ok {
  4542. message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v2))
  4543. errors = append(errors, compiler.NewError(context, message))
  4544. }
  4545. }
  4546. // ServerVariables variables = 3;
  4547. v3 := compiler.MapValueForKey(m, "variables")
  4548. if v3 != nil {
  4549. var err error
  4550. x.Variables, err = NewServerVariables(v3, compiler.NewContext("variables", v3, context))
  4551. if err != nil {
  4552. errors = append(errors, err)
  4553. }
  4554. }
  4555. // repeated NamedAny specification_extension = 4;
  4556. // MAP: Any ^x-
  4557. x.SpecificationExtension = make([]*NamedAny, 0)
  4558. for i := 0; i < len(m.Content); i += 2 {
  4559. k, ok := compiler.StringForScalarNode(m.Content[i])
  4560. if ok {
  4561. v := m.Content[i+1]
  4562. if strings.HasPrefix(k, "x-") {
  4563. pair := &NamedAny{}
  4564. pair.Name = k
  4565. result := &Any{}
  4566. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  4567. if handled {
  4568. if err != nil {
  4569. errors = append(errors, err)
  4570. } else {
  4571. bytes := compiler.Marshal(v)
  4572. result.Yaml = string(bytes)
  4573. result.Value = resultFromExt
  4574. pair.Value = result
  4575. }
  4576. } else {
  4577. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  4578. if err != nil {
  4579. errors = append(errors, err)
  4580. }
  4581. }
  4582. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  4583. }
  4584. }
  4585. }
  4586. }
  4587. return x, compiler.NewErrorGroupOrNil(errors)
  4588. }
  4589. // NewServerVariable creates an object of type ServerVariable if possible, returning an error if not.
  4590. func NewServerVariable(in *yaml.Node, context *compiler.Context) (*ServerVariable, error) {
  4591. errors := make([]error, 0)
  4592. x := &ServerVariable{}
  4593. m, ok := compiler.UnpackMap(in)
  4594. if !ok {
  4595. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  4596. errors = append(errors, compiler.NewError(context, message))
  4597. } else {
  4598. requiredKeys := []string{"default"}
  4599. missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
  4600. if len(missingKeys) > 0 {
  4601. message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
  4602. errors = append(errors, compiler.NewError(context, message))
  4603. }
  4604. allowedKeys := []string{"default", "description", "enum"}
  4605. allowedPatterns := []*regexp.Regexp{pattern1}
  4606. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  4607. if len(invalidKeys) > 0 {
  4608. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  4609. errors = append(errors, compiler.NewError(context, message))
  4610. }
  4611. // repeated string enum = 1;
  4612. v1 := compiler.MapValueForKey(m, "enum")
  4613. if v1 != nil {
  4614. v, ok := compiler.SequenceNodeForNode(v1)
  4615. if ok {
  4616. x.Enum = compiler.StringArrayForSequenceNode(v)
  4617. } else {
  4618. message := fmt.Sprintf("has unexpected value for enum: %s", compiler.Display(v1))
  4619. errors = append(errors, compiler.NewError(context, message))
  4620. }
  4621. }
  4622. // string default = 2;
  4623. v2 := compiler.MapValueForKey(m, "default")
  4624. if v2 != nil {
  4625. x.Default, ok = compiler.StringForScalarNode(v2)
  4626. if !ok {
  4627. message := fmt.Sprintf("has unexpected value for default: %s", compiler.Display(v2))
  4628. errors = append(errors, compiler.NewError(context, message))
  4629. }
  4630. }
  4631. // string description = 3;
  4632. v3 := compiler.MapValueForKey(m, "description")
  4633. if v3 != nil {
  4634. x.Description, ok = compiler.StringForScalarNode(v3)
  4635. if !ok {
  4636. message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v3))
  4637. errors = append(errors, compiler.NewError(context, message))
  4638. }
  4639. }
  4640. // repeated NamedAny specification_extension = 4;
  4641. // MAP: Any ^x-
  4642. x.SpecificationExtension = make([]*NamedAny, 0)
  4643. for i := 0; i < len(m.Content); i += 2 {
  4644. k, ok := compiler.StringForScalarNode(m.Content[i])
  4645. if ok {
  4646. v := m.Content[i+1]
  4647. if strings.HasPrefix(k, "x-") {
  4648. pair := &NamedAny{}
  4649. pair.Name = k
  4650. result := &Any{}
  4651. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  4652. if handled {
  4653. if err != nil {
  4654. errors = append(errors, err)
  4655. } else {
  4656. bytes := compiler.Marshal(v)
  4657. result.Yaml = string(bytes)
  4658. result.Value = resultFromExt
  4659. pair.Value = result
  4660. }
  4661. } else {
  4662. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  4663. if err != nil {
  4664. errors = append(errors, err)
  4665. }
  4666. }
  4667. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  4668. }
  4669. }
  4670. }
  4671. }
  4672. return x, compiler.NewErrorGroupOrNil(errors)
  4673. }
  4674. // NewServerVariables creates an object of type ServerVariables if possible, returning an error if not.
  4675. func NewServerVariables(in *yaml.Node, context *compiler.Context) (*ServerVariables, error) {
  4676. errors := make([]error, 0)
  4677. x := &ServerVariables{}
  4678. m, ok := compiler.UnpackMap(in)
  4679. if !ok {
  4680. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  4681. errors = append(errors, compiler.NewError(context, message))
  4682. } else {
  4683. // repeated NamedServerVariable additional_properties = 1;
  4684. // MAP: ServerVariable
  4685. x.AdditionalProperties = make([]*NamedServerVariable, 0)
  4686. for i := 0; i < len(m.Content); i += 2 {
  4687. k, ok := compiler.StringForScalarNode(m.Content[i])
  4688. if ok {
  4689. v := m.Content[i+1]
  4690. pair := &NamedServerVariable{}
  4691. pair.Name = k
  4692. var err error
  4693. pair.Value, err = NewServerVariable(v, compiler.NewContext(k, v, context))
  4694. if err != nil {
  4695. errors = append(errors, err)
  4696. }
  4697. x.AdditionalProperties = append(x.AdditionalProperties, pair)
  4698. }
  4699. }
  4700. }
  4701. return x, compiler.NewErrorGroupOrNil(errors)
  4702. }
  4703. // NewSpecificationExtension creates an object of type SpecificationExtension if possible, returning an error if not.
  4704. func NewSpecificationExtension(in *yaml.Node, context *compiler.Context) (*SpecificationExtension, error) {
  4705. errors := make([]error, 0)
  4706. x := &SpecificationExtension{}
  4707. matched := false
  4708. switch in.Tag {
  4709. case "!!bool":
  4710. var v bool
  4711. v, matched = compiler.BoolForScalarNode(in)
  4712. x.Oneof = &SpecificationExtension_Boolean{Boolean: v}
  4713. case "!!str":
  4714. var v string
  4715. v, matched = compiler.StringForScalarNode(in)
  4716. x.Oneof = &SpecificationExtension_String_{String_: v}
  4717. case "!!float":
  4718. var v float64
  4719. v, matched = compiler.FloatForScalarNode(in)
  4720. x.Oneof = &SpecificationExtension_Number{Number: v}
  4721. case "!!int":
  4722. var v int64
  4723. v, matched = compiler.IntForScalarNode(in)
  4724. x.Oneof = &SpecificationExtension_Number{Number: float64(v)}
  4725. }
  4726. if matched {
  4727. // since the oneof matched one of its possibilities, discard any matching errors
  4728. errors = make([]error, 0)
  4729. }
  4730. return x, compiler.NewErrorGroupOrNil(errors)
  4731. }
  4732. // NewStringArray creates an object of type StringArray if possible, returning an error if not.
  4733. func NewStringArray(in *yaml.Node, context *compiler.Context) (*StringArray, error) {
  4734. errors := make([]error, 0)
  4735. x := &StringArray{}
  4736. x.Value = make([]string, 0)
  4737. for _, node := range in.Content {
  4738. s, _ := compiler.StringForScalarNode(node)
  4739. x.Value = append(x.Value, s)
  4740. }
  4741. return x, compiler.NewErrorGroupOrNil(errors)
  4742. }
  4743. // NewStrings creates an object of type Strings if possible, returning an error if not.
  4744. func NewStrings(in *yaml.Node, context *compiler.Context) (*Strings, error) {
  4745. errors := make([]error, 0)
  4746. x := &Strings{}
  4747. m, ok := compiler.UnpackMap(in)
  4748. if !ok {
  4749. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  4750. errors = append(errors, compiler.NewError(context, message))
  4751. } else {
  4752. // repeated NamedString additional_properties = 1;
  4753. // MAP: string
  4754. x.AdditionalProperties = make([]*NamedString, 0)
  4755. for i := 0; i < len(m.Content); i += 2 {
  4756. k, ok := compiler.StringForScalarNode(m.Content[i])
  4757. if ok {
  4758. v := m.Content[i+1]
  4759. pair := &NamedString{}
  4760. pair.Name = k
  4761. pair.Value, _ = compiler.StringForScalarNode(v)
  4762. x.AdditionalProperties = append(x.AdditionalProperties, pair)
  4763. }
  4764. }
  4765. }
  4766. return x, compiler.NewErrorGroupOrNil(errors)
  4767. }
  4768. // NewTag creates an object of type Tag if possible, returning an error if not.
  4769. func NewTag(in *yaml.Node, context *compiler.Context) (*Tag, error) {
  4770. errors := make([]error, 0)
  4771. x := &Tag{}
  4772. m, ok := compiler.UnpackMap(in)
  4773. if !ok {
  4774. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  4775. errors = append(errors, compiler.NewError(context, message))
  4776. } else {
  4777. requiredKeys := []string{"name"}
  4778. missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
  4779. if len(missingKeys) > 0 {
  4780. message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
  4781. errors = append(errors, compiler.NewError(context, message))
  4782. }
  4783. allowedKeys := []string{"description", "externalDocs", "name"}
  4784. allowedPatterns := []*regexp.Regexp{pattern1}
  4785. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  4786. if len(invalidKeys) > 0 {
  4787. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  4788. errors = append(errors, compiler.NewError(context, message))
  4789. }
  4790. // string name = 1;
  4791. v1 := compiler.MapValueForKey(m, "name")
  4792. if v1 != nil {
  4793. x.Name, ok = compiler.StringForScalarNode(v1)
  4794. if !ok {
  4795. message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
  4796. errors = append(errors, compiler.NewError(context, message))
  4797. }
  4798. }
  4799. // string description = 2;
  4800. v2 := compiler.MapValueForKey(m, "description")
  4801. if v2 != nil {
  4802. x.Description, ok = compiler.StringForScalarNode(v2)
  4803. if !ok {
  4804. message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v2))
  4805. errors = append(errors, compiler.NewError(context, message))
  4806. }
  4807. }
  4808. // ExternalDocs external_docs = 3;
  4809. v3 := compiler.MapValueForKey(m, "externalDocs")
  4810. if v3 != nil {
  4811. var err error
  4812. x.ExternalDocs, err = NewExternalDocs(v3, compiler.NewContext("externalDocs", v3, context))
  4813. if err != nil {
  4814. errors = append(errors, err)
  4815. }
  4816. }
  4817. // repeated NamedAny specification_extension = 4;
  4818. // MAP: Any ^x-
  4819. x.SpecificationExtension = make([]*NamedAny, 0)
  4820. for i := 0; i < len(m.Content); i += 2 {
  4821. k, ok := compiler.StringForScalarNode(m.Content[i])
  4822. if ok {
  4823. v := m.Content[i+1]
  4824. if strings.HasPrefix(k, "x-") {
  4825. pair := &NamedAny{}
  4826. pair.Name = k
  4827. result := &Any{}
  4828. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  4829. if handled {
  4830. if err != nil {
  4831. errors = append(errors, err)
  4832. } else {
  4833. bytes := compiler.Marshal(v)
  4834. result.Yaml = string(bytes)
  4835. result.Value = resultFromExt
  4836. pair.Value = result
  4837. }
  4838. } else {
  4839. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  4840. if err != nil {
  4841. errors = append(errors, err)
  4842. }
  4843. }
  4844. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  4845. }
  4846. }
  4847. }
  4848. }
  4849. return x, compiler.NewErrorGroupOrNil(errors)
  4850. }
  4851. // NewXml creates an object of type Xml if possible, returning an error if not.
  4852. func NewXml(in *yaml.Node, context *compiler.Context) (*Xml, error) {
  4853. errors := make([]error, 0)
  4854. x := &Xml{}
  4855. m, ok := compiler.UnpackMap(in)
  4856. if !ok {
  4857. message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
  4858. errors = append(errors, compiler.NewError(context, message))
  4859. } else {
  4860. allowedKeys := []string{"attribute", "name", "namespace", "prefix", "wrapped"}
  4861. allowedPatterns := []*regexp.Regexp{pattern1}
  4862. invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
  4863. if len(invalidKeys) > 0 {
  4864. message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
  4865. errors = append(errors, compiler.NewError(context, message))
  4866. }
  4867. // string name = 1;
  4868. v1 := compiler.MapValueForKey(m, "name")
  4869. if v1 != nil {
  4870. x.Name, ok = compiler.StringForScalarNode(v1)
  4871. if !ok {
  4872. message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
  4873. errors = append(errors, compiler.NewError(context, message))
  4874. }
  4875. }
  4876. // string namespace = 2;
  4877. v2 := compiler.MapValueForKey(m, "namespace")
  4878. if v2 != nil {
  4879. x.Namespace, ok = compiler.StringForScalarNode(v2)
  4880. if !ok {
  4881. message := fmt.Sprintf("has unexpected value for namespace: %s", compiler.Display(v2))
  4882. errors = append(errors, compiler.NewError(context, message))
  4883. }
  4884. }
  4885. // string prefix = 3;
  4886. v3 := compiler.MapValueForKey(m, "prefix")
  4887. if v3 != nil {
  4888. x.Prefix, ok = compiler.StringForScalarNode(v3)
  4889. if !ok {
  4890. message := fmt.Sprintf("has unexpected value for prefix: %s", compiler.Display(v3))
  4891. errors = append(errors, compiler.NewError(context, message))
  4892. }
  4893. }
  4894. // bool attribute = 4;
  4895. v4 := compiler.MapValueForKey(m, "attribute")
  4896. if v4 != nil {
  4897. x.Attribute, ok = compiler.BoolForScalarNode(v4)
  4898. if !ok {
  4899. message := fmt.Sprintf("has unexpected value for attribute: %s", compiler.Display(v4))
  4900. errors = append(errors, compiler.NewError(context, message))
  4901. }
  4902. }
  4903. // bool wrapped = 5;
  4904. v5 := compiler.MapValueForKey(m, "wrapped")
  4905. if v5 != nil {
  4906. x.Wrapped, ok = compiler.BoolForScalarNode(v5)
  4907. if !ok {
  4908. message := fmt.Sprintf("has unexpected value for wrapped: %s", compiler.Display(v5))
  4909. errors = append(errors, compiler.NewError(context, message))
  4910. }
  4911. }
  4912. // repeated NamedAny specification_extension = 6;
  4913. // MAP: Any ^x-
  4914. x.SpecificationExtension = make([]*NamedAny, 0)
  4915. for i := 0; i < len(m.Content); i += 2 {
  4916. k, ok := compiler.StringForScalarNode(m.Content[i])
  4917. if ok {
  4918. v := m.Content[i+1]
  4919. if strings.HasPrefix(k, "x-") {
  4920. pair := &NamedAny{}
  4921. pair.Name = k
  4922. result := &Any{}
  4923. handled, resultFromExt, err := compiler.CallExtension(context, v, k)
  4924. if handled {
  4925. if err != nil {
  4926. errors = append(errors, err)
  4927. } else {
  4928. bytes := compiler.Marshal(v)
  4929. result.Yaml = string(bytes)
  4930. result.Value = resultFromExt
  4931. pair.Value = result
  4932. }
  4933. } else {
  4934. pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
  4935. if err != nil {
  4936. errors = append(errors, err)
  4937. }
  4938. }
  4939. x.SpecificationExtension = append(x.SpecificationExtension, pair)
  4940. }
  4941. }
  4942. }
  4943. }
  4944. return x, compiler.NewErrorGroupOrNil(errors)
  4945. }
  4946. // ResolveReferences resolves references found inside AdditionalPropertiesItem objects.
  4947. func (m *AdditionalPropertiesItem) ResolveReferences(root string) (*yaml.Node, error) {
  4948. errors := make([]error, 0)
  4949. {
  4950. p, ok := m.Oneof.(*AdditionalPropertiesItem_SchemaOrReference)
  4951. if ok {
  4952. _, err := p.SchemaOrReference.ResolveReferences(root)
  4953. if err != nil {
  4954. return nil, err
  4955. }
  4956. }
  4957. }
  4958. return nil, compiler.NewErrorGroupOrNil(errors)
  4959. }
  4960. // ResolveReferences resolves references found inside Any objects.
  4961. func (m *Any) ResolveReferences(root string) (*yaml.Node, error) {
  4962. errors := make([]error, 0)
  4963. return nil, compiler.NewErrorGroupOrNil(errors)
  4964. }
  4965. // ResolveReferences resolves references found inside AnyOrExpression objects.
  4966. func (m *AnyOrExpression) ResolveReferences(root string) (*yaml.Node, error) {
  4967. errors := make([]error, 0)
  4968. {
  4969. p, ok := m.Oneof.(*AnyOrExpression_Any)
  4970. if ok {
  4971. _, err := p.Any.ResolveReferences(root)
  4972. if err != nil {
  4973. return nil, err
  4974. }
  4975. }
  4976. }
  4977. {
  4978. p, ok := m.Oneof.(*AnyOrExpression_Expression)
  4979. if ok {
  4980. _, err := p.Expression.ResolveReferences(root)
  4981. if err != nil {
  4982. return nil, err
  4983. }
  4984. }
  4985. }
  4986. return nil, compiler.NewErrorGroupOrNil(errors)
  4987. }
  4988. // ResolveReferences resolves references found inside Callback objects.
  4989. func (m *Callback) ResolveReferences(root string) (*yaml.Node, error) {
  4990. errors := make([]error, 0)
  4991. for _, item := range m.Path {
  4992. if item != nil {
  4993. _, err := item.ResolveReferences(root)
  4994. if err != nil {
  4995. errors = append(errors, err)
  4996. }
  4997. }
  4998. }
  4999. for _, item := range m.SpecificationExtension {
  5000. if item != nil {
  5001. _, err := item.ResolveReferences(root)
  5002. if err != nil {
  5003. errors = append(errors, err)
  5004. }
  5005. }
  5006. }
  5007. return nil, compiler.NewErrorGroupOrNil(errors)
  5008. }
  5009. // ResolveReferences resolves references found inside CallbackOrReference objects.
  5010. func (m *CallbackOrReference) ResolveReferences(root string) (*yaml.Node, error) {
  5011. errors := make([]error, 0)
  5012. {
  5013. p, ok := m.Oneof.(*CallbackOrReference_Callback)
  5014. if ok {
  5015. _, err := p.Callback.ResolveReferences(root)
  5016. if err != nil {
  5017. return nil, err
  5018. }
  5019. }
  5020. }
  5021. {
  5022. p, ok := m.Oneof.(*CallbackOrReference_Reference)
  5023. if ok {
  5024. _, err := p.Reference.ResolveReferences(root)
  5025. if err != nil {
  5026. return nil, err
  5027. }
  5028. }
  5029. }
  5030. return nil, compiler.NewErrorGroupOrNil(errors)
  5031. }
  5032. // ResolveReferences resolves references found inside CallbacksOrReferences objects.
  5033. func (m *CallbacksOrReferences) ResolveReferences(root string) (*yaml.Node, error) {
  5034. errors := make([]error, 0)
  5035. for _, item := range m.AdditionalProperties {
  5036. if item != nil {
  5037. _, err := item.ResolveReferences(root)
  5038. if err != nil {
  5039. errors = append(errors, err)
  5040. }
  5041. }
  5042. }
  5043. return nil, compiler.NewErrorGroupOrNil(errors)
  5044. }
  5045. // ResolveReferences resolves references found inside Components objects.
  5046. func (m *Components) ResolveReferences(root string) (*yaml.Node, error) {
  5047. errors := make([]error, 0)
  5048. if m.Schemas != nil {
  5049. _, err := m.Schemas.ResolveReferences(root)
  5050. if err != nil {
  5051. errors = append(errors, err)
  5052. }
  5053. }
  5054. if m.Responses != nil {
  5055. _, err := m.Responses.ResolveReferences(root)
  5056. if err != nil {
  5057. errors = append(errors, err)
  5058. }
  5059. }
  5060. if m.Parameters != nil {
  5061. _, err := m.Parameters.ResolveReferences(root)
  5062. if err != nil {
  5063. errors = append(errors, err)
  5064. }
  5065. }
  5066. if m.Examples != nil {
  5067. _, err := m.Examples.ResolveReferences(root)
  5068. if err != nil {
  5069. errors = append(errors, err)
  5070. }
  5071. }
  5072. if m.RequestBodies != nil {
  5073. _, err := m.RequestBodies.ResolveReferences(root)
  5074. if err != nil {
  5075. errors = append(errors, err)
  5076. }
  5077. }
  5078. if m.Headers != nil {
  5079. _, err := m.Headers.ResolveReferences(root)
  5080. if err != nil {
  5081. errors = append(errors, err)
  5082. }
  5083. }
  5084. if m.SecuritySchemes != nil {
  5085. _, err := m.SecuritySchemes.ResolveReferences(root)
  5086. if err != nil {
  5087. errors = append(errors, err)
  5088. }
  5089. }
  5090. if m.Links != nil {
  5091. _, err := m.Links.ResolveReferences(root)
  5092. if err != nil {
  5093. errors = append(errors, err)
  5094. }
  5095. }
  5096. if m.Callbacks != nil {
  5097. _, err := m.Callbacks.ResolveReferences(root)
  5098. if err != nil {
  5099. errors = append(errors, err)
  5100. }
  5101. }
  5102. for _, item := range m.SpecificationExtension {
  5103. if item != nil {
  5104. _, err := item.ResolveReferences(root)
  5105. if err != nil {
  5106. errors = append(errors, err)
  5107. }
  5108. }
  5109. }
  5110. return nil, compiler.NewErrorGroupOrNil(errors)
  5111. }
  5112. // ResolveReferences resolves references found inside Contact objects.
  5113. func (m *Contact) ResolveReferences(root string) (*yaml.Node, error) {
  5114. errors := make([]error, 0)
  5115. for _, item := range m.SpecificationExtension {
  5116. if item != nil {
  5117. _, err := item.ResolveReferences(root)
  5118. if err != nil {
  5119. errors = append(errors, err)
  5120. }
  5121. }
  5122. }
  5123. return nil, compiler.NewErrorGroupOrNil(errors)
  5124. }
  5125. // ResolveReferences resolves references found inside DefaultType objects.
  5126. func (m *DefaultType) ResolveReferences(root string) (*yaml.Node, error) {
  5127. errors := make([]error, 0)
  5128. return nil, compiler.NewErrorGroupOrNil(errors)
  5129. }
  5130. // ResolveReferences resolves references found inside Discriminator objects.
  5131. func (m *Discriminator) ResolveReferences(root string) (*yaml.Node, error) {
  5132. errors := make([]error, 0)
  5133. if m.Mapping != nil {
  5134. _, err := m.Mapping.ResolveReferences(root)
  5135. if err != nil {
  5136. errors = append(errors, err)
  5137. }
  5138. }
  5139. for _, item := range m.SpecificationExtension {
  5140. if item != nil {
  5141. _, err := item.ResolveReferences(root)
  5142. if err != nil {
  5143. errors = append(errors, err)
  5144. }
  5145. }
  5146. }
  5147. return nil, compiler.NewErrorGroupOrNil(errors)
  5148. }
  5149. // ResolveReferences resolves references found inside Document objects.
  5150. func (m *Document) ResolveReferences(root string) (*yaml.Node, error) {
  5151. errors := make([]error, 0)
  5152. if m.Info != nil {
  5153. _, err := m.Info.ResolveReferences(root)
  5154. if err != nil {
  5155. errors = append(errors, err)
  5156. }
  5157. }
  5158. for _, item := range m.Servers {
  5159. if item != nil {
  5160. _, err := item.ResolveReferences(root)
  5161. if err != nil {
  5162. errors = append(errors, err)
  5163. }
  5164. }
  5165. }
  5166. if m.Paths != nil {
  5167. _, err := m.Paths.ResolveReferences(root)
  5168. if err != nil {
  5169. errors = append(errors, err)
  5170. }
  5171. }
  5172. if m.Components != nil {
  5173. _, err := m.Components.ResolveReferences(root)
  5174. if err != nil {
  5175. errors = append(errors, err)
  5176. }
  5177. }
  5178. for _, item := range m.Security {
  5179. if item != nil {
  5180. _, err := item.ResolveReferences(root)
  5181. if err != nil {
  5182. errors = append(errors, err)
  5183. }
  5184. }
  5185. }
  5186. for _, item := range m.Tags {
  5187. if item != nil {
  5188. _, err := item.ResolveReferences(root)
  5189. if err != nil {
  5190. errors = append(errors, err)
  5191. }
  5192. }
  5193. }
  5194. if m.ExternalDocs != nil {
  5195. _, err := m.ExternalDocs.ResolveReferences(root)
  5196. if err != nil {
  5197. errors = append(errors, err)
  5198. }
  5199. }
  5200. for _, item := range m.SpecificationExtension {
  5201. if item != nil {
  5202. _, err := item.ResolveReferences(root)
  5203. if err != nil {
  5204. errors = append(errors, err)
  5205. }
  5206. }
  5207. }
  5208. return nil, compiler.NewErrorGroupOrNil(errors)
  5209. }
  5210. // ResolveReferences resolves references found inside Encoding objects.
  5211. func (m *Encoding) ResolveReferences(root string) (*yaml.Node, error) {
  5212. errors := make([]error, 0)
  5213. if m.Headers != nil {
  5214. _, err := m.Headers.ResolveReferences(root)
  5215. if err != nil {
  5216. errors = append(errors, err)
  5217. }
  5218. }
  5219. for _, item := range m.SpecificationExtension {
  5220. if item != nil {
  5221. _, err := item.ResolveReferences(root)
  5222. if err != nil {
  5223. errors = append(errors, err)
  5224. }
  5225. }
  5226. }
  5227. return nil, compiler.NewErrorGroupOrNil(errors)
  5228. }
  5229. // ResolveReferences resolves references found inside Encodings objects.
  5230. func (m *Encodings) ResolveReferences(root string) (*yaml.Node, error) {
  5231. errors := make([]error, 0)
  5232. for _, item := range m.AdditionalProperties {
  5233. if item != nil {
  5234. _, err := item.ResolveReferences(root)
  5235. if err != nil {
  5236. errors = append(errors, err)
  5237. }
  5238. }
  5239. }
  5240. return nil, compiler.NewErrorGroupOrNil(errors)
  5241. }
  5242. // ResolveReferences resolves references found inside Example objects.
  5243. func (m *Example) ResolveReferences(root string) (*yaml.Node, error) {
  5244. errors := make([]error, 0)
  5245. if m.Value != nil {
  5246. _, err := m.Value.ResolveReferences(root)
  5247. if err != nil {
  5248. errors = append(errors, err)
  5249. }
  5250. }
  5251. for _, item := range m.SpecificationExtension {
  5252. if item != nil {
  5253. _, err := item.ResolveReferences(root)
  5254. if err != nil {
  5255. errors = append(errors, err)
  5256. }
  5257. }
  5258. }
  5259. return nil, compiler.NewErrorGroupOrNil(errors)
  5260. }
  5261. // ResolveReferences resolves references found inside ExampleOrReference objects.
  5262. func (m *ExampleOrReference) ResolveReferences(root string) (*yaml.Node, error) {
  5263. errors := make([]error, 0)
  5264. {
  5265. p, ok := m.Oneof.(*ExampleOrReference_Example)
  5266. if ok {
  5267. _, err := p.Example.ResolveReferences(root)
  5268. if err != nil {
  5269. return nil, err
  5270. }
  5271. }
  5272. }
  5273. {
  5274. p, ok := m.Oneof.(*ExampleOrReference_Reference)
  5275. if ok {
  5276. _, err := p.Reference.ResolveReferences(root)
  5277. if err != nil {
  5278. return nil, err
  5279. }
  5280. }
  5281. }
  5282. return nil, compiler.NewErrorGroupOrNil(errors)
  5283. }
  5284. // ResolveReferences resolves references found inside ExamplesOrReferences objects.
  5285. func (m *ExamplesOrReferences) ResolveReferences(root string) (*yaml.Node, error) {
  5286. errors := make([]error, 0)
  5287. for _, item := range m.AdditionalProperties {
  5288. if item != nil {
  5289. _, err := item.ResolveReferences(root)
  5290. if err != nil {
  5291. errors = append(errors, err)
  5292. }
  5293. }
  5294. }
  5295. return nil, compiler.NewErrorGroupOrNil(errors)
  5296. }
  5297. // ResolveReferences resolves references found inside Expression objects.
  5298. func (m *Expression) ResolveReferences(root string) (*yaml.Node, error) {
  5299. errors := make([]error, 0)
  5300. for _, item := range m.AdditionalProperties {
  5301. if item != nil {
  5302. _, err := item.ResolveReferences(root)
  5303. if err != nil {
  5304. errors = append(errors, err)
  5305. }
  5306. }
  5307. }
  5308. return nil, compiler.NewErrorGroupOrNil(errors)
  5309. }
  5310. // ResolveReferences resolves references found inside ExternalDocs objects.
  5311. func (m *ExternalDocs) ResolveReferences(root string) (*yaml.Node, error) {
  5312. errors := make([]error, 0)
  5313. for _, item := range m.SpecificationExtension {
  5314. if item != nil {
  5315. _, err := item.ResolveReferences(root)
  5316. if err != nil {
  5317. errors = append(errors, err)
  5318. }
  5319. }
  5320. }
  5321. return nil, compiler.NewErrorGroupOrNil(errors)
  5322. }
  5323. // ResolveReferences resolves references found inside Header objects.
  5324. func (m *Header) ResolveReferences(root string) (*yaml.Node, error) {
  5325. errors := make([]error, 0)
  5326. if m.Schema != nil {
  5327. _, err := m.Schema.ResolveReferences(root)
  5328. if err != nil {
  5329. errors = append(errors, err)
  5330. }
  5331. }
  5332. if m.Example != nil {
  5333. _, err := m.Example.ResolveReferences(root)
  5334. if err != nil {
  5335. errors = append(errors, err)
  5336. }
  5337. }
  5338. if m.Examples != nil {
  5339. _, err := m.Examples.ResolveReferences(root)
  5340. if err != nil {
  5341. errors = append(errors, err)
  5342. }
  5343. }
  5344. if m.Content != nil {
  5345. _, err := m.Content.ResolveReferences(root)
  5346. if err != nil {
  5347. errors = append(errors, err)
  5348. }
  5349. }
  5350. for _, item := range m.SpecificationExtension {
  5351. if item != nil {
  5352. _, err := item.ResolveReferences(root)
  5353. if err != nil {
  5354. errors = append(errors, err)
  5355. }
  5356. }
  5357. }
  5358. return nil, compiler.NewErrorGroupOrNil(errors)
  5359. }
  5360. // ResolveReferences resolves references found inside HeaderOrReference objects.
  5361. func (m *HeaderOrReference) ResolveReferences(root string) (*yaml.Node, error) {
  5362. errors := make([]error, 0)
  5363. {
  5364. p, ok := m.Oneof.(*HeaderOrReference_Header)
  5365. if ok {
  5366. _, err := p.Header.ResolveReferences(root)
  5367. if err != nil {
  5368. return nil, err
  5369. }
  5370. }
  5371. }
  5372. {
  5373. p, ok := m.Oneof.(*HeaderOrReference_Reference)
  5374. if ok {
  5375. _, err := p.Reference.ResolveReferences(root)
  5376. if err != nil {
  5377. return nil, err
  5378. }
  5379. }
  5380. }
  5381. return nil, compiler.NewErrorGroupOrNil(errors)
  5382. }
  5383. // ResolveReferences resolves references found inside HeadersOrReferences objects.
  5384. func (m *HeadersOrReferences) ResolveReferences(root string) (*yaml.Node, error) {
  5385. errors := make([]error, 0)
  5386. for _, item := range m.AdditionalProperties {
  5387. if item != nil {
  5388. _, err := item.ResolveReferences(root)
  5389. if err != nil {
  5390. errors = append(errors, err)
  5391. }
  5392. }
  5393. }
  5394. return nil, compiler.NewErrorGroupOrNil(errors)
  5395. }
  5396. // ResolveReferences resolves references found inside Info objects.
  5397. func (m *Info) ResolveReferences(root string) (*yaml.Node, error) {
  5398. errors := make([]error, 0)
  5399. if m.Contact != nil {
  5400. _, err := m.Contact.ResolveReferences(root)
  5401. if err != nil {
  5402. errors = append(errors, err)
  5403. }
  5404. }
  5405. if m.License != nil {
  5406. _, err := m.License.ResolveReferences(root)
  5407. if err != nil {
  5408. errors = append(errors, err)
  5409. }
  5410. }
  5411. for _, item := range m.SpecificationExtension {
  5412. if item != nil {
  5413. _, err := item.ResolveReferences(root)
  5414. if err != nil {
  5415. errors = append(errors, err)
  5416. }
  5417. }
  5418. }
  5419. return nil, compiler.NewErrorGroupOrNil(errors)
  5420. }
  5421. // ResolveReferences resolves references found inside ItemsItem objects.
  5422. func (m *ItemsItem) ResolveReferences(root string) (*yaml.Node, error) {
  5423. errors := make([]error, 0)
  5424. for _, item := range m.SchemaOrReference {
  5425. if item != nil {
  5426. _, err := item.ResolveReferences(root)
  5427. if err != nil {
  5428. errors = append(errors, err)
  5429. }
  5430. }
  5431. }
  5432. return nil, compiler.NewErrorGroupOrNil(errors)
  5433. }
  5434. // ResolveReferences resolves references found inside License objects.
  5435. func (m *License) ResolveReferences(root string) (*yaml.Node, error) {
  5436. errors := make([]error, 0)
  5437. for _, item := range m.SpecificationExtension {
  5438. if item != nil {
  5439. _, err := item.ResolveReferences(root)
  5440. if err != nil {
  5441. errors = append(errors, err)
  5442. }
  5443. }
  5444. }
  5445. return nil, compiler.NewErrorGroupOrNil(errors)
  5446. }
  5447. // ResolveReferences resolves references found inside Link objects.
  5448. func (m *Link) ResolveReferences(root string) (*yaml.Node, error) {
  5449. errors := make([]error, 0)
  5450. if m.Parameters != nil {
  5451. _, err := m.Parameters.ResolveReferences(root)
  5452. if err != nil {
  5453. errors = append(errors, err)
  5454. }
  5455. }
  5456. if m.RequestBody != nil {
  5457. _, err := m.RequestBody.ResolveReferences(root)
  5458. if err != nil {
  5459. errors = append(errors, err)
  5460. }
  5461. }
  5462. if m.Server != nil {
  5463. _, err := m.Server.ResolveReferences(root)
  5464. if err != nil {
  5465. errors = append(errors, err)
  5466. }
  5467. }
  5468. for _, item := range m.SpecificationExtension {
  5469. if item != nil {
  5470. _, err := item.ResolveReferences(root)
  5471. if err != nil {
  5472. errors = append(errors, err)
  5473. }
  5474. }
  5475. }
  5476. return nil, compiler.NewErrorGroupOrNil(errors)
  5477. }
  5478. // ResolveReferences resolves references found inside LinkOrReference objects.
  5479. func (m *LinkOrReference) ResolveReferences(root string) (*yaml.Node, error) {
  5480. errors := make([]error, 0)
  5481. {
  5482. p, ok := m.Oneof.(*LinkOrReference_Link)
  5483. if ok {
  5484. _, err := p.Link.ResolveReferences(root)
  5485. if err != nil {
  5486. return nil, err
  5487. }
  5488. }
  5489. }
  5490. {
  5491. p, ok := m.Oneof.(*LinkOrReference_Reference)
  5492. if ok {
  5493. _, err := p.Reference.ResolveReferences(root)
  5494. if err != nil {
  5495. return nil, err
  5496. }
  5497. }
  5498. }
  5499. return nil, compiler.NewErrorGroupOrNil(errors)
  5500. }
  5501. // ResolveReferences resolves references found inside LinksOrReferences objects.
  5502. func (m *LinksOrReferences) ResolveReferences(root string) (*yaml.Node, error) {
  5503. errors := make([]error, 0)
  5504. for _, item := range m.AdditionalProperties {
  5505. if item != nil {
  5506. _, err := item.ResolveReferences(root)
  5507. if err != nil {
  5508. errors = append(errors, err)
  5509. }
  5510. }
  5511. }
  5512. return nil, compiler.NewErrorGroupOrNil(errors)
  5513. }
  5514. // ResolveReferences resolves references found inside MediaType objects.
  5515. func (m *MediaType) ResolveReferences(root string) (*yaml.Node, error) {
  5516. errors := make([]error, 0)
  5517. if m.Schema != nil {
  5518. _, err := m.Schema.ResolveReferences(root)
  5519. if err != nil {
  5520. errors = append(errors, err)
  5521. }
  5522. }
  5523. if m.Example != nil {
  5524. _, err := m.Example.ResolveReferences(root)
  5525. if err != nil {
  5526. errors = append(errors, err)
  5527. }
  5528. }
  5529. if m.Examples != nil {
  5530. _, err := m.Examples.ResolveReferences(root)
  5531. if err != nil {
  5532. errors = append(errors, err)
  5533. }
  5534. }
  5535. if m.Encoding != nil {
  5536. _, err := m.Encoding.ResolveReferences(root)
  5537. if err != nil {
  5538. errors = append(errors, err)
  5539. }
  5540. }
  5541. for _, item := range m.SpecificationExtension {
  5542. if item != nil {
  5543. _, err := item.ResolveReferences(root)
  5544. if err != nil {
  5545. errors = append(errors, err)
  5546. }
  5547. }
  5548. }
  5549. return nil, compiler.NewErrorGroupOrNil(errors)
  5550. }
  5551. // ResolveReferences resolves references found inside MediaTypes objects.
  5552. func (m *MediaTypes) ResolveReferences(root string) (*yaml.Node, error) {
  5553. errors := make([]error, 0)
  5554. for _, item := range m.AdditionalProperties {
  5555. if item != nil {
  5556. _, err := item.ResolveReferences(root)
  5557. if err != nil {
  5558. errors = append(errors, err)
  5559. }
  5560. }
  5561. }
  5562. return nil, compiler.NewErrorGroupOrNil(errors)
  5563. }
  5564. // ResolveReferences resolves references found inside NamedAny objects.
  5565. func (m *NamedAny) ResolveReferences(root string) (*yaml.Node, error) {
  5566. errors := make([]error, 0)
  5567. if m.Value != nil {
  5568. _, err := m.Value.ResolveReferences(root)
  5569. if err != nil {
  5570. errors = append(errors, err)
  5571. }
  5572. }
  5573. return nil, compiler.NewErrorGroupOrNil(errors)
  5574. }
  5575. // ResolveReferences resolves references found inside NamedCallbackOrReference objects.
  5576. func (m *NamedCallbackOrReference) ResolveReferences(root string) (*yaml.Node, error) {
  5577. errors := make([]error, 0)
  5578. if m.Value != nil {
  5579. _, err := m.Value.ResolveReferences(root)
  5580. if err != nil {
  5581. errors = append(errors, err)
  5582. }
  5583. }
  5584. return nil, compiler.NewErrorGroupOrNil(errors)
  5585. }
  5586. // ResolveReferences resolves references found inside NamedEncoding objects.
  5587. func (m *NamedEncoding) ResolveReferences(root string) (*yaml.Node, error) {
  5588. errors := make([]error, 0)
  5589. if m.Value != nil {
  5590. _, err := m.Value.ResolveReferences(root)
  5591. if err != nil {
  5592. errors = append(errors, err)
  5593. }
  5594. }
  5595. return nil, compiler.NewErrorGroupOrNil(errors)
  5596. }
  5597. // ResolveReferences resolves references found inside NamedExampleOrReference objects.
  5598. func (m *NamedExampleOrReference) ResolveReferences(root string) (*yaml.Node, error) {
  5599. errors := make([]error, 0)
  5600. if m.Value != nil {
  5601. _, err := m.Value.ResolveReferences(root)
  5602. if err != nil {
  5603. errors = append(errors, err)
  5604. }
  5605. }
  5606. return nil, compiler.NewErrorGroupOrNil(errors)
  5607. }
  5608. // ResolveReferences resolves references found inside NamedHeaderOrReference objects.
  5609. func (m *NamedHeaderOrReference) ResolveReferences(root string) (*yaml.Node, error) {
  5610. errors := make([]error, 0)
  5611. if m.Value != nil {
  5612. _, err := m.Value.ResolveReferences(root)
  5613. if err != nil {
  5614. errors = append(errors, err)
  5615. }
  5616. }
  5617. return nil, compiler.NewErrorGroupOrNil(errors)
  5618. }
  5619. // ResolveReferences resolves references found inside NamedLinkOrReference objects.
  5620. func (m *NamedLinkOrReference) ResolveReferences(root string) (*yaml.Node, error) {
  5621. errors := make([]error, 0)
  5622. if m.Value != nil {
  5623. _, err := m.Value.ResolveReferences(root)
  5624. if err != nil {
  5625. errors = append(errors, err)
  5626. }
  5627. }
  5628. return nil, compiler.NewErrorGroupOrNil(errors)
  5629. }
  5630. // ResolveReferences resolves references found inside NamedMediaType objects.
  5631. func (m *NamedMediaType) ResolveReferences(root string) (*yaml.Node, error) {
  5632. errors := make([]error, 0)
  5633. if m.Value != nil {
  5634. _, err := m.Value.ResolveReferences(root)
  5635. if err != nil {
  5636. errors = append(errors, err)
  5637. }
  5638. }
  5639. return nil, compiler.NewErrorGroupOrNil(errors)
  5640. }
  5641. // ResolveReferences resolves references found inside NamedParameterOrReference objects.
  5642. func (m *NamedParameterOrReference) ResolveReferences(root string) (*yaml.Node, error) {
  5643. errors := make([]error, 0)
  5644. if m.Value != nil {
  5645. _, err := m.Value.ResolveReferences(root)
  5646. if err != nil {
  5647. errors = append(errors, err)
  5648. }
  5649. }
  5650. return nil, compiler.NewErrorGroupOrNil(errors)
  5651. }
  5652. // ResolveReferences resolves references found inside NamedPathItem objects.
  5653. func (m *NamedPathItem) ResolveReferences(root string) (*yaml.Node, error) {
  5654. errors := make([]error, 0)
  5655. if m.Value != nil {
  5656. _, err := m.Value.ResolveReferences(root)
  5657. if err != nil {
  5658. errors = append(errors, err)
  5659. }
  5660. }
  5661. return nil, compiler.NewErrorGroupOrNil(errors)
  5662. }
  5663. // ResolveReferences resolves references found inside NamedRequestBodyOrReference objects.
  5664. func (m *NamedRequestBodyOrReference) ResolveReferences(root string) (*yaml.Node, error) {
  5665. errors := make([]error, 0)
  5666. if m.Value != nil {
  5667. _, err := m.Value.ResolveReferences(root)
  5668. if err != nil {
  5669. errors = append(errors, err)
  5670. }
  5671. }
  5672. return nil, compiler.NewErrorGroupOrNil(errors)
  5673. }
  5674. // ResolveReferences resolves references found inside NamedResponseOrReference objects.
  5675. func (m *NamedResponseOrReference) ResolveReferences(root string) (*yaml.Node, error) {
  5676. errors := make([]error, 0)
  5677. if m.Value != nil {
  5678. _, err := m.Value.ResolveReferences(root)
  5679. if err != nil {
  5680. errors = append(errors, err)
  5681. }
  5682. }
  5683. return nil, compiler.NewErrorGroupOrNil(errors)
  5684. }
  5685. // ResolveReferences resolves references found inside NamedSchemaOrReference objects.
  5686. func (m *NamedSchemaOrReference) ResolveReferences(root string) (*yaml.Node, error) {
  5687. errors := make([]error, 0)
  5688. if m.Value != nil {
  5689. _, err := m.Value.ResolveReferences(root)
  5690. if err != nil {
  5691. errors = append(errors, err)
  5692. }
  5693. }
  5694. return nil, compiler.NewErrorGroupOrNil(errors)
  5695. }
  5696. // ResolveReferences resolves references found inside NamedSecuritySchemeOrReference objects.
  5697. func (m *NamedSecuritySchemeOrReference) ResolveReferences(root string) (*yaml.Node, error) {
  5698. errors := make([]error, 0)
  5699. if m.Value != nil {
  5700. _, err := m.Value.ResolveReferences(root)
  5701. if err != nil {
  5702. errors = append(errors, err)
  5703. }
  5704. }
  5705. return nil, compiler.NewErrorGroupOrNil(errors)
  5706. }
  5707. // ResolveReferences resolves references found inside NamedServerVariable objects.
  5708. func (m *NamedServerVariable) ResolveReferences(root string) (*yaml.Node, error) {
  5709. errors := make([]error, 0)
  5710. if m.Value != nil {
  5711. _, err := m.Value.ResolveReferences(root)
  5712. if err != nil {
  5713. errors = append(errors, err)
  5714. }
  5715. }
  5716. return nil, compiler.NewErrorGroupOrNil(errors)
  5717. }
  5718. // ResolveReferences resolves references found inside NamedString objects.
  5719. func (m *NamedString) ResolveReferences(root string) (*yaml.Node, error) {
  5720. errors := make([]error, 0)
  5721. return nil, compiler.NewErrorGroupOrNil(errors)
  5722. }
  5723. // ResolveReferences resolves references found inside NamedStringArray objects.
  5724. func (m *NamedStringArray) ResolveReferences(root string) (*yaml.Node, error) {
  5725. errors := make([]error, 0)
  5726. if m.Value != nil {
  5727. _, err := m.Value.ResolveReferences(root)
  5728. if err != nil {
  5729. errors = append(errors, err)
  5730. }
  5731. }
  5732. return nil, compiler.NewErrorGroupOrNil(errors)
  5733. }
  5734. // ResolveReferences resolves references found inside OauthFlow objects.
  5735. func (m *OauthFlow) ResolveReferences(root string) (*yaml.Node, error) {
  5736. errors := make([]error, 0)
  5737. if m.Scopes != nil {
  5738. _, err := m.Scopes.ResolveReferences(root)
  5739. if err != nil {
  5740. errors = append(errors, err)
  5741. }
  5742. }
  5743. for _, item := range m.SpecificationExtension {
  5744. if item != nil {
  5745. _, err := item.ResolveReferences(root)
  5746. if err != nil {
  5747. errors = append(errors, err)
  5748. }
  5749. }
  5750. }
  5751. return nil, compiler.NewErrorGroupOrNil(errors)
  5752. }
  5753. // ResolveReferences resolves references found inside OauthFlows objects.
  5754. func (m *OauthFlows) ResolveReferences(root string) (*yaml.Node, error) {
  5755. errors := make([]error, 0)
  5756. if m.Implicit != nil {
  5757. _, err := m.Implicit.ResolveReferences(root)
  5758. if err != nil {
  5759. errors = append(errors, err)
  5760. }
  5761. }
  5762. if m.Password != nil {
  5763. _, err := m.Password.ResolveReferences(root)
  5764. if err != nil {
  5765. errors = append(errors, err)
  5766. }
  5767. }
  5768. if m.ClientCredentials != nil {
  5769. _, err := m.ClientCredentials.ResolveReferences(root)
  5770. if err != nil {
  5771. errors = append(errors, err)
  5772. }
  5773. }
  5774. if m.AuthorizationCode != nil {
  5775. _, err := m.AuthorizationCode.ResolveReferences(root)
  5776. if err != nil {
  5777. errors = append(errors, err)
  5778. }
  5779. }
  5780. for _, item := range m.SpecificationExtension {
  5781. if item != nil {
  5782. _, err := item.ResolveReferences(root)
  5783. if err != nil {
  5784. errors = append(errors, err)
  5785. }
  5786. }
  5787. }
  5788. return nil, compiler.NewErrorGroupOrNil(errors)
  5789. }
  5790. // ResolveReferences resolves references found inside Object objects.
  5791. func (m *Object) ResolveReferences(root string) (*yaml.Node, error) {
  5792. errors := make([]error, 0)
  5793. for _, item := range m.AdditionalProperties {
  5794. if item != nil {
  5795. _, err := item.ResolveReferences(root)
  5796. if err != nil {
  5797. errors = append(errors, err)
  5798. }
  5799. }
  5800. }
  5801. return nil, compiler.NewErrorGroupOrNil(errors)
  5802. }
  5803. // ResolveReferences resolves references found inside Operation objects.
  5804. func (m *Operation) ResolveReferences(root string) (*yaml.Node, error) {
  5805. errors := make([]error, 0)
  5806. if m.ExternalDocs != nil {
  5807. _, err := m.ExternalDocs.ResolveReferences(root)
  5808. if err != nil {
  5809. errors = append(errors, err)
  5810. }
  5811. }
  5812. for _, item := range m.Parameters {
  5813. if item != nil {
  5814. _, err := item.ResolveReferences(root)
  5815. if err != nil {
  5816. errors = append(errors, err)
  5817. }
  5818. }
  5819. }
  5820. if m.RequestBody != nil {
  5821. _, err := m.RequestBody.ResolveReferences(root)
  5822. if err != nil {
  5823. errors = append(errors, err)
  5824. }
  5825. }
  5826. if m.Responses != nil {
  5827. _, err := m.Responses.ResolveReferences(root)
  5828. if err != nil {
  5829. errors = append(errors, err)
  5830. }
  5831. }
  5832. if m.Callbacks != nil {
  5833. _, err := m.Callbacks.ResolveReferences(root)
  5834. if err != nil {
  5835. errors = append(errors, err)
  5836. }
  5837. }
  5838. for _, item := range m.Security {
  5839. if item != nil {
  5840. _, err := item.ResolveReferences(root)
  5841. if err != nil {
  5842. errors = append(errors, err)
  5843. }
  5844. }
  5845. }
  5846. for _, item := range m.Servers {
  5847. if item != nil {
  5848. _, err := item.ResolveReferences(root)
  5849. if err != nil {
  5850. errors = append(errors, err)
  5851. }
  5852. }
  5853. }
  5854. for _, item := range m.SpecificationExtension {
  5855. if item != nil {
  5856. _, err := item.ResolveReferences(root)
  5857. if err != nil {
  5858. errors = append(errors, err)
  5859. }
  5860. }
  5861. }
  5862. return nil, compiler.NewErrorGroupOrNil(errors)
  5863. }
  5864. // ResolveReferences resolves references found inside Parameter objects.
  5865. func (m *Parameter) ResolveReferences(root string) (*yaml.Node, error) {
  5866. errors := make([]error, 0)
  5867. if m.Schema != nil {
  5868. _, err := m.Schema.ResolveReferences(root)
  5869. if err != nil {
  5870. errors = append(errors, err)
  5871. }
  5872. }
  5873. if m.Example != nil {
  5874. _, err := m.Example.ResolveReferences(root)
  5875. if err != nil {
  5876. errors = append(errors, err)
  5877. }
  5878. }
  5879. if m.Examples != nil {
  5880. _, err := m.Examples.ResolveReferences(root)
  5881. if err != nil {
  5882. errors = append(errors, err)
  5883. }
  5884. }
  5885. if m.Content != nil {
  5886. _, err := m.Content.ResolveReferences(root)
  5887. if err != nil {
  5888. errors = append(errors, err)
  5889. }
  5890. }
  5891. for _, item := range m.SpecificationExtension {
  5892. if item != nil {
  5893. _, err := item.ResolveReferences(root)
  5894. if err != nil {
  5895. errors = append(errors, err)
  5896. }
  5897. }
  5898. }
  5899. return nil, compiler.NewErrorGroupOrNil(errors)
  5900. }
  5901. // ResolveReferences resolves references found inside ParameterOrReference objects.
  5902. func (m *ParameterOrReference) ResolveReferences(root string) (*yaml.Node, error) {
  5903. errors := make([]error, 0)
  5904. {
  5905. p, ok := m.Oneof.(*ParameterOrReference_Parameter)
  5906. if ok {
  5907. _, err := p.Parameter.ResolveReferences(root)
  5908. if err != nil {
  5909. return nil, err
  5910. }
  5911. }
  5912. }
  5913. {
  5914. p, ok := m.Oneof.(*ParameterOrReference_Reference)
  5915. if ok {
  5916. _, err := p.Reference.ResolveReferences(root)
  5917. if err != nil {
  5918. return nil, err
  5919. }
  5920. }
  5921. }
  5922. return nil, compiler.NewErrorGroupOrNil(errors)
  5923. }
  5924. // ResolveReferences resolves references found inside ParametersOrReferences objects.
  5925. func (m *ParametersOrReferences) ResolveReferences(root string) (*yaml.Node, error) {
  5926. errors := make([]error, 0)
  5927. for _, item := range m.AdditionalProperties {
  5928. if item != nil {
  5929. _, err := item.ResolveReferences(root)
  5930. if err != nil {
  5931. errors = append(errors, err)
  5932. }
  5933. }
  5934. }
  5935. return nil, compiler.NewErrorGroupOrNil(errors)
  5936. }
  5937. // ResolveReferences resolves references found inside PathItem objects.
  5938. func (m *PathItem) ResolveReferences(root string) (*yaml.Node, error) {
  5939. errors := make([]error, 0)
  5940. if m.XRef != "" {
  5941. info, err := compiler.ReadInfoForRef(root, m.XRef)
  5942. if err != nil {
  5943. return nil, err
  5944. }
  5945. if info != nil {
  5946. replacement, err := NewPathItem(info, nil)
  5947. if err == nil {
  5948. *m = *replacement
  5949. return m.ResolveReferences(root)
  5950. }
  5951. }
  5952. return info, nil
  5953. }
  5954. if m.Get != nil {
  5955. _, err := m.Get.ResolveReferences(root)
  5956. if err != nil {
  5957. errors = append(errors, err)
  5958. }
  5959. }
  5960. if m.Put != nil {
  5961. _, err := m.Put.ResolveReferences(root)
  5962. if err != nil {
  5963. errors = append(errors, err)
  5964. }
  5965. }
  5966. if m.Post != nil {
  5967. _, err := m.Post.ResolveReferences(root)
  5968. if err != nil {
  5969. errors = append(errors, err)
  5970. }
  5971. }
  5972. if m.Delete != nil {
  5973. _, err := m.Delete.ResolveReferences(root)
  5974. if err != nil {
  5975. errors = append(errors, err)
  5976. }
  5977. }
  5978. if m.Options != nil {
  5979. _, err := m.Options.ResolveReferences(root)
  5980. if err != nil {
  5981. errors = append(errors, err)
  5982. }
  5983. }
  5984. if m.Head != nil {
  5985. _, err := m.Head.ResolveReferences(root)
  5986. if err != nil {
  5987. errors = append(errors, err)
  5988. }
  5989. }
  5990. if m.Patch != nil {
  5991. _, err := m.Patch.ResolveReferences(root)
  5992. if err != nil {
  5993. errors = append(errors, err)
  5994. }
  5995. }
  5996. if m.Trace != nil {
  5997. _, err := m.Trace.ResolveReferences(root)
  5998. if err != nil {
  5999. errors = append(errors, err)
  6000. }
  6001. }
  6002. for _, item := range m.Servers {
  6003. if item != nil {
  6004. _, err := item.ResolveReferences(root)
  6005. if err != nil {
  6006. errors = append(errors, err)
  6007. }
  6008. }
  6009. }
  6010. for _, item := range m.Parameters {
  6011. if item != nil {
  6012. _, err := item.ResolveReferences(root)
  6013. if err != nil {
  6014. errors = append(errors, err)
  6015. }
  6016. }
  6017. }
  6018. for _, item := range m.SpecificationExtension {
  6019. if item != nil {
  6020. _, err := item.ResolveReferences(root)
  6021. if err != nil {
  6022. errors = append(errors, err)
  6023. }
  6024. }
  6025. }
  6026. return nil, compiler.NewErrorGroupOrNil(errors)
  6027. }
  6028. // ResolveReferences resolves references found inside Paths objects.
  6029. func (m *Paths) ResolveReferences(root string) (*yaml.Node, error) {
  6030. errors := make([]error, 0)
  6031. for _, item := range m.Path {
  6032. if item != nil {
  6033. _, err := item.ResolveReferences(root)
  6034. if err != nil {
  6035. errors = append(errors, err)
  6036. }
  6037. }
  6038. }
  6039. for _, item := range m.SpecificationExtension {
  6040. if item != nil {
  6041. _, err := item.ResolveReferences(root)
  6042. if err != nil {
  6043. errors = append(errors, err)
  6044. }
  6045. }
  6046. }
  6047. return nil, compiler.NewErrorGroupOrNil(errors)
  6048. }
  6049. // ResolveReferences resolves references found inside Properties objects.
  6050. func (m *Properties) ResolveReferences(root string) (*yaml.Node, error) {
  6051. errors := make([]error, 0)
  6052. for _, item := range m.AdditionalProperties {
  6053. if item != nil {
  6054. _, err := item.ResolveReferences(root)
  6055. if err != nil {
  6056. errors = append(errors, err)
  6057. }
  6058. }
  6059. }
  6060. return nil, compiler.NewErrorGroupOrNil(errors)
  6061. }
  6062. // ResolveReferences resolves references found inside Reference objects.
  6063. func (m *Reference) ResolveReferences(root string) (*yaml.Node, error) {
  6064. errors := make([]error, 0)
  6065. if m.XRef != "" {
  6066. info, err := compiler.ReadInfoForRef(root, m.XRef)
  6067. if err != nil {
  6068. return nil, err
  6069. }
  6070. if info != nil {
  6071. replacement, err := NewReference(info, nil)
  6072. if err == nil {
  6073. *m = *replacement
  6074. return m.ResolveReferences(root)
  6075. }
  6076. }
  6077. return info, nil
  6078. }
  6079. return nil, compiler.NewErrorGroupOrNil(errors)
  6080. }
  6081. // ResolveReferences resolves references found inside RequestBodiesOrReferences objects.
  6082. func (m *RequestBodiesOrReferences) ResolveReferences(root string) (*yaml.Node, error) {
  6083. errors := make([]error, 0)
  6084. for _, item := range m.AdditionalProperties {
  6085. if item != nil {
  6086. _, err := item.ResolveReferences(root)
  6087. if err != nil {
  6088. errors = append(errors, err)
  6089. }
  6090. }
  6091. }
  6092. return nil, compiler.NewErrorGroupOrNil(errors)
  6093. }
  6094. // ResolveReferences resolves references found inside RequestBody objects.
  6095. func (m *RequestBody) ResolveReferences(root string) (*yaml.Node, error) {
  6096. errors := make([]error, 0)
  6097. if m.Content != nil {
  6098. _, err := m.Content.ResolveReferences(root)
  6099. if err != nil {
  6100. errors = append(errors, err)
  6101. }
  6102. }
  6103. for _, item := range m.SpecificationExtension {
  6104. if item != nil {
  6105. _, err := item.ResolveReferences(root)
  6106. if err != nil {
  6107. errors = append(errors, err)
  6108. }
  6109. }
  6110. }
  6111. return nil, compiler.NewErrorGroupOrNil(errors)
  6112. }
  6113. // ResolveReferences resolves references found inside RequestBodyOrReference objects.
  6114. func (m *RequestBodyOrReference) ResolveReferences(root string) (*yaml.Node, error) {
  6115. errors := make([]error, 0)
  6116. {
  6117. p, ok := m.Oneof.(*RequestBodyOrReference_RequestBody)
  6118. if ok {
  6119. _, err := p.RequestBody.ResolveReferences(root)
  6120. if err != nil {
  6121. return nil, err
  6122. }
  6123. }
  6124. }
  6125. {
  6126. p, ok := m.Oneof.(*RequestBodyOrReference_Reference)
  6127. if ok {
  6128. _, err := p.Reference.ResolveReferences(root)
  6129. if err != nil {
  6130. return nil, err
  6131. }
  6132. }
  6133. }
  6134. return nil, compiler.NewErrorGroupOrNil(errors)
  6135. }
  6136. // ResolveReferences resolves references found inside Response objects.
  6137. func (m *Response) ResolveReferences(root string) (*yaml.Node, error) {
  6138. errors := make([]error, 0)
  6139. if m.Headers != nil {
  6140. _, err := m.Headers.ResolveReferences(root)
  6141. if err != nil {
  6142. errors = append(errors, err)
  6143. }
  6144. }
  6145. if m.Content != nil {
  6146. _, err := m.Content.ResolveReferences(root)
  6147. if err != nil {
  6148. errors = append(errors, err)
  6149. }
  6150. }
  6151. if m.Links != nil {
  6152. _, err := m.Links.ResolveReferences(root)
  6153. if err != nil {
  6154. errors = append(errors, err)
  6155. }
  6156. }
  6157. for _, item := range m.SpecificationExtension {
  6158. if item != nil {
  6159. _, err := item.ResolveReferences(root)
  6160. if err != nil {
  6161. errors = append(errors, err)
  6162. }
  6163. }
  6164. }
  6165. return nil, compiler.NewErrorGroupOrNil(errors)
  6166. }
  6167. // ResolveReferences resolves references found inside ResponseOrReference objects.
  6168. func (m *ResponseOrReference) ResolveReferences(root string) (*yaml.Node, error) {
  6169. errors := make([]error, 0)
  6170. {
  6171. p, ok := m.Oneof.(*ResponseOrReference_Response)
  6172. if ok {
  6173. _, err := p.Response.ResolveReferences(root)
  6174. if err != nil {
  6175. return nil, err
  6176. }
  6177. }
  6178. }
  6179. {
  6180. p, ok := m.Oneof.(*ResponseOrReference_Reference)
  6181. if ok {
  6182. _, err := p.Reference.ResolveReferences(root)
  6183. if err != nil {
  6184. return nil, err
  6185. }
  6186. }
  6187. }
  6188. return nil, compiler.NewErrorGroupOrNil(errors)
  6189. }
  6190. // ResolveReferences resolves references found inside Responses objects.
  6191. func (m *Responses) ResolveReferences(root string) (*yaml.Node, error) {
  6192. errors := make([]error, 0)
  6193. if m.Default != nil {
  6194. _, err := m.Default.ResolveReferences(root)
  6195. if err != nil {
  6196. errors = append(errors, err)
  6197. }
  6198. }
  6199. for _, item := range m.ResponseOrReference {
  6200. if item != nil {
  6201. _, err := item.ResolveReferences(root)
  6202. if err != nil {
  6203. errors = append(errors, err)
  6204. }
  6205. }
  6206. }
  6207. for _, item := range m.SpecificationExtension {
  6208. if item != nil {
  6209. _, err := item.ResolveReferences(root)
  6210. if err != nil {
  6211. errors = append(errors, err)
  6212. }
  6213. }
  6214. }
  6215. return nil, compiler.NewErrorGroupOrNil(errors)
  6216. }
  6217. // ResolveReferences resolves references found inside ResponsesOrReferences objects.
  6218. func (m *ResponsesOrReferences) ResolveReferences(root string) (*yaml.Node, error) {
  6219. errors := make([]error, 0)
  6220. for _, item := range m.AdditionalProperties {
  6221. if item != nil {
  6222. _, err := item.ResolveReferences(root)
  6223. if err != nil {
  6224. errors = append(errors, err)
  6225. }
  6226. }
  6227. }
  6228. return nil, compiler.NewErrorGroupOrNil(errors)
  6229. }
  6230. // ResolveReferences resolves references found inside Schema objects.
  6231. func (m *Schema) ResolveReferences(root string) (*yaml.Node, error) {
  6232. errors := make([]error, 0)
  6233. if m.Discriminator != nil {
  6234. _, err := m.Discriminator.ResolveReferences(root)
  6235. if err != nil {
  6236. errors = append(errors, err)
  6237. }
  6238. }
  6239. if m.Xml != nil {
  6240. _, err := m.Xml.ResolveReferences(root)
  6241. if err != nil {
  6242. errors = append(errors, err)
  6243. }
  6244. }
  6245. if m.ExternalDocs != nil {
  6246. _, err := m.ExternalDocs.ResolveReferences(root)
  6247. if err != nil {
  6248. errors = append(errors, err)
  6249. }
  6250. }
  6251. if m.Example != nil {
  6252. _, err := m.Example.ResolveReferences(root)
  6253. if err != nil {
  6254. errors = append(errors, err)
  6255. }
  6256. }
  6257. for _, item := range m.Enum {
  6258. if item != nil {
  6259. _, err := item.ResolveReferences(root)
  6260. if err != nil {
  6261. errors = append(errors, err)
  6262. }
  6263. }
  6264. }
  6265. for _, item := range m.AllOf {
  6266. if item != nil {
  6267. _, err := item.ResolveReferences(root)
  6268. if err != nil {
  6269. errors = append(errors, err)
  6270. }
  6271. }
  6272. }
  6273. for _, item := range m.OneOf {
  6274. if item != nil {
  6275. _, err := item.ResolveReferences(root)
  6276. if err != nil {
  6277. errors = append(errors, err)
  6278. }
  6279. }
  6280. }
  6281. for _, item := range m.AnyOf {
  6282. if item != nil {
  6283. _, err := item.ResolveReferences(root)
  6284. if err != nil {
  6285. errors = append(errors, err)
  6286. }
  6287. }
  6288. }
  6289. if m.Not != nil {
  6290. _, err := m.Not.ResolveReferences(root)
  6291. if err != nil {
  6292. errors = append(errors, err)
  6293. }
  6294. }
  6295. if m.Items != nil {
  6296. _, err := m.Items.ResolveReferences(root)
  6297. if err != nil {
  6298. errors = append(errors, err)
  6299. }
  6300. }
  6301. if m.Properties != nil {
  6302. _, err := m.Properties.ResolveReferences(root)
  6303. if err != nil {
  6304. errors = append(errors, err)
  6305. }
  6306. }
  6307. if m.AdditionalProperties != nil {
  6308. _, err := m.AdditionalProperties.ResolveReferences(root)
  6309. if err != nil {
  6310. errors = append(errors, err)
  6311. }
  6312. }
  6313. if m.Default != nil {
  6314. _, err := m.Default.ResolveReferences(root)
  6315. if err != nil {
  6316. errors = append(errors, err)
  6317. }
  6318. }
  6319. for _, item := range m.SpecificationExtension {
  6320. if item != nil {
  6321. _, err := item.ResolveReferences(root)
  6322. if err != nil {
  6323. errors = append(errors, err)
  6324. }
  6325. }
  6326. }
  6327. return nil, compiler.NewErrorGroupOrNil(errors)
  6328. }
  6329. // ResolveReferences resolves references found inside SchemaOrReference objects.
  6330. func (m *SchemaOrReference) ResolveReferences(root string) (*yaml.Node, error) {
  6331. errors := make([]error, 0)
  6332. {
  6333. p, ok := m.Oneof.(*SchemaOrReference_Schema)
  6334. if ok {
  6335. _, err := p.Schema.ResolveReferences(root)
  6336. if err != nil {
  6337. return nil, err
  6338. }
  6339. }
  6340. }
  6341. {
  6342. p, ok := m.Oneof.(*SchemaOrReference_Reference)
  6343. if ok {
  6344. _, err := p.Reference.ResolveReferences(root)
  6345. if err != nil {
  6346. return nil, err
  6347. }
  6348. }
  6349. }
  6350. return nil, compiler.NewErrorGroupOrNil(errors)
  6351. }
  6352. // ResolveReferences resolves references found inside SchemasOrReferences objects.
  6353. func (m *SchemasOrReferences) ResolveReferences(root string) (*yaml.Node, error) {
  6354. errors := make([]error, 0)
  6355. for _, item := range m.AdditionalProperties {
  6356. if item != nil {
  6357. _, err := item.ResolveReferences(root)
  6358. if err != nil {
  6359. errors = append(errors, err)
  6360. }
  6361. }
  6362. }
  6363. return nil, compiler.NewErrorGroupOrNil(errors)
  6364. }
  6365. // ResolveReferences resolves references found inside SecurityRequirement objects.
  6366. func (m *SecurityRequirement) ResolveReferences(root string) (*yaml.Node, error) {
  6367. errors := make([]error, 0)
  6368. for _, item := range m.AdditionalProperties {
  6369. if item != nil {
  6370. _, err := item.ResolveReferences(root)
  6371. if err != nil {
  6372. errors = append(errors, err)
  6373. }
  6374. }
  6375. }
  6376. return nil, compiler.NewErrorGroupOrNil(errors)
  6377. }
  6378. // ResolveReferences resolves references found inside SecurityScheme objects.
  6379. func (m *SecurityScheme) ResolveReferences(root string) (*yaml.Node, error) {
  6380. errors := make([]error, 0)
  6381. if m.Flows != nil {
  6382. _, err := m.Flows.ResolveReferences(root)
  6383. if err != nil {
  6384. errors = append(errors, err)
  6385. }
  6386. }
  6387. for _, item := range m.SpecificationExtension {
  6388. if item != nil {
  6389. _, err := item.ResolveReferences(root)
  6390. if err != nil {
  6391. errors = append(errors, err)
  6392. }
  6393. }
  6394. }
  6395. return nil, compiler.NewErrorGroupOrNil(errors)
  6396. }
  6397. // ResolveReferences resolves references found inside SecuritySchemeOrReference objects.
  6398. func (m *SecuritySchemeOrReference) ResolveReferences(root string) (*yaml.Node, error) {
  6399. errors := make([]error, 0)
  6400. {
  6401. p, ok := m.Oneof.(*SecuritySchemeOrReference_SecurityScheme)
  6402. if ok {
  6403. _, err := p.SecurityScheme.ResolveReferences(root)
  6404. if err != nil {
  6405. return nil, err
  6406. }
  6407. }
  6408. }
  6409. {
  6410. p, ok := m.Oneof.(*SecuritySchemeOrReference_Reference)
  6411. if ok {
  6412. _, err := p.Reference.ResolveReferences(root)
  6413. if err != nil {
  6414. return nil, err
  6415. }
  6416. }
  6417. }
  6418. return nil, compiler.NewErrorGroupOrNil(errors)
  6419. }
  6420. // ResolveReferences resolves references found inside SecuritySchemesOrReferences objects.
  6421. func (m *SecuritySchemesOrReferences) ResolveReferences(root string) (*yaml.Node, error) {
  6422. errors := make([]error, 0)
  6423. for _, item := range m.AdditionalProperties {
  6424. if item != nil {
  6425. _, err := item.ResolveReferences(root)
  6426. if err != nil {
  6427. errors = append(errors, err)
  6428. }
  6429. }
  6430. }
  6431. return nil, compiler.NewErrorGroupOrNil(errors)
  6432. }
  6433. // ResolveReferences resolves references found inside Server objects.
  6434. func (m *Server) ResolveReferences(root string) (*yaml.Node, error) {
  6435. errors := make([]error, 0)
  6436. if m.Variables != nil {
  6437. _, err := m.Variables.ResolveReferences(root)
  6438. if err != nil {
  6439. errors = append(errors, err)
  6440. }
  6441. }
  6442. for _, item := range m.SpecificationExtension {
  6443. if item != nil {
  6444. _, err := item.ResolveReferences(root)
  6445. if err != nil {
  6446. errors = append(errors, err)
  6447. }
  6448. }
  6449. }
  6450. return nil, compiler.NewErrorGroupOrNil(errors)
  6451. }
  6452. // ResolveReferences resolves references found inside ServerVariable objects.
  6453. func (m *ServerVariable) ResolveReferences(root string) (*yaml.Node, error) {
  6454. errors := make([]error, 0)
  6455. for _, item := range m.SpecificationExtension {
  6456. if item != nil {
  6457. _, err := item.ResolveReferences(root)
  6458. if err != nil {
  6459. errors = append(errors, err)
  6460. }
  6461. }
  6462. }
  6463. return nil, compiler.NewErrorGroupOrNil(errors)
  6464. }
  6465. // ResolveReferences resolves references found inside ServerVariables objects.
  6466. func (m *ServerVariables) ResolveReferences(root string) (*yaml.Node, error) {
  6467. errors := make([]error, 0)
  6468. for _, item := range m.AdditionalProperties {
  6469. if item != nil {
  6470. _, err := item.ResolveReferences(root)
  6471. if err != nil {
  6472. errors = append(errors, err)
  6473. }
  6474. }
  6475. }
  6476. return nil, compiler.NewErrorGroupOrNil(errors)
  6477. }
  6478. // ResolveReferences resolves references found inside SpecificationExtension objects.
  6479. func (m *SpecificationExtension) ResolveReferences(root string) (*yaml.Node, error) {
  6480. errors := make([]error, 0)
  6481. return nil, compiler.NewErrorGroupOrNil(errors)
  6482. }
  6483. // ResolveReferences resolves references found inside StringArray objects.
  6484. func (m *StringArray) ResolveReferences(root string) (*yaml.Node, error) {
  6485. errors := make([]error, 0)
  6486. return nil, compiler.NewErrorGroupOrNil(errors)
  6487. }
  6488. // ResolveReferences resolves references found inside Strings objects.
  6489. func (m *Strings) ResolveReferences(root string) (*yaml.Node, error) {
  6490. errors := make([]error, 0)
  6491. for _, item := range m.AdditionalProperties {
  6492. if item != nil {
  6493. _, err := item.ResolveReferences(root)
  6494. if err != nil {
  6495. errors = append(errors, err)
  6496. }
  6497. }
  6498. }
  6499. return nil, compiler.NewErrorGroupOrNil(errors)
  6500. }
  6501. // ResolveReferences resolves references found inside Tag objects.
  6502. func (m *Tag) ResolveReferences(root string) (*yaml.Node, error) {
  6503. errors := make([]error, 0)
  6504. if m.ExternalDocs != nil {
  6505. _, err := m.ExternalDocs.ResolveReferences(root)
  6506. if err != nil {
  6507. errors = append(errors, err)
  6508. }
  6509. }
  6510. for _, item := range m.SpecificationExtension {
  6511. if item != nil {
  6512. _, err := item.ResolveReferences(root)
  6513. if err != nil {
  6514. errors = append(errors, err)
  6515. }
  6516. }
  6517. }
  6518. return nil, compiler.NewErrorGroupOrNil(errors)
  6519. }
  6520. // ResolveReferences resolves references found inside Xml objects.
  6521. func (m *Xml) ResolveReferences(root string) (*yaml.Node, error) {
  6522. errors := make([]error, 0)
  6523. for _, item := range m.SpecificationExtension {
  6524. if item != nil {
  6525. _, err := item.ResolveReferences(root)
  6526. if err != nil {
  6527. errors = append(errors, err)
  6528. }
  6529. }
  6530. }
  6531. return nil, compiler.NewErrorGroupOrNil(errors)
  6532. }
  6533. // ToRawInfo returns a description of AdditionalPropertiesItem suitable for JSON or YAML export.
  6534. func (m *AdditionalPropertiesItem) ToRawInfo() *yaml.Node {
  6535. // ONE OF WRAPPER
  6536. // AdditionalPropertiesItem
  6537. // {Name:schemaOrReference Type:SchemaOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  6538. v0 := m.GetSchemaOrReference()
  6539. if v0 != nil {
  6540. return v0.ToRawInfo()
  6541. }
  6542. // {Name:boolean Type:bool StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  6543. if v1, ok := m.GetOneof().(*AdditionalPropertiesItem_Boolean); ok {
  6544. return compiler.NewScalarNodeForBool(v1.Boolean)
  6545. }
  6546. return compiler.NewNullNode()
  6547. }
  6548. // ToRawInfo returns a description of Any suitable for JSON or YAML export.
  6549. func (m *Any) ToRawInfo() *yaml.Node {
  6550. var err error
  6551. var node yaml.Node
  6552. err = yaml.Unmarshal([]byte(m.Yaml), &node)
  6553. if err == nil {
  6554. if node.Kind == yaml.DocumentNode {
  6555. return node.Content[0]
  6556. }
  6557. return &node
  6558. }
  6559. return compiler.NewNullNode()
  6560. }
  6561. // ToRawInfo returns a description of AnyOrExpression suitable for JSON or YAML export.
  6562. func (m *AnyOrExpression) ToRawInfo() *yaml.Node {
  6563. // ONE OF WRAPPER
  6564. // AnyOrExpression
  6565. // {Name:any Type:Any StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  6566. v0 := m.GetAny()
  6567. if v0 != nil {
  6568. return v0.ToRawInfo()
  6569. }
  6570. // {Name:expression Type:Expression StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  6571. v1 := m.GetExpression()
  6572. if v1 != nil {
  6573. return v1.ToRawInfo()
  6574. }
  6575. return compiler.NewNullNode()
  6576. }
  6577. // ToRawInfo returns a description of Callback suitable for JSON or YAML export.
  6578. func (m *Callback) ToRawInfo() *yaml.Node {
  6579. info := compiler.NewMappingNode()
  6580. if m == nil {
  6581. return info
  6582. }
  6583. if m.Path != nil {
  6584. for _, item := range m.Path {
  6585. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  6586. info.Content = append(info.Content, item.Value.ToRawInfo())
  6587. }
  6588. }
  6589. if m.SpecificationExtension != nil {
  6590. for _, item := range m.SpecificationExtension {
  6591. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  6592. info.Content = append(info.Content, item.Value.ToRawInfo())
  6593. }
  6594. }
  6595. return info
  6596. }
  6597. // ToRawInfo returns a description of CallbackOrReference suitable for JSON or YAML export.
  6598. func (m *CallbackOrReference) ToRawInfo() *yaml.Node {
  6599. // ONE OF WRAPPER
  6600. // CallbackOrReference
  6601. // {Name:callback Type:Callback StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  6602. v0 := m.GetCallback()
  6603. if v0 != nil {
  6604. return v0.ToRawInfo()
  6605. }
  6606. // {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  6607. v1 := m.GetReference()
  6608. if v1 != nil {
  6609. return v1.ToRawInfo()
  6610. }
  6611. return compiler.NewNullNode()
  6612. }
  6613. // ToRawInfo returns a description of CallbacksOrReferences suitable for JSON or YAML export.
  6614. func (m *CallbacksOrReferences) ToRawInfo() *yaml.Node {
  6615. info := compiler.NewMappingNode()
  6616. if m == nil {
  6617. return info
  6618. }
  6619. if m.AdditionalProperties != nil {
  6620. for _, item := range m.AdditionalProperties {
  6621. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  6622. info.Content = append(info.Content, item.Value.ToRawInfo())
  6623. }
  6624. }
  6625. return info
  6626. }
  6627. // ToRawInfo returns a description of Components suitable for JSON or YAML export.
  6628. func (m *Components) ToRawInfo() *yaml.Node {
  6629. info := compiler.NewMappingNode()
  6630. if m == nil {
  6631. return info
  6632. }
  6633. if m.Schemas != nil {
  6634. info.Content = append(info.Content, compiler.NewScalarNodeForString("schemas"))
  6635. info.Content = append(info.Content, m.Schemas.ToRawInfo())
  6636. }
  6637. if m.Responses != nil {
  6638. info.Content = append(info.Content, compiler.NewScalarNodeForString("responses"))
  6639. info.Content = append(info.Content, m.Responses.ToRawInfo())
  6640. }
  6641. if m.Parameters != nil {
  6642. info.Content = append(info.Content, compiler.NewScalarNodeForString("parameters"))
  6643. info.Content = append(info.Content, m.Parameters.ToRawInfo())
  6644. }
  6645. if m.Examples != nil {
  6646. info.Content = append(info.Content, compiler.NewScalarNodeForString("examples"))
  6647. info.Content = append(info.Content, m.Examples.ToRawInfo())
  6648. }
  6649. if m.RequestBodies != nil {
  6650. info.Content = append(info.Content, compiler.NewScalarNodeForString("requestBodies"))
  6651. info.Content = append(info.Content, m.RequestBodies.ToRawInfo())
  6652. }
  6653. if m.Headers != nil {
  6654. info.Content = append(info.Content, compiler.NewScalarNodeForString("headers"))
  6655. info.Content = append(info.Content, m.Headers.ToRawInfo())
  6656. }
  6657. if m.SecuritySchemes != nil {
  6658. info.Content = append(info.Content, compiler.NewScalarNodeForString("securitySchemes"))
  6659. info.Content = append(info.Content, m.SecuritySchemes.ToRawInfo())
  6660. }
  6661. if m.Links != nil {
  6662. info.Content = append(info.Content, compiler.NewScalarNodeForString("links"))
  6663. info.Content = append(info.Content, m.Links.ToRawInfo())
  6664. }
  6665. if m.Callbacks != nil {
  6666. info.Content = append(info.Content, compiler.NewScalarNodeForString("callbacks"))
  6667. info.Content = append(info.Content, m.Callbacks.ToRawInfo())
  6668. }
  6669. if m.SpecificationExtension != nil {
  6670. for _, item := range m.SpecificationExtension {
  6671. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  6672. info.Content = append(info.Content, item.Value.ToRawInfo())
  6673. }
  6674. }
  6675. return info
  6676. }
  6677. // ToRawInfo returns a description of Contact suitable for JSON or YAML export.
  6678. func (m *Contact) ToRawInfo() *yaml.Node {
  6679. info := compiler.NewMappingNode()
  6680. if m == nil {
  6681. return info
  6682. }
  6683. if m.Name != "" {
  6684. info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
  6685. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
  6686. }
  6687. if m.Url != "" {
  6688. info.Content = append(info.Content, compiler.NewScalarNodeForString("url"))
  6689. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Url))
  6690. }
  6691. if m.Email != "" {
  6692. info.Content = append(info.Content, compiler.NewScalarNodeForString("email"))
  6693. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Email))
  6694. }
  6695. if m.SpecificationExtension != nil {
  6696. for _, item := range m.SpecificationExtension {
  6697. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  6698. info.Content = append(info.Content, item.Value.ToRawInfo())
  6699. }
  6700. }
  6701. return info
  6702. }
  6703. // ToRawInfo returns a description of DefaultType suitable for JSON or YAML export.
  6704. func (m *DefaultType) ToRawInfo() *yaml.Node {
  6705. // ONE OF WRAPPER
  6706. // DefaultType
  6707. // {Name:number Type:float StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  6708. if v0, ok := m.GetOneof().(*DefaultType_Number); ok {
  6709. return compiler.NewScalarNodeForFloat(v0.Number)
  6710. }
  6711. // {Name:boolean Type:bool StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  6712. if v1, ok := m.GetOneof().(*DefaultType_Boolean); ok {
  6713. return compiler.NewScalarNodeForBool(v1.Boolean)
  6714. }
  6715. // {Name:string Type:string StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  6716. if v2, ok := m.GetOneof().(*DefaultType_String_); ok {
  6717. return compiler.NewScalarNodeForString(v2.String_)
  6718. }
  6719. return compiler.NewNullNode()
  6720. }
  6721. // ToRawInfo returns a description of Discriminator suitable for JSON or YAML export.
  6722. func (m *Discriminator) ToRawInfo() *yaml.Node {
  6723. info := compiler.NewMappingNode()
  6724. if m == nil {
  6725. return info
  6726. }
  6727. // always include this required field.
  6728. info.Content = append(info.Content, compiler.NewScalarNodeForString("propertyName"))
  6729. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.PropertyName))
  6730. if m.Mapping != nil {
  6731. info.Content = append(info.Content, compiler.NewScalarNodeForString("mapping"))
  6732. info.Content = append(info.Content, m.Mapping.ToRawInfo())
  6733. }
  6734. if m.SpecificationExtension != nil {
  6735. for _, item := range m.SpecificationExtension {
  6736. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  6737. info.Content = append(info.Content, item.Value.ToRawInfo())
  6738. }
  6739. }
  6740. return info
  6741. }
  6742. // ToRawInfo returns a description of Document suitable for JSON or YAML export.
  6743. func (m *Document) ToRawInfo() *yaml.Node {
  6744. info := compiler.NewMappingNode()
  6745. if m == nil {
  6746. return info
  6747. }
  6748. // always include this required field.
  6749. info.Content = append(info.Content, compiler.NewScalarNodeForString("openapi"))
  6750. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Openapi))
  6751. // always include this required field.
  6752. info.Content = append(info.Content, compiler.NewScalarNodeForString("info"))
  6753. info.Content = append(info.Content, m.Info.ToRawInfo())
  6754. if len(m.Servers) != 0 {
  6755. items := compiler.NewSequenceNode()
  6756. for _, item := range m.Servers {
  6757. items.Content = append(items.Content, item.ToRawInfo())
  6758. }
  6759. info.Content = append(info.Content, compiler.NewScalarNodeForString("servers"))
  6760. info.Content = append(info.Content, items)
  6761. }
  6762. // always include this required field.
  6763. info.Content = append(info.Content, compiler.NewScalarNodeForString("paths"))
  6764. info.Content = append(info.Content, m.Paths.ToRawInfo())
  6765. if m.Components != nil {
  6766. info.Content = append(info.Content, compiler.NewScalarNodeForString("components"))
  6767. info.Content = append(info.Content, m.Components.ToRawInfo())
  6768. }
  6769. if len(m.Security) != 0 {
  6770. items := compiler.NewSequenceNode()
  6771. for _, item := range m.Security {
  6772. items.Content = append(items.Content, item.ToRawInfo())
  6773. }
  6774. info.Content = append(info.Content, compiler.NewScalarNodeForString("security"))
  6775. info.Content = append(info.Content, items)
  6776. }
  6777. if len(m.Tags) != 0 {
  6778. items := compiler.NewSequenceNode()
  6779. for _, item := range m.Tags {
  6780. items.Content = append(items.Content, item.ToRawInfo())
  6781. }
  6782. info.Content = append(info.Content, compiler.NewScalarNodeForString("tags"))
  6783. info.Content = append(info.Content, items)
  6784. }
  6785. if m.ExternalDocs != nil {
  6786. info.Content = append(info.Content, compiler.NewScalarNodeForString("externalDocs"))
  6787. info.Content = append(info.Content, m.ExternalDocs.ToRawInfo())
  6788. }
  6789. if m.SpecificationExtension != nil {
  6790. for _, item := range m.SpecificationExtension {
  6791. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  6792. info.Content = append(info.Content, item.Value.ToRawInfo())
  6793. }
  6794. }
  6795. return info
  6796. }
  6797. // ToRawInfo returns a description of Encoding suitable for JSON or YAML export.
  6798. func (m *Encoding) ToRawInfo() *yaml.Node {
  6799. info := compiler.NewMappingNode()
  6800. if m == nil {
  6801. return info
  6802. }
  6803. if m.ContentType != "" {
  6804. info.Content = append(info.Content, compiler.NewScalarNodeForString("contentType"))
  6805. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.ContentType))
  6806. }
  6807. if m.Headers != nil {
  6808. info.Content = append(info.Content, compiler.NewScalarNodeForString("headers"))
  6809. info.Content = append(info.Content, m.Headers.ToRawInfo())
  6810. }
  6811. if m.Style != "" {
  6812. info.Content = append(info.Content, compiler.NewScalarNodeForString("style"))
  6813. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Style))
  6814. }
  6815. if m.Explode != false {
  6816. info.Content = append(info.Content, compiler.NewScalarNodeForString("explode"))
  6817. info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Explode))
  6818. }
  6819. if m.AllowReserved != false {
  6820. info.Content = append(info.Content, compiler.NewScalarNodeForString("allowReserved"))
  6821. info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.AllowReserved))
  6822. }
  6823. if m.SpecificationExtension != nil {
  6824. for _, item := range m.SpecificationExtension {
  6825. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  6826. info.Content = append(info.Content, item.Value.ToRawInfo())
  6827. }
  6828. }
  6829. return info
  6830. }
  6831. // ToRawInfo returns a description of Encodings suitable for JSON or YAML export.
  6832. func (m *Encodings) ToRawInfo() *yaml.Node {
  6833. info := compiler.NewMappingNode()
  6834. if m == nil {
  6835. return info
  6836. }
  6837. if m.AdditionalProperties != nil {
  6838. for _, item := range m.AdditionalProperties {
  6839. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  6840. info.Content = append(info.Content, item.Value.ToRawInfo())
  6841. }
  6842. }
  6843. return info
  6844. }
  6845. // ToRawInfo returns a description of Example suitable for JSON or YAML export.
  6846. func (m *Example) ToRawInfo() *yaml.Node {
  6847. info := compiler.NewMappingNode()
  6848. if m == nil {
  6849. return info
  6850. }
  6851. if m.Summary != "" {
  6852. info.Content = append(info.Content, compiler.NewScalarNodeForString("summary"))
  6853. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Summary))
  6854. }
  6855. if m.Description != "" {
  6856. info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
  6857. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
  6858. }
  6859. if m.Value != nil {
  6860. info.Content = append(info.Content, compiler.NewScalarNodeForString("value"))
  6861. info.Content = append(info.Content, m.Value.ToRawInfo())
  6862. }
  6863. if m.ExternalValue != "" {
  6864. info.Content = append(info.Content, compiler.NewScalarNodeForString("externalValue"))
  6865. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.ExternalValue))
  6866. }
  6867. if m.SpecificationExtension != nil {
  6868. for _, item := range m.SpecificationExtension {
  6869. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  6870. info.Content = append(info.Content, item.Value.ToRawInfo())
  6871. }
  6872. }
  6873. return info
  6874. }
  6875. // ToRawInfo returns a description of ExampleOrReference suitable for JSON or YAML export.
  6876. func (m *ExampleOrReference) ToRawInfo() *yaml.Node {
  6877. // ONE OF WRAPPER
  6878. // ExampleOrReference
  6879. // {Name:example Type:Example StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  6880. v0 := m.GetExample()
  6881. if v0 != nil {
  6882. return v0.ToRawInfo()
  6883. }
  6884. // {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  6885. v1 := m.GetReference()
  6886. if v1 != nil {
  6887. return v1.ToRawInfo()
  6888. }
  6889. return compiler.NewNullNode()
  6890. }
  6891. // ToRawInfo returns a description of ExamplesOrReferences suitable for JSON or YAML export.
  6892. func (m *ExamplesOrReferences) ToRawInfo() *yaml.Node {
  6893. info := compiler.NewMappingNode()
  6894. if m == nil {
  6895. return info
  6896. }
  6897. if m.AdditionalProperties != nil {
  6898. for _, item := range m.AdditionalProperties {
  6899. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  6900. info.Content = append(info.Content, item.Value.ToRawInfo())
  6901. }
  6902. }
  6903. return info
  6904. }
  6905. // ToRawInfo returns a description of Expression suitable for JSON or YAML export.
  6906. func (m *Expression) ToRawInfo() *yaml.Node {
  6907. info := compiler.NewMappingNode()
  6908. if m == nil {
  6909. return info
  6910. }
  6911. if m.AdditionalProperties != nil {
  6912. for _, item := range m.AdditionalProperties {
  6913. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  6914. info.Content = append(info.Content, item.Value.ToRawInfo())
  6915. }
  6916. }
  6917. return info
  6918. }
  6919. // ToRawInfo returns a description of ExternalDocs suitable for JSON or YAML export.
  6920. func (m *ExternalDocs) ToRawInfo() *yaml.Node {
  6921. info := compiler.NewMappingNode()
  6922. if m == nil {
  6923. return info
  6924. }
  6925. if m.Description != "" {
  6926. info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
  6927. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
  6928. }
  6929. // always include this required field.
  6930. info.Content = append(info.Content, compiler.NewScalarNodeForString("url"))
  6931. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Url))
  6932. if m.SpecificationExtension != nil {
  6933. for _, item := range m.SpecificationExtension {
  6934. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  6935. info.Content = append(info.Content, item.Value.ToRawInfo())
  6936. }
  6937. }
  6938. return info
  6939. }
  6940. // ToRawInfo returns a description of Header suitable for JSON or YAML export.
  6941. func (m *Header) ToRawInfo() *yaml.Node {
  6942. info := compiler.NewMappingNode()
  6943. if m == nil {
  6944. return info
  6945. }
  6946. if m.Description != "" {
  6947. info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
  6948. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
  6949. }
  6950. if m.Required != false {
  6951. info.Content = append(info.Content, compiler.NewScalarNodeForString("required"))
  6952. info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Required))
  6953. }
  6954. if m.Deprecated != false {
  6955. info.Content = append(info.Content, compiler.NewScalarNodeForString("deprecated"))
  6956. info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Deprecated))
  6957. }
  6958. if m.AllowEmptyValue != false {
  6959. info.Content = append(info.Content, compiler.NewScalarNodeForString("allowEmptyValue"))
  6960. info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.AllowEmptyValue))
  6961. }
  6962. if m.Style != "" {
  6963. info.Content = append(info.Content, compiler.NewScalarNodeForString("style"))
  6964. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Style))
  6965. }
  6966. if m.Explode != false {
  6967. info.Content = append(info.Content, compiler.NewScalarNodeForString("explode"))
  6968. info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Explode))
  6969. }
  6970. if m.AllowReserved != false {
  6971. info.Content = append(info.Content, compiler.NewScalarNodeForString("allowReserved"))
  6972. info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.AllowReserved))
  6973. }
  6974. if m.Schema != nil {
  6975. info.Content = append(info.Content, compiler.NewScalarNodeForString("schema"))
  6976. info.Content = append(info.Content, m.Schema.ToRawInfo())
  6977. }
  6978. if m.Example != nil {
  6979. info.Content = append(info.Content, compiler.NewScalarNodeForString("example"))
  6980. info.Content = append(info.Content, m.Example.ToRawInfo())
  6981. }
  6982. if m.Examples != nil {
  6983. info.Content = append(info.Content, compiler.NewScalarNodeForString("examples"))
  6984. info.Content = append(info.Content, m.Examples.ToRawInfo())
  6985. }
  6986. if m.Content != nil {
  6987. info.Content = append(info.Content, compiler.NewScalarNodeForString("content"))
  6988. info.Content = append(info.Content, m.Content.ToRawInfo())
  6989. }
  6990. if m.SpecificationExtension != nil {
  6991. for _, item := range m.SpecificationExtension {
  6992. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  6993. info.Content = append(info.Content, item.Value.ToRawInfo())
  6994. }
  6995. }
  6996. return info
  6997. }
  6998. // ToRawInfo returns a description of HeaderOrReference suitable for JSON or YAML export.
  6999. func (m *HeaderOrReference) ToRawInfo() *yaml.Node {
  7000. // ONE OF WRAPPER
  7001. // HeaderOrReference
  7002. // {Name:header Type:Header StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  7003. v0 := m.GetHeader()
  7004. if v0 != nil {
  7005. return v0.ToRawInfo()
  7006. }
  7007. // {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  7008. v1 := m.GetReference()
  7009. if v1 != nil {
  7010. return v1.ToRawInfo()
  7011. }
  7012. return compiler.NewNullNode()
  7013. }
  7014. // ToRawInfo returns a description of HeadersOrReferences suitable for JSON or YAML export.
  7015. func (m *HeadersOrReferences) ToRawInfo() *yaml.Node {
  7016. info := compiler.NewMappingNode()
  7017. if m == nil {
  7018. return info
  7019. }
  7020. if m.AdditionalProperties != nil {
  7021. for _, item := range m.AdditionalProperties {
  7022. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  7023. info.Content = append(info.Content, item.Value.ToRawInfo())
  7024. }
  7025. }
  7026. return info
  7027. }
  7028. // ToRawInfo returns a description of Info suitable for JSON or YAML export.
  7029. func (m *Info) ToRawInfo() *yaml.Node {
  7030. info := compiler.NewMappingNode()
  7031. if m == nil {
  7032. return info
  7033. }
  7034. // always include this required field.
  7035. info.Content = append(info.Content, compiler.NewScalarNodeForString("title"))
  7036. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Title))
  7037. if m.Description != "" {
  7038. info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
  7039. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
  7040. }
  7041. if m.TermsOfService != "" {
  7042. info.Content = append(info.Content, compiler.NewScalarNodeForString("termsOfService"))
  7043. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.TermsOfService))
  7044. }
  7045. if m.Contact != nil {
  7046. info.Content = append(info.Content, compiler.NewScalarNodeForString("contact"))
  7047. info.Content = append(info.Content, m.Contact.ToRawInfo())
  7048. }
  7049. if m.License != nil {
  7050. info.Content = append(info.Content, compiler.NewScalarNodeForString("license"))
  7051. info.Content = append(info.Content, m.License.ToRawInfo())
  7052. }
  7053. // always include this required field.
  7054. info.Content = append(info.Content, compiler.NewScalarNodeForString("version"))
  7055. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Version))
  7056. if m.Summary != "" {
  7057. info.Content = append(info.Content, compiler.NewScalarNodeForString("summary"))
  7058. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Summary))
  7059. }
  7060. if m.SpecificationExtension != nil {
  7061. for _, item := range m.SpecificationExtension {
  7062. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  7063. info.Content = append(info.Content, item.Value.ToRawInfo())
  7064. }
  7065. }
  7066. return info
  7067. }
  7068. // ToRawInfo returns a description of ItemsItem suitable for JSON or YAML export.
  7069. func (m *ItemsItem) ToRawInfo() *yaml.Node {
  7070. info := compiler.NewMappingNode()
  7071. if m == nil {
  7072. return info
  7073. }
  7074. if len(m.SchemaOrReference) != 0 {
  7075. items := compiler.NewSequenceNode()
  7076. for _, item := range m.SchemaOrReference {
  7077. items.Content = append(items.Content, item.ToRawInfo())
  7078. }
  7079. info.Content = append(info.Content, compiler.NewScalarNodeForString("schemaOrReference"))
  7080. info.Content = append(info.Content, items)
  7081. }
  7082. return info
  7083. }
  7084. // ToRawInfo returns a description of License suitable for JSON or YAML export.
  7085. func (m *License) ToRawInfo() *yaml.Node {
  7086. info := compiler.NewMappingNode()
  7087. if m == nil {
  7088. return info
  7089. }
  7090. // always include this required field.
  7091. info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
  7092. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
  7093. if m.Url != "" {
  7094. info.Content = append(info.Content, compiler.NewScalarNodeForString("url"))
  7095. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Url))
  7096. }
  7097. if m.SpecificationExtension != nil {
  7098. for _, item := range m.SpecificationExtension {
  7099. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  7100. info.Content = append(info.Content, item.Value.ToRawInfo())
  7101. }
  7102. }
  7103. return info
  7104. }
  7105. // ToRawInfo returns a description of Link suitable for JSON or YAML export.
  7106. func (m *Link) ToRawInfo() *yaml.Node {
  7107. info := compiler.NewMappingNode()
  7108. if m == nil {
  7109. return info
  7110. }
  7111. if m.OperationRef != "" {
  7112. info.Content = append(info.Content, compiler.NewScalarNodeForString("operationRef"))
  7113. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.OperationRef))
  7114. }
  7115. if m.OperationId != "" {
  7116. info.Content = append(info.Content, compiler.NewScalarNodeForString("operationId"))
  7117. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.OperationId))
  7118. }
  7119. if m.Parameters != nil {
  7120. info.Content = append(info.Content, compiler.NewScalarNodeForString("parameters"))
  7121. info.Content = append(info.Content, m.Parameters.ToRawInfo())
  7122. }
  7123. if m.RequestBody != nil {
  7124. info.Content = append(info.Content, compiler.NewScalarNodeForString("requestBody"))
  7125. info.Content = append(info.Content, m.RequestBody.ToRawInfo())
  7126. }
  7127. if m.Description != "" {
  7128. info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
  7129. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
  7130. }
  7131. if m.Server != nil {
  7132. info.Content = append(info.Content, compiler.NewScalarNodeForString("server"))
  7133. info.Content = append(info.Content, m.Server.ToRawInfo())
  7134. }
  7135. if m.SpecificationExtension != nil {
  7136. for _, item := range m.SpecificationExtension {
  7137. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  7138. info.Content = append(info.Content, item.Value.ToRawInfo())
  7139. }
  7140. }
  7141. return info
  7142. }
  7143. // ToRawInfo returns a description of LinkOrReference suitable for JSON or YAML export.
  7144. func (m *LinkOrReference) ToRawInfo() *yaml.Node {
  7145. // ONE OF WRAPPER
  7146. // LinkOrReference
  7147. // {Name:link Type:Link StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  7148. v0 := m.GetLink()
  7149. if v0 != nil {
  7150. return v0.ToRawInfo()
  7151. }
  7152. // {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  7153. v1 := m.GetReference()
  7154. if v1 != nil {
  7155. return v1.ToRawInfo()
  7156. }
  7157. return compiler.NewNullNode()
  7158. }
  7159. // ToRawInfo returns a description of LinksOrReferences suitable for JSON or YAML export.
  7160. func (m *LinksOrReferences) ToRawInfo() *yaml.Node {
  7161. info := compiler.NewMappingNode()
  7162. if m == nil {
  7163. return info
  7164. }
  7165. if m.AdditionalProperties != nil {
  7166. for _, item := range m.AdditionalProperties {
  7167. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  7168. info.Content = append(info.Content, item.Value.ToRawInfo())
  7169. }
  7170. }
  7171. return info
  7172. }
  7173. // ToRawInfo returns a description of MediaType suitable for JSON or YAML export.
  7174. func (m *MediaType) ToRawInfo() *yaml.Node {
  7175. info := compiler.NewMappingNode()
  7176. if m == nil {
  7177. return info
  7178. }
  7179. if m.Schema != nil {
  7180. info.Content = append(info.Content, compiler.NewScalarNodeForString("schema"))
  7181. info.Content = append(info.Content, m.Schema.ToRawInfo())
  7182. }
  7183. if m.Example != nil {
  7184. info.Content = append(info.Content, compiler.NewScalarNodeForString("example"))
  7185. info.Content = append(info.Content, m.Example.ToRawInfo())
  7186. }
  7187. if m.Examples != nil {
  7188. info.Content = append(info.Content, compiler.NewScalarNodeForString("examples"))
  7189. info.Content = append(info.Content, m.Examples.ToRawInfo())
  7190. }
  7191. if m.Encoding != nil {
  7192. info.Content = append(info.Content, compiler.NewScalarNodeForString("encoding"))
  7193. info.Content = append(info.Content, m.Encoding.ToRawInfo())
  7194. }
  7195. if m.SpecificationExtension != nil {
  7196. for _, item := range m.SpecificationExtension {
  7197. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  7198. info.Content = append(info.Content, item.Value.ToRawInfo())
  7199. }
  7200. }
  7201. return info
  7202. }
  7203. // ToRawInfo returns a description of MediaTypes suitable for JSON or YAML export.
  7204. func (m *MediaTypes) ToRawInfo() *yaml.Node {
  7205. info := compiler.NewMappingNode()
  7206. if m == nil {
  7207. return info
  7208. }
  7209. if m.AdditionalProperties != nil {
  7210. for _, item := range m.AdditionalProperties {
  7211. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  7212. info.Content = append(info.Content, item.Value.ToRawInfo())
  7213. }
  7214. }
  7215. return info
  7216. }
  7217. // ToRawInfo returns a description of NamedAny suitable for JSON or YAML export.
  7218. func (m *NamedAny) ToRawInfo() *yaml.Node {
  7219. info := compiler.NewMappingNode()
  7220. if m == nil {
  7221. return info
  7222. }
  7223. if m.Name != "" {
  7224. info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
  7225. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
  7226. }
  7227. if m.Value != nil {
  7228. info.Content = append(info.Content, compiler.NewScalarNodeForString("value"))
  7229. info.Content = append(info.Content, m.Value.ToRawInfo())
  7230. }
  7231. return info
  7232. }
  7233. // ToRawInfo returns a description of NamedCallbackOrReference suitable for JSON or YAML export.
  7234. func (m *NamedCallbackOrReference) ToRawInfo() *yaml.Node {
  7235. info := compiler.NewMappingNode()
  7236. if m == nil {
  7237. return info
  7238. }
  7239. if m.Name != "" {
  7240. info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
  7241. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
  7242. }
  7243. // &{Name:value Type:CallbackOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
  7244. return info
  7245. }
  7246. // ToRawInfo returns a description of NamedEncoding suitable for JSON or YAML export.
  7247. func (m *NamedEncoding) ToRawInfo() *yaml.Node {
  7248. info := compiler.NewMappingNode()
  7249. if m == nil {
  7250. return info
  7251. }
  7252. if m.Name != "" {
  7253. info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
  7254. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
  7255. }
  7256. // &{Name:value Type:Encoding StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
  7257. return info
  7258. }
  7259. // ToRawInfo returns a description of NamedExampleOrReference suitable for JSON or YAML export.
  7260. func (m *NamedExampleOrReference) ToRawInfo() *yaml.Node {
  7261. info := compiler.NewMappingNode()
  7262. if m == nil {
  7263. return info
  7264. }
  7265. if m.Name != "" {
  7266. info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
  7267. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
  7268. }
  7269. // &{Name:value Type:ExampleOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
  7270. return info
  7271. }
  7272. // ToRawInfo returns a description of NamedHeaderOrReference suitable for JSON or YAML export.
  7273. func (m *NamedHeaderOrReference) ToRawInfo() *yaml.Node {
  7274. info := compiler.NewMappingNode()
  7275. if m == nil {
  7276. return info
  7277. }
  7278. if m.Name != "" {
  7279. info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
  7280. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
  7281. }
  7282. // &{Name:value Type:HeaderOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
  7283. return info
  7284. }
  7285. // ToRawInfo returns a description of NamedLinkOrReference suitable for JSON or YAML export.
  7286. func (m *NamedLinkOrReference) ToRawInfo() *yaml.Node {
  7287. info := compiler.NewMappingNode()
  7288. if m == nil {
  7289. return info
  7290. }
  7291. if m.Name != "" {
  7292. info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
  7293. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
  7294. }
  7295. // &{Name:value Type:LinkOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
  7296. return info
  7297. }
  7298. // ToRawInfo returns a description of NamedMediaType suitable for JSON or YAML export.
  7299. func (m *NamedMediaType) ToRawInfo() *yaml.Node {
  7300. info := compiler.NewMappingNode()
  7301. if m == nil {
  7302. return info
  7303. }
  7304. if m.Name != "" {
  7305. info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
  7306. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
  7307. }
  7308. // &{Name:value Type:MediaType StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
  7309. return info
  7310. }
  7311. // ToRawInfo returns a description of NamedParameterOrReference suitable for JSON or YAML export.
  7312. func (m *NamedParameterOrReference) ToRawInfo() *yaml.Node {
  7313. info := compiler.NewMappingNode()
  7314. if m == nil {
  7315. return info
  7316. }
  7317. if m.Name != "" {
  7318. info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
  7319. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
  7320. }
  7321. // &{Name:value Type:ParameterOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
  7322. return info
  7323. }
  7324. // ToRawInfo returns a description of NamedPathItem suitable for JSON or YAML export.
  7325. func (m *NamedPathItem) ToRawInfo() *yaml.Node {
  7326. info := compiler.NewMappingNode()
  7327. if m == nil {
  7328. return info
  7329. }
  7330. if m.Name != "" {
  7331. info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
  7332. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
  7333. }
  7334. // &{Name:value Type:PathItem StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
  7335. return info
  7336. }
  7337. // ToRawInfo returns a description of NamedRequestBodyOrReference suitable for JSON or YAML export.
  7338. func (m *NamedRequestBodyOrReference) ToRawInfo() *yaml.Node {
  7339. info := compiler.NewMappingNode()
  7340. if m == nil {
  7341. return info
  7342. }
  7343. if m.Name != "" {
  7344. info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
  7345. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
  7346. }
  7347. // &{Name:value Type:RequestBodyOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
  7348. return info
  7349. }
  7350. // ToRawInfo returns a description of NamedResponseOrReference suitable for JSON or YAML export.
  7351. func (m *NamedResponseOrReference) ToRawInfo() *yaml.Node {
  7352. info := compiler.NewMappingNode()
  7353. if m == nil {
  7354. return info
  7355. }
  7356. if m.Name != "" {
  7357. info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
  7358. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
  7359. }
  7360. // &{Name:value Type:ResponseOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
  7361. return info
  7362. }
  7363. // ToRawInfo returns a description of NamedSchemaOrReference suitable for JSON or YAML export.
  7364. func (m *NamedSchemaOrReference) ToRawInfo() *yaml.Node {
  7365. info := compiler.NewMappingNode()
  7366. if m == nil {
  7367. return info
  7368. }
  7369. if m.Name != "" {
  7370. info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
  7371. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
  7372. }
  7373. // &{Name:value Type:SchemaOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
  7374. return info
  7375. }
  7376. // ToRawInfo returns a description of NamedSecuritySchemeOrReference suitable for JSON or YAML export.
  7377. func (m *NamedSecuritySchemeOrReference) ToRawInfo() *yaml.Node {
  7378. info := compiler.NewMappingNode()
  7379. if m == nil {
  7380. return info
  7381. }
  7382. if m.Name != "" {
  7383. info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
  7384. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
  7385. }
  7386. // &{Name:value Type:SecuritySchemeOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
  7387. return info
  7388. }
  7389. // ToRawInfo returns a description of NamedServerVariable suitable for JSON or YAML export.
  7390. func (m *NamedServerVariable) ToRawInfo() *yaml.Node {
  7391. info := compiler.NewMappingNode()
  7392. if m == nil {
  7393. return info
  7394. }
  7395. if m.Name != "" {
  7396. info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
  7397. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
  7398. }
  7399. // &{Name:value Type:ServerVariable StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
  7400. return info
  7401. }
  7402. // ToRawInfo returns a description of NamedString suitable for JSON or YAML export.
  7403. func (m *NamedString) ToRawInfo() *yaml.Node {
  7404. info := compiler.NewMappingNode()
  7405. if m == nil {
  7406. return info
  7407. }
  7408. if m.Name != "" {
  7409. info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
  7410. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
  7411. }
  7412. if m.Value != "" {
  7413. info.Content = append(info.Content, compiler.NewScalarNodeForString("value"))
  7414. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Value))
  7415. }
  7416. return info
  7417. }
  7418. // ToRawInfo returns a description of NamedStringArray suitable for JSON or YAML export.
  7419. func (m *NamedStringArray) ToRawInfo() *yaml.Node {
  7420. info := compiler.NewMappingNode()
  7421. if m == nil {
  7422. return info
  7423. }
  7424. if m.Name != "" {
  7425. info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
  7426. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
  7427. }
  7428. // &{Name:value Type:StringArray StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
  7429. return info
  7430. }
  7431. // ToRawInfo returns a description of OauthFlow suitable for JSON or YAML export.
  7432. func (m *OauthFlow) ToRawInfo() *yaml.Node {
  7433. info := compiler.NewMappingNode()
  7434. if m == nil {
  7435. return info
  7436. }
  7437. if m.AuthorizationUrl != "" {
  7438. info.Content = append(info.Content, compiler.NewScalarNodeForString("authorizationUrl"))
  7439. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.AuthorizationUrl))
  7440. }
  7441. if m.TokenUrl != "" {
  7442. info.Content = append(info.Content, compiler.NewScalarNodeForString("tokenUrl"))
  7443. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.TokenUrl))
  7444. }
  7445. if m.RefreshUrl != "" {
  7446. info.Content = append(info.Content, compiler.NewScalarNodeForString("refreshUrl"))
  7447. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.RefreshUrl))
  7448. }
  7449. if m.Scopes != nil {
  7450. info.Content = append(info.Content, compiler.NewScalarNodeForString("scopes"))
  7451. info.Content = append(info.Content, m.Scopes.ToRawInfo())
  7452. }
  7453. if m.SpecificationExtension != nil {
  7454. for _, item := range m.SpecificationExtension {
  7455. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  7456. info.Content = append(info.Content, item.Value.ToRawInfo())
  7457. }
  7458. }
  7459. return info
  7460. }
  7461. // ToRawInfo returns a description of OauthFlows suitable for JSON or YAML export.
  7462. func (m *OauthFlows) ToRawInfo() *yaml.Node {
  7463. info := compiler.NewMappingNode()
  7464. if m == nil {
  7465. return info
  7466. }
  7467. if m.Implicit != nil {
  7468. info.Content = append(info.Content, compiler.NewScalarNodeForString("implicit"))
  7469. info.Content = append(info.Content, m.Implicit.ToRawInfo())
  7470. }
  7471. if m.Password != nil {
  7472. info.Content = append(info.Content, compiler.NewScalarNodeForString("password"))
  7473. info.Content = append(info.Content, m.Password.ToRawInfo())
  7474. }
  7475. if m.ClientCredentials != nil {
  7476. info.Content = append(info.Content, compiler.NewScalarNodeForString("clientCredentials"))
  7477. info.Content = append(info.Content, m.ClientCredentials.ToRawInfo())
  7478. }
  7479. if m.AuthorizationCode != nil {
  7480. info.Content = append(info.Content, compiler.NewScalarNodeForString("authorizationCode"))
  7481. info.Content = append(info.Content, m.AuthorizationCode.ToRawInfo())
  7482. }
  7483. if m.SpecificationExtension != nil {
  7484. for _, item := range m.SpecificationExtension {
  7485. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  7486. info.Content = append(info.Content, item.Value.ToRawInfo())
  7487. }
  7488. }
  7489. return info
  7490. }
  7491. // ToRawInfo returns a description of Object suitable for JSON or YAML export.
  7492. func (m *Object) ToRawInfo() *yaml.Node {
  7493. info := compiler.NewMappingNode()
  7494. if m == nil {
  7495. return info
  7496. }
  7497. if m.AdditionalProperties != nil {
  7498. for _, item := range m.AdditionalProperties {
  7499. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  7500. info.Content = append(info.Content, item.Value.ToRawInfo())
  7501. }
  7502. }
  7503. return info
  7504. }
  7505. // ToRawInfo returns a description of Operation suitable for JSON or YAML export.
  7506. func (m *Operation) ToRawInfo() *yaml.Node {
  7507. info := compiler.NewMappingNode()
  7508. if m == nil {
  7509. return info
  7510. }
  7511. if len(m.Tags) != 0 {
  7512. info.Content = append(info.Content, compiler.NewScalarNodeForString("tags"))
  7513. info.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Tags))
  7514. }
  7515. if m.Summary != "" {
  7516. info.Content = append(info.Content, compiler.NewScalarNodeForString("summary"))
  7517. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Summary))
  7518. }
  7519. if m.Description != "" {
  7520. info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
  7521. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
  7522. }
  7523. if m.ExternalDocs != nil {
  7524. info.Content = append(info.Content, compiler.NewScalarNodeForString("externalDocs"))
  7525. info.Content = append(info.Content, m.ExternalDocs.ToRawInfo())
  7526. }
  7527. if m.OperationId != "" {
  7528. info.Content = append(info.Content, compiler.NewScalarNodeForString("operationId"))
  7529. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.OperationId))
  7530. }
  7531. if len(m.Parameters) != 0 {
  7532. items := compiler.NewSequenceNode()
  7533. for _, item := range m.Parameters {
  7534. items.Content = append(items.Content, item.ToRawInfo())
  7535. }
  7536. info.Content = append(info.Content, compiler.NewScalarNodeForString("parameters"))
  7537. info.Content = append(info.Content, items)
  7538. }
  7539. if m.RequestBody != nil {
  7540. info.Content = append(info.Content, compiler.NewScalarNodeForString("requestBody"))
  7541. info.Content = append(info.Content, m.RequestBody.ToRawInfo())
  7542. }
  7543. // always include this required field.
  7544. info.Content = append(info.Content, compiler.NewScalarNodeForString("responses"))
  7545. info.Content = append(info.Content, m.Responses.ToRawInfo())
  7546. if m.Callbacks != nil {
  7547. info.Content = append(info.Content, compiler.NewScalarNodeForString("callbacks"))
  7548. info.Content = append(info.Content, m.Callbacks.ToRawInfo())
  7549. }
  7550. if m.Deprecated != false {
  7551. info.Content = append(info.Content, compiler.NewScalarNodeForString("deprecated"))
  7552. info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Deprecated))
  7553. }
  7554. if len(m.Security) != 0 {
  7555. items := compiler.NewSequenceNode()
  7556. for _, item := range m.Security {
  7557. items.Content = append(items.Content, item.ToRawInfo())
  7558. }
  7559. info.Content = append(info.Content, compiler.NewScalarNodeForString("security"))
  7560. info.Content = append(info.Content, items)
  7561. }
  7562. if len(m.Servers) != 0 {
  7563. items := compiler.NewSequenceNode()
  7564. for _, item := range m.Servers {
  7565. items.Content = append(items.Content, item.ToRawInfo())
  7566. }
  7567. info.Content = append(info.Content, compiler.NewScalarNodeForString("servers"))
  7568. info.Content = append(info.Content, items)
  7569. }
  7570. if m.SpecificationExtension != nil {
  7571. for _, item := range m.SpecificationExtension {
  7572. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  7573. info.Content = append(info.Content, item.Value.ToRawInfo())
  7574. }
  7575. }
  7576. return info
  7577. }
  7578. // ToRawInfo returns a description of Parameter suitable for JSON or YAML export.
  7579. func (m *Parameter) ToRawInfo() *yaml.Node {
  7580. info := compiler.NewMappingNode()
  7581. if m == nil {
  7582. return info
  7583. }
  7584. // always include this required field.
  7585. info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
  7586. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
  7587. // always include this required field.
  7588. info.Content = append(info.Content, compiler.NewScalarNodeForString("in"))
  7589. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.In))
  7590. if m.Description != "" {
  7591. info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
  7592. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
  7593. }
  7594. if m.Required != false {
  7595. info.Content = append(info.Content, compiler.NewScalarNodeForString("required"))
  7596. info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Required))
  7597. }
  7598. if m.Deprecated != false {
  7599. info.Content = append(info.Content, compiler.NewScalarNodeForString("deprecated"))
  7600. info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Deprecated))
  7601. }
  7602. if m.AllowEmptyValue != false {
  7603. info.Content = append(info.Content, compiler.NewScalarNodeForString("allowEmptyValue"))
  7604. info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.AllowEmptyValue))
  7605. }
  7606. if m.Style != "" {
  7607. info.Content = append(info.Content, compiler.NewScalarNodeForString("style"))
  7608. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Style))
  7609. }
  7610. if m.Explode != false {
  7611. info.Content = append(info.Content, compiler.NewScalarNodeForString("explode"))
  7612. info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Explode))
  7613. }
  7614. if m.AllowReserved != false {
  7615. info.Content = append(info.Content, compiler.NewScalarNodeForString("allowReserved"))
  7616. info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.AllowReserved))
  7617. }
  7618. if m.Schema != nil {
  7619. info.Content = append(info.Content, compiler.NewScalarNodeForString("schema"))
  7620. info.Content = append(info.Content, m.Schema.ToRawInfo())
  7621. }
  7622. if m.Example != nil {
  7623. info.Content = append(info.Content, compiler.NewScalarNodeForString("example"))
  7624. info.Content = append(info.Content, m.Example.ToRawInfo())
  7625. }
  7626. if m.Examples != nil {
  7627. info.Content = append(info.Content, compiler.NewScalarNodeForString("examples"))
  7628. info.Content = append(info.Content, m.Examples.ToRawInfo())
  7629. }
  7630. if m.Content != nil {
  7631. info.Content = append(info.Content, compiler.NewScalarNodeForString("content"))
  7632. info.Content = append(info.Content, m.Content.ToRawInfo())
  7633. }
  7634. if m.SpecificationExtension != nil {
  7635. for _, item := range m.SpecificationExtension {
  7636. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  7637. info.Content = append(info.Content, item.Value.ToRawInfo())
  7638. }
  7639. }
  7640. return info
  7641. }
  7642. // ToRawInfo returns a description of ParameterOrReference suitable for JSON or YAML export.
  7643. func (m *ParameterOrReference) ToRawInfo() *yaml.Node {
  7644. // ONE OF WRAPPER
  7645. // ParameterOrReference
  7646. // {Name:parameter Type:Parameter StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  7647. v0 := m.GetParameter()
  7648. if v0 != nil {
  7649. return v0.ToRawInfo()
  7650. }
  7651. // {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  7652. v1 := m.GetReference()
  7653. if v1 != nil {
  7654. return v1.ToRawInfo()
  7655. }
  7656. return compiler.NewNullNode()
  7657. }
  7658. // ToRawInfo returns a description of ParametersOrReferences suitable for JSON or YAML export.
  7659. func (m *ParametersOrReferences) ToRawInfo() *yaml.Node {
  7660. info := compiler.NewMappingNode()
  7661. if m == nil {
  7662. return info
  7663. }
  7664. if m.AdditionalProperties != nil {
  7665. for _, item := range m.AdditionalProperties {
  7666. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  7667. info.Content = append(info.Content, item.Value.ToRawInfo())
  7668. }
  7669. }
  7670. return info
  7671. }
  7672. // ToRawInfo returns a description of PathItem suitable for JSON or YAML export.
  7673. func (m *PathItem) ToRawInfo() *yaml.Node {
  7674. info := compiler.NewMappingNode()
  7675. if m == nil {
  7676. return info
  7677. }
  7678. if m.XRef != "" {
  7679. info.Content = append(info.Content, compiler.NewScalarNodeForString("$ref"))
  7680. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.XRef))
  7681. }
  7682. if m.Summary != "" {
  7683. info.Content = append(info.Content, compiler.NewScalarNodeForString("summary"))
  7684. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Summary))
  7685. }
  7686. if m.Description != "" {
  7687. info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
  7688. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
  7689. }
  7690. if m.Get != nil {
  7691. info.Content = append(info.Content, compiler.NewScalarNodeForString("get"))
  7692. info.Content = append(info.Content, m.Get.ToRawInfo())
  7693. }
  7694. if m.Put != nil {
  7695. info.Content = append(info.Content, compiler.NewScalarNodeForString("put"))
  7696. info.Content = append(info.Content, m.Put.ToRawInfo())
  7697. }
  7698. if m.Post != nil {
  7699. info.Content = append(info.Content, compiler.NewScalarNodeForString("post"))
  7700. info.Content = append(info.Content, m.Post.ToRawInfo())
  7701. }
  7702. if m.Delete != nil {
  7703. info.Content = append(info.Content, compiler.NewScalarNodeForString("delete"))
  7704. info.Content = append(info.Content, m.Delete.ToRawInfo())
  7705. }
  7706. if m.Options != nil {
  7707. info.Content = append(info.Content, compiler.NewScalarNodeForString("options"))
  7708. info.Content = append(info.Content, m.Options.ToRawInfo())
  7709. }
  7710. if m.Head != nil {
  7711. info.Content = append(info.Content, compiler.NewScalarNodeForString("head"))
  7712. info.Content = append(info.Content, m.Head.ToRawInfo())
  7713. }
  7714. if m.Patch != nil {
  7715. info.Content = append(info.Content, compiler.NewScalarNodeForString("patch"))
  7716. info.Content = append(info.Content, m.Patch.ToRawInfo())
  7717. }
  7718. if m.Trace != nil {
  7719. info.Content = append(info.Content, compiler.NewScalarNodeForString("trace"))
  7720. info.Content = append(info.Content, m.Trace.ToRawInfo())
  7721. }
  7722. if len(m.Servers) != 0 {
  7723. items := compiler.NewSequenceNode()
  7724. for _, item := range m.Servers {
  7725. items.Content = append(items.Content, item.ToRawInfo())
  7726. }
  7727. info.Content = append(info.Content, compiler.NewScalarNodeForString("servers"))
  7728. info.Content = append(info.Content, items)
  7729. }
  7730. if len(m.Parameters) != 0 {
  7731. items := compiler.NewSequenceNode()
  7732. for _, item := range m.Parameters {
  7733. items.Content = append(items.Content, item.ToRawInfo())
  7734. }
  7735. info.Content = append(info.Content, compiler.NewScalarNodeForString("parameters"))
  7736. info.Content = append(info.Content, items)
  7737. }
  7738. if m.SpecificationExtension != nil {
  7739. for _, item := range m.SpecificationExtension {
  7740. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  7741. info.Content = append(info.Content, item.Value.ToRawInfo())
  7742. }
  7743. }
  7744. return info
  7745. }
  7746. // ToRawInfo returns a description of Paths suitable for JSON or YAML export.
  7747. func (m *Paths) ToRawInfo() *yaml.Node {
  7748. info := compiler.NewMappingNode()
  7749. if m == nil {
  7750. return info
  7751. }
  7752. if m.Path != nil {
  7753. for _, item := range m.Path {
  7754. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  7755. info.Content = append(info.Content, item.Value.ToRawInfo())
  7756. }
  7757. }
  7758. if m.SpecificationExtension != nil {
  7759. for _, item := range m.SpecificationExtension {
  7760. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  7761. info.Content = append(info.Content, item.Value.ToRawInfo())
  7762. }
  7763. }
  7764. return info
  7765. }
  7766. // ToRawInfo returns a description of Properties suitable for JSON or YAML export.
  7767. func (m *Properties) ToRawInfo() *yaml.Node {
  7768. info := compiler.NewMappingNode()
  7769. if m == nil {
  7770. return info
  7771. }
  7772. if m.AdditionalProperties != nil {
  7773. for _, item := range m.AdditionalProperties {
  7774. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  7775. info.Content = append(info.Content, item.Value.ToRawInfo())
  7776. }
  7777. }
  7778. return info
  7779. }
  7780. // ToRawInfo returns a description of Reference suitable for JSON or YAML export.
  7781. func (m *Reference) ToRawInfo() *yaml.Node {
  7782. info := compiler.NewMappingNode()
  7783. if m == nil {
  7784. return info
  7785. }
  7786. // always include this required field.
  7787. info.Content = append(info.Content, compiler.NewScalarNodeForString("$ref"))
  7788. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.XRef))
  7789. if m.Summary != "" {
  7790. info.Content = append(info.Content, compiler.NewScalarNodeForString("summary"))
  7791. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Summary))
  7792. }
  7793. if m.Description != "" {
  7794. info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
  7795. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
  7796. }
  7797. return info
  7798. }
  7799. // ToRawInfo returns a description of RequestBodiesOrReferences suitable for JSON or YAML export.
  7800. func (m *RequestBodiesOrReferences) ToRawInfo() *yaml.Node {
  7801. info := compiler.NewMappingNode()
  7802. if m == nil {
  7803. return info
  7804. }
  7805. if m.AdditionalProperties != nil {
  7806. for _, item := range m.AdditionalProperties {
  7807. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  7808. info.Content = append(info.Content, item.Value.ToRawInfo())
  7809. }
  7810. }
  7811. return info
  7812. }
  7813. // ToRawInfo returns a description of RequestBody suitable for JSON or YAML export.
  7814. func (m *RequestBody) ToRawInfo() *yaml.Node {
  7815. info := compiler.NewMappingNode()
  7816. if m == nil {
  7817. return info
  7818. }
  7819. if m.Description != "" {
  7820. info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
  7821. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
  7822. }
  7823. // always include this required field.
  7824. info.Content = append(info.Content, compiler.NewScalarNodeForString("content"))
  7825. info.Content = append(info.Content, m.Content.ToRawInfo())
  7826. if m.Required != false {
  7827. info.Content = append(info.Content, compiler.NewScalarNodeForString("required"))
  7828. info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Required))
  7829. }
  7830. if m.SpecificationExtension != nil {
  7831. for _, item := range m.SpecificationExtension {
  7832. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  7833. info.Content = append(info.Content, item.Value.ToRawInfo())
  7834. }
  7835. }
  7836. return info
  7837. }
  7838. // ToRawInfo returns a description of RequestBodyOrReference suitable for JSON or YAML export.
  7839. func (m *RequestBodyOrReference) ToRawInfo() *yaml.Node {
  7840. // ONE OF WRAPPER
  7841. // RequestBodyOrReference
  7842. // {Name:requestBody Type:RequestBody StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  7843. v0 := m.GetRequestBody()
  7844. if v0 != nil {
  7845. return v0.ToRawInfo()
  7846. }
  7847. // {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  7848. v1 := m.GetReference()
  7849. if v1 != nil {
  7850. return v1.ToRawInfo()
  7851. }
  7852. return compiler.NewNullNode()
  7853. }
  7854. // ToRawInfo returns a description of Response suitable for JSON or YAML export.
  7855. func (m *Response) ToRawInfo() *yaml.Node {
  7856. info := compiler.NewMappingNode()
  7857. if m == nil {
  7858. return info
  7859. }
  7860. // always include this required field.
  7861. info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
  7862. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
  7863. if m.Headers != nil {
  7864. info.Content = append(info.Content, compiler.NewScalarNodeForString("headers"))
  7865. info.Content = append(info.Content, m.Headers.ToRawInfo())
  7866. }
  7867. if m.Content != nil {
  7868. info.Content = append(info.Content, compiler.NewScalarNodeForString("content"))
  7869. info.Content = append(info.Content, m.Content.ToRawInfo())
  7870. }
  7871. if m.Links != nil {
  7872. info.Content = append(info.Content, compiler.NewScalarNodeForString("links"))
  7873. info.Content = append(info.Content, m.Links.ToRawInfo())
  7874. }
  7875. if m.SpecificationExtension != nil {
  7876. for _, item := range m.SpecificationExtension {
  7877. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  7878. info.Content = append(info.Content, item.Value.ToRawInfo())
  7879. }
  7880. }
  7881. return info
  7882. }
  7883. // ToRawInfo returns a description of ResponseOrReference suitable for JSON or YAML export.
  7884. func (m *ResponseOrReference) ToRawInfo() *yaml.Node {
  7885. // ONE OF WRAPPER
  7886. // ResponseOrReference
  7887. // {Name:response Type:Response StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  7888. v0 := m.GetResponse()
  7889. if v0 != nil {
  7890. return v0.ToRawInfo()
  7891. }
  7892. // {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  7893. v1 := m.GetReference()
  7894. if v1 != nil {
  7895. return v1.ToRawInfo()
  7896. }
  7897. return compiler.NewNullNode()
  7898. }
  7899. // ToRawInfo returns a description of Responses suitable for JSON or YAML export.
  7900. func (m *Responses) ToRawInfo() *yaml.Node {
  7901. info := compiler.NewMappingNode()
  7902. if m == nil {
  7903. return info
  7904. }
  7905. if m.Default != nil {
  7906. info.Content = append(info.Content, compiler.NewScalarNodeForString("default"))
  7907. info.Content = append(info.Content, m.Default.ToRawInfo())
  7908. }
  7909. if m.ResponseOrReference != nil {
  7910. for _, item := range m.ResponseOrReference {
  7911. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  7912. info.Content = append(info.Content, item.Value.ToRawInfo())
  7913. }
  7914. }
  7915. if m.SpecificationExtension != nil {
  7916. for _, item := range m.SpecificationExtension {
  7917. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  7918. info.Content = append(info.Content, item.Value.ToRawInfo())
  7919. }
  7920. }
  7921. return info
  7922. }
  7923. // ToRawInfo returns a description of ResponsesOrReferences suitable for JSON or YAML export.
  7924. func (m *ResponsesOrReferences) ToRawInfo() *yaml.Node {
  7925. info := compiler.NewMappingNode()
  7926. if m == nil {
  7927. return info
  7928. }
  7929. if m.AdditionalProperties != nil {
  7930. for _, item := range m.AdditionalProperties {
  7931. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  7932. info.Content = append(info.Content, item.Value.ToRawInfo())
  7933. }
  7934. }
  7935. return info
  7936. }
  7937. // ToRawInfo returns a description of Schema suitable for JSON or YAML export.
  7938. func (m *Schema) ToRawInfo() *yaml.Node {
  7939. info := compiler.NewMappingNode()
  7940. if m == nil {
  7941. return info
  7942. }
  7943. if m.Nullable != false {
  7944. info.Content = append(info.Content, compiler.NewScalarNodeForString("nullable"))
  7945. info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Nullable))
  7946. }
  7947. if m.Discriminator != nil {
  7948. info.Content = append(info.Content, compiler.NewScalarNodeForString("discriminator"))
  7949. info.Content = append(info.Content, m.Discriminator.ToRawInfo())
  7950. }
  7951. if m.ReadOnly != false {
  7952. info.Content = append(info.Content, compiler.NewScalarNodeForString("readOnly"))
  7953. info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ReadOnly))
  7954. }
  7955. if m.WriteOnly != false {
  7956. info.Content = append(info.Content, compiler.NewScalarNodeForString("writeOnly"))
  7957. info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.WriteOnly))
  7958. }
  7959. if m.Xml != nil {
  7960. info.Content = append(info.Content, compiler.NewScalarNodeForString("xml"))
  7961. info.Content = append(info.Content, m.Xml.ToRawInfo())
  7962. }
  7963. if m.ExternalDocs != nil {
  7964. info.Content = append(info.Content, compiler.NewScalarNodeForString("externalDocs"))
  7965. info.Content = append(info.Content, m.ExternalDocs.ToRawInfo())
  7966. }
  7967. if m.Example != nil {
  7968. info.Content = append(info.Content, compiler.NewScalarNodeForString("example"))
  7969. info.Content = append(info.Content, m.Example.ToRawInfo())
  7970. }
  7971. if m.Deprecated != false {
  7972. info.Content = append(info.Content, compiler.NewScalarNodeForString("deprecated"))
  7973. info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Deprecated))
  7974. }
  7975. if m.Title != "" {
  7976. info.Content = append(info.Content, compiler.NewScalarNodeForString("title"))
  7977. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Title))
  7978. }
  7979. if m.MultipleOf != 0.0 {
  7980. info.Content = append(info.Content, compiler.NewScalarNodeForString("multipleOf"))
  7981. info.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.MultipleOf))
  7982. }
  7983. if m.Maximum != 0.0 {
  7984. info.Content = append(info.Content, compiler.NewScalarNodeForString("maximum"))
  7985. info.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Maximum))
  7986. }
  7987. if m.ExclusiveMaximum != false {
  7988. info.Content = append(info.Content, compiler.NewScalarNodeForString("exclusiveMaximum"))
  7989. info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMaximum))
  7990. }
  7991. if m.Minimum != 0.0 {
  7992. info.Content = append(info.Content, compiler.NewScalarNodeForString("minimum"))
  7993. info.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Minimum))
  7994. }
  7995. if m.ExclusiveMinimum != false {
  7996. info.Content = append(info.Content, compiler.NewScalarNodeForString("exclusiveMinimum"))
  7997. info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMinimum))
  7998. }
  7999. if m.MaxLength != 0 {
  8000. info.Content = append(info.Content, compiler.NewScalarNodeForString("maxLength"))
  8001. info.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxLength))
  8002. }
  8003. if m.MinLength != 0 {
  8004. info.Content = append(info.Content, compiler.NewScalarNodeForString("minLength"))
  8005. info.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinLength))
  8006. }
  8007. if m.Pattern != "" {
  8008. info.Content = append(info.Content, compiler.NewScalarNodeForString("pattern"))
  8009. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Pattern))
  8010. }
  8011. if m.MaxItems != 0 {
  8012. info.Content = append(info.Content, compiler.NewScalarNodeForString("maxItems"))
  8013. info.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxItems))
  8014. }
  8015. if m.MinItems != 0 {
  8016. info.Content = append(info.Content, compiler.NewScalarNodeForString("minItems"))
  8017. info.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinItems))
  8018. }
  8019. if m.UniqueItems != false {
  8020. info.Content = append(info.Content, compiler.NewScalarNodeForString("uniqueItems"))
  8021. info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.UniqueItems))
  8022. }
  8023. if m.MaxProperties != 0 {
  8024. info.Content = append(info.Content, compiler.NewScalarNodeForString("maxProperties"))
  8025. info.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxProperties))
  8026. }
  8027. if m.MinProperties != 0 {
  8028. info.Content = append(info.Content, compiler.NewScalarNodeForString("minProperties"))
  8029. info.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinProperties))
  8030. }
  8031. if len(m.Required) != 0 {
  8032. info.Content = append(info.Content, compiler.NewScalarNodeForString("required"))
  8033. info.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Required))
  8034. }
  8035. if len(m.Enum) != 0 {
  8036. items := compiler.NewSequenceNode()
  8037. for _, item := range m.Enum {
  8038. items.Content = append(items.Content, item.ToRawInfo())
  8039. }
  8040. info.Content = append(info.Content, compiler.NewScalarNodeForString("enum"))
  8041. info.Content = append(info.Content, items)
  8042. }
  8043. if m.Type != "" {
  8044. info.Content = append(info.Content, compiler.NewScalarNodeForString("type"))
  8045. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))
  8046. }
  8047. if len(m.AllOf) != 0 {
  8048. items := compiler.NewSequenceNode()
  8049. for _, item := range m.AllOf {
  8050. items.Content = append(items.Content, item.ToRawInfo())
  8051. }
  8052. info.Content = append(info.Content, compiler.NewScalarNodeForString("allOf"))
  8053. info.Content = append(info.Content, items)
  8054. }
  8055. if len(m.OneOf) != 0 {
  8056. items := compiler.NewSequenceNode()
  8057. for _, item := range m.OneOf {
  8058. items.Content = append(items.Content, item.ToRawInfo())
  8059. }
  8060. info.Content = append(info.Content, compiler.NewScalarNodeForString("oneOf"))
  8061. info.Content = append(info.Content, items)
  8062. }
  8063. if len(m.AnyOf) != 0 {
  8064. items := compiler.NewSequenceNode()
  8065. for _, item := range m.AnyOf {
  8066. items.Content = append(items.Content, item.ToRawInfo())
  8067. }
  8068. info.Content = append(info.Content, compiler.NewScalarNodeForString("anyOf"))
  8069. info.Content = append(info.Content, items)
  8070. }
  8071. if m.Not != nil {
  8072. info.Content = append(info.Content, compiler.NewScalarNodeForString("not"))
  8073. info.Content = append(info.Content, m.Not.ToRawInfo())
  8074. }
  8075. if m.Items != nil {
  8076. items := compiler.NewSequenceNode()
  8077. for _, item := range m.Items.SchemaOrReference {
  8078. items.Content = append(items.Content, item.ToRawInfo())
  8079. }
  8080. if len(items.Content) == 1 {
  8081. items = items.Content[0]
  8082. }
  8083. info.Content = append(info.Content, compiler.NewScalarNodeForString("items"))
  8084. info.Content = append(info.Content, items)
  8085. }
  8086. if m.Properties != nil {
  8087. info.Content = append(info.Content, compiler.NewScalarNodeForString("properties"))
  8088. info.Content = append(info.Content, m.Properties.ToRawInfo())
  8089. }
  8090. if m.AdditionalProperties != nil {
  8091. info.Content = append(info.Content, compiler.NewScalarNodeForString("additionalProperties"))
  8092. info.Content = append(info.Content, m.AdditionalProperties.ToRawInfo())
  8093. }
  8094. if m.Default != nil {
  8095. info.Content = append(info.Content, compiler.NewScalarNodeForString("default"))
  8096. info.Content = append(info.Content, m.Default.ToRawInfo())
  8097. }
  8098. if m.Description != "" {
  8099. info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
  8100. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
  8101. }
  8102. if m.Format != "" {
  8103. info.Content = append(info.Content, compiler.NewScalarNodeForString("format"))
  8104. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Format))
  8105. }
  8106. if m.SpecificationExtension != nil {
  8107. for _, item := range m.SpecificationExtension {
  8108. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  8109. info.Content = append(info.Content, item.Value.ToRawInfo())
  8110. }
  8111. }
  8112. return info
  8113. }
  8114. // ToRawInfo returns a description of SchemaOrReference suitable for JSON or YAML export.
  8115. func (m *SchemaOrReference) ToRawInfo() *yaml.Node {
  8116. // ONE OF WRAPPER
  8117. // SchemaOrReference
  8118. // {Name:schema Type:Schema StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  8119. v0 := m.GetSchema()
  8120. if v0 != nil {
  8121. return v0.ToRawInfo()
  8122. }
  8123. // {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  8124. v1 := m.GetReference()
  8125. if v1 != nil {
  8126. return v1.ToRawInfo()
  8127. }
  8128. return compiler.NewNullNode()
  8129. }
  8130. // ToRawInfo returns a description of SchemasOrReferences suitable for JSON or YAML export.
  8131. func (m *SchemasOrReferences) ToRawInfo() *yaml.Node {
  8132. info := compiler.NewMappingNode()
  8133. if m == nil {
  8134. return info
  8135. }
  8136. if m.AdditionalProperties != nil {
  8137. for _, item := range m.AdditionalProperties {
  8138. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  8139. info.Content = append(info.Content, item.Value.ToRawInfo())
  8140. }
  8141. }
  8142. return info
  8143. }
  8144. // ToRawInfo returns a description of SecurityRequirement suitable for JSON or YAML export.
  8145. func (m *SecurityRequirement) ToRawInfo() *yaml.Node {
  8146. info := compiler.NewMappingNode()
  8147. if m == nil {
  8148. return info
  8149. }
  8150. if m.AdditionalProperties != nil {
  8151. for _, item := range m.AdditionalProperties {
  8152. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  8153. info.Content = append(info.Content, item.Value.ToRawInfo())
  8154. }
  8155. }
  8156. return info
  8157. }
  8158. // ToRawInfo returns a description of SecurityScheme suitable for JSON or YAML export.
  8159. func (m *SecurityScheme) ToRawInfo() *yaml.Node {
  8160. info := compiler.NewMappingNode()
  8161. if m == nil {
  8162. return info
  8163. }
  8164. // always include this required field.
  8165. info.Content = append(info.Content, compiler.NewScalarNodeForString("type"))
  8166. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))
  8167. if m.Description != "" {
  8168. info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
  8169. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
  8170. }
  8171. if m.Name != "" {
  8172. info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
  8173. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
  8174. }
  8175. if m.In != "" {
  8176. info.Content = append(info.Content, compiler.NewScalarNodeForString("in"))
  8177. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.In))
  8178. }
  8179. if m.Scheme != "" {
  8180. info.Content = append(info.Content, compiler.NewScalarNodeForString("scheme"))
  8181. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Scheme))
  8182. }
  8183. if m.BearerFormat != "" {
  8184. info.Content = append(info.Content, compiler.NewScalarNodeForString("bearerFormat"))
  8185. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.BearerFormat))
  8186. }
  8187. if m.Flows != nil {
  8188. info.Content = append(info.Content, compiler.NewScalarNodeForString("flows"))
  8189. info.Content = append(info.Content, m.Flows.ToRawInfo())
  8190. }
  8191. if m.OpenIdConnectUrl != "" {
  8192. info.Content = append(info.Content, compiler.NewScalarNodeForString("openIdConnectUrl"))
  8193. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.OpenIdConnectUrl))
  8194. }
  8195. if m.SpecificationExtension != nil {
  8196. for _, item := range m.SpecificationExtension {
  8197. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  8198. info.Content = append(info.Content, item.Value.ToRawInfo())
  8199. }
  8200. }
  8201. return info
  8202. }
  8203. // ToRawInfo returns a description of SecuritySchemeOrReference suitable for JSON or YAML export.
  8204. func (m *SecuritySchemeOrReference) ToRawInfo() *yaml.Node {
  8205. // ONE OF WRAPPER
  8206. // SecuritySchemeOrReference
  8207. // {Name:securityScheme Type:SecurityScheme StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  8208. v0 := m.GetSecurityScheme()
  8209. if v0 != nil {
  8210. return v0.ToRawInfo()
  8211. }
  8212. // {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  8213. v1 := m.GetReference()
  8214. if v1 != nil {
  8215. return v1.ToRawInfo()
  8216. }
  8217. return compiler.NewNullNode()
  8218. }
  8219. // ToRawInfo returns a description of SecuritySchemesOrReferences suitable for JSON or YAML export.
  8220. func (m *SecuritySchemesOrReferences) ToRawInfo() *yaml.Node {
  8221. info := compiler.NewMappingNode()
  8222. if m == nil {
  8223. return info
  8224. }
  8225. if m.AdditionalProperties != nil {
  8226. for _, item := range m.AdditionalProperties {
  8227. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  8228. info.Content = append(info.Content, item.Value.ToRawInfo())
  8229. }
  8230. }
  8231. return info
  8232. }
  8233. // ToRawInfo returns a description of Server suitable for JSON or YAML export.
  8234. func (m *Server) ToRawInfo() *yaml.Node {
  8235. info := compiler.NewMappingNode()
  8236. if m == nil {
  8237. return info
  8238. }
  8239. // always include this required field.
  8240. info.Content = append(info.Content, compiler.NewScalarNodeForString("url"))
  8241. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Url))
  8242. if m.Description != "" {
  8243. info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
  8244. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
  8245. }
  8246. if m.Variables != nil {
  8247. info.Content = append(info.Content, compiler.NewScalarNodeForString("variables"))
  8248. info.Content = append(info.Content, m.Variables.ToRawInfo())
  8249. }
  8250. if m.SpecificationExtension != nil {
  8251. for _, item := range m.SpecificationExtension {
  8252. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  8253. info.Content = append(info.Content, item.Value.ToRawInfo())
  8254. }
  8255. }
  8256. return info
  8257. }
  8258. // ToRawInfo returns a description of ServerVariable suitable for JSON or YAML export.
  8259. func (m *ServerVariable) ToRawInfo() *yaml.Node {
  8260. info := compiler.NewMappingNode()
  8261. if m == nil {
  8262. return info
  8263. }
  8264. if len(m.Enum) != 0 {
  8265. info.Content = append(info.Content, compiler.NewScalarNodeForString("enum"))
  8266. info.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Enum))
  8267. }
  8268. // always include this required field.
  8269. info.Content = append(info.Content, compiler.NewScalarNodeForString("default"))
  8270. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Default))
  8271. if m.Description != "" {
  8272. info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
  8273. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
  8274. }
  8275. if m.SpecificationExtension != nil {
  8276. for _, item := range m.SpecificationExtension {
  8277. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  8278. info.Content = append(info.Content, item.Value.ToRawInfo())
  8279. }
  8280. }
  8281. return info
  8282. }
  8283. // ToRawInfo returns a description of ServerVariables suitable for JSON or YAML export.
  8284. func (m *ServerVariables) ToRawInfo() *yaml.Node {
  8285. info := compiler.NewMappingNode()
  8286. if m == nil {
  8287. return info
  8288. }
  8289. if m.AdditionalProperties != nil {
  8290. for _, item := range m.AdditionalProperties {
  8291. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  8292. info.Content = append(info.Content, item.Value.ToRawInfo())
  8293. }
  8294. }
  8295. return info
  8296. }
  8297. // ToRawInfo returns a description of SpecificationExtension suitable for JSON or YAML export.
  8298. func (m *SpecificationExtension) ToRawInfo() *yaml.Node {
  8299. // ONE OF WRAPPER
  8300. // SpecificationExtension
  8301. // {Name:number Type:float StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  8302. if v0, ok := m.GetOneof().(*SpecificationExtension_Number); ok {
  8303. return compiler.NewScalarNodeForFloat(v0.Number)
  8304. }
  8305. // {Name:boolean Type:bool StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  8306. if v1, ok := m.GetOneof().(*SpecificationExtension_Boolean); ok {
  8307. return compiler.NewScalarNodeForBool(v1.Boolean)
  8308. }
  8309. // {Name:string Type:string StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
  8310. if v2, ok := m.GetOneof().(*SpecificationExtension_String_); ok {
  8311. return compiler.NewScalarNodeForString(v2.String_)
  8312. }
  8313. return compiler.NewNullNode()
  8314. }
  8315. // ToRawInfo returns a description of StringArray suitable for JSON or YAML export.
  8316. func (m *StringArray) ToRawInfo() *yaml.Node {
  8317. return compiler.NewSequenceNodeForStringArray(m.Value)
  8318. }
  8319. // ToRawInfo returns a description of Strings suitable for JSON or YAML export.
  8320. func (m *Strings) ToRawInfo() *yaml.Node {
  8321. info := compiler.NewMappingNode()
  8322. if m == nil {
  8323. return info
  8324. }
  8325. // &{Name:additionalProperties Type:NamedString StringEnumValues:[] MapType:string Repeated:true Pattern: Implicit:true Description:}
  8326. return info
  8327. }
  8328. // ToRawInfo returns a description of Tag suitable for JSON or YAML export.
  8329. func (m *Tag) ToRawInfo() *yaml.Node {
  8330. info := compiler.NewMappingNode()
  8331. if m == nil {
  8332. return info
  8333. }
  8334. // always include this required field.
  8335. info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
  8336. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
  8337. if m.Description != "" {
  8338. info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
  8339. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
  8340. }
  8341. if m.ExternalDocs != nil {
  8342. info.Content = append(info.Content, compiler.NewScalarNodeForString("externalDocs"))
  8343. info.Content = append(info.Content, m.ExternalDocs.ToRawInfo())
  8344. }
  8345. if m.SpecificationExtension != nil {
  8346. for _, item := range m.SpecificationExtension {
  8347. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  8348. info.Content = append(info.Content, item.Value.ToRawInfo())
  8349. }
  8350. }
  8351. return info
  8352. }
  8353. // ToRawInfo returns a description of Xml suitable for JSON or YAML export.
  8354. func (m *Xml) ToRawInfo() *yaml.Node {
  8355. info := compiler.NewMappingNode()
  8356. if m == nil {
  8357. return info
  8358. }
  8359. if m.Name != "" {
  8360. info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
  8361. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
  8362. }
  8363. if m.Namespace != "" {
  8364. info.Content = append(info.Content, compiler.NewScalarNodeForString("namespace"))
  8365. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Namespace))
  8366. }
  8367. if m.Prefix != "" {
  8368. info.Content = append(info.Content, compiler.NewScalarNodeForString("prefix"))
  8369. info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Prefix))
  8370. }
  8371. if m.Attribute != false {
  8372. info.Content = append(info.Content, compiler.NewScalarNodeForString("attribute"))
  8373. info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Attribute))
  8374. }
  8375. if m.Wrapped != false {
  8376. info.Content = append(info.Content, compiler.NewScalarNodeForString("wrapped"))
  8377. info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Wrapped))
  8378. }
  8379. if m.SpecificationExtension != nil {
  8380. for _, item := range m.SpecificationExtension {
  8381. info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
  8382. info.Content = append(info.Content, item.Value.ToRawInfo())
  8383. }
  8384. }
  8385. return info
  8386. }
  8387. var (
  8388. pattern0 = regexp.MustCompile("^")
  8389. pattern1 = regexp.MustCompile("^x-")
  8390. pattern2 = regexp.MustCompile("^/")
  8391. pattern3 = regexp.MustCompile("^([0-9X]{3})$")
  8392. )