From 7dc60787ac614133d174a23aa3538563c74faf0e Mon Sep 17 00:00:00 2001 From: George J Padayatti Date: Wed, 20 Mar 2024 01:50:26 +0530 Subject: [PATCH] Fix: Add issuer endpoints Signed-off-by: George J Padayatti --- openapi-spec/Makefile | 26 + openapi-spec/assets/image.png | Bin 0 -> 21341 bytes openapi-spec/ewc.yaml | 1059 ++++++++++++++++++++++++++++++++- openapi-spec/index.html | 93 +++ 4 files changed, 1173 insertions(+), 5 deletions(-) create mode 100644 openapi-spec/Makefile create mode 100644 openapi-spec/assets/image.png create mode 100644 openapi-spec/index.html diff --git a/openapi-spec/Makefile b/openapi-spec/Makefile new file mode 100644 index 0000000..26d63d0 --- /dev/null +++ b/openapi-spec/Makefile @@ -0,0 +1,26 @@ +CONTAINER_SWAGGER ?= "openapi" + +TERM_FLAGS ?= -ti + +EXTRA_RUN_ARGS ?= + +CONTAINER_DEFAULT_RUN_FLAGS := \ + --rm $(TERM_FLAGS) \ + $(EXTRA_RUN_ARGS) \ + -v $(CURDIR):/usr/share/nginx/html:ro + + +.DEFAULT_GOAL := help +.PHONY: help +help: + @echo "------------------------------------------------------------------------" + @echo "EWC Wallet API documentation" + @echo "------------------------------------------------------------------------" + @grep -E '^[0-9a-zA-Z_/%\-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' + +run: ## Run dashboard locally for development purposes + docker run \ + $(CONTAINER_DEFAULT_RUN_FLAGS) \ + -p 5000:80 \ + --name "${CONTAINER_SWAGGER}" \ + nginx:alpine \ No newline at end of file diff --git a/openapi-spec/assets/image.png b/openapi-spec/assets/image.png new file mode 100644 index 0000000000000000000000000000000000000000..e334e39269bf089cfc13771c8ca12bd0e4b57409 GIT binary patch literal 21341 zcmd43^cQi+%E_+G6mf9!O_B9ua6c^^mMfCz)Jz;syH5NWLc zpa1!W2twbw`S|`CHpT~8@%usaE7||BY^ngF5A&iAQ=<>#rVn!p0R&4;?8Fdu%@B5( zL6&79%Z=o_vf~f`E2sxJS$%4R9&A(R_D}j*MmlQW@#asdy1FsM^#4)F47d>5F3_8E zroWRJ3TVq&T3Yma310c^HPwGrCqM|H7w4G^q*FP^0}=K!(K()>1SajevHz>sN(e{g zQEbzu5^*I!$`!BQ(8qAssEzm4!~Z4KNeGI8w+d8={Ig3P16@{V)70aVbsv`h{Yo%C zXt4CCoEf21L&ycDt71YU^N*fE|7*;x*QS4OqmtGek3OOZgQe|2HIJCMP9@m=v+w<{ z5=>L1AJniNSQEU$Ge46~B-0|HotO ziQX-2_z8{rkO1t3FoF>F(?#7B|CRX>9tZw3@8-=bB{U_Nj^|_NW`s8F%l}%hlO)8V z?8TWkExn32GnnqPEb?oGe$uSWe+--p4I%tkemR5tCOWj`VtE?4H5S)>!=_PKHs5xTR;^?Sk7%4(=XN!Q8rLhjA)~Y z=?g79oX8M%l7Zw@nrVCVDL(w04Vc5hX4CF!_ApEtOctQ49RekXNYmv6!`08P3*DH& zfzYOtaW%tOtXIJF#nYk{V2*Z)M;?ol40+=W(X^hUoVG*RjcBe z}77s{Q_B8}z@M4#$MSOU(``;pW1sOv`pUD(&3U4q zJI9bf8@7)}u-=HzpoaVKj|M zNi^Gq``HiXMxbiWv#zddhm}X}>~htp{zaS?1M&ksT!{l>$p;$YK2y3wDwyD{Ax)_` zl$vzE6qDCW3`+Lmu4E67TU}tj6ZEJA!oV{U&zIJYAwIZ{!XAIrtbr)@0CADj)H;G! zq#~sEBMw#+oP6FhEo=o1CnWn6EX8kcsGyQi7E`W+4FL~GK>R+%czh<*3c<%?VX#s{NVjd{^`vFQF@E=4EUECuF*y>8A3zQsy% zPl~O=Ebyzy(XFTp6m8~8tOlG~=}_rTVOizQIlMaCYz89zLqD24@$40|~HUjJi;KfCCDE1Ho@#^SDmE(2f(Y1$X7&aUCNe z`@_+B9b@%F_N%70VK(!e2K@TQjBDlgK37I0#3$8$_drVqOV1<-Q?s!^ftMUS+`&Vh zck6>xu_r3Kwhjw^48=TZBJy27Cn2@?Z@A#1NUj`BQ4eEA$I}MIRVZ52jimY`7C0J@ z4jD7%Qs4nfNxBH9lz}8S%A}7^`F;_~)}!~%J8x_G#z|vBzwP=_-D}tB_vU%bW_KS~ zT2YTIbIC$ZMUNCT!V2P?!{Z$SQuI!Zg20qA-d0qL?v5wD zZOoPC!f-~Ld*LLQ3y`(2qh1jq@63%-RGmk~?DX`~A;jB2B=%o&DF)169NE;#9zy9b zS#A)A-&L}(MeW{X$XaAl!&mh+hN@{KW7|2cKW1IY=h(L*OVt?MIwSt7g^mYsg6q1X z=gSqRQK7wi0*)v2;J-pP$*X?5tuWSW!jGr-CMVT=-nCM-|IrA3waJfN-F$g{aUc86 zp650M3+zuQ-Fa2TSi(X#s&CG5ERFx6Xd`)~g4_mADvT%N99=Cj`TD-=+xt^~${b7V zO+#fR4RA#{dlqfrbMUC@)XHwn z{hy51Q?`Y2_GTZu{gm?5N#tTlBoJqx^y%PO@43tmz9%1Uz(q7#-$V_%&A(`(0uhd? zVqwD;Wx8SHAt05v?lGZ0`8#29iS(Y1uBI7c>#OqwM8d^eFUsr&>S01h3k@ z=q^qF2@lVsN8YUWz=Cd4I^+@=AZvgZZPuNa-Nr#`}-H-w(kyKE$GVYYZcxT(0xFmkI14}8t9!l zuy<~4{j=*0gf9uZ_U26jN;4)r!Zu7p1O<(`BQZj#oG2M;?iDDyy=K1g?goY42)ag~ z&r^afmB>m$q$PpimSnGVSI8}%bVim|D7>AlF@P+G)^Zqqp*p>aO_>!7Lu-L#e@obU zLZn;Se?!j-cy+oNk^7su9uFjMwlTDz+r^;UfPnNndLClHPv1;4S8zkVK|;sNV zov=5i*N81i+I!+aTs~4dQ3lQq<=-wjKA^VnPdF(K!ZIU2SseZx72E!-gRc`|F8shy zlwb_W`+dT#e;N|A*_Jx7rgben`dl>H7qq6h`(=(!Ocx&kif>bYQ( zDV+xH@Jb2ob?H!;k(m7CMTuZ+mH+Kl{VFf?NN_S>3A=;DB9v#I@N>Y*RjV41EI7_@ z?!xGT1QSN?PDjwUkAu{1<;U7@zp0;3O7ML!xyt>OE2Q4VP8S@^9o)+)387+ZRghXy zKtT4wO=TfY0c*(85;Dmnzn@{hmE-)H{FRx@e?2Df9QdJ62Pwx7ku)}foD20nsb2g* zaQQ1IsFJUPWSi+O=zLYG)QhK|>N??Wm)0Sehz)!MsPb6Poi8nR$ZaG7#< zt9!m5bgS=hTN<3A8cgyjc1yYS1szW+kR+oMz!es@qAMOg|N8{l88J$Ol^(fk#psfg@UbPFG9b3v{Ym7YumAK|aby7WrXv27 z#ItFvG5<|d8bCfRm(3(1nD+0uF4}(8z~~W_QgEnO9PulCsK!W&s_4yKf~;r{l{e>B zBM0vS(N>286DZIw^a{}vAQ`=_<9M?BZX>pP#`vw%jsHbZTR1gP!;1Q&-e6%P$j^^n zfc+l{TE2J)RJO7U0jPAUpRW4L?`JgSRJgVzIm3s`=RL0}WL{kPwcI>0!9F2H9gRzO z&is+L!(6be7&MP54`H%NbKtl3`_nXwo2&c=Qn1P?$RBbbX30VskSI3ZRm`e_RBv$a zV!7X>PJodCyEzW-1Van=!{4o#^89D>nE`n8;vD$T+B<6Z|7vV1lhs6StTNnM>HFm( z8eHam?_uX8E!T4E1HR8YKOScs=ITE@W);J^%J8lJ%0Cvz@g$KT2M364Tn zmt%H}D|+>g5&^nz(k5#Y_)|YEp6I^;@?@o>rnZygY@F0OG3Z!4#Y`fy#o)23#g!??UK>TIKOqQ%JmZzOzWpqB>em)I7c2{_#ofzW zGzweF6+Z*W0V9!rrZ60@4{>e`8M<+RyqFyx`UbBLwZVT>n!iW~hr1zI-xGK~-5T(N zmcS!&_6lPIgOcOh#4ccGZ85ni>b~4r99=$pa1eG-n>8w~MseBqRI{ta&E9Bc^%Xn} z{`APp@Z$T|_moRhb-lafSsi9B2Y-MF9SNR95`q2qbrOD}Nrb2G|1C54EK9P)CRp#1 z@X1kOirG4TFYf9Znl;lQlG>tKK=p%oAI5olJaiOK2*WC4JZ4zxb5e^6=4KaWux?xt zc`%u&2L0uwu*5X&8swiGhB<|CH%1cwY(IlE?GA7=9`2%7YGM9M`&BHpBwi{CSlCj% zNXWTXj780HucF>ixqiHJv({Lgo^@&No|tnEO7zmMwY~XUlrU)w776{r)O;SD@^dFW zfgeM^8{OUiAgs_FA)3Ux&^o_^RjZFWa#ag{7{ZraBVV*p30=gxp3SN&`m3{U^HR#S z?w$+#RX?C!U8x^|xQ-j?CX}K%? zT~!=v6a_gS$8-)}t+040br1M77j3wBsKO(+(q;5T@5PU^cT7>7!hXk9EdVJyfw%gy z_i!|2-~6$#Wb}FAq9H-pQl!38Kwm5lD#`Jnr*}7%{lY|)^$mQ$q(Uv_QblKU#?^f{ zb-*$_81_}zRbkmKzI`U@wC%0=liN3)gFmEj!J+_Rulw!d1lTz@8>c~ep+2pvq^zR- z%>P4sK&CHtUAqO|Jfc=;WFB}vJ2m`xCvRGcbKX4Ocu&mc&=6sZf7;i(h8{wVyJAB?%RHEribnu@35GLZ8ap)>#H(4;!; zgy{%EfjHHy83NzRxAVNKon`s+EbHJ2Mf1tF4B^lXudyR8A1bZz*u~wOejdpAmEMOo zitE3Tb;aQeu8m29S;aYacxlnjC-xT=XZ&ufy&h~pZ1<&NV+WnoWTAyuxhicH?Wo=3 zV@vV^CAIg3LI_&fTHNDbpbta_@5V)}JS{GCU@h{nGpe{0tL=Im&}}(Y)*aUe7tRHF z>A(wA(9P_$1G|9TNT^hTQ3m^&C}&t`Cc;thIpb=5{DOK=^`}Nw{CYA~LIS|a5~1h{ zeJ+Jx9;2fN46iEFXRv2@1t&*}OBb0(&wsc!5^(>z`n0*`S5N&$cejLOhC3@oq9JRd zdgcl$2liL>5p7pkXe4Rp2H&z9{2eUcf5Ht>q}A|lu|eIqB0WGKd=1h z^`k)I@Q`3yGkfs$*r4Y)0%%Kgqja_voEB=|zu7-ID%nw(0ty{3R`z%?*a^OZJgSOd ziH%Ln$s`q+2Gr2LOPRDRwiW41BF?2I- zmgR76AQ7+eF+$ISgPr2NG1!oEQYYPZ2r!-sZwv6^uZumgsmni9O?8f<)6u&|M_X@d{4dYEB8v#(536>rF|8(HWHah)k|Y{6WQiX?p5OvJ1o%)X#5szC@(MfN zr`b;lL@m;RUdyy@c#v&}XarUe!?0B3O^P$jgDR=S4!%*#`2$6PB<150Yp&Ka70jNq!MH7y1Kjn36P+5FLN$O3%E%EE&`%sIS@J zHYOx8Frptg_~fvm@gT#fQ&HIAVvS5$n&doYej*8SIw|oTe=F|$&j}|&=ff|piMQ&F z49NOA<0rkpezMHH750_A3XAb>tYI-oX&X$4E;zhLlhI+9()@?B;lb`rcAeO`-?xyb zcbv+<(TWd06$FzjFTSj%zbOqHCS}*#diJLueaJj(=NgB!P7xYkGu~ zu8*7!K-p|#X^!nrhsHS~H`af?YL~*XH{mGat3Eo8i42+}`{C24Ny_nm*#FmjWN<8P z?=~&mQd0#$Uw%gv=Oprk|;LM^5hUuH;5LN7?MVVuOQ zv1*W?T{8A1D>H_5duc6Zk0oJ%5^?jDnq!FS^=F)H!DV zK*7oU*;P_mRi64rrI1mPoLtIMwugI#l_2eJ_qS@TY>#_OZS%{rIv;|JZOi}lQdL>U zfy|I~U!5YDHsbDqqPQr_8R#Q8cgPihJjeX)^sskF*yXSBHWCzQI42VcWh_La8b+RqIsa%A@}OqaK1mv&Z9Ci=!$j%{sG3mYkSAIRF?NG zc#Uc7T3$&)Btm*BbNqSL;{9tfUvX`IY+1J!O{U_E!Fs6h3997UQsTD6eNn{8TuF`% z_1q!g)9*9m)z}Em*rxS3P~y|A&4ebgxjkK5sakD{GnHC~$l_X*W{q??mA3ls=(g zGa(5$8*hjOIRehRjt_kFI_E)R5TCVimgDQ{Ir;Y^eBzJP|rk9lkA$d zSa+2*sAlSc(f^!NPSy9yaWWpEoMBoN#iVNufo(qpAAWRg)@E~?D>xUs%=DH#wJ5R@ zrdt|;7~N81IK;H=UEXkSMjr|bIL$u&wWiIoVwn5GjqIT)3%5I-G z;pOEtGM|k+IA}On%6A1<#e{0{y!A32Iq%Dl4pu)s<9nRFN`svifj*GByZwks57@pV z+UVA#N>8{vuRPoU zXk92{a2$a-aBaMaAJRqrxteCpozSp zy}dP?Z`nWP4^V6suJ)Yh?dhJ%9Vit3{n7zPzO!uTwJ)QEbxfVsZ=2~n+gE!QQ6!88 zxD5y2E|Ldc-5>UHc`RK1x}`iXw^8W1MR2fs)OiR~v>`#lWS6|HNzEW>jylq>{@W?7v*1 zUoMopI%|#H8ev|6q5mE!1(3#VZoly8&kHMtCy#CUb36W_@q|GWVO8muU_J8i;Y;g@4~{2Z+j-rT>{ zeK2pe|0vRNTRBh3ffsyVkU7-#mFos{PxrH|S*TlC7>FMR|G4PoT?-&QJ~^xPrBORv zl$`DNy8lk&{<^;yFdMqw$umC*;M}or5rZiXr(@ZXG~W$&eWarI%YF|}|M=ODm<}Op zD%)8b+}MJuP5sewwby%~-(hU5rLDs|lb)*5s;WEPaU|IpAeoS?E^#Em?O}K?WB?pX zlB!}fzq#vK)@%rEX;)P!X`^;=>GTk_yXIbYy{60UlCVolxiD5BX491gH_8ULJ`Q;V z9K=h}Rr9G$*=1S(7Yndne7V@G$-!?ZiDeeOpoJuFm9q--b7 z`NWuj{+(e+`~1mAM$c;@dSHTCI_w+Jo(v3>upSo-t}GcB$eK|`6cfbHH2>Io(|Dmh z$O3Pb>mcpc>Xs}xPFiBTcir40jEw@(2w&zv+tm*&m z|7egf)WD~@DzwQfkL#dtcJ|~ztlq0-W@LAV#!Drtajt z?NieZKdsE`&KmrhF*cxTDj;-UPf0H>Y=-Nx5k-&Gb~+F3`JX-K$p}uE?@ZEx9Nt!t zao;#PBzTkGIPx9^e%F+*e7Z!u{|HgHyi~=@boG&O1;6ZcTr~P>fyi3_@e|95(nfNV z3b?nicbK&~b?`iXtB=VKCkwT~37JBM{mWaScWwwSd|ntDFJusGNrYxN&mT=5JNZ&@ z#?so|H$Zd9u*6iE_`YIvB1eHMrnxd)B&b4lSUD)6Wl;B2Kpu0ok z;A5l-{d$LzuTuAqwk>dp_rsgL@dag#@3T^BZU6ZFhm3ljvE(EU-E$I#p1Tw{9evpn7wz0RA>BPo z-Mk3vl*xT9;mm6w)Ugo#S!Hct)vb_XzaGZ&Ad3^&0 z-)XK%-^<~YZdX&w^_9r2e#L2^r!RE2o~SHqQ`zt%4I@CQXCtLO+|mKVt$VFuGa?DA zzI~=j3`H{_&(T4>+{LQ9USbS6grHWV&~UjmBt#K620iCG)22MYp(Gs&??6X1YkD@%Fol$!c7~VF-e|~v^yDru z@{|%{FfVgTv#@UI{vMCNunE&8zkkpF@Deh!?Ticdgm^>Ihn)JdSjN=Yq>1nR?CJ~D zcT%U5b9Q@H^64rM(`qk+;;aVqgU6d!)_%-6(>BdGpWa8RCT(nd``W6^w*&p5|Ja&~ zC1RmWbGl97W7-3`zZW~yRmQqY!UvLfFY+D9X1Q27E$gfl%%5am!~_dtb2C+IVMSZF zvn`qZMr4=;>7teV6(UD90as#cN+10L8mZgdY9FH!cu7{mQRGW(M7ic}Byq<} zWLj_@>8nx=3Gp0$-+7tqb#dY7g@q9@#=nZ61!BCSyyA63V>`tpONAD2-AdDwH=~D^ zr9$_+S5Kj-m3w6AwAllkpUP4w^_t3>4eCh=dKWh{RKE86NH8MZSX>@~b-=Co=Tt5W zGS^YNn5m0-5tj;yK7$q3?Gc}|Bs*Kr=rzxXwQ}biTMJexllo=J7ZpPxCQ}`XcLWW@ z2{Vehwi3?YFakH0-96$-29h+@Cwxc#-+D6<=4-)_I992j5bIB`Un<3J7E@nlKIq$4BXetU|B=e$^sJHK!Z^^$S= znjxQ&*M7QR$4l&>mR@Lk!@-)anYuFD9>W!blj#|5qz?ca9t)4ktjTH&oUzUTks z&x#JUqCLj8vK~vk#Syi{zUiv-tAlM%`QGs~|MHF-rV_UNw5m^2R7ZoFXLq-!KxU=t ztmfUFqS9KFM1%&)>GuRB15B#ts*8+}aine?|_@J%H&*^3^Q; z1UO(^dQx)Dy7{Ri1B$L!f-b+2?JNr>rT4O^Y%)ZApt)}8{bscng%I16TQC;ki1K

