加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
swagger.yml 229.43 KB
一键复制 编辑 原始数据 按行查看 历史
Laurentiu 提交于 2024-11-19 10:34 . [TT-13475] update OAS version (#6712)
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856
openapi: 3.0.3
info:
contact:
email: support@tyk.io
name: Tyk Technologies
url: https://tyk.io/contact
description: |+
The Tyk Gateway API is the primary means for integrating your application with the Tyk API Gateway system. This API is very small, and has no granular permissions system. It is intended to be used purely for internal automation and integration.
**Warning: Under no circumstances should outside parties be granted access to this API.**
The Tyk Gateway API is capable of:
* Managing session objects (key generation).
* Managing and listing policies.
* Managing and listing API Definitions (only when not using the Tyk Dashboard).
* Hot reloads / reloading a cluster configuration.
* OAuth client creation (only when not using the Tyk Dashboard).
In order to use the Gateway API, you'll need to set the **secret** parameter in your tyk.conf file.
The shared secret you set should then be sent along as a header with each Gateway API Request in order for it to be successful:
**x-tyk-authorization: <your-secret>***
<br/>
<b>The Tyk Gateway API is subsumed by the Tyk Dashboard API in Pro installations.</b>
license:
name: Mozilla Public License Version 2.0
url: https://github.com/TykTechnologies/tyk/blob/master/LICENSE.md
title: Tyk Gateway API
version: 5.7.0
servers:
- url: https://{tenant}
variables:
tenant:
default: localhost:8080
description: Your gateway host
security:
- api_key: []
tags:
- description: |
**Note: Applies only to Tyk Gateway Community Edition** <br/>
API management is very simple using the Tyk Rest API: each update only affects the underlying file, and this endpoint will only work with disk based installations, not database-backed ones.<br/>
APIs that are added this way are flushed to to disk into the app_path folder using the format: *{api-id}.json*. Updating existing APIs that use a different naming convention will cause those APIs to be added, which could subsequently lead to a loading error and crash if they use the same listen_path. <br/>
These methods only work on a single API node. If updating a cluster, it is important to ensure that all nodes are updated before initiating a reload.<br/>
name: APIs
- description: |+
**Note: Applies only to Tyk Gateway Community Edition** <br/>
name: Tyk OAS APIs
- description: |
All keys that are used to access services via Tyk correspond to a session object that informs Tyk about the context of this particular token, like access rules and rate/quota allowance.
name: Keys
- description: |
It is possible to force API quota and rate limit across all keys that belong to a specific organisation ID. Rate limiting at an organisation level is useful for creating tiered access levels and trial accounts.<br />
The Organisation rate limiting middleware works with both Quotas and Rate Limiters. In order to manage this functionality, a simple API has been put in place to manage these sessions. <br />
Although the Organisation session-limiter uses the same session object, all other security keys are optional as they are not used. <br />
<h3>Managing active status</h3> <br />
To disallow access to an entire group of keys without rate limiting the organisation, create a session object with the "is_inactive" key set to true. This will block access before any other middleware is executed. It is useful when managing subscriptions for an organisation group and access needs to be blocked because of non-payment. <br />
name: Organisation Quotas
- description: |
Sometimes a cache might contain stale data, or it may just need to be cleared because of an invalid configuration. This call will purge all keys associated with a cache on an API-by-API basis.
name: Cache Invalidation
- description: Use the endpoints under this tag to manage your certificates. You can
add, delete and list certificates using these endpoints.
name: Certs
- description: |
Force restart of the Gateway or whole cluster.
name: Hot Reload
- description: |
Check health status of the Tyk Gateway and loaded APIs.
name: Health Checking
- description: |
A Tyk security policy incorporates several security options that can be applied to an API key. It acts as a template that can override individual sections of an API key (or identity) in Tyk.
name: Policies
- description: |
Manage OAuth clients, and manage their tokens
name: OAuth
paths:
/hello:
get:
description: From v2.7.5 you can now rename the `/hello` endpoint by using
the `health_check_endpoint_name` option.
operationId: hello
responses:
"200":
content:
application/json:
example:
description: Tyk GW
details:
redis:
componentType: datastore
status: pass
time: "2020-05-19T03:42:55+01:00"
status: pass
version: v5.5.0-dev
schema:
$ref: '#/components/schemas/HealthCheckResponse'
description: Success.
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"405":
content:
application/json:
example:
message: Method Not Allowed
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Method Not Allowed
summary: Check the health of the Tyk Gateway.
tags:
- Health Checking
/tyk/apis:
get:
description: List APIs from Tyk Gateway
operationId: listApis
responses:
"200":
content:
application/json:
example:
- api_id: b84fe1a04e5648927971c0557971565c
auth:
auth_header_name: authorization
definition:
key: version
location: header
name: Tyk Test API
org_id: 664a14650619d40001f1f00f
proxy:
listen_path: /tyk-api-test/
strip_listen_path: true
target_url: https://httpbin.org
use_oauth2: true
version_data:
not_versioned: true
versions:
Default:
name: Default
schema:
items:
$ref: '#/components/schemas/APIDefinition'
type: array
description: List of API definitions.
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
summary: Get list of apis
tags:
- APIs
post:
description: Create API. A single Tyk node can have its API Definitions queried,
deleted and updated remotely. This functionality enables you to remotely update
your Tyk definitions without having to manage the files manually.
operationId: createApi
parameters:
- description: The base API which the new version will be linked to.
example: 663a4ed9b6be920001b191ae
in: query
name: base_api_id
required: false
schema:
type: string
- description: The version name of the base API while creating the first version.
This doesn't have to be sent for the next versions but if it is set, it
will override base API version name.
example: Default
in: query
name: base_api_version_name
required: false
schema:
type: string
- description: The version name of the created version.
example: v2
in: query
name: new_version_name
required: false
schema:
type: string
- description: If true, the new version is set as default version.
example: true
in: query
name: set_default
required: false
schema:
type: boolean
requestBody:
content:
application/json:
example:
api_id: b84fe1a04e5648927971c0557971565c
auth:
auth_header_name: authorization
definition:
key: version
location: header
name: Tyk Test API
org_id: 664a14650619d40001f1f00f
proxy:
listen_path: /tyk-api-test/
strip_listen_path: true
target_url: https://httpbin.org
use_oauth2: true
version_data:
not_versioned: true
versions:
Default:
name: Default
schema:
$ref: '#/components/schemas/APIDefinition'
responses:
"200":
content:
application/json:
example:
action: added
key: b84fe1a04e5648927971c0557971565c
status: ok
schema:
$ref: '#/components/schemas/ApiModifyKeySuccess'
description: API created.
"400":
content:
application/json:
example:
message: Request malformed
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Bad Request
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"500":
content:
application/json:
example:
message: file object creation failed, write error
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Creat an API
tags:
- APIs
/tyk/apis/{apiID}:
delete:
description: Deleting an API definition will remove the file from the file store,
the API definition will NOT be unloaded, a separate reload request will need
to be made to disable the API endpoint.
operationId: deleteApi
parameters:
- description: The API ID.
example: 1bd5c61b0e694082902cf15ddcc9e6a7
in: path
name: apiID
required: true
schema:
type: string
responses:
"200":
content:
application/json:
example:
action: deleted
key: 1bd5c61b0e694082902cf15ddcc9e6a7
status: ok
schema:
$ref: '#/components/schemas/ApiModifyKeySuccess'
description: API deleted.
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: API not found
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: API not found.
"500":
content:
application/json:
example:
message: Delete failed
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Deleting an API definition with ID.
tags:
- APIs
get:
description: Get API definition from Tyk Gateway.
operationId: getApi
parameters:
- description: The API ID.
example: keyless
in: path
name: apiID
required: true
schema:
type: string
responses:
"200":
content:
application/json:
example:
api_id: b84fe1a04e5648927971c0557971565c
auth:
auth_header_name: authorization
definition:
key: version
location: header
name: Tyk Test API
org_id: 664a14650619d40001f1f00f
proxy:
listen_path: /tyk-api-test/
strip_listen_path: true
target_url: https://httpbin.org
use_oauth2: true
version_data:
not_versioned: true
versions:
Default:
name: Default
schema:
$ref: '#/components/schemas/APIDefinition'
description: API definition.
headers:
x-tyk-base-api-id:
description: ID of the base API if the requested API is a version.
schema:
type: string
style: simple
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: API not found.
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: API not found.
summary: Get API definition with it's ID.
tags:
- APIs
put:
description: |-
Updating an API definition uses the same signature and object as a `POST`, however it will first ensure that the API ID that is being updated is the same as the one in the object being `PUT`.
Updating will completely replace the file descriptor and will not change an API Definition that has already been loaded, the hot-reload endpoint will need to be called to push the new definition to live.
operationId: updateApi
parameters:
- description: The API ID.
example: 1bd5c61b0e694082902cf15ddcc9e6a7
in: path
name: apiID
required: true
schema:
type: string
requestBody:
content:
application/json:
example:
api_id: b84fe1a04e5648927971c0557971565c
auth:
auth_header_name: authorization
definition:
key: version
location: header
name: Update the API name sample
org_id: 664a14650619d40001f1f00f
proxy:
listen_path: /update-listen-path
strip_listen_path: true
target_url: https://tyk.io/api
use_oauth2: true
version_data:
not_versioned: true
versions:
Default:
name: Default
schema:
$ref: '#/components/schemas/APIDefinition'
responses:
"200":
content:
application/json:
example:
action: modified
key: 1bd5c61b0e694082902cf15ddcc9e6a7
status: ok
schema:
$ref: '#/components/schemas/ApiModifyKeySuccess'
description: API updated.
"400":
content:
application/json:
example:
message: Request malformed
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Bad Request
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: API not found
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: API not found.
"500":
content:
application/json:
example:
message: File object creation failed, write error.
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Updating an API definition with its ID.
tags:
- APIs
/tyk/apis/{apiID}/versions:
get:
description: Listing versions of an API.
operationId: listApiVersions
parameters:
- description: The API ID.
example: keyless
in: path
name: apiID
required: true
schema:
type: string
- $ref: '#/components/parameters/SearchText'
- $ref: '#/components/parameters/AccessType'
responses:
"200":
content:
application/json:
example:
apis:
- expirationDate: ""
id: keyless
internal: false
isDefaultVersion: false
name: Tyk Test Keyless API
versionName: ""
- expirationDate: ""
id: 1f20d5d2731d47ac9c79fddf826eda00
internal: false
isDefaultVersion: true
name: Version three Api
versionName: v2
status: success
schema:
$ref: '#/components/schemas/VersionMetas'
description: API version metas.
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: API not found
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: API not found.
summary: Listing versions of an API.
tags:
- APIs
/tyk/apis/oas:
get:
description: List all APIs in Tyk OAS API format, from Tyk Gateway.
operationId: listApisOAS
parameters:
- description: "By default mode is empty which means it will return the Tyk
API OAS spec including the x-tyk-api-gateway part. \n When mode=public,
the Tyk OAS API spec will exclude the x-tyk-api-gateway part in the response."
example: public
in: query
name: mode
required: false
schema:
enum:
- public
type: string
responses:
"200":
content:
application/json:
examples:
oasExampleList:
$ref: '#/components/examples/oasExampleList'
schema:
items:
allOf:
- $ref: https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.0/schema.json
- $ref: '#/components/schemas/XTykAPIGateway'
type: array
description: List of API definitions in Tyk OAS format.
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
summary: List all APIs in Tyk OAS API format.
tags:
- Tyk OAS APIs
post:
description: Create an API with Tyk OAS API format on the Tyk Gateway.
operationId: createApiOAS
parameters:
- description: The base API which the new version will be linked to.
example: 663a4ed9b6be920001b191ae
in: query
name: base_api_id
required: false
schema:
type: string
- description: The version name of the base API while creating the first version.
This doesn't have to be sent for the next versions but if it is set, it
will override base API version name.
example: Default
in: query
name: base_api_version_name
required: false
schema:
type: string
- description: The version name of the created version.
example: v2
in: query
name: new_version_name
required: false
schema:
type: string
- description: If true, the new version is set as default version.
example: true
in: query
name: set_default
required: false
schema:
type: boolean
requestBody:
content:
application/json:
example:
components:
securitySchemes:
bearerAuth:
description: The API Access Credentials
scheme: bearer
type: http
info:
description: This is a sample OAS.
title: OAS Sample
version: 1.0.0
openapi: 3.0.3
paths:
/api/sample/users:
get:
operationId: getUsers
responses:
"200":
content:
application/json:
schema:
items:
properties:
name:
type: string
type: object
type: array
description: fetched users
summary: Get users
tags:
- users
security:
- bearerAuth: []
servers:
- url: https://localhost:8080
x-tyk-api-gateway:
info:
name: user
state:
active: true
server:
listenPath:
strip: true
value: /user-test/
upstream:
url: https://localhost:8080
schema:
allOf:
- $ref: https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.0/schema.json
- $ref: '#/components/schemas/XTykAPIGateway'
responses:
"200":
content:
application/json:
example:
action: added
key: e30bee13ad4248c3b529a4c58bb7be4e
status: ok
schema:
$ref: '#/components/schemas/ApiModifyKeySuccess'
description: API created.
"400":
content:
application/json:
example:
message: the payload should contain x-tyk-api-gateway
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Bad Request
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"500":
content:
application/json:
example:
message: file object creation failed, write error
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Create an API with Tyk OAS format.
tags:
- Tyk OAS APIs
/tyk/apis/oas/{apiID}:
delete:
description: Deleting an API definition will remove the file from the file store,
the API definition will not be unloaded, a separate reload request will need
to be made to disable the API endpoint.
operationId: deleteOASApi
parameters:
- description: The API ID.
example: 1bd5c61b0e694082902cf15ddcc9e6a7
in: path
name: apiID
required: true
schema:
type: string
responses:
"200":
content:
application/json:
example:
action: deleted
key: 1bd5c61b0e694082902cf15ddcc9e6a7
status: ok
schema:
$ref: '#/components/schemas/ApiModifyKeySuccess'
description: API deleted
"400":
content:
application/json:
example:
message: Must specify an apiID to delete
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Bad Request
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: API not found
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: API not found.
"500":
content:
application/json:
example:
message: Delete failed
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Deleting a Tyk OAS API.
tags:
- Tyk OAS APIs
get:
description: Get Tyk OAS API definition using an API ID.
operationId: getOASApi
parameters:
- description: "By default mode is empty which means it will return the Tyk
API OAS spec including the x-tyk-api-gateway part. \n When mode=public,
the Tyk OAS API spec will exclude the x-tyk-api-gateway part in the response."
example: public
in: query
name: mode
required: false
schema:
enum:
- public
type: string
- description: ID of the API you want to fetch
example: 4c1c0d8fc885401053ddac4e39ef676b
in: path
name: apiID
required: true
schema:
type: string
responses:
"200":
content:
application/json:
examples:
oasExample:
$ref: '#/components/examples/oasExample'
schema:
allOf:
- $ref: https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.0/schema.json
- $ref: '#/components/schemas/XTykAPIGateway'
description: OK
headers:
x-tyk-base-api-id:
description: ID of the base API if the requested API is a version.
schema:
type: string
style: simple
"400":
content:
application/json:
example:
message: the requested API definition is in Tyk classic format, please
use old API endpoint
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Bad Request
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: API not found
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: API not found.
summary: Get a Tyk OAS API definition.
tags:
- Tyk OAS APIs
patch:
description: |-
You can use this endpoint to update Tyk OAS part of the Tyk API definition.
This endpoint allows you to configure Tyk OAS extension based on query params provided(similar to import).
operationId: patchApiOAS
parameters:
- description: ID of the API you want to fetch.
example: 4c1c0d8fc885401053ddac4e39ef676b
in: path
name: apiID
required: true
schema:
type: string
- $ref: '#/components/parameters/UpstreamURL'
- $ref: '#/components/parameters/ListenPath'
- $ref: '#/components/parameters/CustomDomain'
- $ref: '#/components/parameters/AllowList'
- $ref: '#/components/parameters/ValidateRequest'
- $ref: '#/components/parameters/MockResponse'
- $ref: '#/components/parameters/Authentication'
requestBody:
content:
application/json:
example:
components:
securitySchemes:
bearerAuth:
description: The API Access Credentials
scheme: bearer
type: http
info:
description: This is a sample OAS.
title: OAS Sample
version: 1.0.0
openapi: 3.0.3
paths:
/api/sample/users:
get:
operationId: getUsers
responses:
"200":
content:
application/json:
schema:
items:
properties:
name:
type: string
type: object
type: array
description: fetched users
summary: Get users
tags:
- users
security:
- bearerAuth: []
servers:
- url: https://localhost:8080
x-tyk-api-gateway:
info:
name: user
state:
active: true
server:
listenPath:
strip: true
value: /user-test/
upstream:
url: https://localhost:8080
schema:
$ref: https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.0/schema.json
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/ApiModifyKeySuccess'
description: API patched.
"400":
content:
application/json:
example:
message: Must specify an apiID to patch
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Bad Request
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: API not found
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: API not found.
"500":
content:
application/json:
example:
message: file object creation failed, write error
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Patch API in Tyk OAS format.
tags:
- Tyk OAS APIs
put:
description: |-
Updating an API definition uses the same signature an object as a `POST`, however it will first ensure that the API ID that is being updated is the same as the one in the object being `PUT`.
Updating will completely replace the file descriptor and will not change an API Definition that has already been loaded, the hot-reload endpoint will need to be called to push the new definition to live.
operationId: updateApiOAS
parameters:
- description: ID of the API you want to fetch
example: 4c1c0d8fc885401053ddac4e39ef676b
in: path
name: apiID
required: true
schema:
type: string
requestBody:
content:
application/json:
example:
components:
securitySchemes:
bearerAuth:
description: The API Access Credentials
scheme: bearer
type: http
info:
description: This is a sample OAS.
title: OAS Sample
version: 1.0.0
openapi: 3.0.3
paths:
/api/sample/users:
get:
operationId: getUsers
responses:
"200":
content:
application/json:
schema:
items:
properties:
name:
type: string
type: object
type: array
description: fetched users
summary: Get users
tags:
- users
security:
- bearerAuth: []
servers:
- url: https://localhost:8080
x-tyk-api-gateway:
info:
name: user
state:
active: true
server:
listenPath:
strip: true
value: /user-test/
upstream:
url: https://localhost:8080
schema:
allOf:
- $ref: https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.0/schema.json
- $ref: '#/components/schemas/XTykAPIGateway'
responses:
"200":
content:
application/json:
example:
action: modified
key: e30bee13ad4248c3b529a4c58bb7be4e
status: ok
schema:
$ref: '#/components/schemas/ApiModifyKeySuccess'
description: API updated
"400":
content:
application/json:
example:
message: Request APIID does not match that in Definition! For Update
operations these must match.
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Bad Request
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: API not found
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: API not found
"500":
content:
application/json:
example:
message: file object creation failed, write error
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Update a Tyk OAS API definition.
tags:
- Tyk OAS APIs
/tyk/apis/oas/{apiID}/export:
get:
description: Use the mode query parameter to specify if you want the x-tyk-api-gateway
stripped out.
operationId: downloadApiOASPublic
parameters:
- description: ID of the API you want to fetch.
example: 4c1c0d8fc885401053ddac4e39ef676b
in: path
name: apiID
required: true
schema:
type: string
- description: "By default mode is empty which means it will return the Tyk
API OAS spec including the x-tyk-api-gateway part. \n When mode=public,
the Tyk OAS API spec will exclude the x-tyk-api-gateway part in the response."
example: public
in: query
name: mode
required: false
schema:
enum:
- public
type: string
responses:
"200":
content:
application/octet-stream:
schema:
format: binary
type: string
description: Exported API definition file
"400":
content:
application/json:
example:
message: requesting API definition that is in Tyk classic format
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Bad Request
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: API not found
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Not Found
"500":
content:
application/json:
example:
message: Unexpected error
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Download a Tyk OAS format API.
tags:
- Tyk OAS APIs
/tyk/apis/oas/{apiID}/versions:
get:
description: Listing versions of a Tyk OAS API.
operationId: listOASApiVersions
parameters:
- description: ID of the API you want to fetch.
example: 4c1c0d8fc885401053ddac4e39ef676b
in: path
name: apiID
required: true
schema:
type: string
- $ref: '#/components/parameters/SearchText'
- $ref: '#/components/parameters/AccessType'
responses:
"200":
content:
application/json:
example:
apis:
- expirationDate: ""
id: keyless
internal: false
isDefaultVersion: false
name: Tyk Test Keyless API
versionName: ""
- expirationDate: ""
id: 1f20d5d2731d47ac9c79fddf826eda00
internal: false
isDefaultVersion: true
name: Version three Api
versionName: v2
status: success
schema:
$ref: '#/components/schemas/VersionMetas'
description: API version metas.
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: API not found.
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: API not found
summary: Listing versions of a Tyk OAS API.
tags:
- Tyk OAS APIs
/tyk/apis/oas/export:
get:
description: Download all Tyk OAS format APIs, from the Gateway.
operationId: downloadApisOASPublic
parameters:
- description: "By default mode is empty which means it will return the Tyk
API OAS spec including the x-tyk-api-gateway part. \n When mode=public,
the Tyk OAS API spec will exclude the x-tyk-api-gateway part in the response."
example: public
in: query
name: mode
required: false
schema:
enum:
- public
type: string
responses:
"200":
content:
application/octet-stream:
schema:
format: binary
type: string
description: Get a list of Tyk OAS APIs definitions.
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"500":
content:
application/json:
example:
message: Unexpected error
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Download all Tyk OAS format APIs.
tags:
- Tyk OAS APIs
/tyk/apis/oas/import:
post:
description: |-
Import an Tyk OAS format API without x-tyk-gateway.
For use with an existing Tyk OAS API that you want to expose via your Tyk Gateway.
operationId: importOAS
parameters:
- $ref: '#/components/parameters/UpstreamURL'
- $ref: '#/components/parameters/ListenPath'
- $ref: '#/components/parameters/CustomDomain'
- $ref: '#/components/parameters/AllowList'
- $ref: '#/components/parameters/ValidateRequest'
- $ref: '#/components/parameters/MockResponse'
- $ref: '#/components/parameters/Authentication'
- description: The base API which the new version will be linked to.
example: 663a4ed9b6be920001b191ae
in: query
name: base_api_id
required: false
schema:
type: string
- description: The version name of the base API while creating the first version.
This doesn't have to be sent for the next versions but if it is set, it
will override base API version name.
example: Default
in: query
name: base_api_version_name
required: false
schema:
type: string
- description: The version name of the created version.
example: v2
in: query
name: new_version_name
required: false
schema:
type: string
- description: If true, the new version is set as default version.
example: true
in: query
name: set_default
required: false
schema:
type: boolean
requestBody:
content:
application/json:
example:
components:
securitySchemes:
bearerAuth:
description: The API Access Credentials
scheme: bearer
type: http
info:
description: This is a sample OAS.
title: OAS Sample
version: 1.0.0
openapi: 3.0.3
paths:
/api/sample/users:
get:
operationId: getUsers
responses:
"200":
content:
application/json:
schema:
items:
properties:
name:
type: string
type: object
type: array
description: fetched users
summary: Get users
tags:
- users
security:
- bearerAuth: []
servers:
- url: https://localhost:8080
schema:
$ref: https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.0/schema.json
responses:
"200":
content:
application/json:
example:
action: added
key: e30bee13ad4248c3b529a4c58bb7be4e
status: ok
schema:
$ref: '#/components/schemas/ApiModifyKeySuccess'
description: API imported.
"400":
content:
application/json:
example:
message: the import payload should not contain x-tyk-api-gateway
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Bad Request
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"500":
content:
application/json:
example:
message: file object creation failed, write error
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Import an API in Tyk OAS format.
tags:
- Tyk OAS APIs
/tyk/cache/{apiID}:
delete:
description: Invalidate cache for the given API.
operationId: invalidateCache
parameters:
- description: The API ID.
example: ae67bb862a3241a49117508e0f9ee839
in: path
name: apiID
required: true
schema:
type: string
responses:
"200":
content:
application/json:
example:
message: cache invalidated
status: ok
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Cache invalidated.
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"500":
content:
application/json:
example:
message: Cache invalidation failed.
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Invalidate cache.
tags:
- Cache Invalidation
/tyk/certs:
get:
description: List all certificates in the Tyk Gateway.
operationId: listCerts
parameters:
- description: Organisation ID to list the certificates.
example: 5e9d9544a1dcd60001d0ed20
in: query
name: org_id
required: false
schema:
type: string
- description: Mode to list the certificate details.
example: detailed
in: query
name: mode
required: false
schema:
enum:
- detailed
type: string
responses:
"200":
content:
application/json:
examples:
certIdList:
$ref: '#/components/examples/certIdList'
certificateBasicList:
$ref: '#/components/examples/certificateBasicList'
schema:
oneOf:
- $ref: '#/components/schemas/APIAllCertificateBasics'
- $ref: '#/components/schemas/APIAllCertificates'
description: OK
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
summary: List certificates.
tags:
- Certs
post:
description: Add a certificate to the Tyk Gateway.
operationId: addCert
parameters:
- description: Organisation ID to add the certificate to.
example: 5e9d9544a1dcd60001d0ed20
in: query
name: org_id
required: false
schema:
type: string
requestBody:
content:
text/plain:
schema:
type: string
responses:
"200":
content:
application/json:
example:
id: 5e9d9544a1dcd60001d0ed207c440d66ebb0a4629d21329808dce9091acf5f2fde328067a6e60e5347271d90
message: Certificate added
status: ok
schema:
$ref: '#/components/schemas/APICertificateStatusMessage'
description: New certificate added.
"403":
content:
application/json:
example:
message: Certificate with ID already exists.
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: When certificates you send already exist in the gateway.
"405":
content:
application/json:
example:
message: Malformed request body
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Malformed request body.
summary: Add a certificate.
tags:
- Certs
/tyk/certs/{certID}:
delete:
description: Delete certificate by ID.
operationId: deleteCerts
parameters:
- description: Certificate ID to be deleted.
example: 5e9d9544a1dcd60001d0ed20a6ab77653d5da938f452bb8cc9b55b0630a6743dabd8dc92bfb025abb09ce035
in: path
name: certID
required: true
schema:
type: string
- description: Organisation ID to delete the certificates from.
example: 5e9d9544a1dcd60001d0ed20
in: query
name: org_id
required: false
schema:
type: string
responses:
"200":
content:
application/json:
example:
message: removed
status: ok
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Deleted certificate.
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
summary: Delete certificate.
tags:
- Certs
get:
description: |-
Note that the certID path parameter can take a list of certIDs separated with commas (e.g /tyk/certs/certIDOne,certIDTwo).
If you send a single certID it will return a single CertificateMeta object otherwise if you send more than two certIDs is will return an array of certificateMeta objects.
operationId: listCertsWithIDs
parameters:
- description: Comma separated list of certificates to list.
example: e6ce2b49-3e31-44de-95a7-12f054724283,5e9d9544a1dcd60001d0ed20a6ab77653d5da938f452bb8cc9b55b0630a6743dabd8dc92bfb025abb09ce035
in: path
name: certID
required: true
schema:
type: string
responses:
"200":
content:
application/json:
examples:
certificateMetaExample:
$ref: '#/components/examples/certificateMetaExample'
certificateMetaListExample:
$ref: '#/components/examples/certificateMetaListExample'
schema:
oneOf:
- $ref: '#/components/schemas/CertsCertificateMeta'
- items:
$ref: '#/components/schemas/CertsCertificateMeta'
nullable: true
type: array
description: OK
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: Certificate with given SHA256 fingerprint not found.
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Not Found
summary: Return one certificate or list multiple certificates in the Tyk Gateway
given a comma separated list of cert IDs.
tags:
- CertsTag
/tyk/debug:
post:
description: Used to test API definition by sending sample request and analysing
output of both response and logs.
operationId: debugApiDefinition
requestBody:
content:
application/json:
example:
request:
method: GET
path: /update-listen-path
spec:
api_id: b84fe1a04e5648927971c0557971565c
auth:
auth_header_name: authorization
definition:
key: version
location: header
name: Tyk Test API
org_id: 664a14650619d40001f1f00f
proxy:
listen_path: /tyk-api-test/
strip_listen_path: true
target_url: https://httpbin.org
use_oauth2: true
version_data:
not_versioned: true
versions:
Default:
name: Default
schema:
$ref: '#/components/schemas/TraceRequest'
responses:
"200":
content:
application/json:
example:
logs: '{"level":"warning","msg":"Legacy path detected! Upgrade to
extended....'
message: ok
response: "====== Request ======\nGET / HTTP/1.1\r\nHost: httpbin.org\r\n\r\n\n======
Response..."
schema:
$ref: '#/components/schemas/TraceResponse'
description: Success tracing request.
"400":
content:
application/json:
example:
message: Request malformed
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Bad Request
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"500":
content:
application/json:
example:
message: 'Unexpected failure:'
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Test an an API definition.
tags:
- Debug
/tyk/keys:
get:
description: List all the API keys.
operationId: listKeys
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/ApiAllKeys'
description: List of all API keys.
"403":
content:
application/json:
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Disabled hashed key listing.
summary: List keys.
tags:
- Keys
post:
description: |-
Tyk will generate the access token based on the OrgID specified in the API Definition and a random UUID. This ensures that keys can be owned by different API Owners should segmentation be needed at an organisational level.
<br/><br/>
API keys without access_rights data will be written to all APIs on the system (this also means that they will be created across all SessionHandlers and StorageHandlers, it is recommended to always embed access_rights data in a key to ensure that only targeted APIs and their back-ends are written to.
operationId: addKey
parameters:
- description: When set to true the key_hash returned will be similar to the
un-hashed key name.
example: true
in: query
name: hashed
required: false
schema:
enum:
- true
- false
type: boolean
requestBody:
content:
application/json:
example:
access_rights:
itachi-api:
allowed_urls:
- methods:
- GET
url: /users
api_id: 8ddd91f3cda9453442c477b06c4e2da4
api_name: Itachi api
limit:
per: 60
quota_max: 10000
quota_remaining: 10000
quota_renewal_rate: 3600
rate: 1000
throttle_interval: 10
throttle_retry_limit: 10
versions:
- Default
alias: portal-key
allowance: 1000
apply_policies:
- 5ead7120575961000181867e
date_created: "2024-08-09T14:40:34.87614+03:00"
enable_detailed_recording: true
last_updated: "1723203634"
meta_data:
new-update-key-sample: update-key-sample
tyk_developer_id: 62b3fb9a1d5e4f00017226f5
update: sample policy update
user_type: mobile_user
org_id: 5e9d9544a1dcd60001d0ed20
per: 60
quota_max: 10000
quota_renewal_rate: 3600
quota_renews: 1.723207234e+09
rate: 1000
tags:
- security
- edge
- edge-eu
throttle_interval: 10
throttle_retry_limit: 10
schema:
$ref: '#/components/schemas/SessionState'
responses:
"200":
content:
application/json:
example:
action: added
key: 5e9d9544a1dcd60001d0ed20a2290376f89846b798b7e5197584ef6d
status: ok
schema:
$ref: '#/components/schemas/ApiModifyKeySuccess'
description: New key added.
"400":
content:
application/json:
example:
message: Request malformed
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Bad Request
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"500":
content:
application/json:
example:
message: Failed to create key, ensure security settings are correct.
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Create a key.
tags:
- Keys
/tyk/keys/{keyID}:
delete:
description: Deleting a key will remove it permanently from the system, however
analytics relating to that key will still be available.
operationId: deleteKey
parameters:
- description: Use the hash of the key as input instead of the full key.
example: false
in: query
name: hashed
required: false
schema:
enum:
- true
- false
type: boolean
- description: The key ID.
example: 5e9d9544a1dcd60001d0ed20e7f75f9e03534825b7aef9df749582e5
in: path
name: keyID
required: true
schema:
type: string
responses:
"200":
content:
application/json:
example:
action: deleted
key: 5e9d9544a1dcd60001d0ed20e7f75f9e03534825b7aef9df749582e5
status: ok
schema:
$ref: '#/components/schemas/ApiModifyKeySuccess'
description: Key deleted.
"400":
content:
application/json:
example:
message: Failed to remove the key
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Bad Request
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: There is no such key found
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Key not found.
summary: Delete a key.
tags:
- Keys
get:
description: Get session info about the specified key. Should return up to date
rate limit and quota usage numbers.
operationId: getKey
parameters:
- description: Use the hash of the key as input instead of the full key.
example: true
in: query
name: hashed
required: false
schema:
enum:
- true
- false
type: boolean
- description: The key ID.
example: 5e9d9544a1dcd60001d0ed20e7f75f9e03534825b7aef9df749582e5
in: path
name: keyID
required: true
schema:
type: string
responses:
"200":
content:
application/json:
example:
access_rights:
itachi-api:
allowed_urls:
- methods:
- GET
url: /users
api_id: 8ddd91f3cda9453442c477b06c4e2da4
api_name: Itachi api
limit:
per: 60
quota_max: 10000
quota_remaining: 10000
quota_renewal_rate: 3600
rate: 1000
throttle_interval: 10
throttle_retry_limit: 10
versions:
- Default
alias: portal-key
allowance: 1000
apply_policies:
- 5ead7120575961000181867e
date_created: "2024-08-09T14:40:34.87614+03:00"
enable_detailed_recording: true
last_updated: "1723203634"
meta_data:
new-update-key-sample: update-key-sample
tyk_developer_id: 62b3fb9a1d5e4f00017226f5
update: sample policy update
user_type: mobile_user
org_id: 5e9d9544a1dcd60001d0ed20
per: 60
quota_max: 10000
quota_renewal_rate: 3600
quota_renews: 1.723207234e+09
rate: 1000
tags:
- security
- edge
- edge-eu
throttle_interval: 10
throttle_retry_limit: 10
schema:
$ref: '#/components/schemas/SessionState'
description: Key fetched.
"400":
content:
application/json:
example:
message: Key requested by hash but key hashing is not enabled.
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Bad Request
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: Key not found
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Key not found.
summary: Get a key with ID.
tags:
- Keys
post:
description: You can use this endpoint to import existing keys into Tyk or to
create a new custom key.
operationId: createCustomKey
parameters:
- description: Adding the suppress_reset parameter and setting it to 1, will
cause Tyk not to reset the quota limit that is in the current live quota
manager. By default Tyk will reset the quota in the live quota manager (initialising
it) when adding a key. Adding the `suppress_reset` flag to the URL parameters
will avoid this behaviour.
example: "1"
in: query
name: suppress_reset
required: false
schema:
enum:
- "1"
type: string
- description: When set to true the key_hash returned will be similar to the
un-hashed key name.
example: true
in: query
name: hashed
required: false
schema:
enum:
- true
- false
type: boolean
- description: Name to give the custom key.
example: customKey
in: path
name: keyID
required: true
schema:
type: string
requestBody:
content:
application/json:
example:
access_rights:
itachi-api:
allowed_urls:
- methods:
- GET
url: /users
api_id: 8ddd91f3cda9453442c477b06c4e2da4
api_name: Itachi api
limit:
per: 60
quota_max: 10000
quota_remaining: 10000
quota_renewal_rate: 3600
rate: 1000
throttle_interval: 10
throttle_retry_limit: 10
versions:
- Default
alias: portal-key
allowance: 1000
apply_policies:
- 5ead7120575961000181867e
date_created: "2024-08-09T14:40:34.87614+03:00"
enable_detailed_recording: true
last_updated: "1723203634"
meta_data:
new-update-key-sample: update-key-sample
tyk_developer_id: 62b3fb9a1d5e4f00017226f5
update: sample policy update
user_type: mobile_user
org_id: 5e9d9544a1dcd60001d0ed20
per: 60
quota_max: 10000
quota_renewal_rate: 3600
quota_renews: 1.723207234e+09
rate: 1000
tags:
- security
- edge
- edge-eu
throttle_interval: 10
throttle_retry_limit: 10
schema:
$ref: '#/components/schemas/SessionState'
responses:
"200":
content:
application/json:
example:
action: added
key: 5e9d9544a1dcd60001d0ed20customKey
status: ok
schema:
$ref: '#/components/schemas/ApiModifyKeySuccess'
description: New custom key added.
"400":
content:
application/json:
example:
message: Request malformed
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Bad Request
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"500":
content:
application/json:
example:
message: Failed to create key, ensure security settings are correct.
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Create custom key / Import key
tags:
- Keys
put:
description: ' You can also manually add keys to Tyk using your own key-generation
algorithm. It is recommended that when using this approach to ensure that
the OrgID being used in the API Definition and the key data is blank so that
Tyk does not try to prepend or manage the key in any way.'
operationId: updateKey
parameters:
- description: Adding the suppress_reset parameter and setting it to 1 will
cause Tyk not to reset the quota limit that is in the current live quota
manager. By default Tyk will reset the quota in the live quota manager (initialising
it) when adding a key. Adding the `suppress_reset` flag to the URL parameters
will avoid this behaviour.
example: "1"
in: query
name: suppress_reset
required: false
schema:
enum:
- "1"
type: string
- description: When set to true the key_hash returned will be similar to the
un-hashed key name.
example: true
in: query
name: hashed
required: false
schema:
enum:
- true
- false
type: boolean
- description: ID of the key you want to update.
example: 5e9d9544a1dcd60001d0ed20766d9a6ec6b4403b93a554feefef4708
in: path
name: keyID
required: true
schema:
type: string
requestBody:
content:
application/json:
example:
access_rights:
itachi-api:
allowed_urls:
- methods:
- GET
url: /users
api_id: 8ddd91f3cda9453442c477b06c4e2da4
api_name: Itachi api
limit:
per: 60
quota_max: 10000
quota_remaining: 10000
quota_renewal_rate: 3600
rate: 1000
throttle_interval: 10
throttle_retry_limit: 10
versions:
- Default
alias: portal-key
allowance: 1000
apply_policies:
- 5ead7120575961000181867e
date_created: "2024-08-09T14:40:34.87614+03:00"
enable_detailed_recording: true
last_updated: "1723203634"
meta_data:
new-update-key-sample: update-key-sample
tyk_developer_id: 62b3fb9a1d5e4f00017226f5
update: sample policy update
user_type: mobile_user
org_id: 5e9d9544a1dcd60001d0ed20
per: 60
quota_max: 10000
quota_renewal_rate: 3600
quota_renews: 1.723207234e+09
rate: 1000
tags:
- security
- edge
- edge-eu
- update-sample-tag
throttle_interval: 10
throttle_retry_limit: 10
schema:
$ref: '#/components/schemas/SessionState'
responses:
"200":
content:
application/json:
example:
action: modified
key: 5e9d9544a1dcd60001d0ed20766d9a6ec6b4403b93a554feefef4708
status: ok
schema:
$ref: '#/components/schemas/ApiModifyKeySuccess'
description: Key updated.
"400":
content:
application/json:
example:
message: Request malformed
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Bad Request
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: Key is not found
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Key not found.
"500":
content:
application/json:
example:
message: Failed to create key, ensure security settings are correct.
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Update key.
tags:
- Keys
/tyk/keys/create:
post:
description: Create a key.
operationId: createKey
requestBody:
content:
application/json:
example:
access_rights:
itachi-api:
allowed_urls:
- methods:
- GET
url: /users
api_id: 8ddd91f3cda9453442c477b06c4e2da4
api_name: Itachi api
limit:
per: 60
quota_max: 10000
quota_remaining: 10000
quota_renewal_rate: 3600
rate: 1000
throttle_interval: 10
throttle_retry_limit: 10
versions:
- Default
alias: portal-key
allowance: 1000
apply_policies:
- 5ead7120575961000181867e
date_created: "2024-08-09T14:40:34.87614+03:00"
enable_detailed_recording: true
last_updated: "1723203634"
meta_data:
new-update-key-sample: update-key-sample
tyk_developer_id: 62b3fb9a1d5e4f00017226f5
update: sample policy update
user_type: mobile_user
org_id: 5e9d9544a1dcd60001d0ed20
per: 60
quota_max: 10000
quota_renewal_rate: 3600
quota_renews: 1.723207234e+09
rate: 1000
tags:
- security
- edge
- edge-eu
throttle_interval: 10
throttle_retry_limit: 10
schema:
$ref: '#/components/schemas/SessionState'
responses:
"200":
content:
application/json:
example:
action: added
key: 5e9d9544a1dcd60001d0ed207eb558517c3c48fb826c62cc6f6161eb
status: ok
schema:
$ref: '#/components/schemas/ApiModifyKeySuccess'
description: Key created.
"400":
content:
application/json:
example:
message: Failed to create key, keys must have at least one Access
Rights record set.
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: No access right.
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"500":
content:
application/json:
example:
message: Unmarshalling failed
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Malformed body.
summary: Create a key.
tags:
- Keys
/tyk/keys/policy/{keyID}:
post:
description: This will set policies to a hashed key.
operationId: setPoliciesToHashedKey
parameters:
- description: Name to give the custom key.
example: 5e9d9544a1dcd60001d0ed207eb558517c3c48fb826c62cc6f6161eb
in: path
name: keyID
required: true
schema:
type: string
requestBody:
content:
application/json:
example:
apply_policies:
- 5ead7120575961000181867e
policy: ""
schema:
$ref: '#/components/schemas/PolicyUpdateObj'
responses:
"200":
content:
application/json:
example:
action: updated
key: 5e9d9544a1dcd60001d0ed207eb558517c3c48fb826c62cc6f6161eb
status: ok
schema:
$ref: '#/components/schemas/ApiModifyKeySuccess'
description: Updated hashed key.
"400":
content:
application/json:
example:
message: Couldn't decode instruction
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Malformed request body.
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: Key not found
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Key not found.
"500":
content:
application/json:
example:
message: Could not write key data.
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Set policies for a hashed key.
tags:
- Keys
/tyk/keys/preview:
post:
description: This will check if the body of a key definition is valid. And return
a response with how the key would look like if you were to create it.
operationId: validateAKeyDefinition
requestBody:
content:
application/json:
example:
access_rights:
itachi-api:
allowed_urls:
- methods:
- GET
url: /users
api_id: 8ddd91f3cda9453442c477b06c4e2da4
api_name: Itachi api
limit:
per: 60
quota_max: 10000
quota_remaining: 10000
quota_renewal_rate: 3600
rate: 1000
throttle_interval: 10
throttle_retry_limit: 10
versions:
- Default
alias: portal-key
allowance: 1000
apply_policies:
- 5ead7120575961000181867e
date_created: "2024-08-09T14:40:34.87614+03:00"
enable_detailed_recording: true
last_updated: "1723203634"
meta_data:
new-update-key-sample: update-key-sample
tyk_developer_id: 62b3fb9a1d5e4f00017226f5
update: sample policy update
user_type: mobile_user
org_id: 5e9d9544a1dcd60001d0ed20
per: 60
quota_max: 10000
quota_renewal_rate: 3600
quota_renews: 1.723207234e+09
rate: 1000
tags:
- security
- edge
- edge-eu
throttle_interval: 10
throttle_retry_limit: 10
schema:
$ref: '#/components/schemas/SessionState'
responses:
"200":
content:
application/json:
example:
access_rights:
itachi-api:
allowed_urls:
- methods:
- GET
url: /users
api_id: 8ddd91f3cda9453442c477b06c4e2da4
api_name: Itachi api
limit:
per: 60
quota_max: 10000
quota_remaining: 10000
quota_renewal_rate: 3600
rate: 1000
throttle_interval: 10
throttle_retry_limit: 10
versions:
- Default
alias: portal-key
allowance: 1000
apply_policies:
- 5ead7120575961000181867e
date_created: "2024-08-09T14:40:34.87614+03:00"
enable_detailed_recording: true
last_updated: "1723203634"
meta_data:
new-update-key-sample: update-key-sample
tyk_developer_id: 62b3fb9a1d5e4f00017226f5
update: sample policy update
user_type: mobile_user
org_id: 5e9d9544a1dcd60001d0ed20
per: 60
quota_max: 10000
quota_renewal_rate: 3600
quota_renews: 1.723207234e+09
rate: 1000
tags:
- security
- edge
- edge-eu
throttle_interval: 10
throttle_retry_limit: 10
schema:
$ref: '#/components/schemas/SessionState'
description: Key definition is valid.
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"500":
content:
application/json:
example:
message: Unmarshalling failed
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: This will validate a key definition.
tags:
- Keys
/tyk/oauth/clients/{apiID}:
get:
description: OAuth Clients are organised by API ID, and therefore are queried
as such.
operationId: listOAuthClients
parameters:
- description: The API ID
example: 1bd5c61b0e694082902cf15ddcc9e6a7
in: path
name: apiID
required: true
schema:
type: string
responses:
"200":
content:
application/json:
example:
- api_id: b84fe1a04e5648927971c0557971565c
client_id: 2a06b398c17f46908de3dffcb71ef87df
description: google client
meta_data:
user_id: 362b3fb9a1d5e4f00017226f5
redirect_uri: https://httpbin.org/ip
secret: MmQwNTI5NGQtYjU0YS00NjMyLWIwZjktNTZjY2M1ZjhjYWY0
schema:
items:
$ref: '#/components/schemas/NewClientRequest'
type: array
description: Get OAuth client details or a list of OAuth clients
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
description: Api no found
summary: List oAuth clients
tags:
- OAuth
/tyk/oauth/clients/{apiID}/{keyName}:
delete:
description: Please note that tokens issued with the client ID will still be
valid until they expire.
operationId: deleteOAuthClient
parameters:
- description: The API id
example: b84fe1a04e5648927971c0557971565c
in: path
name: apiID
required: true
schema:
type: string
- description: The Client ID
example: 2a06b398c17f46908de3dffcb71ef87df
in: path
name: keyName
required: true
schema:
type: string
responses:
"200":
content:
application/json:
example:
action: deleted
key: 2a06b398c17f46908de3dffcb71ef87df
status: ok
schema:
$ref: '#/components/schemas/ApiModifyKeySuccess'
description: OAuth client deleted
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: OAuth Client ID not found
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Not found
"500":
content:
application/json:
example:
message: Delete failed
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Delete OAuth client
tags:
- OAuth
get:
description: Get OAuth client details tied to an api
operationId: getOAuthClient
parameters:
- description: The API id
example: b84fe1a04e5648927971c0557971565c
in: path
name: apiID
required: true
schema:
type: string
- description: The Client ID
example: 2a06b398c17f46908de3dffcb71ef87df
in: path
name: keyName
required: true
schema:
type: string
responses:
"200":
content:
application/json:
example:
client_id: 2a06b398c17f46908de3dffcb71ef87df
description: changed description sample
meta_data:
user_id: 362b3fb9a1d5e4f00017226f5
redirect_uri: https://httpbin.org/ip
secret: MmQwNTI5NGQtYjU0YS00NjMyLWIwZjktNTZjY2M1ZjhjYWY0
schema:
$ref: '#/components/schemas/NewClientRequest'
description: OAuth client details
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: OAuth Client ID not found
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: OAuth Client not found
summary: Get OAuth client
tags:
- OAuth
put:
description: Allows you to update the metadata,redirecturi,description and Policy
ID for an OAuth client.
operationId: updateOAuthClient
parameters:
- description: The API id
example: b84fe1a04e5648927971c0557971565c
in: path
name: apiID
required: true
schema:
type: string
- description: The Client ID
example: 2a06b398c17f46908de3dffcb71ef87df
in: path
name: keyName
required: true
schema:
type: string
requestBody:
content:
application/json:
example:
api_id: b84fe1a04e5648927971c0557971565c
client_id: 2a06b398c17f46908de3dffcb71ef87df
description: changed description sample
meta_data:
user_id: 362b3fb9a1d5e4f00017226f5
redirect_uri: https://httpbin.org/ip
secret: MmQwNTI5NGQtYjU0YS00NjMyLWIwZjktNTZjY2M1ZjhjYWY0
schema:
$ref: '#/components/schemas/NewClientRequest'
responses:
"200":
content:
application/json:
example:
client_id: 2a06b398c17f46908de3dffcb71ef87df
description: changed description sample
meta_data:
user_id: 362b3fb9a1d5e4f00017226f5
redirect_uri: https://httpbin.org/ip
secret: MmQwNTI5NGQtYjU0YS00NjMyLWIwZjktNTZjY2M1ZjhjYWY0
schema:
$ref: '#/components/schemas/NewClientRequest'
description: OAuth client updated
"400":
content:
application/json:
example:
message: Policy access rights doesn't contain API this OAuth client
belongs to
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Bad Request
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: API doesn't exist
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Not Found
"500":
content:
application/json:
example:
message: Unmarshalling failed
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: malformed request body
summary: Update OAuth metadata,redirecturi,description and Policy ID
tags:
- OAuth
/tyk/oauth/clients/{apiID}/{keyName}/rotate:
put:
description: Generate a new secret
operationId: rotateOauthClient
parameters:
- description: The API id
example: b84fe1a04e5648927971c0557971565c
in: path
name: apiID
required: true
schema:
type: string
- description: The Client ID
example: 2a06b398c17f46908de3dffcb71ef87df
in: path
name: keyName
required: true
schema:
type: string
responses:
"200":
content:
application/json:
example:
client_id: 2a06b398c17f46908de3dffcb71ef87df
description: google client
meta_data:
user_id: 362b3fb9a1d5e4f00017226f5
redirect_uri: https://httpbin.org/ip
secret: MmQwNTI5NGQtYjU0YS00NjMyLWIwZjktNTZjY2M1ZjhjYWY0
schema:
$ref: '#/components/schemas/NewClientRequest'
description: New secret has been created
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: API doesn't exist
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Not Found
"500":
content:
application/json:
example:
message: Failure in storing client data
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Rotate the oath client secret
tags:
- OAuth
/tyk/oauth/clients/{apiID}/{keyName}/tokens:
get:
description: |-
This endpoint allows you to retrieve a list of all current tokens and their expiry date for a provided API ID and OAuth-client ID .If page query parameter is sent the tokens will be paginated. This endpoint will work only for newly created tokens.
<br/>
<br/>
You can control how long you want to store expired tokens in this list using `oauth_token_expired_retain_period` gateway option, which specifies retain period for expired tokens stored in Redis. By default expired token not get removed. See <a href="https://tyk.io/docs/configure/tyk-gateway-configuration-options/#a-name-oauth-token-expired-retain-period-a-oauth-token-expired-retain-period" target="_blank">here</a> for more details.
operationId: getOAuthClientTokens
parameters:
- description: The API id
example: b84fe1a04e5648927971c0557971565c
in: path
name: apiID
required: true
schema:
type: string
- description: The Client ID
example: 2a06b398c17f46908de3dffcb71ef87df
in: path
name: keyName
required: true
schema:
type: string
- description: Use page query parameter to say which page number you want returned.
example: 1
in: query
name: page
required: false
schema:
default: 1
type: integer
responses:
"200":
content:
application/json:
examples:
paginatedTokenExample:
$ref: '#/components/examples/paginatedTokenExample'
tokenListExample:
$ref: '#/components/examples/tokenListExample'
schema:
oneOf:
- $ref: '#/components/schemas/PaginatedOAuthClientTokens'
- items:
$ref: '#/components/schemas/OAuthClientToken'
nullable: true
type: array
description: Tokens returned successfully.
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: OAuth Client ID not found
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: OAuth Client ID not found
"500":
content:
application/json:
example:
message: Get client tokens failed
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: List tokens for a provided API ID and OAuth-client ID
tags:
- OAuth
/tyk/oauth/clients/apis/{appID}:
get:
description: Get all API IDs for APIs that have use_oauth2 enabled and use the
client_id (appID) specified in the path parameter for OAuth2. You can use
the org_id query parameter to specify from which organization you want the
API IDs to be returned. To return APIs from all organizations, send org_id
as an empty string.
operationId: getApisForOauthApp
parameters:
- description: The Client ID
example: 2a06b398c17f46908de3dffcb71ef87df
in: path
name: appID
required: true
schema:
type: string
- description: The Org Id
in: query
name: orgID
required: false
schema:
type: string
responses:
"200":
content:
application/json:
example:
- b84fe1a04e5648927971c0557971565c
schema:
items:
type: string
type: array
description: Return an array of apis ids
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
summary: Get API IDs for APIS that use the specified client_id(appID) for OAuth
tags:
- OAuth
/tyk/oauth/clients/create:
post:
description: |
Any OAuth keys must be generated with the help of a client ID. These need to be pre-registered with Tyk before they can be used (in a similar vein to how you would register your app with Twitter before attempting to ask user permissions using their API).
<br/><br/>
<h3>Creating OAuth clients with Access to Multiple APIs</h3>
New from Tyk Gateway 2.6.0 is the ability to create OAuth clients with access to more than one API. If you provide the api_id it works the same as in previous releases. If you don't provide the api_id the request uses policy access rights and enumerates APIs from their setting in the newly created OAuth-client.
operationId: createOAuthClient
requestBody:
content:
application/json:
example:
api_id: b84fe1a04e5648927971c0557971565c
client_id: 2a06b398c17f46908de3dffcb71ef87df
description: google client
meta_data:
user_id: 362b3fb9a1d5e4f00017226f5
redirect_uri: https://httpbin.org/ip
secret: MmQwNTI5NGQtYjU0YS00NjMyLWIwZjktNTZjY2M1ZjhjYWY0
schema:
$ref: '#/components/schemas/NewClientRequest'
responses:
"200":
content:
application/json:
example:
client_id: 2a06b398c17f46908de3dffcb71ef87df
description: google client
meta_data:
user_id: 362b3fb9a1d5e4f00017226f5
redirect_uri: https://httpbin.org/ip
secret: MmQwNTI5NGQtYjU0YS00NjMyLWIwZjktNTZjY2M1ZjhjYWY0
schema:
$ref: '#/components/schemas/NewClientRequest'
description: Client created
"400":
content:
application/json:
example:
message: API doesn't exist
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Api Not found
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"500":
content:
application/json:
example:
message: Unmarshalling failed
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Unmarshalling failed
summary: Create new OAuth client
tags:
- OAuth
/tyk/oauth/refresh/{keyName}:
delete:
description: It is possible to invalidate refresh tokens in order to manage
OAuth client access more robustly.
operationId: invalidateOAuthRefresh
parameters:
- description: The Client ID
example: 2a06b398c17f46908de3dffcb71ef87df
in: path
name: keyName
required: true
schema:
type: string
- description: The API id
example: b84fe1a04e5648927971c0557971565c
in: query
name: api_id
required: true
schema:
type: string
responses:
"200":
content:
application/json:
example:
action: deleted
key: 2a06b398c17f46908de3dffcb71ef87df
status: ok
schema:
$ref: '#/components/schemas/ApiModifyKeySuccess'
description: Deleted
"400":
content:
application/json:
example:
message: Missing parameter api_id
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: missing api_Id query parameter
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: API for this refresh token not found
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Not Found
"500":
content:
application/json:
example:
message: Failed to invalidate refresh token
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Invalidate OAuth refresh token
tags:
- OAuth
/tyk/oauth/revoke:
post:
description: revoke a single token
operationId: revokeSingleToken
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
client_id:
description: id of oauth client
example: 2a06b398c17f46908de3dffcb71ef87df
type: string
org_id:
example: 6492f66e6ebbc56c6a6bf022
type: string
token:
description: token to be revoked
example: eyJvcmciOiI1ZTIwOTFjNGQ0YWVmY2U2MGMwNGZiOTIiLCJpZCI6IjIyODQ1NmFjNmJlMjRiMzI5MTIyOTdlODQ5NTc4NjJhIiwiaCI6Im11cm11cjY0In0=
type: string
token_type_hint:
description: type of token to be revoked, if sent then the accepted
values are access_token and refresh_token. String value and optional,
of not provided then it will attempt to remove access and refresh
tokens that matches
example: access_token
type: string
required:
- token
- client_id
type: object
description: token revoked successfully
responses:
"200":
content:
application/json:
example:
message: token revoked successfully
status: ok
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: token revoked
"400":
content:
application/json:
example:
message: cannot parse form. Form malformed
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: malformed form data
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
summary: revoke token
tags:
- OAuth
/tyk/oauth/revoke_all:
post:
description: Revoke all the tokens for a given oauth client
operationId: revokeAllTokens
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
client_id:
description: id of oauth client
example: 2a06b398c17f46908de3dffcb71ef87df
type: string
client_secret:
description: OAuth client secret to ensure that its a valid operation
example: MmQwNTI5NGQtYjU0YS00NjMyLWIwZjktNTZjY2M1ZjhjYWY0
type: string
org_id:
example: 6492f66e6ebbc56c6a6bf022
type: string
required:
- client_secret
- client_id
type: object
responses:
"200":
content:
application/json:
example:
message: tokens revoked successfully
status: ok
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: tokens revoked
"400":
content:
application/json:
example:
message: cannot parse form. Form malformed
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Bad Request
"401":
content:
application/json:
example:
message: client_id is required
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: missing client id
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: oauth client doesn't exist
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: not found
summary: Revoke all client's tokens
tags:
- OAuth
/tyk/oauth/tokens:
delete:
description: Purge all lapsed OAuth token
operationId: purgeLapsedOAuthTokens
parameters:
- description: purge lapsed tokens
example: lapsed
in: query
name: scope
required: true
schema:
enum:
- lapsed
type: string
responses:
"200":
content:
application/json:
example:
message: lapsed tokens purged
status: ok
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: lapsed tokens purged successfully
"400":
content:
application/json:
example:
message: unknown scope
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Sending a value other than lapsed in scope query
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"422":
content:
application/json:
example:
message: scope parameter is required
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Missing lapsed query parameter
"500":
content:
application/json:
example:
message: error purging lapsed tokens
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Purge lapsed OAuth tokens
tags:
- OAuth
/tyk/org/keys:
get:
description: You can now set rate limits at the organisation level by using
the following fields - allowance and rate. These are the number of allowed
requests for the specified per value, and need to be set to the same value.
If you don't want to have organisation level rate limiting, set 'rate' or
'per' to zero, or don't add them to your request.
operationId: listOrgKeys
parameters:
- description: Retrieves all keys starting with the specified filter(filter
is a prefix - e.g. default* or default will return all keys starting with
default like defaultbd,defaulttwo etc).We don't use filter for hashed keys
example: default*
in: query
name: filter
required: false
schema:
type: string
responses:
"200":
content:
application/json:
example:
keys:
- 5e9d9544a1dcd60001d0ed2008500e44fa644f939b640a4b8b4ea58c
schema:
$ref: '#/components/schemas/ApiAllKeys'
description: List of all org keys
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: ORG not found
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: ORG not found
summary: List Organisation Keys
tags:
- Organisation Quotas
/tyk/org/keys/{keyID}:
delete:
description: Deleting a key will remove all limits from organisation. It does
not affects regular keys created within organisation.
operationId: deleteOrgKey
parameters:
- description: The Key ID
example: e389ae00a2b145feaf28d6cc11f0f86d
in: path
name: keyID
required: true
schema:
type: string
responses:
"200":
content:
application/json:
example:
action: deleted
key: e389ae00a2b145feaf28d6cc11f0f86d
status: ok
schema:
$ref: '#/components/schemas/ApiModifyKeySuccess'
description: OK
"400":
content:
application/json:
example:
message: Failed to remove the key
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Bad Request
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: Org not found
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Org not found
summary: Delete Key
tags:
- Organisation Quotas
get:
description: Get session info about specified organisation key. Should return
up to date rate limit and quota usage numbers.
operationId: getOrgKey
parameters:
- description: The Org ID
example: 664a14650619d40001f1f00f
in: query
name: orgID
required: false
schema:
type: string
- description: The Key ID
example: e389ae00a2b145feaf28d6cc11f0f86d
in: path
name: keyID
required: true
schema:
type: string
responses:
"200":
content:
application/json:
example:
access_rights:
itachi-api:
allowed_urls:
- methods:
- GET
url: /users
api_id: 8ddd91f3cda9453442c477b06c4e2da4
api_name: Itachi api
limit:
per: 60
quota_max: 10000
quota_remaining: 10000
quota_renewal_rate: 3600
rate: 1000
throttle_interval: 10
throttle_retry_limit: 10
versions:
- Default
alias: portal-key
allowance: 1000
apply_policies:
- 5ead7120575961000181867e
date_created: "2024-08-09T14:40:34.87614+03:00"
enable_detailed_recording: true
last_updated: "1723203634"
meta_data:
new-update-key-sample: update-key-sample
tyk_developer_id: 62b3fb9a1d5e4f00017226f5
update: sample policy update
user_type: mobile_user
org_id: 5e9d9544a1dcd60001d0ed20
per: 60
quota_max: 10000
quota_renewal_rate: 3600
quota_renews: 1.723207234e+09
rate: 1000
tags:
- security
- edge
- edge-eu
throttle_interval: 10
throttle_retry_limit: 10
schema:
properties:
access_rights:
additionalProperties:
properties:
allowed_urls:
items:
properties:
methods:
items:
type: string
nullable: true
type: array
url:
type: string
type: object
nullable: true
type: array
api_id:
type: string
api_name:
type: string
limit:
properties:
per:
type: integer
quota_max:
type: integer
quota_remaining:
type: integer
quota_renewal_rate:
type: integer
rate:
type: integer
throttle_interval:
type: integer
throttle_retry_limit:
type: integer
type: object
versions:
items:
type: string
nullable: true
type: array
type: object
nullable: true
type: object
alias:
type: string
allowance:
type: integer
apply_policies:
items:
type: string
nullable: true
type: array
date_created:
format: date-time
type: string
enable_detailed_recording:
type: boolean
last_updated:
type: string
meta_data:
additionalProperties:
type: string
nullable: true
type: object
org_id:
type: string
per:
type: integer
quota_max:
type: integer
quota_renewal_rate:
type: integer
quota_renews:
type: integer
rate:
type: integer
tags:
items:
type: string
nullable: true
type: array
throttle_interval:
type: integer
throttle_retry_limit:
type: integer
type: object
description: OK
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: Org not found
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Org not found
summary: Get an Organisation Key
tags:
- Organisation Quotas
post:
description: This work similar to Keys API except that Key ID is always equals
Organisation ID
operationId: addOrgKey
parameters:
- description: The Key ID
example: e389ae00a2b145feaf28d6cc11f0f86d
in: path
name: keyID
required: true
schema:
type: string
- description: Adding the reset_quota parameter and setting it to 1, will cause
Tyk reset the organisations quota in the live quota manager, it is recommended
to use this mechanism to reset organisation-level access if a monthly subscription
is in place.
example: "1"
in: query
name: reset_quota
required: false
schema:
enum:
- "1"
type: string
requestBody:
content:
application/json:
example:
access_rights:
itachi-api:
allowed_urls:
- methods:
- GET
url: /users
api_id: 8ddd91f3cda9453442c477b06c4e2da4
api_name: Itachi api
limit:
per: 60
quota_max: 10000
quota_remaining: 10000
quota_renewal_rate: 3600
rate: 1000
throttle_interval: 10
throttle_retry_limit: 10
versions:
- Default
alias: portal-key
allowance: 1000
apply_policies:
- 5ead7120575961000181867e
date_created: "2024-08-09T14:40:34.87614+03:00"
enable_detailed_recording: true
last_updated: "1723203634"
meta_data:
new-update-key-sample: update-key-sample
tyk_developer_id: 62b3fb9a1d5e4f00017226f5
update: sample policy update
user_type: mobile_user
org_id: 5e9d9544a1dcd60001d0ed20
per: 60
quota_max: 10000
quota_renewal_rate: 3600
quota_renews: 1.723207234e+09
rate: 1000
tags:
- security
- edge
- edge-eu
throttle_interval: 10
throttle_retry_limit: 10
schema:
$ref: '#/components/schemas/SessionState'
responses:
"200":
content:
application/json:
example:
action: added
key: e389ae00a2b145feaf28d6cc11f0f86d
status: ok
schema:
$ref: '#/components/schemas/ApiModifyKeySuccess'
description: OK
"400":
content:
application/json:
example:
message: Request malformed
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Bad Request
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: No such organisation found in Active API list
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Not Found
"500":
content:
application/json:
example:
message: 'Error writing to key store '
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Create an organisation key
tags:
- Organisation Quotas
put:
description: |-
This work similar to Keys API except that Key ID is always equals Organisation ID
For Gateway v2.6.0 onwards, you can now set rate limits at the organisation level by using the following fields - allowance and rate. These are the number of allowed requests for the specified per value, and need to be set to the same value. If you don't want to have organisation level rate limiting, set `rate` or `per` to zero, or don't add them to your request.
operationId: updateOrgKey
parameters:
- description: Adding the reset_quota parameter and setting it to 1, will cause
Tyk reset the organisations quota in the live quota manager, it is recommended
to use this mechanism to reset organisation-level access if a monthly subscription
is in place.
example: "1"
in: query
name: reset_quota
required: false
schema:
enum:
- "1"
type: string
- description: The Key ID
example: e389ae00a2b145feaf28d6cc11f0f86d
in: path
name: keyID
required: true
schema:
type: string
requestBody:
content:
application/json:
example:
access_rights:
itachi-api:
allowed_urls:
- methods:
- GET
url: /users
api_id: 8ddd91f3cda9453442c477b06c4e2da4
api_name: Itachi api
limit:
per: 60
quota_max: 10000
quota_remaining: 10000
quota_renewal_rate: 3600
rate: 1000
throttle_interval: 10
throttle_retry_limit: 10
versions:
- Default
alias: portal-key
allowance: 1000
apply_policies:
- 5ead7120575961000181867e
date_created: "2024-08-09T14:40:34.87614+03:00"
enable_detailed_recording: true
last_updated: "1723203634"
meta_data:
new-update-key-sample: update-key-sample
tyk_developer_id: 62b3fb9a1d5e4f00017226f5
update: sample policy update
user_type: mobile_user
org_id: 5e9d9544a1dcd60001d0ed20
per: 60
quota_max: 10000
quota_renewal_rate: 3600
quota_renews: 1.723207234e+09
rate: 1000
tags:
- security
- edge
- edge-eu
- update-sample-tag
throttle_interval: 10
throttle_retry_limit: 10
schema:
$ref: '#/components/schemas/SessionState'
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/ApiModifyKeySuccess'
description: OK
"400":
content:
application/json:
example:
message: Request malformed
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Bad Request
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: No such organisation found in Active API list
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Not Found
"500":
content:
application/json:
example:
message: 'Error writing to key store '
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Update Organisation Key
tags:
- Organisation Quotas
/tyk/policies:
get:
description: Retrieve all the policies in your Tyk instance. Returns an array
policies.
operationId: listPolicies
responses:
"200":
content:
application/json:
examples:
policiesExample:
$ref: '#/components/examples/policiesExample'
schema:
items:
$ref: '#/components/schemas/Policy'
type: array
description: List of all policies.
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
summary: List policies.
tags:
- Policies
post:
description: Create a policy in your Tyk Instance.
operationId: addPolicy
requestBody:
content:
application/json:
example:
access_rights:
itachi-api:
allowed_urls:
- methods:
- GET
url: /users
api_id: 8ddd91f3cda9453442c477b06c4e2da4
api_name: Itachi api
disable_introspection: false
versions:
- Default
active: true
hmac_enabled: false
id: 5ead7120575961000181867e
is_inactive: false
key_expires_in: 2.592e+06
max_query_depth: -1
meta_data:
update: sample policy update
user_type: mobile_user
name: Sample policy
partitions:
acl: true
complexity: false
per_api: false
quota: true
rate_limit: true
per: 60
quota_max: 10000
quota_renewal_rate: 3600
rate: 1000
tags:
- security
throttle_interval: 10
throttle_retry_limit: 10
schema:
$ref: '#/components/schemas/Policy'
responses:
"200":
content:
application/json:
example:
action: added
key: 5ead7120575961000181867e
status: ok
schema:
$ref: '#/components/schemas/ApiModifyKeySuccess'
description: Policy created.
"400":
content:
application/json:
example:
message: Request malformed
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Malformed request.
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"500":
content:
application/json:
example:
message: Due to enabled service policy source, please use the Dashboard
API.
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Create a policy.
tags:
- Policies
/tyk/policies/{polID}:
delete:
description: Delete a policy by ID in your Tyk instance.
operationId: deletePolicy
parameters:
- description: You can retrieve details of a single policy by ID in your Tyk
instance.
example: 5ead7120575961000181867e
in: path
name: polID
required: true
schema:
type: string
responses:
"200":
content:
application/json:
example:
action: deleted
key: 5ead7120575961000181867e
status: ok
schema:
$ref: '#/components/schemas/ApiModifyKeySuccess'
description: Deleted policy by ID
"400":
content:
application/json:
example:
message: Must specify an apiID to update
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Policy Id not provided
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"500":
content:
application/json:
example:
message: Delete failed
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Delete a policy.
tags:
- Policies
get:
description: You can retrieve details of a single policy by ID in your Tyk instance.
operationId: getPolicy
parameters:
- description: You can retrieve details of a single policy by ID in your Tyk
instance.
example: 5ead7120575961000181867e
in: path
name: polID
required: true
schema:
type: string
responses:
"200":
content:
application/json:
example:
access_rights:
itachi-api:
allowed_urls:
- methods:
- GET
url: /users
api_id: 8ddd91f3cda9453442c477b06c4e2da4
api_name: Itachi api
disable_introspection: false
versions:
- Default
active: true
hmac_enabled: false
id: 5ead7120575961000181867e
is_inactive: false
key_expires_in: 2.592e+06
max_query_depth: -1
meta_data:
update: sample policy update
user_type: mobile_user
name: Sample policy
partitions:
acl: true
complexity: false
per_api: false
quota: true
rate_limit: true
per: 60
quota_max: 10000
quota_renewal_rate: 3600
rate: 1000
tags:
- security
throttle_interval: 10
throttle_retry_limit: 10
schema:
$ref: '#/components/schemas/Policy'
description: Get details of a single policy.
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: Policy not found
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Policy not found
summary: Get a policy.
tags:
- Policies
put:
description: You can update a Policy in your Tyk Instance by ID.
operationId: updatePolicy
parameters:
- description: You can retrieve details of a single policy by ID in your Tyk
instance.
example: 5ead7120575961000181867e
in: path
name: polID
required: true
schema:
type: string
requestBody:
content:
application/json:
example:
access_rights:
itachi-api:
allowed_urls:
- methods:
- GET
url: /users
api_id: 8ddd91f3cda9453442c477b06c4e2da4
api_name: Itachi api
disable_introspection: false
versions:
- Default
active: true
hmac_enabled: false
id: 5ead7120575961000181867e
is_inactive: false
key_expires_in: 2.592e+06
max_query_depth: -1
meta_data:
update: sample policy update
user_type: mobile_user
name: update policy sample
partitions:
acl: true
complexity: false
per_api: false
quota: true
rate_limit: true
per: 60
quota_max: 10000
quota_renewal_rate: 3600
rate: 1000
tags:
- security
throttle_interval: 10
throttle_retry_limit: 10
schema:
$ref: '#/components/schemas/Policy'
responses:
"200":
content:
application/json:
example:
action: modified
key: 5ead7120575961000181867e
status: ok
schema:
$ref: '#/components/schemas/ApiModifyKeySuccess'
description: Policy updated
"400":
content:
application/json:
example:
message: Request malformed
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: malformed request
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"500":
content:
application/json:
example:
message: Failed to create file!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Internal server error.
summary: Update a policy.
tags:
- Policies
/tyk/reload:
get:
description: Tyk is capable of reloading configurations without having to stop
serving requests. This means that API configurations can be added at runtime,
or even modified at runtime and those rules applied immediately without any
downtime.
operationId: hotReload
parameters:
- description: Block a response until the reload is performed. This can be useful
in scripting environments like CI/CD workflows.
example: false
in: query
name: block
required: false
schema:
enum:
- true
- false
type: boolean
responses:
"200":
content:
application/json:
example:
message: ""
status: ok
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Reload gateway.
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
summary: Hot-reload a single node.
tags:
- Hot Reload
/tyk/reload/group:
get:
description: To reload a whole group of Tyk nodes (without using the Dashboard
or host manager). You can send an API request to a single node, this node
will then send a notification through the pub/sub infrastructure to all other
listening nodes (including the host manager if it is being used to manage
Nginx) which will then trigger a global reload.
operationId: hotReloadGroup
responses:
"200":
content:
application/json:
example:
message: ""
status: ok
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Reload the Tyk Gateway.
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
summary: Hot-reload a group of Tyk nodes.
tags:
- Hot Reload
/tyk/schema:
get:
description: Get OAS schema definition using a version.
operationId: getSchema
parameters:
- description: The OAS version to fetch.
example: 3.0.3
in: query
name: oasVersion
required: false
schema:
type: string
responses:
"200":
content:
application/json:
example:
message: ""
status: Success
schema:
$ref: '#/components/schemas/OASSchemaResponse'
description: OAS schema response.
"403":
content:
application/json:
example:
message: Attempted administrative access with invalid or missing key!
status: error
schema:
$ref: '#/components/schemas/ApiStatusMessage'
description: Forbidden
"404":
content:
application/json:
example:
message: Schema not found for version "4"
status: Failed
schema:
$ref: '#/components/schemas/OASSchemaResponse'
description: Version not found
summary: Get OAS schema.
tags:
- Schema
components:
examples:
certIdList:
value:
certs:
- 5e9d9544a1dcd60001d0ed20a6ab77653d5da938f452bb8cc9b55b0630a6743dabd8dc92bfb025abb09ce035
- 5e9d9544a1dcd60001d0ed207c440d66ebb0a4629d21329808dce9091acf5f2fde328067a6e60e5347271d90
certificateBasicList:
value:
certs:
- dns_names:
- example.com
- www.example.com
has_private: true
id: 5e9d9544a1dcd60001d0ed20a6ab77653d5da938f452bb8cc9b55b0630a6743dabd8dc92bfb025abb09ce035
is_ca: false
issuer_cn: Issuer 1
not_after: "2024-01-01T00:00:00Z"
not_before: "2023-01-01T00:00:00Z"
subject_cn: Subject 1
- dns_names:
- example.org
- www.example.org
has_private: false
id: 5e9d9544a1dcd60001d0ed207c440d66ebb0a4629d21329808dce9091acf5f2fde328067a6e60e5347271d90
is_ca: true
issuer_cn: Issuer 2
not_after: "2024-02-01T00:00:00Z"
not_before: "2023-02-01T00:00:00Z"
subject_cn: Subject 2
certificateMetaExample:
value:
dns_names:
- .*tyk.io
fingerprint: 7c440d66ebb0a4629d21329808dce9091acf5f2fde328067a6e60e5347271d90
has_private: false
id: 5e9d9544a1dcd60001d0ed207c440d66ebb0a4629d21329808dce9091acf5f2fde328067a6e60e5347271d90
is_ca: false
issuer:
CommonName: tyk.io
Country:
- Peachtree
ExtraNames: null
Locality: null
Names:
- Type:
- 2
- 5
- 4
- 6
Value: Peachtree
- Type:
- 2
- 5
- 4
- 10
Value: tyk
- Type:
- 2
- 5
- 4
- 11
Value: tyk
- Type:
- 2
- 5
- 4
- 3
Value: tyk.io
- Type:
- 1
- 2
- 840
- 113549
- 1
- 9
- 1
Value: support@tyk.io
Organization:
- tyk
OrganizationalUnit:
- tyk
PostalCode: null
Province: null
SerialNumber: ""
StreetAddress: null
not_after: "2034-03-26T08:46:37Z"
not_before: "2024-03-25T08:46:37Z"
subject:
CommonName: tyk.io
Country:
- Peachtree
ExtraNames: null
Locality: null
Names:
- Type:
- 2
- 5
- 4
- 6
Value: Peachtree
- Type:
- 2
- 5
- 4
- 10
Value: tyk
- Type:
- 2
- 5
- 4
- 11
Value: tyk
- Type:
- 2
- 5
- 4
- 3
Value: tyk.io
- Type:
- 1
- 2
- 840
- 113549
- 1
- 9
- 1
Value: support@tyk.io
Organization:
- tyk
OrganizationalUnit:
- tyk
PostalCode: null
Province: null
SerialNumber: ""
StreetAddress: null
certificateMetaListExample:
value:
- dns_names:
- .*tyk.io
fingerprint: 7c440d66ebb0a4629d21329808dce9091acf5f2fde328067a6e60e5347271d90
has_private: false
id: 5e9d9544a1dcd60001d0ed207c440d66ebb0a4629d21329808dce9091acf5f2fde328067a6e60e5347271d90
is_ca: false
issuer:
CommonName: tyk.io
Country:
- Peachtree
ExtraNames: null
Locality: null
Names:
- Type:
- 2
- 5
- 4
- 6
Value: Peachtree
- Type:
- 2
- 5
- 4
- 10
Value: tyk
- Type:
- 2
- 5
- 4
- 11
Value: tyk
- Type:
- 2
- 5
- 4
- 3
Value: tyk.io
- Type:
- 1
- 2
- 840
- 113549
- 1
- 9
- 1
Value: support@tyk.io
Organization:
- tyk
OrganizationalUnit:
- tyk
PostalCode: null
Province: null
SerialNumber: ""
StreetAddress: null
not_after: "2034-03-26T08:46:37Z"
not_before: "2024-03-25T08:46:37Z"
subject:
CommonName: tyk.io
Country:
- Peachtree
ExtraNames: null
Locality: null
Names:
- Type:
- 2
- 5
- 4
- 6
Value: Peachtree
- Type:
- 2
- 5
- 4
- 10
Value: tyk
- Type:
- 2
- 5
- 4
- 11
Value: tyk
- Type:
- 2
- 5
- 4
- 3
Value: tyk.io
- Type:
- 1
- 2
- 840
- 113549
- 1
- 9
- 1
Value: support@tyk.io
Organization:
- tyk
OrganizationalUnit:
- tyk
PostalCode: null
Province: null
SerialNumber: ""
StreetAddress: null
oasExample:
value:
components:
securitySchemes:
bearerAuth:
description: The API Access Credentials
scheme: bearer
type: http
info:
description: This is a sample OAS.
title: OAS Sample
version: 1.0.0
openapi: 3.0.3
paths:
/api/sample/users:
get:
operationId: getUsers
responses:
"200":
content:
application/json:
schema:
items:
properties:
name:
type: string
type: object
type: array
description: fetched users
summary: Get users
tags:
- users
security:
- bearerAuth: []
servers:
- url: https://localhost:8080
x-tyk-api-gateway:
info:
name: user
state:
active: true
server:
listenPath:
strip: true
value: /user-test/
upstream:
url: https://localhost:8080
oasExampleList:
value:
- components:
securitySchemes:
bearerAuth:
description: The API Access Credentials
scheme: bearer
type: http
info:
description: This is a sample OAS.
title: OAS Sample
version: 1.0.0
openapi: 3.0.3
paths:
/api/sample/users:
get:
operationId: getUsers
responses:
"200":
content:
application/json:
schema:
items:
properties:
name:
type: string
type: object
type: array
description: fetched users
summary: Get users
tags:
- users
security:
- bearerAuth: []
servers:
- url: https://localhost:8080
x-tyk-api-gateway:
info:
name: user
state:
active: true
server:
listenPath:
strip: true
value: /user-test/
upstream:
url: https://localhost:8080
paginatedTokenExample:
value:
Pagination:
page_num: 1
page_size: 100
page_total: 0
Tokens:
- code: 5a7d110be6355b0c071cc339327563cb45174ae387f52f87a80d2496
expires: 1.518158407e+09
- code: 5a7d110be6355b0c071cc33988884222b0cf436eba7979c6c51d6dbd
expires: 1.518158594e+09
- code: 5a7d110be6355b0c071cc33990bac8b5261041c5a7d585bff291fec4
expires: 1.518158638e+09
- code: 5a7d110be6355b0c071cc339a66afe75521f49388065a106ef45af54
expires: 1.518159792e+09
policiesExample:
value:
- _id: ""
access_rights:
8ddd91f3cda9453442c477b06c4e2da4:
allowance_scope: ""
allowed_types: []
allowed_urls:
- methods:
- GET
url: /users
api_id: 8ddd91f3cda9453442c477b06c4e2da4
api_name: Itachi api
disable_introspection: false
field_access_rights: []
limit:
max_query_depth: 0
per: 0
quota_max: 0
quota_remaining: 0
quota_renewal_rate: 0
quota_renews: 0
rate: 0
smoothing:
delay: 30
enabled: false
step: 100
threshold: 500
trigger: 0.8
throttle_interval: 0
throttle_retry_limit: 0
restricted_types: []
versions:
- Default
active: true
enable_http_signature_validation: false
graphql_access_rights: null
hmac_enabled: false
id: 5ead7120575961000181867e
is_inactive: false
key_expires_in: 2.592e+06
last_updated: "1716980105"
max_query_depth: -1
meta_data:
user_type: mobile_user
name: Sample policy
org_id: 664a14650619d40001f1f00f
partitions:
acl: true
complexity: false
per_api: false
quota: true
rate_limit: true
per: 60
quota_max: 10000
quota_renewal_rate: 3600
rate: 1000
smoothing:
delay: 30
enabled: false
step: 100
threshold: 500
trigger: 0.8
tags:
- security
throttle_interval: 10
throttle_retry_limit: 10
tokenListExample:
value:
- code: 5a7d110be6355b0c071cc339327563cb45174ae387f52f87a80d2496
expires: 1.518158407e+09
- code: 5a7d110be6355b0c071cc33988884222b0cf436eba7979c6c51d6dbd
expires: 1.518158594e+09
- code: 5a7d110be6355b0c071cc33990bac8b5261041c5a7d585bff291fec4
expires: 1.518158638e+09
- code: 5a7d110be6355b0c071cc339a66afe75521f49388065a106ef45af54
expires: 1.518159792e+09
parameters:
AccessType:
description: Filter for internal or external API versions
example: internal
in: query
name: accessType
required: false
schema:
enum:
- internal
- external
type: string
AllowList:
description: Enable allowList middleware for all endpoints
in: query
name: allowList
required: false
schema:
$ref: '#/components/schemas/BooleanQueryParam'
Authentication:
description: Enable/disable the authentication mechanism in your Tyk Gateway
for your OAS API
in: query
name: authentication
schema:
$ref: '#/components/schemas/BooleanQueryParam'
CustomDomain:
description: Custom domain for the API
example: tyk.io
in: query
name: customDomain
required: false
schema:
type: string
ListenPath:
description: Listen path for the API
example: /user-test/
in: query
name: listenPath
required: false
schema:
type: string
MockResponse:
description: Enable mockResponse middleware for all endpoints having responses
configured.
in: query
name: mockResponse
required: false
schema:
$ref: '#/components/schemas/BooleanQueryParam'
SearchText:
description: Search for API version name
example: Sample oas
in: query
name: searchText
required: false
schema:
type: string
UpstreamURL:
description: Upstream URL for the API
example: https://localhost:8080
in: query
name: upstreamURL
required: false
schema:
type: string
ValidateRequest:
description: Enable validateRequest middleware for all endpoints having a request
body with media type application/json
in: query
name: validateRequest
required: false
schema:
$ref: '#/components/schemas/BooleanQueryParam'
schemas:
APIAllCertificateBasics:
properties:
certs:
items:
$ref: '#/components/schemas/CertsCertificateBasics'
nullable: true
type: array
type: object
APIAllCertificates:
properties:
certs:
items:
type: string
nullable: true
type: array
type: object
APICertificateStatusMessage:
properties:
id:
example: 5e9d9544a1dcd60001d0ed207c440d66ebb0a4629d21329808dce9091acf5f2fde328067a6e60e5347271d90
type: string
message:
example: Certificate added
type: string
status:
example: ok
type: string
type: object
APIDefinition:
properties:
CORS:
$ref: '#/components/schemas/CORSConfig'
active:
type: boolean
allowed_ips:
items:
type: string
nullable: true
type: array
analytics_plugin:
$ref: '#/components/schemas/AnalyticsPluginConfig'
api_id:
type: string
auth:
$ref: '#/components/schemas/AuthConfig'
auth_configs:
additionalProperties:
$ref: '#/components/schemas/AuthConfig'
nullable: true
type: object
auth_provider:
$ref: '#/components/schemas/AuthProviderMeta'
base_identity_provided_by:
type: string
basic_auth:
properties:
body_password_regexp:
type: string
body_user_regexp:
type: string
cache_ttl:
type: integer
disable_caching:
type: boolean
extract_from_body:
type: boolean
type: object
blacklisted_ips:
items:
type: string
nullable: true
type: array
cache_options:
$ref: '#/components/schemas/CacheOptions'
certificate_pinning_disabled:
type: boolean
certificates:
items:
type: string
nullable: true
type: array
client_certificates:
items:
type: string
nullable: true
type: array
config_data:
additionalProperties: {}
nullable: true
type: object
config_data_disabled:
type: boolean
custom_middleware:
$ref: '#/components/schemas/MiddlewareSection'
custom_middleware_bundle:
type: string
custom_middleware_bundle_disabled:
type: boolean
custom_plugin_auth_enabled:
type: boolean
definition:
$ref: '#/components/schemas/VersionDefinition'
detailed_tracing:
type: boolean
disable_quota:
type: boolean
disable_rate_limit:
type: boolean
do_not_track:
type: boolean
domain:
type: string
domain_disabled:
type: boolean
dont_set_quota_on_create:
type: boolean
enable_batch_request_support:
type: boolean
enable_context_vars:
type: boolean
enable_coprocess_auth:
type: boolean
enable_detailed_recording:
type: boolean
enable_ip_blacklisting:
type: boolean
enable_ip_whitelisting:
type: boolean
enable_jwt:
type: boolean
enable_proxy_protocol:
type: boolean
enable_signature_checking:
type: boolean
event_handlers:
$ref: '#/components/schemas/EventHandlerMetaConfig'
expiration:
type: string
expire_analytics_after:
type: integer
external_oauth:
$ref: '#/components/schemas/ExternalOAuth'
global_rate_limit:
$ref: '#/components/schemas/GlobalRateLimit'
graphql:
$ref: '#/components/schemas/GraphQLConfig'
hmac_allowed_algorithms:
items:
type: string
nullable: true
type: array
hmac_allowed_clock_skew:
type: number
id:
type: string
idp_client_id_mapping_disabled:
type: boolean
internal:
type: boolean
is_oas:
type: boolean
jwt_client_base_field:
type: string
jwt_default_policies:
items:
type: string
nullable: true
type: array
jwt_expires_at_validation_skew:
minimum: 0
type: integer
jwt_identity_base_field:
type: string
jwt_issued_at_validation_skew:
minimum: 0
type: integer
jwt_not_before_validation_skew:
minimum: 0
type: integer
jwt_policy_field_name:
type: string
jwt_scope_claim_name:
type: string
jwt_scope_to_policy_mapping:
additionalProperties:
type: string
nullable: true
type: object
jwt_signing_method:
type: string
jwt_skip_kid:
type: boolean
jwt_source:
type: string
listen_port:
type: integer
name:
type: string
notifications:
$ref: '#/components/schemas/NotificationsManager'
oauth_meta:
properties:
allowed_access_types:
items:
type: string
nullable: true
type: array
allowed_authorize_types:
items:
type: string
nullable: true
type: array
auth_login_redirect:
type: string
type: object
openid_options:
$ref: '#/components/schemas/OpenIDOptions'
org_id:
type: string
pinned_public_keys:
additionalProperties:
type: string
nullable: true
type: object
protocol:
type: string
proxy:
$ref: '#/components/schemas/ProxyConfig'
request_signing:
$ref: '#/components/schemas/RequestSigningMeta'
response_processors:
items:
$ref: '#/components/schemas/ResponseProcessor'
nullable: true
type: array
scopes:
$ref: '#/components/schemas/Scopes'
session_lifetime:
type: integer
session_lifetime_respects_key_expiration:
type: boolean
session_provider:
$ref: '#/components/schemas/SessionProviderMeta'
slug:
type: string
strip_auth_data:
type: boolean
tag_headers:
items:
type: string
nullable: true
type: array
tags:
example:
- Default
- v1
items:
type: string
nullable: true
type: array
tags_disabled:
type: boolean
upstream_certificates:
additionalProperties:
type: string
nullable: true
type: object
upstream_certificates_disabled:
type: boolean
uptime_tests:
$ref: '#/components/schemas/UptimeTests'
use_basic_auth:
type: boolean
use_go_plugin_auth:
type: boolean
use_keyless:
type: boolean
use_mutual_tls_auth:
type: boolean
use_oauth2:
type: boolean
use_openid:
type: boolean
use_standard_auth:
type: boolean
version_data:
$ref: '#/components/schemas/VersionData'
type: object
APILimit:
properties:
max_query_depth:
type: integer
per:
type: number
quota_max:
type: integer
quota_remaining:
type: integer
quota_renewal_rate:
type: integer
quota_renews:
type: integer
rate:
type: number
smoothing:
$ref: '#/components/schemas/RateLimitSmoothing'
throttle_interval:
type: number
throttle_retry_limit:
type: integer
type: object
AccessDefinition:
properties:
allowance_scope:
example: d371b83b249845a2497ab9a947fd6210
type: string
allowed_types:
items:
$ref: '#/components/schemas/GraphqlType'
nullable: true
type: array
allowed_urls:
items:
$ref: '#/components/schemas/AccessSpec'
nullable: true
type: array
api_id:
example: d1dfc6a927a046c54c0ed470f19757cc
type: string
api_name:
example: Rate Limit Proxy API
type: string
disable_introspection:
example: false
type: boolean
endpoints:
$ref: '#/components/schemas/Endpoints'
field_access_rights:
items:
$ref: '#/components/schemas/FieldAccessDefinition'
nullable: true
type: array
limit:
$ref: '#/components/schemas/APILimit'
restricted_types:
items:
$ref: '#/components/schemas/GraphqlType'
nullable: true
type: array
versions:
example:
- Default
- v2
items:
type: string
nullable: true
type: array
type: object
AccessSpec:
properties:
methods:
example:
- GET
- POST
- DELETE
- PUT
items:
type: string
nullable: true
type: array
url:
example: anything/rate-limit-1-per-5
type: string
type: object
Allowance:
properties:
enabled:
type: boolean
ignoreCase:
type: boolean
type: object
AnalyticsPluginConfig:
properties:
enable:
type: boolean
func_name:
type: string
plugin_path:
type: string
type: object
ApiAllKeys:
properties:
keys:
items:
type: string
nullable: true
type: array
type: object
ApiModifyKeySuccess:
properties:
action:
example: modified
type: string
key:
example: b13d928b9972bd18
type: string
key_hash:
type: string
status:
example: ok
type: string
type: object
ApiStatusMessage:
properties:
message:
type: string
status:
type: string
type: object
AuthConfig:
properties:
auth_header_name:
example: Authorization
type: string
cookie_name:
type: string
disable_header:
type: boolean
name:
type: string
param_name:
type: string
signature:
$ref: '#/components/schemas/SignatureConfig'
use_certificate:
type: boolean
use_cookie:
type: boolean
use_param:
type: boolean
validate_signature:
type: boolean
type: object
AuthProviderMeta:
properties:
meta:
additionalProperties: {}
nullable: true
type: object
name:
type: string
storage_engine:
type: string
type: object
AuthSource:
properties:
enabled:
type: boolean
name:
type: string
type: object
AuthSources:
properties:
cookie:
$ref: '#/components/schemas/AuthSource'
header:
$ref: '#/components/schemas/AuthSource'
query:
$ref: '#/components/schemas/AuthSource'
type: object
Authentication:
properties:
baseIdentityProvider:
type: string
custom:
$ref: '#/components/schemas/CustomPluginAuthentication'
enabled:
type: boolean
hmac:
$ref: '#/components/schemas/HMAC'
oidc:
$ref: '#/components/schemas/OIDC'
securitySchemes:
$ref: '#/components/schemas/SecuritySchemes'
stripAuthorizationData:
type: boolean
type: object
AuthenticationPlugin:
properties:
enabled:
type: boolean
functionName:
type: string
idExtractor:
$ref: '#/components/schemas/IDExtractor'
path:
type: string
rawBodyOnly:
type: boolean
type: object
BasicAuthData:
properties:
hash_type:
type: string
password:
type: string
type: object
BooleanQueryParam:
enum:
- true
- false
example: true
type: boolean
CORS:
properties:
allowCredentials:
type: boolean
allowedHeaders:
items:
type: string
type: array
allowedMethods:
items:
type: string
type: array
allowedOrigins:
items:
type: string
type: array
debug:
type: boolean
enabled:
type: boolean
exposedHeaders:
items:
type: string
type: array
maxAge:
type: integer
optionsPassthrough:
type: boolean
type: object
CORSConfig:
properties:
allow_credentials:
example: false
type: boolean
allowed_headers:
example:
- Origin
- Accept
- Content-Type
- Authorization
items:
type: string
nullable: true
type: array
allowed_methods:
example:
- GET
- HEAD
- POST
items:
type: string
nullable: true
type: array
allowed_origins:
example:
- https://*.foo.com
items:
type: string
nullable: true
type: array
debug:
example: true
type: boolean
enable:
example: false
type: boolean
exposed_headers:
example:
- Accept
- Content-Type
items:
type: string
nullable: true
type: array
max_age:
example: 24
type: integer
options_passthrough:
example: false
type: boolean
type: object
Cache:
properties:
cacheAllSafeRequests:
type: boolean
cacheByHeaders:
items:
type: string
type: array
cacheResponseCodes:
items:
type: integer
type: array
controlTTLHeaderName:
type: string
enableUpstreamCacheControl:
type: boolean
enabled:
type: boolean
timeout:
type: integer
type: object
CacheMeta:
properties:
cache_key_regex:
type: string
cache_response_codes:
items:
type: integer
nullable: true
type: array
disabled:
type: boolean
method:
type: string
path:
type: string
timeout:
format: int64
type: integer
type: object
CacheOptions:
properties:
cache_all_safe_requests:
example: false
type: boolean
cache_by_headers:
items:
type: string
nullable: true
type: array
cache_control_ttl_header:
type: string
cache_response_codes:
items:
type: integer
nullable: true
type: array
cache_timeout:
example: 60
format: int64
type: integer
enable_cache:
example: true
type: boolean
enable_upstream_cache_control:
example: false
type: boolean
type: object
CachePlugin:
properties:
cacheByRegex:
type: string
cacheResponseCodes:
items:
type: integer
type: array
enabled:
type: boolean
timeout:
type: integer
type: object
CertificatePinning:
properties:
domainToPublicKeysMapping:
$ref: '#/components/schemas/PinnedPublicKeys'
enabled:
type: boolean
type: object
CertsCertificateBasics:
properties:
dns_names:
items:
type: string
nullable: true
type: array
has_private:
type: boolean
id:
type: string
is_ca:
type: boolean
issuer_cn:
type: string
not_after:
format: date-time
type: string
not_before:
format: date-time
type: string
subject_cn:
type: string
type: object
CertsCertificateMeta:
properties:
dns_names:
example:
- .*tyk.io
items:
type: string
type: array
fingerprint:
example: 7c440d66ebb0a4629d21329808dce9091acf5f2fde328067a6e60e5347271d90
type: string
has_private:
example: false
type: boolean
id:
example: 5e9d9544a1dcd60001d0ed207c440d66ebb0a4629d21329808dce9091acf5f2fde328067a6e60e5347271d90
type: string
is_ca:
type: boolean
issuer:
$ref: '#/components/schemas/PkixName'
not_after:
example: "2034-03-26T08:46:37Z"
format: date-time
type: string
not_before:
example: "2024-03-25T08:46:37Z"
format: date-time
type: string
subject:
$ref: '#/components/schemas/PkixName'
type: object
CheckCommand:
properties:
message:
type: string
name:
type: string
type: object
CircuitBreaker:
properties:
coolDownPeriod:
type: integer
enabled:
type: boolean
halfOpenStateEnabled:
type: boolean
sampleSize:
type: integer
threshold:
type: number
type: object
CircuitBreakerMeta:
properties:
disable_half_open_state:
type: boolean
disabled:
type: boolean
method:
type: string
path:
type: string
return_to_service_after:
type: integer
samples:
format: int64
type: integer
threshold_percent:
type: number
type: object
ClientCertificates:
properties:
allowlist:
items:
type: string
nullable: true
type: array
enabled:
type: boolean
type: object
ClientToPolicy:
properties:
clientId:
type: string
policyId:
type: string
type: object
ContextVariables:
properties:
enabled:
type: boolean
type: object
CustomPlugin:
properties:
enabled:
type: boolean
functionName:
type: string
path:
type: string
rawBodyOnly:
type: boolean
requireSession:
type: boolean
type: object
CustomPluginAuthentication:
properties:
AuthSources:
$ref: '#/components/schemas/AuthSources'
config:
$ref: '#/components/schemas/AuthenticationPlugin'
enabled:
type: boolean
type: object
CustomPlugins:
items:
$ref: '#/components/schemas/CustomPlugin'
type: array
DatasourceMappingConfiguration:
properties:
disabled:
type: boolean
path:
type: string
type: object
DatasourceSourceConfig:
properties:
data_source_config: {}
kind:
type: string
type: object
DatasourceTypeFieldConfiguration:
properties:
data_source:
$ref: '#/components/schemas/DatasourceSourceConfig'
field_name:
type: string
mapping:
$ref: '#/components/schemas/DatasourceMappingConfiguration'
type_name:
type: string
type: object
DetailedActivityLogs:
properties:
enabled:
type: boolean
type: object
DetailedTracing:
properties:
enabled:
type: boolean
type: object
Domain:
properties:
certificates:
items:
type: string
type: array
enabled:
type: boolean
name:
type: string
type: object
DomainToCertificate:
properties:
certificate:
type: string
domain:
type: string
type: object
EndPointMeta:
properties:
disabled:
type: boolean
ignore_case:
type: boolean
method:
type: string
method_actions:
additionalProperties:
$ref: '#/components/schemas/EndpointMethodMeta'
type: object
path:
type: string
type: object
Endpoint:
properties:
methods:
$ref: '#/components/schemas/EndpointMethods'
path:
type: string
type: object
EndpointMethod:
properties:
limit:
$ref: '#/components/schemas/RateLimitType2'
name:
type: string
type: object
EndpointMethodMeta:
properties:
action:
enum:
- no_action
- reply
type: string
code:
type: integer
data:
type: string
headers:
additionalProperties:
type: string
nullable: true
type: object
type: object
EndpointMethods:
items:
$ref: '#/components/schemas/EndpointMethod'
type: array
EndpointPostPlugin:
properties:
enabled:
type: boolean
functionName:
type: string
name:
type: string
path:
type: string
type: object
EndpointPostPlugins:
items:
$ref: '#/components/schemas/EndpointPostPlugin'
type: array
Endpoints:
items:
$ref: '#/components/schemas/Endpoint'
type: array
EnforceTimeout:
properties:
enabled:
type: boolean
value:
type: integer
type: object
EventHandler:
properties:
enabled:
type: boolean
id:
type: string
name:
type: string
trigger:
type: string
type:
type: string
type: object
EventHandlerMetaConfig:
properties:
events:
additionalProperties:
items:
$ref: '#/components/schemas/EventHandlerTriggerConfig'
type: array
nullable: true
type: object
type: object
EventHandlerTriggerConfig:
properties:
handler_meta:
additionalProperties: {}
nullable: true
type: object
handler_name:
type: string
type: object
EventHandlers:
items:
$ref: '#/components/schemas/EventHandler'
type: array
ExtendedPathsSet:
properties:
advance_cache_config:
items:
$ref: '#/components/schemas/CacheMeta'
type: array
black_list:
items:
$ref: '#/components/schemas/EndPointMeta'
type: array
cache:
items:
type: string
type: array
circuit_breakers:
items:
$ref: '#/components/schemas/CircuitBreakerMeta'
type: array
do_not_track_endpoints:
items:
$ref: '#/components/schemas/TrackEndpointMeta'
type: array
go_plugin:
items:
$ref: '#/components/schemas/GoPluginMeta'
type: array
hard_timeouts:
items:
$ref: '#/components/schemas/HardTimeoutMeta'
type: array
ignored:
items:
$ref: '#/components/schemas/EndPointMeta'
type: array
internal:
items:
$ref: '#/components/schemas/InternalMeta'
type: array
method_transforms:
items:
$ref: '#/components/schemas/MethodTransformMeta'
type: array
mock_response:
items:
$ref: '#/components/schemas/MockResponseMeta'
type: array
persist_graphql:
items:
$ref: '#/components/schemas/PersistGraphQLMeta'
nullable: true
type: array
rate_limit:
items:
$ref: '#/components/schemas/RateLimitMeta'
nullable: true
type: array
size_limits:
items:
$ref: '#/components/schemas/RequestSizeMeta'
type: array
track_endpoints:
items:
$ref: '#/components/schemas/TrackEndpointMeta'
type: array
transform:
items:
$ref: '#/components/schemas/TemplateMeta'
type: array
transform_headers:
items:
$ref: '#/components/schemas/HeaderInjectionMeta'
type: array
transform_jq:
items:
$ref: '#/components/schemas/TransformJQMeta'
type: array
transform_jq_response:
items:
$ref: '#/components/schemas/TransformJQMeta'
type: array
transform_response:
items:
$ref: '#/components/schemas/TemplateMeta'
type: array
transform_response_headers:
items:
$ref: '#/components/schemas/HeaderInjectionMeta'
type: array
url_rewrites:
items:
$ref: '#/components/schemas/URLRewriteMeta'
type: array
validate_json:
items:
$ref: '#/components/schemas/ValidatePathMeta'
type: array
validate_request:
items:
$ref: '#/components/schemas/ValidateRequestMeta'
type: array
virtual:
items:
$ref: '#/components/schemas/VirtualMeta'
type: array
white_list:
items:
$ref: '#/components/schemas/EndPointMeta'
type: array
type: object
ExternalOAuth:
properties:
enabled:
type: boolean
providers:
items:
$ref: '#/components/schemas/Provider'
nullable: true
type: array
type: object
FieldAccessDefinition:
properties:
field_name:
type: string
limits:
$ref: '#/components/schemas/FieldLimits'
type_name:
type: string
type: object
FieldLimits:
properties:
max_query_depth:
type: integer
type: object
FromOASExamples:
properties:
code:
type: integer
contentType:
type: string
enabled:
type: boolean
exampleName:
type: string
type: object
GatewayTags:
properties:
enabled:
type: boolean
tags:
items:
type: string
nullable: true
type: array
type: object
Global:
properties:
cache:
$ref: '#/components/schemas/Cache'
contextVariables:
$ref: '#/components/schemas/ContextVariables'
cors:
$ref: '#/components/schemas/CORS'
pluginConfig:
$ref: '#/components/schemas/PluginConfig'
postAuthenticationPlugin:
$ref: '#/components/schemas/PostAuthenticationPlugin'
postAuthenticationPlugins:
$ref: '#/components/schemas/CustomPlugins'
postPlugin:
$ref: '#/components/schemas/PostPlugin'
postPlugins:
$ref: '#/components/schemas/CustomPlugins'
prePlugin:
$ref: '#/components/schemas/PrePlugin'
prePlugins:
$ref: '#/components/schemas/CustomPlugins'
responsePlugin:
$ref: '#/components/schemas/ResponsePlugin'
responsePlugins:
$ref: '#/components/schemas/CustomPlugins'
trafficLogs:
$ref: '#/components/schemas/TrafficLogs'
transformRequestHeaders:
$ref: '#/components/schemas/TransformHeaders'
transformResponseHeaders:
$ref: '#/components/schemas/TransformHeaders'
type: object
GlobalRateLimit:
properties:
disabled:
type: boolean
per:
type: number
rate:
type: number
type: object
GoPluginMeta:
properties:
disabled:
type: boolean
func_name:
type: string
method:
type: string
path:
type: string
plugin_path:
type: string
type: object
GraphAccessDefinition:
type: object
GraphQLConfig:
properties:
enabled:
type: boolean
engine:
$ref: '#/components/schemas/GraphQLEngineConfig'
execution_mode:
enum:
- proxyOnly
- executionEngine
- subgraph
- supergraph
type: string
introspection:
$ref: '#/components/schemas/GraphQLIntrospectionConfig'
last_schema_update:
format: date-time
nullable: true
type: string
playground:
$ref: '#/components/schemas/GraphQLPlayground'
proxy:
$ref: '#/components/schemas/GraphQLProxyConfig'
schema:
type: string
subgraph:
$ref: '#/components/schemas/GraphQLSubgraphConfig'
supergraph:
$ref: '#/components/schemas/GraphQLSupergraphConfig'
type_field_configurations:
items:
$ref: '#/components/schemas/DatasourceTypeFieldConfiguration'
nullable: true
type: array
version:
enum:
- ''''
- "1"
- "2"
type: string
type: object
GraphQLEngineConfig:
properties:
data_sources:
items:
$ref: '#/components/schemas/GraphQLEngineDataSource'
nullable: true
type: array
field_configs:
items:
$ref: '#/components/schemas/GraphQLFieldConfig'
nullable: true
type: array
global_headers:
items:
$ref: '#/components/schemas/UDGGlobalHeader'
nullable: true
type: array
type: object
GraphQLEngineDataSource:
properties:
config: {}
internal:
type: boolean
kind:
type: string
name:
type: string
root_fields:
items:
$ref: '#/components/schemas/GraphQLTypeFields'
nullable: true
type: array
type: object
GraphQLFieldConfig:
properties:
disable_default_mapping:
type: boolean
field_name:
type: string
path:
items:
type: string
nullable: true
type: array
type_name:
type: string
type: object
GraphQLIntrospectionConfig:
properties:
disabled:
type: boolean
type: object
GraphQLPlayground:
properties:
enabled:
type: boolean
path:
type: string
type: object
GraphQLProxyConfig:
properties:
auth_headers:
additionalProperties:
type: string
nullable: true
type: object
features:
$ref: '#/components/schemas/GraphQLProxyFeaturesConfig'
request_headers:
additionalProperties:
type: string
nullable: true
type: object
request_headers_rewrite:
additionalProperties:
$ref: '#/components/schemas/RequestHeadersRewriteConfig'
nullable: true
type: object
subscription_type:
type: string
use_response_extensions:
$ref: '#/components/schemas/GraphQLResponseExtensions'
type: object
GraphQLProxyFeaturesConfig:
properties:
use_immutable_headers:
type: boolean
type: object
GraphQLResponseExtensions:
properties:
on_error_forwarding:
type: boolean
type: object
GraphQLSubgraphConfig:
properties:
sdl:
type: string
type: object
GraphQLSubgraphEntity:
properties:
api_id:
type: string
headers:
additionalProperties:
type: string
nullable: true
type: object
name:
type: string
sdl:
type: string
subscription_type:
type: string
url:
type: string
type: object
GraphQLSupergraphConfig:
properties:
disable_query_batching:
type: boolean
global_headers:
additionalProperties:
type: string
nullable: true
type: object
merged_sdl:
type: string
subgraphs:
items:
$ref: '#/components/schemas/GraphQLSubgraphEntity'
nullable: true
type: array
updated_at:
format: date-time
nullable: true
type: string
type: object
GraphQLTypeFields:
properties:
fields:
items:
type: string
nullable: true
type: array
type:
type: string
type: object
GraphqlType:
properties:
fields:
items:
type: string
nullable: true
type: array
name:
type: string
type: object
HMAC:
properties:
AuthSources:
$ref: '#/components/schemas/AuthSources'
allowedAlgorithms:
items:
type: string
type: array
allowedClockSkew:
type: number
enabled:
type: boolean
type: object
HardTimeoutMeta:
properties:
disabled:
type: boolean
method:
type: string
path:
type: string
timeout:
type: integer
type: object
Header:
properties:
name:
type: string
value:
type: string
type: object
HeaderInjectionMeta:
properties:
act_on:
type: boolean
add_headers:
additionalProperties:
type: string
nullable: true
type: object
delete_headers:
items:
type: string
nullable: true
type: array
disabled:
type: boolean
method:
type: string
path:
type: string
type: object
Headers:
items:
$ref: '#/components/schemas/Header'
type: array
HealthCheckItem:
properties:
componentId:
type: string
componentType:
type: string
output:
type: string
status:
enum:
- pass
- fail
- warn
type: string
time:
type: string
type: object
HealthCheckResponse:
properties:
description:
type: string
details:
additionalProperties:
$ref: '#/components/schemas/HealthCheckItem'
type: object
output:
type: string
status:
enum:
- pass
- fail
- warn
type: string
version:
type: string
type: object
HostCheckObject:
properties:
body:
type: string
commands:
items:
$ref: '#/components/schemas/CheckCommand'
nullable: true
type: array
enable_proxy_protocol:
type: boolean
headers:
additionalProperties:
type: string
nullable: true
type: object
method:
type: string
protocol:
type: string
timeout:
type: integer
url:
type: string
type: object
HttpHeader:
additionalProperties:
items:
type: string
type: array
type: object
IDExtractor:
properties:
config:
$ref: '#/components/schemas/IDExtractorConfig'
enabled:
type: boolean
source:
type: string
with:
type: string
type: object
IDExtractorConfig:
properties:
formParamName:
type: string
headerName:
type: string
regexp:
type: string
regexpMatchIndex:
type: integer
xPathExp:
type: string
type: object
Info:
properties:
dbId:
type: string
expiration:
type: string
id:
type: string
name:
type: string
orgId:
type: string
state:
$ref: '#/components/schemas/State'
versioning:
$ref: '#/components/schemas/Versioning'
type: object
Internal:
properties:
enabled:
type: boolean
type: object
InternalMeta:
properties:
disabled:
type: boolean
method:
type: string
path:
type: string
type: object
Introspection:
properties:
cache:
$ref: '#/components/schemas/IntrospectionCache'
client_id:
type: string
client_secret:
type: string
enabled:
type: boolean
identity_base_field:
type: string
url:
type: string
type: object
IntrospectionCache:
properties:
enabled:
type: boolean
timeout:
format: int64
type: integer
type: object
JWTData:
properties:
secret:
type: string
type: object
JWTValidation:
properties:
enabled:
type: boolean
expires_at_validation_skew:
minimum: 0
type: integer
identity_base_field:
type: string
issued_at_validation_skew:
minimum: 0
type: integer
not_before_validation_skew:
minimum: 0
type: integer
signing_method:
type: string
source:
type: string
type: object
ListenPath:
properties:
strip:
type: boolean
value:
type: string
type: object
MethodTransformMeta:
properties:
disabled:
type: boolean
method:
type: string
path:
type: string
to_method:
type: string
type: object
Middleware:
properties:
global:
$ref: '#/components/schemas/Global'
operations:
$ref: '#/components/schemas/Operations'
type: object
MiddlewareDefinition:
properties:
disabled:
type: boolean
name:
example: PreMiddlewareFunction
type: string
path:
type: string
raw_body_only:
example: false
type: boolean
require_session:
example: false
type: boolean
type: object
MiddlewareIdExtractor:
properties:
disabled:
type: boolean
extract_from:
type: string
extract_with:
type: string
extractor_config:
additionalProperties: {}
nullable: true
type: object
type: object
MiddlewareSection:
properties:
auth_check:
$ref: '#/components/schemas/MiddlewareDefinition'
driver:
type: string
id_extractor:
$ref: '#/components/schemas/MiddlewareIdExtractor'
post:
items:
$ref: '#/components/schemas/MiddlewareDefinition'
nullable: true
type: array
post_key_auth:
items:
$ref: '#/components/schemas/MiddlewareDefinition'
nullable: true
type: array
pre:
items:
$ref: '#/components/schemas/MiddlewareDefinition'
nullable: true
type: array
response:
items:
$ref: '#/components/schemas/MiddlewareDefinition'
nullable: true
type: array
type: object
MockResponse:
properties:
body:
type: string
code:
type: integer
enabled:
type: boolean
fromOASExamples:
$ref: '#/components/schemas/FromOASExamples'
headers:
$ref: '#/components/schemas/Headers'
type: object
MockResponseMeta:
properties:
body:
type: string
code:
type: integer
disabled:
type: boolean
headers:
additionalProperties:
type: string
nullable: true
type: object
ignore_case:
type: boolean
method:
type: string
path:
type: string
type: object
Monitor:
properties:
trigger_limits:
example:
- 80
- 60
- 50
items:
type: number
nullable: true
type: array
type: object
MutualTLS:
properties:
domainToCertificateMapping:
items:
$ref: '#/components/schemas/DomainToCertificate'
nullable: true
type: array
enabled:
type: boolean
type: object
NewClientRequest:
properties:
api_id:
example: keyless
type: string
client_id:
example: 2a06b398c17f46908de3dffcb71ef87b
type: string
description:
example: google client login
type: string
meta_data:
additionalProperties:
type: string
nullable: true
type: object
policy_id:
type: string
redirect_uri:
example: https://httpbin.org/ip
type: string
secret:
example: MmQwNTI5NGQtYjU0YS00NjMyLWIwZjktNTZjY2M1ZjhjYWY0
type: string
type: object
NotificationsManager:
properties:
oauth_on_keychange_url:
type: string
shared_secret:
type: string
type: object
OASSchemaResponse:
properties:
message:
type: string
schema: {}
status:
type: string
type: object
OAuthClientToken:
properties:
code:
type: string
expires:
type: integer
type: object
OIDC:
properties:
AuthSources:
$ref: '#/components/schemas/AuthSources'
enabled:
type: boolean
providers:
items:
$ref: '#/components/schemas/ProviderType2'
type: array
scopes:
$ref: '#/components/schemas/ScopesType2'
segregateByClientId:
type: boolean
type: object
OIDProviderConfig:
properties:
client_ids:
additionalProperties:
type: string
nullable: true
type: object
issuer:
type: string
type: object
OpenIDOptions:
properties:
providers:
items:
$ref: '#/components/schemas/OIDProviderConfig'
nullable: true
type: array
segregate_by_client:
type: boolean
type: object
Operation:
properties:
allow:
$ref: '#/components/schemas/Allowance'
block:
$ref: '#/components/schemas/Allowance'
cache:
$ref: '#/components/schemas/CachePlugin'
circuitBreaker:
$ref: '#/components/schemas/CircuitBreaker'
doNotTrackEndpoint:
$ref: '#/components/schemas/TrackEndpoint'
enforceTimeout:
$ref: '#/components/schemas/EnforceTimeout'
ignoreAuthentication:
$ref: '#/components/schemas/Allowance'
internal:
$ref: '#/components/schemas/Internal'
mockResponse:
$ref: '#/components/schemas/MockResponse'
postPlugins:
$ref: '#/components/schemas/EndpointPostPlugins'
rateLimit:
$ref: '#/components/schemas/RateLimitEndpoint'
requestSizeLimit:
$ref: '#/components/schemas/RequestSizeLimit'
trackEndpoint:
$ref: '#/components/schemas/TrackEndpoint'
transformRequestBody:
$ref: '#/components/schemas/TransformBody'
transformRequestHeaders:
$ref: '#/components/schemas/TransformHeaders'
transformRequestMethod:
$ref: '#/components/schemas/TransformRequestMethod'
transformResponseBody:
$ref: '#/components/schemas/TransformBody'
transformResponseHeaders:
$ref: '#/components/schemas/TransformHeaders'
urlRewrite:
$ref: '#/components/schemas/URLRewrite'
validateRequest:
$ref: '#/components/schemas/ValidateRequest'
virtualEndpoint:
$ref: '#/components/schemas/VirtualEndpoint'
type: object
Operations:
additionalProperties:
$ref: '#/components/schemas/Operation'
type: object
PaginatedOAuthClientTokens:
properties:
Pagination:
$ref: '#/components/schemas/PaginationStatus'
Tokens:
items:
$ref: '#/components/schemas/OAuthClientToken'
nullable: true
type: array
type: object
PaginationStatus:
properties:
page_num:
type: integer
page_size:
type: integer
page_total:
type: integer
type: object
PersistGraphQLMeta:
properties:
method:
type: string
operation:
type: string
path:
type: string
variables:
additionalProperties: {}
nullable: true
type: object
type: object
PinnedPublicKey:
properties:
domain:
type: string
publicKeys:
items:
type: string
nullable: true
type: array
type: object
PinnedPublicKeys:
items:
$ref: '#/components/schemas/PinnedPublicKey'
nullable: true
type: array
PkixName:
type: object
PluginBundle:
properties:
enabled:
type: boolean
path:
type: string
type: object
PluginConfig:
properties:
bundle:
$ref: '#/components/schemas/PluginBundle'
data:
$ref: '#/components/schemas/PluginConfigData'
driver:
type: string
type: object
PluginConfigData:
properties:
enabled:
type: boolean
value:
additionalProperties: {}
nullable: true
type: object
type: object
Policy:
properties:
_id:
example: 5ead7120575961000181867e
type: string
access_rights:
additionalProperties:
$ref: '#/components/schemas/AccessDefinition'
nullable: true
type: object
active:
example: true
type: boolean
enable_http_signature_validation:
example: false
type: boolean
graphql_access_rights:
additionalProperties:
$ref: '#/components/schemas/GraphAccessDefinition'
nullable: true
type: object
hmac_enabled:
example: false
type: boolean
id:
example: 5ead7120575961000181867e
type: string
is_inactive:
example: false
type: boolean
key_expires_in:
example: 0
format: int64
type: integer
last_updated:
example: "1655965189"
type: string
max_query_depth:
example: -1
type: integer
meta_data:
additionalProperties: {}
nullable: true
type: object
name:
example: Swagger Petstore Policy
type: string
org_id:
example: 5e9d9544a1dcd60001d0ed20
type: string
partitions:
$ref: '#/components/schemas/PolicyPartitions'
per:
example: 60
format: double
type: number
quota_max:
example: -1
format: int64
type: integer
quota_renewal_rate:
example: 3600
format: int64
type: integer
rate:
example: 1000
format: double
type: number
smoothing:
$ref: '#/components/schemas/RateLimitSmoothing'
tags:
items:
type: string
nullable: true
type: array
throttle_interval:
example: -1
format: double
type: number
throttle_retry_limit:
example: -1
type: integer
type: object
PolicyPartitions:
properties:
acl:
example: true
type: boolean
complexity:
example: false
type: boolean
per_api:
example: false
type: boolean
quota:
example: true
type: boolean
rate_limit:
example: true
type: boolean
type: object
PolicyUpdateObj:
properties:
apply_policies:
items:
type: string
nullable: true
type: array
policy:
type: string
type: object
PostAuthenticationPlugin:
properties:
plugins:
$ref: '#/components/schemas/CustomPlugins'
type: object
PostPlugin:
properties:
plugins:
$ref: '#/components/schemas/CustomPlugins'
type: object
PrePlugin:
properties:
plugins:
$ref: '#/components/schemas/CustomPlugins'
type: object
Provider:
properties:
introspection:
$ref: '#/components/schemas/Introspection'
jwt:
$ref: '#/components/schemas/JWTValidation'
type: object
ProviderType2:
properties:
clientToPolicyMapping:
items:
$ref: '#/components/schemas/ClientToPolicy'
type: array
issuer:
type: string
type: object
ProxyConfig:
properties:
check_host_against_uptime_tests:
type: boolean
disable_strip_slash:
type: boolean
enable_load_balancing:
type: boolean
listen_path:
example: /relative-path-examples/
type: string
preserve_host_header:
type: boolean
service_discovery:
$ref: '#/components/schemas/ServiceDiscoveryConfiguration'
strip_listen_path:
example: true
type: boolean
target_list:
items:
type: string
nullable: true
type: array
target_url:
example: https://httpbin.org/
type: string
transport:
properties:
proxy_url:
type: string
ssl_ciphers:
items:
type: string
nullable: true
type: array
ssl_force_common_name_check:
type: boolean
ssl_insecure_skip_verify:
type: boolean
ssl_max_version:
minimum: 0
type: integer
ssl_min_version:
minimum: 0
type: integer
type: object
type: object
RateLimit:
properties:
enabled:
type: boolean
per:
type: integer
rate:
type: integer
type: object
RateLimitEndpoint:
properties:
enabled:
type: boolean
per:
type: integer
rate:
type: integer
type: object
RateLimitMeta:
properties:
disabled:
type: boolean
method:
type: string
path:
type: string
per:
type: number
rate:
type: number
type: object
RateLimitSmoothing:
properties:
delay:
type: integer
enabled:
type: boolean
step:
type: integer
threshold:
type: integer
trigger:
type: number
type: object
RateLimitType2:
properties:
per:
type: number
rate:
type: number
smoothing:
$ref: '#/components/schemas/RateLimitSmoothing'
type: object
RequestHeadersRewriteConfig:
properties:
remove:
type: boolean
value:
type: string
type: object
RequestSigningMeta:
properties:
algorithm:
type: string
certificate_id:
type: string
header_list:
items:
type: string
nullable: true
type: array
is_enabled:
type: boolean
key_id:
type: string
secret:
type: string
signature_header:
type: string
type: object
RequestSizeLimit:
properties:
enabled:
type: boolean
value:
type: integer
type: object
RequestSizeMeta:
properties:
disabled:
type: boolean
method:
type: string
path:
type: string
size_limit:
format: int64
type: integer
type: object
ResponsePlugin:
properties:
plugins:
$ref: '#/components/schemas/CustomPlugins'
type: object
ResponseProcessor:
properties:
name:
type: string
options: {}
type: object
RoutingTrigger:
properties:
"on":
enum:
- all
- any
type: string
options:
$ref: '#/components/schemas/RoutingTriggerOptions'
rewrite_to:
type: string
type: object
RoutingTriggerOptions:
properties:
header_matches:
additionalProperties:
$ref: '#/components/schemas/StringRegexMap'
nullable: true
type: object
path_part_matches:
additionalProperties:
$ref: '#/components/schemas/StringRegexMap'
nullable: true
type: object
payload_matches:
$ref: '#/components/schemas/StringRegexMap'
query_val_matches:
additionalProperties:
$ref: '#/components/schemas/StringRegexMap'
nullable: true
type: object
request_context_matches:
additionalProperties:
$ref: '#/components/schemas/StringRegexMap'
nullable: true
type: object
session_meta_matches:
additionalProperties:
$ref: '#/components/schemas/StringRegexMap'
nullable: true
type: object
type: object
ScopeClaim:
properties:
scope_claim_name:
type: string
scope_to_policy:
additionalProperties:
type: string
type: object
type: object
ScopeToPolicy:
properties:
policyId:
type: string
scope:
type: string
type: object
Scopes:
properties:
jwt:
$ref: '#/components/schemas/ScopeClaim'
oidc:
$ref: '#/components/schemas/ScopeClaim'
type: object
ScopesType2:
properties:
claimName:
type: string
scopeToPolicyMapping:
items:
$ref: '#/components/schemas/ScopeToPolicy'
type: array
type: object
SecuritySchemes:
additionalProperties: {}
type: object
Server:
properties:
authentication:
$ref: '#/components/schemas/Authentication'
clientCertificates:
$ref: '#/components/schemas/ClientCertificates'
customDomain:
$ref: '#/components/schemas/Domain'
detailedActivityLogs:
$ref: '#/components/schemas/DetailedActivityLogs'
detailedTracing:
$ref: '#/components/schemas/DetailedTracing'
eventHandlers:
$ref: '#/components/schemas/EventHandlers'
gatewayTags:
$ref: '#/components/schemas/GatewayTags'
listenPath:
$ref: '#/components/schemas/ListenPath'
type: object
ServiceDiscovery:
properties:
cache:
$ref: '#/components/schemas/ServiceDiscoveryCache'
cacheTimeout:
type: integer
dataPath:
type: string
enabled:
type: boolean
endpointReturnsList:
type: boolean
parentDataPath:
type: string
portDataPath:
type: string
queryEndpoint:
type: string
targetPath:
type: string
useNestedQuery:
type: boolean
useTargetList:
type: boolean
type: object
ServiceDiscoveryCache:
properties:
enabled:
type: boolean
timeout:
type: integer
type: object
ServiceDiscoveryConfiguration:
properties:
cache_disabled:
type: boolean
cache_timeout:
type: integer
data_path:
type: string
endpoint_returns_list:
type: boolean
parent_data_path:
type: string
port_data_path:
type: string
query_endpoint:
type: string
target_path:
type: string
use_discovery_service:
type: boolean
use_nested_query:
type: boolean
use_target_list:
type: boolean
type: object
SessionProviderMeta:
properties:
meta:
additionalProperties: {}
nullable: true
type: object
name:
type: string
storage_engine:
type: string
type: object
SessionState:
properties:
access_rights:
additionalProperties:
$ref: '#/components/schemas/AccessDefinition'
nullable: true
type: object
alias:
example: portal-developer@example.org
type: string
allowance:
example: 1000
format: double
type: number
apply_policies:
example:
- 641c15dd0fffb800010197bf
items:
type: string
nullable: true
type: array
apply_policy_id:
deprecated: true
description: deprecated use apply_policies going forward instead to send
a list of policies ids
example: 641c15dd0fffb800010197bf
type: string
basic_auth_data:
$ref: '#/components/schemas/BasicAuthData'
certificate:
type: string
data_expires:
example: 0
format: int64
type: integer
date_created:
example: "2024-03-13T03:56:46.568042549Z"
format: date-time
type: string
enable_detail_recording:
deprecated: true
description: deprecated use enable_detailed_recording going forward instead
example: false
type: boolean
enable_detailed_recording:
example: true
type: boolean
enable_http_signature_validation:
example: false
type: boolean
expires:
example: 1.712895619e+09
format: int64
type: integer
hmac_enabled:
example: false
type: boolean
hmac_string:
type: string
id_extractor_deadline:
format: int64
type: integer
is_inactive:
example: false
type: boolean
jwt_data:
$ref: '#/components/schemas/JWTData'
last_check:
example: 0
format: int64
type: integer
last_updated:
example: "1710302206"
type: string
max_query_depth:
example: -1
type: integer
meta_data:
additionalProperties: {}
example:
tyk_developer_id: 62b3fb9a1d5e4f00017226f5
nullable: true
type: object
monitor:
$ref: '#/components/schemas/Monitor'
oauth_client_id:
type: string
oauth_keys:
additionalProperties:
type: string
nullable: true
type: object
org_id:
example: 5e9d9544a1dcd60001d0ed20
type: string
per:
example: 5
format: double
type: number
quota_max:
example: 20000
format: int64
type: integer
quota_remaining:
example: 20000
format: int64
type: integer
quota_renewal_rate:
example: 3.1556952e+07
format: int64
type: integer
quota_renews:
example: 1.710302205e+09
format: int64
type: integer
rate:
example: 1
format: double
type: number
rsa_certificate_id:
type: string
session_lifetime:
example: 0
format: int64
type: integer
smoothing:
$ref: '#/components/schemas/RateLimitSmoothing'
tags:
example:
- edge
- edge-eu
items:
type: string
nullable: true
type: array
throttle_interval:
example: 10
format: double
type: number
throttle_retry_limit:
example: 1000
type: integer
type: object
SignatureConfig:
properties:
algorithm:
type: string
allowed_clock_skew:
type: integer
error_code:
type: integer
error_message:
type: string
header:
type: string
param_name:
type: string
secret:
type: string
use_param:
type: boolean
type: object
State:
properties:
active:
type: boolean
internal:
type: boolean
type: object
StringRegexMap:
properties:
match_rx:
type: string
reverse:
type: boolean
type: object
TemplateData:
properties:
enable_session:
type: boolean
input_type:
enum:
- json
- xml
type: string
template_mode:
enum:
- blob
- file
type: string
template_source:
type: string
type: object
TemplateMeta:
properties:
disabled:
type: boolean
method:
type: string
path:
type: string
template_data:
$ref: '#/components/schemas/TemplateData'
type: object
Test:
properties:
serviceDiscovery:
$ref: '#/components/schemas/ServiceDiscovery'
type: object
TraceHttpRequest:
properties:
body:
type: string
headers:
$ref: '#/components/schemas/HttpHeader'
method:
example: GET
type: string
path:
example: /keyless-test/
type: string
type: object
TraceRequest:
properties:
request:
$ref: '#/components/schemas/TraceHttpRequest'
spec:
$ref: '#/components/schemas/APIDefinition'
type: object
TraceResponse:
properties:
logs:
example: '{"level":"warning","msg":"Legacy path detected! Upgrade to extended....'
type: string
message:
example: ok
type: string
response:
example: "====== Request ======\nGET / HTTP/1.1\r\nHost: httpbin.org\r\n\r\n\n======
Response..."
type: string
type: object
TrackEndpoint:
properties:
enabled:
type: boolean
type: object
TrackEndpointMeta:
properties:
disabled:
type: boolean
method:
type: string
path:
type: string
type: object
TrafficLogs:
properties:
enabled:
type: boolean
type: object
TransformBody:
properties:
body:
type: string
enabled:
type: boolean
format:
type: string
path:
type: string
type: object
TransformHeaders:
properties:
add:
$ref: '#/components/schemas/Headers'
enabled:
type: boolean
remove:
items:
type: string
type: array
type: object
TransformJQMeta:
properties:
filter:
type: string
method:
type: string
path:
type: string
type: object
TransformRequestMethod:
properties:
enabled:
type: boolean
toMethod:
type: string
type: object
UDGGlobalHeader:
properties:
key:
type: string
value:
type: string
type: object
URLRewrite:
properties:
enabled:
type: boolean
pattern:
type: string
rewriteTo:
type: string
triggers:
items:
$ref: '#/components/schemas/URLRewriteTrigger'
type: array
type: object
URLRewriteMeta:
properties:
disabled:
type: boolean
match_pattern:
type: string
method:
type: string
path:
type: string
rewrite_to:
type: string
triggers:
items:
$ref: '#/components/schemas/RoutingTrigger'
nullable: true
type: array
type: object
URLRewriteRule:
properties:
in:
type: string
name:
type: string
negate:
type: boolean
pattern:
type: string
type: object
URLRewriteTrigger:
properties:
condition:
type: string
rewriteTo:
type: string
rules:
items:
$ref: '#/components/schemas/URLRewriteRule'
type: array
type: object
Upstream:
properties:
certificatePinning:
$ref: '#/components/schemas/CertificatePinning'
mutualTLS:
$ref: '#/components/schemas/MutualTLS'
rateLimit:
$ref: '#/components/schemas/RateLimit'
serviceDiscovery:
$ref: '#/components/schemas/ServiceDiscovery'
test:
$ref: '#/components/schemas/Test'
url:
type: string
type: object
UptimeTests:
properties:
check_list:
items:
$ref: '#/components/schemas/HostCheckObject'
nullable: true
type: array
config:
$ref: '#/components/schemas/UptimeTestsConfig'
type: object
UptimeTestsConfig:
properties:
expire_utime_after:
type: integer
recheck_wait:
type: integer
service_discovery:
$ref: '#/components/schemas/ServiceDiscoveryConfiguration'
type: object
ValidatePathMeta:
properties:
disabled:
type: boolean
error_response_code:
type: integer
method:
type: string
path:
type: string
schema:
additionalProperties: {}
nullable: true
type: object
schema_b64:
type: string
type: object
ValidateRequest:
properties:
enabled:
type: boolean
errorResponseCode:
type: integer
type: object
ValidateRequestMeta:
properties:
enabled:
type: boolean
error_response_code:
type: integer
method:
type: string
path:
type: string
type: object
VersionData:
properties:
default_version:
type: string
not_versioned:
type: boolean
versions:
additionalProperties:
$ref: '#/components/schemas/VersionInfo'
nullable: true
type: object
type: object
VersionDefinition:
properties:
default:
type: string
enabled:
type: boolean
fallback_to_default:
type: boolean
key:
example: x-api-version
type: string
location:
example: header
type: string
name:
type: string
strip_path:
type: boolean
strip_versioning_data:
type: boolean
url_versioning_pattern:
type: string
versions:
additionalProperties:
type: string
nullable: true
type: object
type: object
VersionInfo:
properties:
expires:
type: string
extended_paths:
$ref: '#/components/schemas/ExtendedPathsSet'
global_headers:
additionalProperties:
type: string
nullable: true
type: object
global_headers_disabled:
type: boolean
global_headers_remove:
items:
type: string
nullable: true
type: array
global_response_headers:
additionalProperties:
type: string
nullable: true
type: object
global_response_headers_disabled:
type: boolean
global_response_headers_remove:
items:
type: string
nullable: true
type: array
global_size_limit:
format: int64
type: integer
ignore_endpoint_case:
type: boolean
name:
type: string
override_target:
type: string
paths:
properties:
black_list:
items:
type: string
nullable: true
type: array
ignored:
items:
type: string
nullable: true
type: array
white_list:
items:
type: string
nullable: true
type: array
type: object
use_extended_paths:
example: true
type: boolean
type: object
VersionMeta:
properties:
expirationDate:
example: 2026-03-26 09:00
type: string
id:
example: keyless
type: string
internal:
example: false
type: boolean
isDefaultVersion:
example: true
type: boolean
name:
example: Tyk Test Keyless API
type: string
versionName:
example: v2
type: string
type: object
VersionMetas:
properties:
apis:
items:
$ref: '#/components/schemas/VersionMeta'
nullable: true
type: array
status:
example: success
type: string
type: object
VersionToID:
properties:
id:
type: string
name:
type: string
type: object
Versioning:
properties:
default:
type: string
enabled:
type: boolean
fallbackToDefault:
type: boolean
key:
type: string
location:
type: string
name:
type: string
stripVersioningData:
type: boolean
urlVersioningPattern:
type: string
versions:
items:
$ref: '#/components/schemas/VersionToID'
nullable: true
type: array
type: object
VirtualEndpoint:
properties:
body:
type: string
enabled:
type: boolean
functionName:
type: string
name:
type: string
path:
type: string
proxyOnError:
type: boolean
requireSession:
type: boolean
type: object
VirtualMeta:
properties:
disabled:
type: boolean
function_source_type:
enum:
- blob
- file
type: string
function_source_uri:
type: string
method:
type: string
path:
type: string
proxy_on_error:
type: boolean
response_function_name:
type: string
use_session:
type: boolean
type: object
XTykAPIGateway:
properties:
info:
$ref: '#/components/schemas/Info'
middleware:
$ref: '#/components/schemas/Middleware'
server:
$ref: '#/components/schemas/Server'
upstream:
$ref: '#/components/schemas/Upstream'
type: object
securitySchemes:
api_key:
description: Api key
in: header
name: X-Tyk-Authorization
type: apiKey
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化