OpenAPIv2.go 301 KB

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