Q3W-8UcSHoOxJ&?bnz{#hv73aSOJ}kv{e9RMI=#P;jzncSl{nH*X7V zBS>?KC`-}Z-gfZv$^QBDnmmLyQQdok8)SU1b$XyKJUE%hEuLh=QSd1HYj#v+$&#~) z&QQQkzq9w_JDC1RZxFS^uL66*AI6VoS@5LHMEdQ1=nQ)==iAGbyOVnAENsoJ_kI?Z zXXEZTVtH2#o4Lce|5QWVbwn6pTuthiZT1ZdB-vO#4R@5Vx*FcPx?HMF+$7<;KDuT% zCOCztl4|@&Sahblv(YHE+K+0s^m<$z8*2mfY(- z{*Lq)EDn;x7G^>If~blU14&j?XeDV9zFI)Caz}abc-O<>eQP_~=ttR0l{@#n% zdfFL<9^aFUJ~nJ7zw0yNVt(oMuU6rB@)VabORDvAc`RQ7k*7i{advSSxn3-fHs*(q zl$Ui(A=#6h#ZVPS_R;Y=@J17FIRG4)0l9%lbz+{`(wYj^2g|30dqg+9?G_Iob6D=fQ(Nj zjP+mOhHwG&1ra_oU0>v9%n5v+AOt06+{Raxt_8b{KDlgE2E~DNtq84ezgSld9Fulm zwXumanmGS91gFp7U|j95;Bj#FJLdx7n(@mRk*j^qt6jXKB_54(grK+6*_%s@$z_BiTM*vc zFUG^2Ua_z+Q?Ma;tJu2vxAv#@qA}6n)+c*jU4}I&yIHkqWuqlJT4kD-cd| z^4C{VhVxGCw9Ty90_J&X7F_v}N0Xjzn$*!FR04ir5b( z)fGi{a1XNL(l@x-Byh$Go(A@>&b->+nh5k!TZPm`=Fsjov$uj z3Ucx{j{ZNpV*24Gm9A?|qsK6@)>9m~@I!ApFavPAJCc764Ae?f5fv)k2_z`K6ce4@ zO^EE~v);>(BZ1)lW5QVgAjI7>(ywDid7O4$nqT{F$i6#nDNNmqp`?b3S5!iQX)uuU zX|_Nt7UF;p3>^k4YjZb(G_M&}$c2YaPte zvM#LA3Jnx~4li%4X!<5SVL7($s&#?*pK^=7TH1LOP`lOrX^2?!qXpDWC`Y9b0$)@N zkaH-1*$rzfp!`WE$zNH>O+)mRcBpuY_IL&t7Enf2ae<02%dA%7Ahwg-CDC6(ce^%!PHv*unJ}7mieiX!*xi8Xr45 z{dF#_!Tw#znU!jt)@B`b_NPs10QsgdU17LB#;1h-;k)O|~93%RA0F z177%!C)%7+{xO}kmxZ>rSNDoM^}EQO0)^k0dSZ8Y{^K?V;MUJK%3B5Gvo8so;u@38 zlCoHO?pH}!>E>3jBw{kNjKY+9cRHld!MPw5{iQ(;Q9altd+LYSlQ*^^R8W=Jt5*~u2( zT4(pxews|eN0gH+yy?Ys3Ub!63YgRQ@w`jKEgVlhUFs^tF3#XZ68(13-j7x!+DFZM zZpt*N1^zM>nROQ1e=lq~{9aVUPm+l3vwgq_MfV=1e%hjNL?bwz>JM~xC25a~?Ugjy ztG`B=+0JFXrz|-$k6MpXdk(fFMr-g!zB6>9ZhX3T2#4JKLz%U-6!xCEQed=GhVi0w z*K#hOz^&(4rC;8^V2*qDT$||kI|xg^u5Lka@N*0SeK6(CRQ~0P?`h@K`0E>nUjJsL z&Tmx@>HXW%rI}_jc38+Y^o~b;!In?Z8l!Ft4L$3|yDo~|cG>(~+e&yCZ{x3UxF+8+#hanKDMje{NYgS4gp}c;x~yMG&O=kxJ5kLxF-?o}wyNNo zGe)cTlK5rygH-2jW1eN6W7$qreIxRZn_gaxTH9bsnb(Lx5sf(%dXp*@Su)R6)OC2* zC23=t%SDX7=~D|gTZhUSpi91W#)1OjSqr|jCl&aOk&5`AB2BjKKc5e}ILELePgq3I%r)FM z-IQd=wp1{JAm1ld=L%A6o$(Z@L0A)r2eJIa7+piW8BqbSF?Sx@ncB5<*PH~OWYzRN zjw1=a+Dn^-IOB(>rb%tZ-f$xvTVUE%Ijg%78Uw$X>yd=-WTIuDlU)sKpZ&i7de$f7%{P zj8N5W^CW2vUA~mq5Hr&4-bza{C%Ja==C_5$z{>hNd99R|hLqXwYczImqMV?>SP|MV zFHDcDX!NA&M*RG-xc@N~8m#AHna+%OT_ z{>ASe9kw*9|bXR5;k976Q8 zfds({%6!tXF<4vFW;#I9as+@kGm#jFx-gPi&`Um7;9ImI8O#nJk#CK8hY-7t^afvN z2cWWuXAW2_ty~I7F&C*D8p4-;lg*SsjZ26gVQIMy4Q?E5Nu!HbRoK^my2L$Qi?u&J zQNC>3?gXJ{>Q#No($bmWtYsLI8Hq`y?k4GARaG#a`~fMD*bS(}aOCvFNdhQJ0R0%y zb}jcR1%M86GnTpHfFx1%gW7R;FDUBEG%XmkvAt=TsE@wp{r^R@fUnVF!r70gkCbp9;R!~CG(G&u;iuXbq z4U+%BNBaEZQhF)_)(hD&7fEd$&ou2(xbt1S6!O2Vist>Kt52id%Hl z+jv_x`!qh9Eiq$7f`l%k!TB9a{>ya#0qd677sa;?Za?L>qR}cw+?#d@qcQV=_)zZm zO0!--edFvboy!YQH|vZ7?);-EgyhygMPjPXwey>vW(DrDnpC}8E)z$VhFWIm%0f&` zzR#ZFWpugNrM^U@sLttov`YL_P)eZ7T_rCC=le-drj%hU=qzV=O>C~o)5Gy<`hs&R z!YygQ5wVYkfs-?of=}EtC%B*o<{3S|u6dwfB@3bD)KBqWHzbK(f<$v&3 zw4gv~*$BlVJdT4TGo{e>;ugv*Bb}^iMc+5E3m&6;NqdAc2W+cmzFXVbRy?D zBsc3ahog?npJ9muQR_3d`^5$5FN3qs14oc$Zpxp^A$!xG9zhd=J8~XZHhpU}?BoPI zo;x_%@kBIB;`%QKW-aO*1O}ma+fAQj+FkgnUyT z_Vv&JVchrbDR$5#(Q@N^uyX;XS=f8%Eqxe`W4)Q}RBLfyEQjR<70b>MhwB|%+OE{8 zm|z$>*RiG5=;@2e@y>;$0lVzw=o|1SwY2rV8sVVwMV+H}8u8Blkinz!J zZ1a5fLG2>+{Xmn|ba^ir{vGZ^C6tu40-2mewPVpeW=elgivt_2YuR107uvrt7ExAY z0qq-!ea1k04A)fMyFAr@cDWT=SgOwQYbSxt-=XZkGq1esMhgvnLGkGW(_y=W(6*`u z%?Axb=L8`Uz@hhOnFbse+>tNZ)Ib>$MRDcVqiMBTn}7Pe5v6r-ylc-tc1gmAnQu$! z$ye++(EjjXc)LsyipJFTcpfyzDhxi@KWd~-BYp3Oc^9)ubZBg5(708}&3Mf!9Pm2G zy%yGnxG{=YK&Af!L;66`yVFc}Wehyk8K=0~5!O%AqKaR?d5>tbueE0_vMFph&6xRa z(B`__-cZ5?$YL^Iw0BoO*cAI2c5mNv(lE>^j?wDgxrB>}8BM!4RV2@d-n#KPx4%9& zQa6{#wE0ePV^O2KTV{z~91&T}bHbV<(XkTayXCf zuwy511maJiS6L#5g$-;|^_UW(=ckzvK<_g7$Cm=L^V*AYl#%&<@(Hj;IVZVF&v=x> z@h8z_XIXKThF^35SgtTmBUNt|#`Wjcg0{IjaME**5c0NpOduY3U2q-jQ4yww{nJ(+ z6pce!EqpBp1g&lUQ1n69)y3 z(0C3zG}_HSz?`>DulRWO6HY_{0r^}=@^#QlELdb*RqBt#JDaa3tnCqmmM-4|g~MNR zKXcvA%}|kU|AFT3ctxJrv%2Oqzs$wB$piBA`tv;7`x-nOV0UAt_ukQWS?R&nkP zkJ6RH^S_#z>D_UG*C739w~0an1vc-+H?-mHz@gzJ{40u%6q}ntqJE$?^14Z_ZBHGj zrSJgY)^i@d*F(VJfPhjE$BwIROVX-jY4h2egkAXyc&@m89;~xIo{KP5-P=V69i( zvpmzdfj`4S{nuU!h*XGi)XNG2_UD%+;sF+6BLKl4dS#a;0CR~vAu9N+s+82+g=dH+ zmuf0YZ*g&o{668~<&w(Mhe_R5p z+rZqX3{qs2$un2KHqopY(J1c7D{<2Ue**5~=8Z`UegUjKV*o!v@jnC80%GHG-V%On zY>Vxnedbk~lUXSjf93z4OQHM9JCF5EPtzGQ$oRb{of2ViCpBo5ZL+JkXUV|}%h^F2 zF^`2s{P5rZ1>gpg0Ajaw)n@{=tLPxBnZic`vV=>Uw7b2bR&2}#B{^Fd8p$d9IXe$* zp4g3WH2>`fpaMTpwBDed#+LJ<{NBvNNzj`4Vg>;C{b)wYnYf0ktQgjKaPPo5BsA8wv=g zpzTMBPC%pAZtRMqaqO|x@5k{Oa*kcJnF#EoD+4?yyW`Ch0X32R-ZM$+=BdEf&s^pv zhQ&F0n|DNqUPgK=!+5n_rubFxuwiUwguos&5?GG94u}Xth5}PBIsX^w?0+Ep@fBI# z??y#x&F107gol#GuGE@&iml2Uik)5p5(&V@qAy@0Ozsdr2k>fDca$}hWEtk!H?2y- zR_JEg*C41Wa@1LkmaL&tG+Hs@lL9Td1~MD~8YciAM({*cUjw0c*Yoji12{%U z>;=g^3vQCrx^1}e>HT^1A5{sOZW_Y9SNmxYRL4YQ9esYP?TVcv8M3cMz?neBE+)wF zy9KDZawZ5bx8u&|Em}k!0qn}JUV3m0V_DOP)ojBVQ_V)O3+xfK;MYIz{Do>az@Q~d z0>){;lwW|*iHe|QW(1(cqb&fqkT+Gz9qwa{L>y@pe2hJs=hMs#+c$Ml4xRct%Ceh< zYERLHqGkETqii zWpWfRkIGEs{A!+3oz;{f(FVW}0DW@$B z{%+>MAMAd)=l^mbT{}>H`*-Erf=oKb-GOjJ2G~pJA5&NAgQvcY zOr3j@AYT_W+ksmAv(OwZ%bjEFA@uYmi#B-@Vtv->#YaQ*xJIHV-M(%Mp8auz;0@#r z+?8f-9+fcAx?#I@*c&|o5+Eo26SxX=uS2fKF?dIXUQcz?jgXgkC^4z2G+P5iHWoIDN7PCJI%v8TjUGG@ zB1<~ZDw8$L4QhKe8j{x#G+2qOaQ)|xtV6Mj=MBT>>ok9%C}ce&?*?|{QN*4dR1j0# zXT`KU(i2#7*F?^YT)4YoE{oOMmytb_zNUUJXUL?XGOeqewM53ITzWLC5kUXG(P)zw zdM?@^Q4Q!cOp3Tf4HDnHqDebsz{{Xph1OZ;zPZzt4_k$I9&R`sG9pfs=_)lgF?D~R z-4HN>o7!Qk%+B`H{2pAS{h-YD7Cuvyx2X8WItftev15hoLq+n&O6AO}FWpj4KV=`O z)JwfS%^J$kJncMk!SHg)*z&+r@7*du0MbRvaCIYD9;=ith938WoG}0>A zuuHwp;wO0Kn-6tQzosV_+^JMlN`3PkvUg3&KD);p^jx4pd;=tA}D20I>7J>>)l zhq!AhZ5#RF#<6VfrD~0ni%K>HA*u`Rd*At9K9!`492>>x&xcF-{=&JTey62V^{pH% za}odr_mA8h-lulO6Q694K%N^AC)Aqt)(-|7U0Qc7eBnSZddn0iccSdC9jtiuSS0?RRuz}YD0yV{b!^;=oEVVDU>hn{^S9gED@$3 z0wisMaU{J3t&ekb=gJ9XmV&qq2cgVxmbWzQ)}Fj^Q2xdJ%WI~Rf~IJl`x^%Ag=RY} zy|5n?uGVUl^tri;I}B-r6}039D2LOvpygX9fhDG1y2!n^rfN~J(!*!ToGO&;ft6@% zt4_f-vxv9;b(iiW8lIJYuW9OR7_P|vF;J2wiA49SFdrSBloJ{Rh4!hR7mZ0br6okp zOF1u%%BX}+SdOMIKOnu`8P{?9O!>z1l!mRFz)fe&dTVA^8>enOiYD|;#Ka5ysv3QR z%kBlMlLVwQoe2I|H~oEq#J3jv!2!TIa}$yV*xIB3#S`H$lWJJp=3kYc^)UAo?IG_1 z;IU#il76#&0ZQnr*3EuEY@S;b?n!|8E!m+*f?7Sk^n?f54vx9@*qonn2O0zv#L%lb z!}w7i8JB+e)@w4R9|9bQr;r;CbcX^nz6?(h0uaX%V*S9ydpQv!!tG#d=-XQaY6@)r zJX5jmKzZha3f}EORIM{BM4z`s4!n-PP%;vOF!xN^;7)YumEx;DJl=iY9|#*X-UO?X zB&0LGJQh8<7tQMeOx>@|FVBdhP4VX`=-GHo6Y**BkrbXFBd7$h7urCNu?2cIS5Y*~ zRM>bZ4Aw8Mkl@q4gXtI$#AH1F`eYtBSjlm&Q~`wcZG%bTq z?=2c_@tA?Gl14Pp2m01h3i}8%L&tqk`#o4mQ$>dN)u&eZiA*X*ZZOHe+gHn**UnFQ ztHN2K=i-kZGA?WkQ4?bq4Nok9U%75?JdXRGQ^PSA4p zfD3Nt>V9v*JDTu&)ebQg1wm7#rCd-(*QfszWbuN3KzJA+bJK7EGY|s__FCPPCpiDh z;~y88bj-k_uVti(IRz=6^f!~}A*w3LlS$a!iXTm#=wQ<#s(4mxBfu4wIveSm5GpY7 zeJPigrB+N+y0T0&5t9LMSRYy1BE$d+wHTufh}L?o$*YNEsJp2KL$ET^H>8`gcTq7-H5kZyAU$}qo*4C|a4ZlK<7?xuQjsvfmQiTF zaz-(~G6$>1Hvj^16shR0l@l=xClt$yLa_7|PyhT}rcHZQ_fr3v9{2Iz(zgwPtqt$| z`5UNR+@BL7LQkEpN9${#QGD84KqUxAP0R3$ygz@p@}jhxx-f>a)I>RXFF$6qt8h!v?FVJ8)cA6OK<-5K1lFga7@Nv6#qBKk$`grhxANLN+)I1P zSgzl+xPh}LAdWw!UMb8Ik%X3|AcK?Ih%1>_t$4^CPHo2Ll-C+>J1YIAmt!<0z#L$0 zJ05voDdds;f=EWkZ55ts{QMY=?MaB>W_6dds*cUE+Li=L1_4c>LG;br{cL@6 z%j96|GJbdhz7K#6I95Jy=lg1me)+kN8BUbHtPxN*8b54k&8cmztvPO7CJ;gdb*sop zMj`7;j=N(b^Lc7!l7&DJDNJK1Vczw=kzr29tmea4eBg)kLDeS?R2X|OFxqu9#v8y= zEMVmRG=z8k;p=MC%~ACy)@|M{=posXGC7t~u+%1*ca-`LB~Tz>>6SsZEXh1sK06tH zgqWXZkN&!&`8pEG3JgILUg+H;8IPaGt}@||M1;3V(O};CsOdDZh;@QfxGOQaKWn!b zX>@qD8M_PM9!95~*04gn>Bu!f*AP@gnAj9!XAENTVl@#a^@D_SYSkod!5MBVvdQHU zV>#rKHM&>@E=bxEaoL~)ta|SgijhmHTI_Z;W$cX2p z8d!-525D5K!u8qF;U_FBaLuRWF^dQ`D)a^80*^w2i!y?Zd8vC9ZUrdn|F3PG$kI8; XXrlRAyw+AAn~AWt+-Ff{<`wf_R87(& literal 0 HcmV?d00001 diff --git a/openapi-spec/ewc.yaml b/openapi-spec/ewc.yaml index 1f40129..26fd2b4 100644 --- a/openapi-spec/ewc.yaml +++ b/openapi-spec/ewc.yaml @@ -1,12 +1,1061 @@ info: contact: - name: EWC + name: EWC url: https://eudiwalletconsortium.org/ - description: - The EWC APIs are defined to be used across all wallet providers within EWC according the [EWC RFCs](https://github.com/EWC-consortium/eudi-wallet-rfcs). + description: The EWC APIs are defined to be used across all wallet providers within EWC according the [EWC RFCs](https://github.com/EWC-consortium/eudi-wallet-rfcs). license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 title: EWC APIs - version: 2024.03.1 -openapi: 3.1.0 + version: 2024.3.1 +openapi: 3.0.3 +servers: + - description: Wallet server + url: https://wallet.example.com +tags: + - description: This consists of endpoints for an issuer + name: issuer + - description: This consists of endpoints for a verifier + name: verifier +paths: + /credential-offer/{credentialOfferId}: + get: + summary: Credential offer + description: Credential offer + operationId: credentialOffer + parameters: + - description: Unique ID for the credential offer + in: path + name: credentialOfferId + required: true + schema: + type: string + responses: + "200": + description: "" + content: + application/json: + schema: + oneOf: + - $ref: "#/components/schemas/OpenIdCredentialOffer" + - $ref: "#/components/schemas/EbsiCredentialOffer" + + tags: + - issuer + /.well-known/openid-credential-issuer: + get: + summary: Discover well-known OpenID credential issuer configuration endpoint + description: Discover well-known OpenID credential issuer configuration endpoint + operationId: discoverWellKnownOpenIdCredentialIssuerConfiguration + responses: + "200": + description: "" + content: + application/json: + schema: + oneOf: + - $ref: "#/components/schemas/WellKnownOpenIdIssuerConfiguration" + - $ref: "#/components/schemas/WellKnownEBSIIssuerConfiguration" + + tags: + - issuer + /.well-known/oauth-authorization-server: + get: + summary: Discover well-known OpenID authorisation server configuration endpoint + description: Discover well-known OpenID authorisation server configuration endpoint + operationId: discoverWellKnownOpenIdAuthorisationIssuerConfiguration + responses: + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/WellKnownOpenIdAuthorisationServerConfiguration" + + tags: + - issuer + /auth/authorize: + get: + tags: + - issuer + summary: Authorisation request + description: Authorisation request + operationId: authorisationRequest + parameters: + - name: response_type + in: query + required: true + schema: + type: string + example: code + description: The value must be 'code' + - name: scope + in: query + required: true + schema: + type: string + example: openid + description: The value must be 'openid' + - name: state + in: query + required: true + schema: + type: string + example: client-state + description: The client uses an opaque value to maintain the state between the request and callback. + - name: client_id + in: query + required: true + schema: + type: string + example: did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9KbsEYvdrjxMjQ4tpnje9BDBTzuNDP3knn6qLZErzd4bJ5go2CChoPjd5GAH3zpFJP5fuwSk66U5Pq6EhF4nKnHzDnznEP8fX99nZGgwbAh1o7Gj1X52Tdhf7U4KTk66xsA5r + description: Decentralised identifier + - name: authorization_details + in: query + required: true + schema: + type: string + example: | + [ + { + "format": "jwt_vc", + "locations": [ + "https://issuer.example.com" + ], + "type": "openid_credential", + "types": [ + "VerifiableCredential", + "VerifiableAttestation", + "VerifiablePortableDocumentA1" + ] + } + ] + description: | + As specified in OAuth 2.0 Rich Authorization Requests specification to specify fine-grained access. + - name: redirect_uri + in: query + required: true + schema: + type: string + example: "openid:" + description: For redirection of the response. + - name: nonce + in: query + required: true + schema: + type: string + example: glkFFoisdfEui43 + description: A value used to associate a client session with an ID token and to mitigate replay attacks. + - name: code_challenge + in: query + required: true + schema: + type: string + example: YjI0ZTQ4NTBhMzJmMmZhNjZkZDFkYzVhNzlhNGMyZDdjZDlkMTM4YTY4NjcyMTA5M2Q2OWQ3YjNjOGJlZDBlMSAgLQo= + description: As specified in PKCE for OAuth Public Client specification. + - name: code_challenge_method + in: query + required: true + schema: + type: string + example: S256 + description: As specified in PKCE for OAuth Public Client specification. + - name: client_metadata + in: query + required: true + schema: + type: string + example: | + { + "vp_formats_supported": { + "jwt_vp": { + "alg": [ + "ES256" + ] + }, + "jwt_vc": { + "alg": [ + "ES256" + ] + } + }, + "response_types_supported": [ + "vp_token", + "id_token" + ], + "authorization_endpoint": "openid://" + } + description: Holder wallets are non-reachable and can utilise this field in the Authorisation Request to deliver configuration. + - name: issuer_state + in: query + required: false + schema: + type: string + example: tracker%3Dvcfghhj + description: If present in the credential offer. + responses: + "302": + description: Authorisation response + headers: + Location: + schema: + type: string + example: http://localhost:8080?state=22857405-1a41-4db9-a638-a980484ecae1&client_id=https%3A%2F%2Fapi-conformance.ebsi.eu%2Fconformance%2Fv3%2Fauth-mock&redirect_uri=https%3A%2F%2Fapi-conformance.ebsi.eu%2Fconformance%2Fv3%2Fauth-mock%2Fdirect_post&response_type=id_token&response_mode=direct_post&scope=openid&nonce=a6f24536-b109-4623-a41a-7a9be932bdf6&request_uri=https%3A%2F%2Fapi-conformance.ebsi.eu%2Fconformance%2Fv3%2Fauth-mock%2Frequest_uri%2F111d2819-9ab7-4959-83e5-f414c57fdc27 + /direct_post: + post: + tags: + - "issuer" + summary: Direct post + requestBody: + required: true + content: + application/x-www-form-urlencoded: + schema: + type: object + properties: + id_token: + type: string + description: The id_token signed by the DID + responses: + "302": + description: Direct Post response + headers: + Location: + schema: + type: string + description: The URL to redirect to after processing the request + /token: + post: + tags: + - "issuer" + summary: Token request + requestBody: + required: true + content: + application/x-www-form-urlencoded: + schema: + $ref: "#/components/schemas/AuthorisationCodeTokenRequest" + responses: + "200": + description: Token response + content: + application/json: + schema: + $ref: "#/components/schemas/TokenResponse" + /credential: + post: + tags: + - "issuer" + summary: Credential Request + requestBody: + required: true + content: + application/json: + schema: + oneOf: + - $ref: "#/components/schemas/OpenIdCredentialRequest" + - $ref: "#/components/schemas/EbsiCredentialRequest" + responses: + "200": + description: Credential response + content: + application/json: + schema: + oneOf: + - $ref: "#/components/schemas/InTimeCredentialResponse" + - $ref: "#/components/schemas/DeferredCredentialResponse" + /deferred-credential: + post: + tags: + - "issuer" + summary: Deferred Credential Request + parameters: + - in: header + name: Authorization + schema: + type: string + example: Bearer eyJ0eXAi...KTjcrDMg + description: Acceptance token from the credential response + responses: + "200": + description: Credential response + content: + application/json: + schema: + $ref: "#/components/schemas/InTimeCredentialResponse" +components: + schemas: + OpenIdCredentialOffer: + title: OpenID Credential Offer + type: object + properties: + credential_issuer: + type: string + description: "Credential issuer endpoint" + example: https://server.example.com + credentials: + type: array + description: "Credential types available for issuance" + items: + type: string + example: "PortableDocumentA1" + grants: + oneOf: + - $ref: "#/components/schemas/AuthorisationCodeGrant" + - $ref: "#/components/schemas/PreAuthorisedCodeGrant" + required: + - credential_issuer + - credentials + - grants + EbsiCredentialOffer: + title: EBSI Credential Offer + type: object + properties: + credential_issuer: + type: string + description: "Credential issuer endpoint" + example: https://server.example.com + credentials: + type: array + description: "Credential types available for issuance" + items: + type: object + properties: + format: + type: string + description: "Credential format" + enum: + - "jwt_vc" + - "ldp_vc" + - "vc+sd-jwt" + types: + type: array + description: "Credential type" + items: + type: string + example: "PortableDocumentA1" + trust_framework: + type: object + description: "Trust framework" + properties: + name: + type: string + description: "Name of the trust framework" + example: "ebsi" + type: + type: string + description: "Type of the trust framework" + example: "Accreditation" + uri: + type: string + description: "URI of the trust framework" + example: "TIR link towards accreditation" + required: + - name + - type + - uri + required: + - format + - types + - trust_framework + grants: + oneOf: + - $ref: "#/components/schemas/AuthorisationCodeGrant" + - $ref: "#/components/schemas/PreAuthorisedCodeGrant" + required: + - credential_issuer + - credentials + - grants + AuthorisationCodeGrant: + type: object + title: "Authorisation code grant" + properties: + authorization_code: + type: object + description: "Authorisation code grant" + properties: + issuer_state: + type: string + description: "Issuer state" + example: "eyJhbGciOiJSU0Et...FYUaBy" + required: + - issuer_state + required: + - authorization_code + PreAuthorisedCodeGrant: + type: object + title: "Pre-authorised code grant" + properties: + urn:ietf:params:oauth:grant-type:pre-authorized_code: + description: "Pre-authorised code grant" + type: object + properties: + pre-authorized_code: + type: string + description: "Pre-authorised code" + example: "eyJhbGciOiJSU0Et...FYUaBy" + user_pin_required: + type: boolean + description: "User pin required or not" + example: true + required: + - pre-authorized_code + - user_pin_required + required: + - urn:ietf:params:oauth:grant-type:pre-authorized_code + WellKnownOpenIdIssuerConfiguration: + title: Well-known OpenID credential issuer configuration + type: object + properties: + credential_issuer: + type: string + authorization_server: + type: string + credential_endpoint: + type: string + deferred_credential_endpoint: + type: string + display: + type: array + items: + type: object + properties: + name: + type: string + location: + type: string + locale: + type: string + cover: + type: object + properties: + url: + type: string + alt_text: + type: string + required: + - url + - alt_text + logo: + type: object + properties: + url: + type: string + alt_text: + type: string + required: + - url + - alt_text + description: + type: string + required: + - name + - location + - locale + - cover + - logo + - description + credentials_supported: + type: object + properties: + VerifiablePortableDocumentA1SdJwt: + type: object + properties: + format: + type: string + scope: + type: string + cryptographic_binding_methods_supported: + type: array + items: + type: string + cryptographic_suites_supported: + type: array + items: + type: string + display: + type: array + items: + type: object + properties: + name: + type: string + locale: + type: string + background_color: + type: string + text_color: + type: string + required: + - name + - locale + - background_color + - text_color + credential_definition: + type: object + properties: + vct: + type: string + claims: + type: object + properties: + given_name: + type: object + properties: + display: + type: array + items: + type: object + properties: + name: + type: string + locale: + type: string + required: + - name + - locale + required: + - display + last_name: + type: object + properties: + display: + type: array + items: + type: object + properties: + name: + type: string + locale: + type: string + required: + - name + - locale + required: + - display + required: + - given_name + - last_name + required: + - vct + - claims + required: + - format + - scope + - cryptographic_binding_methods_supported + - cryptographic_suites_supported + - display + - credential_definition + required: + - VerifiablePortableDocumentA1SdJwt + required: + - credential_issuer + - authorization_server + - credential_endpoint + - deferred_credential_endpoint + - display + - credentials_supported + WellKnownEBSIIssuerConfiguration: + title: Well-known EBSI credential issuer configuration + type: object + properties: + credential_issuer: + type: string + authorization_server: + type: string + credential_endpoint: + type: string + deferred_credential_endpoint: + type: string + display: + type: object + properties: + name: + type: string + location: + type: string + locale: + type: string + cover: + type: object + properties: + url: + type: string + alt_text: + type: string + required: + - url + - alt_text + logo: + type: object + properties: + url: + type: string + alt_text: + type: string + required: + - url + - alt_text + description: + type: string + required: + - name + - location + - locale + - cover + - logo + - description + credentials_supported: + type: array + items: + type: object + properties: + format: + type: string + types: + type: array + items: + type: string + trust_framework: + type: object + properties: + name: + type: string + type: + type: string + uri: + type: string + required: + - name + - type + - uri + display: + type: array + items: + type: object + properties: + name: + type: string + locale: + type: string + required: + - name + - locale + required: + - format + - types + - trust_framework + - display + required: + - credential_issuer + - authorization_server + - credential_endpoint + - deferred_credential_endpoint + - display + - credentials_supported + WellKnownOpenIdAuthorisationServerConfiguration: + title: Well-known OpenID authorisation server configuration + type: object + properties: + issuer: + type: string + authorization_endpoint: + type: string + token_endpoint: + type: string + jwks_uri: + type: string + scopes_supported: + type: array + items: + type: string + response_types_supported: + type: array + items: + type: string + response_modes_supported: + type: array + items: + type: string + grant_types_supported: + type: array + items: + type: string + subject_types_supported: + type: array + items: + type: string + id_token_signing_alg_values_supported: + type: array + items: + type: string + request_object_signing_alg_values_supported: + type: array + items: + type: string + request_parameter_supported: + type: boolean + request_uri_parameter_supported: + type: boolean + token_endpoint_auth_methods_supported: + type: array + items: + type: string + request_authentication_methods_supported: + type: object + properties: + authorization_endpoint: + type: array + items: + type: string + required: + - authorization_endpoint + vp_formats_supported: + type: object + properties: + jwt_vp: + type: object + properties: + alg_values_supported: + type: array + items: + type: string + required: + - alg_values_supported + jwt_vc: + type: object + properties: + alg_values_supported: + type: array + items: + type: string + required: + - alg_values_supported + required: + - jwt_vp + - jwt_vc + subject_syntax_types_supported: + type: array + items: + type: string + subject_trust_frameworks_supported: + type: array + items: + type: string + id_token_types_supported: + type: array + items: + type: string + required: + - issuer + - authorization_endpoint + - token_endpoint + - jwks_uri + - scopes_supported + - response_types_supported + - response_modes_supported + - grant_types_supported + - subject_types_supported + - id_token_signing_alg_values_supported + - request_object_signing_alg_values_supported + - request_parameter_supported + - request_uri_parameter_supported + - token_endpoint_auth_methods_supported + - request_authentication_methods_supported + - vp_formats_supported + - subject_syntax_types_supported + - subject_trust_frameworks_supported + - id_token_types_supported + AuthorisationResponse: + title: Authorisation response + type: object + properties: + state: + type: string + description: The client uses an opaque value to maintain the state between the request and callback. + client_id: + type: string + description: Decentralised identifier + redirect_uri: + type: string + description: For redirection of the response + response_type: + type: string + description: The value must be 'id_token' if the issuer requests DID authentication. + response_mode: + type: string + description: The value must be 'direct_post' + scope: + type: string + description: The value must be 'openid' + nonce: + type: string + description: A value used to associate a client session with an ID token and to mitigate replay attacks. + request_uri: + type: string + description: The authorisation server's private key signed the request. + AuthorisationDetails: + title: Authorisation Details + type: object + properties: + type: + type: string + locations: + type: array + items: + type: string + format: + type: string + credential_definition: + type: object + properties: + type: + type: array + items: + type: string + required: + - type + required: + - type + - locations + - format + - credential_definition + EBSIAuthorisationDetails: + title: EBSI Authorisation Details + type: object + properties: + format: + type: string + locations: + type: array + items: + type: string + type: + type: string + types: + type: array + items: + type: string + required: + - format + - locations + - type + - types + ClientMetaData: + title: Client Meta Data + type: object + properties: + vp_formats_supported: + type: object + properties: + jwt_vp: + type: object + properties: + alg: + type: array + items: + type: string + required: + - alg + jwt_vc: + type: object + properties: + alg: + type: array + items: + type: string + required: + - alg + required: + - jwt_vp + - jwt_vc + response_types_supported: + type: array + items: + type: string + authorization_endpoint: + type: string + required: + - vp_formats_supported + - response_types_supported + - authorization_endpoint + AuthorisationCodeTokenRequest: + type: object + properties: + grant_type: + type: string + example: authorization_code + description: Grant type for authorization + code: + type: string + example: SplxlOBeZQQYbYS6WxSbIA + description: Authorization code + code_verifier: + type: string + example: dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk + description: Wallet-generated secure random token used to validate the original code_challenge + redirect_uri: + type: string + example: https://Wallet.example.org/cb + description: Redirect URI + PreAuthorisedCodeTokenRequest: + type: object + properties: + grant_type: + type: string + example: urn:ietf:params:oauth:grant-type:pre-authorized_code + description: Grant type for authorization + pre-authorized_code: + type: string + example: SplxlOBeZQQYbYS6WxSbIA + description: Code representing the Credential Issuer's authorisation for the Wallet to obtain Credentials of a certain type. This code must be short-lived and single-use. + user_pin: + type: string + example: 493536 + description: The end user pin is decided by the issuer and sent to the holder through an out-of-band process. E.g. Email, SMS + TokenResponse: + type: object + properties: + access_token: + type: string + refresh_token: + type: string + token_type: + type: string + expires_in: + type: number + id_token: + type: string + c_nonce: + type: string + c_nonce_expires_in: + type: number + required: + - access_token + - refresh_token + - token_type + - expires_in + - id_token + - c_nonce + - c_nonce_expires_in + OpenIdCredentialRequest: + type: object + properties: + format: + type: string + example: vc+sd-jwt + description: Format of the credential + credential_definition: + type: object + properties: + vct: + type: string + example: VerifiablePortableDocumentA1 + description: Verifiable credential type + proof: + type: object + properties: + proof_type: + type: string + example: jwt + description: Proof type of the credential + jwt: + type: string + example: eyJraW...KWjceMcr + description: JWT for the proof + EbsiCredentialRequest: + title: EBSI Credential Request + type: object + properties: + format: + type: string + proof: + type: object + properties: + jwt: + type: string + proof_type: + type: string + required: + - jwt + - proof_type + types: + type: array + items: + type: string + required: + - format + - proof + - types + InTimeCredentialResponse: + title: In-time Credential Response + type: object + properties: + format: + type: string + credential: + type: string + c_nonce: + type: string + c_nonce_expires_in: + type: number + required: + - format + - credential + - c_nonce + - c_nonce_expires_in + DeferredCredentialResponse: + title: Deferred Credential Response + type: object + properties: + acceptance_token: + type: string + c_nonce: + type: string + c_nonce_expires_in: + type: number + required: + - acceptance_token + - c_nonce + - c_nonce_expires_in + + PresentationSubmission: + type: object + properties: + definition_id: + type: string + descriptor_map: + type: array + items: + type: object + properties: + format: + type: string + id: + type: string + path: + type: string + path_nested: + type: object + properties: + format: + type: string + id: + type: string + path: + type: string + required: + - format + - id + - path + required: + - format + - id + - path + - path_nested + id: + type: string + required: + - definition_id + - descriptor_map + - id \ No newline at end of file diff --git a/openapi-spec/index.html b/openapi-spec/index.html new file mode 100644 index 0000000..1dad863 --- /dev/null +++ b/openapi-spec/index.html @@ -0,0 +1,93 @@ + + + + + + + EWC API documentation + + + + + + + + + + \ No newline at end of file