OpenAPIv2.go 301 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818
  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. "github.com/googleapis/gnostic/compiler"
  19. "gopkg.in/yaml.v3"
  20. "regexp"
  21. "strings"
  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. )