From dfff24a65d219ce3985edbf744b034d1882e452f Mon Sep 17 00:00:00 2001
From: elinuxhenrik
Date: Mon, 4 Apr 2022 16:16:23 +0200
Subject: [PATCH] Remove Information Coordinator Service
Issue-ID: NONRTRIC-716
Signed-off-by: elinuxhenrik
Change-Id: Ibc732891ae1d30ce4fbbb343a42683d5f9ad008c
---
docs/api-docs.rst | 20 -
docs/conf.py | 14 +-
docs/developer-guide.rst | 43 -
docs/images/swagger.png | Bin 3590 -> 0 bytes
docs/images/yaml_logo.png | Bin 3477 -> 0 bytes
docs/overview.rst | 3 +
docs/release-notes.rst | 24 -
information-coordinator-service/.gitignore | 1 -
information-coordinator-service/Dockerfile | 51 -
information-coordinator-service/api/README.md | 0
information-coordinator-service/api/ics-api.json | 1289 -----------------
information-coordinator-service/api/ics-api.yaml | 1492 --------------------
information-coordinator-service/config/README | 41 -
.../config/application.yaml | 52 -
.../config/keystore.jks | Bin 4987 -> 0 bytes
.../config/truststore.jks | Bin 3683 -> 0 bytes
.../eclipse-formatter.xml | 314 ----
information-coordinator-service/pom.xml | 360 -----
.../src/main/java/org/oransc/ics/Application.java | 33 -
.../src/main/java/org/oransc/ics/BeanFactory.java | 115 --
.../main/java/org/oransc/ics/SwaggerConfig.java | 93 --
.../org/oransc/ics/clients/AsyncRestClient.java | 213 ---
.../oransc/ics/clients/AsyncRestClientFactory.java | 193 ---
.../org/oransc/ics/clients/SecurityContext.java | 76 -
.../ics/configuration/ApplicationConfig.java | 96 --
.../oransc/ics/configuration/WebClientConfig.java | 54 -
.../org/oransc/ics/controllers/ErrorResponse.java | 110 --
.../oransc/ics/controllers/StatusController.java | 106 --
.../org/oransc/ics/controllers/VoidResponse.java | 32 -
.../oransc/ics/controllers/a1e/A1eCallbacks.java | 87 --
.../org/oransc/ics/controllers/a1e/A1eConsts.java | 40 -
.../oransc/ics/controllers/a1e/A1eController.java | 374 -----
.../oransc/ics/controllers/a1e/A1eEiJobInfo.java | 69 -
.../oransc/ics/controllers/a1e/A1eEiJobStatus.java | 56 -
.../oransc/ics/controllers/a1e/A1eEiTypeInfo.java | 31 -
.../controllers/r1consumer/ConsumerCallbacks.java | 76 -
.../ics/controllers/r1consumer/ConsumerConsts.java | 59 -
.../controllers/r1consumer/ConsumerController.java | 521 -------
.../r1consumer/ConsumerInfoTypeInfo.java | 68 -
.../controllers/r1consumer/ConsumerJobInfo.java | 76 -
.../controllers/r1consumer/ConsumerJobStatus.java | 66 -
.../r1consumer/ConsumerTypeRegistrationInfo.java | 68 -
.../r1consumer/ConsumerTypeSubscriptionInfo.java | 53 -
.../controllers/r1producer/ProducerCallbacks.java | 127 --
.../ics/controllers/r1producer/ProducerConsts.java | 41 -
.../controllers/r1producer/ProducerController.java | 425 ------
.../r1producer/ProducerInfoTypeInfo.java | 55 -
.../controllers/r1producer/ProducerJobInfo.java | 84 --
.../r1producer/ProducerRegistrationInfo.java | 64 -
.../controllers/r1producer/ProducerStatusInfo.java | 53 -
.../oransc/ics/exceptions/ServiceException.java | 40 -
.../java/org/oransc/ics/repository/InfoJob.java | 70 -
.../java/org/oransc/ics/repository/InfoJobs.java | 185 ---
.../org/oransc/ics/repository/InfoProducer.java | 85 --
.../org/oransc/ics/repository/InfoProducers.java | 168 ---
.../java/org/oransc/ics/repository/InfoType.java | 41 -
.../ics/repository/InfoTypeSubscriptions.java | 287 ----
.../java/org/oransc/ics/repository/InfoTypes.java | 149 --
.../java/org/oransc/ics/repository/MultiMap.java | 65 -
.../org/oransc/ics/tasks/ProducerSupervision.java | 114 --
.../test/java/org/oransc/ics/ApplicationTest.java | 1284 -----------------
.../org/oransc/ics/MockInformationService.java | 54 -
.../oransc/ics/clients/AsyncRestClientTest.java | 163 ---
.../A1eCallbacksSimulatorController.java | 94 --
.../controller/ConsumerSimulatorController.java | 93 --
.../controller/ProducerSimulatorController.java | 215 ---
pom.xml | 1 -
67 files changed, 4 insertions(+), 10422 deletions(-)
delete mode 100644 docs/images/swagger.png
delete mode 100644 docs/images/yaml_logo.png
delete mode 100644 information-coordinator-service/.gitignore
delete mode 100644 information-coordinator-service/Dockerfile
delete mode 100644 information-coordinator-service/api/README.md
delete mode 100644 information-coordinator-service/api/ics-api.json
delete mode 100644 information-coordinator-service/api/ics-api.yaml
delete mode 100644 information-coordinator-service/config/README
delete mode 100644 information-coordinator-service/config/application.yaml
delete mode 100644 information-coordinator-service/config/keystore.jks
delete mode 100644 information-coordinator-service/config/truststore.jks
delete mode 100644 information-coordinator-service/eclipse-formatter.xml
delete mode 100644 information-coordinator-service/pom.xml
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/Application.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/BeanFactory.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/SwaggerConfig.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/clients/AsyncRestClient.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/clients/AsyncRestClientFactory.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/clients/SecurityContext.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/configuration/ApplicationConfig.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/configuration/WebClientConfig.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/controllers/ErrorResponse.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/controllers/StatusController.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/controllers/VoidResponse.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/controllers/a1e/A1eCallbacks.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/controllers/a1e/A1eConsts.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/controllers/a1e/A1eController.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/controllers/a1e/A1eEiJobInfo.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/controllers/a1e/A1eEiJobStatus.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/controllers/a1e/A1eEiTypeInfo.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/controllers/r1consumer/ConsumerCallbacks.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/controllers/r1consumer/ConsumerConsts.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/controllers/r1consumer/ConsumerController.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/controllers/r1consumer/ConsumerInfoTypeInfo.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/controllers/r1consumer/ConsumerJobInfo.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/controllers/r1consumer/ConsumerJobStatus.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/controllers/r1consumer/ConsumerTypeRegistrationInfo.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/controllers/r1consumer/ConsumerTypeSubscriptionInfo.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/controllers/r1producer/ProducerCallbacks.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/controllers/r1producer/ProducerConsts.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/controllers/r1producer/ProducerController.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/controllers/r1producer/ProducerInfoTypeInfo.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/controllers/r1producer/ProducerJobInfo.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/controllers/r1producer/ProducerRegistrationInfo.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/controllers/r1producer/ProducerStatusInfo.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/exceptions/ServiceException.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/repository/InfoJob.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/repository/InfoJobs.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/repository/InfoProducer.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/repository/InfoProducers.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/repository/InfoType.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/repository/InfoTypeSubscriptions.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/repository/InfoTypes.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/repository/MultiMap.java
delete mode 100644 information-coordinator-service/src/main/java/org/oransc/ics/tasks/ProducerSupervision.java
delete mode 100644 information-coordinator-service/src/test/java/org/oransc/ics/ApplicationTest.java
delete mode 100644 information-coordinator-service/src/test/java/org/oransc/ics/MockInformationService.java
delete mode 100644 information-coordinator-service/src/test/java/org/oransc/ics/clients/AsyncRestClientTest.java
delete mode 100644 information-coordinator-service/src/test/java/org/oransc/ics/controller/A1eCallbacksSimulatorController.java
delete mode 100644 information-coordinator-service/src/test/java/org/oransc/ics/controller/ConsumerSimulatorController.java
delete mode 100644 information-coordinator-service/src/test/java/org/oransc/ics/controller/ProducerSimulatorController.java
diff --git a/docs/api-docs.rst b/docs/api-docs.rst
index 198418f4..c300738f 100644
--- a/docs/api-docs.rst
+++ b/docs/api-docs.rst
@@ -4,12 +4,6 @@
.. _api_docs:
-.. |swagger-icon| image:: ./images/swagger.png
- :width: 40px
-
-.. |yaml-icon| image:: ./images/yaml_logo.png
- :width: 40px
-
========
API-Docs
@@ -19,22 +13,8 @@ Here we describe the APIs to access the Non-RT RIC functions.
The core Non-RT RIC consists of several parts, with available APIs described in the sections below:
-* The Information Coordinator Service
* K8S Helm Chart LCM Manager (Initial) ****
-Information Coordinator Service
-===============================
-
-See `A1 Information Information Coordination Service API <./ics-api.html>`_ for full details of the API.
-
-The API is also described in Swagger-JSON and YAML:
-
-.. csv-table::
- :header: "API name", "|swagger-icon|", "|yaml-icon|"
- :widths: 10,5,5
-
- "A1 Information Coordination Service API", ":download:`link <../information-coordinator-service/api/ics-api.json>`", ":download:`link <../information-coordinator-service/api/ics-api.yaml>`"
-
K8S Helm Chart LCM Manager (Initial)
====================================
diff --git a/docs/conf.py b/docs/conf.py
index bef53928..8c7a946b 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -8,21 +8,9 @@ linkcheck_ignore = [
'http://localhost.*',
'http://127.0.0.1.*',
'https://gerrit.o-ran-sc.org.*',
- './ics-api.html', #Generated file that doesn't exist at link check.
]
-extensions = ['sphinxcontrib.redoc', 'sphinx.ext.intersphinx',]
-
-redoc = [
- {
- 'name': 'ICS API',
- 'page': 'ics-api',
- 'spec': '../information-coordinator-service/api/ics-api.json',
- 'embed': True,
- }
- ]
-
-redoc_uri = 'https://cdn.jsdelivr.net/npm/redoc@next/bundles/redoc.standalone.js'
+extensions = ['sphinx.ext.intersphinx',]
#intershpinx mapping with other projects
intersphinx_mapping = {}
diff --git a/docs/developer-guide.rst b/docs/developer-guide.rst
index 82862f86..90f3fa40 100644
--- a/docs/developer-guide.rst
+++ b/docs/developer-guide.rst
@@ -9,49 +9,6 @@ This document provides a quickstart for developers of the Non-RT RIC parts.
Additional developer guides are available on the `O-RAN SC NONRTRIC Developer wiki `_.
-Information Coordinator Service
--------------------------------
-The Information Coordinator Service is a Java 11 web application built using the Spring Framework. Using Spring Boot
-dependencies, it runs as a standalone application.
-
-Its main functionality is to act as a data subscription broker and to decouple data producer from data consumers.
-
-See the ./config/README file in the *information-coordinator-service* directory Gerrit repo on how to create and setup
-the certificates and private keys needed for HTTPS.
-
-Start standalone
-++++++++++++++++
-
-The project uses Maven. To start the Information Coordinator Service as a freestanding application, run the following
-command in the *information-coordinator-service* directory:
-
- +-----------------------------+
- | mvn spring-boot:run |
- +-----------------------------+
-
-There are a few files that needs to be available to run. These are referred to from the application.yaml file.
-The following properties have to be modified:
-
-* server.ssl.key-store=./config/keystore.jks
-* app.webclient.trust-store=./config/truststore.jks
-* app.vardata-directory=./target
-
-Start in Docker
-+++++++++++++++
-
-To build and deploy the Information Coordinator Service, go to the "information-coordinator-service" folder and run the
-following command:
-
- +-----------------------------+
- | mvn clean install |
- +-----------------------------+
-
-Then start the container by running the following command:
-
- +--------------------------------------------------------------------+
- | docker run nonrtric-information-coordinator-service |
- +--------------------------------------------------------------------+
-
O-DU & O-RU fronthaul recovery
------------------------------
diff --git a/docs/images/swagger.png b/docs/images/swagger.png
deleted file mode 100644
index f5a9e0c0c47ce2969affb08af684094da1850a58..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 3590
zcmV+h4*BtkP)`1K;`}Obi%l;x5n6<
z&fcrP(~#!w)ZFL7h@Ex#000e1Nkl3ZTi3=LTb0YY2Ca$8D)E;H}{hBqNB
zl5ESeTj)k4P6E8k7PF4y+J#75boy!qMHedGMB-7};cE>j
z{fEVqNF3gyUEn(`enk3-GA>wneaeSOf5XwjYfwChxT$zDN@|SUhR}nGE0Ij3;^p$?
zYdU_NuUGr%g8gbee;rT1UY4RDAa$kUNW|KS__!I*Z@t%JKOb*itQ~a>dfbTEq$+;n
zDL{PL#@5Z(IuYTU&VROY8V%Mv-at7qaUha&Q`J9}BZ~`{>X~UYaWIc!A~7Sg>Bq{4
zMT^yrdGqr5ij;`?%d)Tk{8_Y^f0+9#4TOY5%)(rB7>qj(W+4(fdKnSp*DR(MQ!7Sg
zoRP>BMMT7;9xv-aEY4Vc8ooxPC;}p>A-wqGWv4i-O(slWi0woSjeG~Eai;R-%fw2=
zAiBFgXfzl*bwf@>|0-s$eesB*|MYQ?%?w+JXn7P>C{v}yeyp{)7A8CqEswWeX`J!p
z&V(hRvF7MEqh5z#8xd#DrdmZsW
zL`DbZdGZ2*y}1*ilEn>(CQsu>MAr_dnsi9+oxV3koH`r4AK{bBO*Q$ih7XZ>{kcgs
zMJA995x#LR@9zCZgboP1&Iu$U3$g^ah5-ln;K4K`CS_+|%R6|G69flT(k6-jx~cn(
z2#LYi;N%1zd=EnenvXx+gHO1hHw$$oLfrq1{Z>G_48tRez}iQ~K1h0c{qaf!+rf-8
zfymZyj@Su5piy@5Vz1x65RnmT@x^{86oX(H`YC9X-%#;``2LxaNY`vYIg!xfcJT_KaKYd%^D&Jp5+Q;1*H1|F8PARbjjiu>U2FRiHKX5
zBolze2sRx-!MQ|Wu_q~OBG?@YUNM{wbnZR?c%y5=?v5X)UhGh}^O^`YS^^W^kBXp?PV6QJI}(+M-Hr6)4jTZMXi0xW
z)R7c55v=~!oeu9nrvmRAf(vWbLr-{RG)*FMirD54570IQn^mcOOZcQM^@wF0k%N-_
zo0y-_r_tZ`mqGR`C&hAU+zdmKTV+IY+eY=pxugbALsmDpij!jd+e@Bd
zCbuvrfij>TfHCLT@LMe-?AXo0fkFg@s377)?-1-OK&}=9Rw!vx(PdsU5iCh@M7KRj
ziJ*B4lnL}M;3wdaz+NCjN!N?zMDWkz5y85ErqI9#AY%_~9NIX6XCFkm%tY`A&=C<5
zS&*qZItE!72!b(0bGajKYm5HaGm#}RjcD~7M3O#4-qE_PoQS7rVY7%j3?e?X1PcN)
zByw1^a4_gSB64L%@#5Uj1Tyx}MZwpHQe$NGxo^>GoKPeBl()Q~rH`QLdjD+yNDufO
zE-w6;HhgM-e}p{fe(SWzjR_ScL~#llU(vYWiSD7=Oe@XD597^dta(4HYPzX#+=2}+
zpH^0aM#nH7xw639%~8x~OVZ)dtHXHLi4|->kVta@JSJjIjw=%@=cz6<^kJvEz+$VNHq0qom9tc~=tg#&7@
z-5=tEW7jPlboOh*FW6LrH#uB4)sT6zb!p<)ZgcwgHlAUdb=!DG46xO&4nHEMt$>cQ
zH8>G+8YVFj`FFR=5++AWJA)I!r#aj3QM;wwvJg4=mU0~VnzxkO>=xXQAB+ghGg*k>
z4UL!1M{szq_~pkgv}KSkM93jTJ`^1IAPn(_Gem?OP2%G%n05_T#0FX-ewPzjLBU6p
z=wUH_ngN~^MEx?z^M2%|XP5{%6j!iKfr-CGo#YT7-y<~+>G3^!ppvyl(2fTwz>LL}
zO-Yf%`O1Mx3bwHxv>mDlYyELPOLN4Pu6eO<8fa7+jclry8vVPM(spX_4WpV{OL;A(e+C||VJwZ<(xr5fw(?V8CdQgQwC;^$Yl(eP{
z_`~joP_b2bh>Lsc>X{Gb7-^x=k>REYy^g3xAsL8?h6h`gib5lWgGiSuS8i7lXdfRy
z<5fL(y(B`bCl9y66P1VYPDUdUU82UmyCWzRKj=k7Ya0UZSmvR`C5BGfh-g0){-Qb)
z)=Hen@?b+0?QKgBnxE+E@cLf=q`$HxeuzWa>b~0hLN3Ec9}o;{?n|=W7;K4twM-U)
zPfb%iX+_9#^RX?A*AHjjqkL`kx1DypM$o8WyZ2RZgLBC9qq^*awdO*8L-K-=|Z}I7X)+n
zCUbWP$e~$ov46D>5ytwJuGg}wSpP813p*$!!U}4!vlahfaM&=ilZh{z7Za&v)qJbs
zDEV7?DgJ8w$+gx|Y?HcXO%umidt*5vx6)Ih4qr>Tfi@Lwd!03pXNm
z)k{CCiBv@ej85$MCv4?
zgV-+1yzU%wre(w7@&pGFJpL2fazON@4Yh`vABn{%?;yP?$
zZfwh$SqFokm-DQ3tSjKioh^(FFA=F<@&_~Ld!Y%z+QjmZk&C1)x6o<1Z?R9&MZhc-
zw|d}2Lu?UH7Kfe)osN9WKSdmggv-D8zWA4lbZX&!9Ij%=1m66}TZ|C7zTViVK~giG
zKfWC;owg&i&@g+ndxLK-I9f8TuSIzOr}gbysQm?rY2Baow|;IN4ruG90rqT%Bx1E*
zOtf&3i$4x>jP_oU|Js*}9wI_Dve)>+16B%397*=I^xk!e*NZwDEA7HvRV0
z&*6YX2ikAEj&LesN|0u6HB%3+umAm3ijXfm^n~v)Q2!=uP5joj|DEsH&G4;&S6_%)
z8>e5`MMUFT-Tq7m6fj1+H=cAygt$*k{v2*L*!9+bND_{VQ(>2iF;|icD=9?BTC?R4
z@Hri-kx}){nd>jc`271~#DkbQ=r&BPQ}p)Lu>g_6ke!iXOCP_oQvwnzY7amSs>FCF
zB~!-M)UMun^qTF*Ss7fjdsQBBcFuczKa;YhP$oN1HmjghjMl)@;z#5^mef@L%RJD`
zUxa#EB^Y26SR(*@W_$jJU`pTbfvVxqfOMy!y3dEZYm`6p6xZM`tQxxXoUM(dSVo8K
zj-PD|CG3d5MOq0m_eyc_jQaD70Yc%HM;U|Q|?`?YJW(bcP
z_UfTwYrbRG^Kl5srzG0F`@Tzq*J`=TLG^V$w$^aKd5)vn+3{mfm+{x2i;m%!aTmN!
zK#dGxTkofqI0r$N3C&p3<_wMUw;0h-usKu
z>HN&LjZ!0)Gz%qE#!>I~+9y`s?QI`sKl?3R8uc{xREmGu2LvP(l8!w;ju0abG|e_G
zG=KsKO%f9yk(R9c@h1T`R$138#5A5tzh>$x`K+(M^?$i63lU~}n{J4+?McXR)C|`s
z`ESv6$9=W0YK4G^@^=2YtFa9!H_IMXe|904S=MSZZu#@ysE4-POy-+ljt&{6Hd%
zM9NOgARV>LN
z_-#QJBwgg5>zOs!`@Usw1BbE$@H4BN4@|0wfvrbzeQMr{d8-!HMn4Si1~we7_iY#SaO=T|M0qm%JaHDo$3kxF(8sc
zD8qn_Hv}1D`?74+a@i+_tjVS4zIQil44iA~dob`64o9svG!7_bIKh<>>M%JlyMH2S
zM3nwOgQ!d*>T4{v&Nhh@4uhZ=#6k=4#;H0xh<2UFqskhdV&Z1Q)$7%IoV}pt9ssK#
z*_qcU-|rW7)gYXEY!6&tezkY1lCcqi^;MovU|ch(@Uw>wUK-<2Y%SC99{LQXGt{Af
z`7qjTDLH62r=Ed^)tm9+$Vzk{E>GuSk-7}V$Ef|21o%N5EOq5vwA;pu
zL*5&hqY8v|^2JLJLRnr_mjE_;Ki-W4z_qY|$y{>39xgRPN5Vo8QvbP%zDW+(+MI3U
zPTN6Ek7Rdi+0kK1BNkLFxb^RIu1FTMB_YZgeWqEfqaiEX32qsWeO2sQb0~eB-1nUK
zp%m(pR5TB%REQDT@IH@Za5vIqe45ZfS4bq3rNAL{(L#f5#p#5c=~iW?Mq8s!pSv@D
z?agH7B5=!Qe=4Z@smHWy9D38@8|%mM^yN4;;LpZ0pLnIdZf?nXk!Q+@N+zvV_qK9k|8Fu^cFgI^mq_@&0C{g68+w5my0P5{3)d0K
z{>hiU<&h6KqGgd{ssK?WF|5pJO>l$v#wZi3hy5
zzIS_<2mk(p3F(WQpiJY?chsBGf(|ESMvOY+dD@qDH4y%oGu0pQ{J;*yno7=M^_w6w
zzT&qMg^ca}%ZkxwI$EnI@!5MN=x3ROM|F_zN3X|ZMgm$+-Qm*;VEJpeRgTF86#k+=
ztOBN9=as|joA038$sN+0GF^=U?jSsnw{ns%F45)+4P!c_MLEEcTWqZs*SV)SEwSp%
zzlMOZ&bD)>z4h9iKyH3-=~5e0%t*k0Q{uKWH4LA2msuxbkr|)h+Po-=gOm&
z0>E`V_;4fE$ZO$q%XjUH0@eV;|{De==ohnJ~j4H}k$A@YHHR22>bNiwUoF(Jy
zghsd%1rHK95H}(DMPov;t#5{t*_O`cZc4P%toy`VinyLD=NJObpJBBsXNObEd%YWu
zD1ACln&6dkm3ytPT4dKwTYiGf5a|JP%filihOor-{P-o3w+lAGkvqFn-hP9VO{Sir7;|0q
z9t55j6rUl5gkZdi(EJZc0Qr9ikXGFrSJ!P&L$|Y%0EV~OO=-PLJBGHDk2}FZd#Pkm
z8@MZ6rnqfaev8Ml1W&q@HSS{jvFZxFz}P281!8i(s{3j9P*L!}>y5_p5Yl48^~?6@
z#*@eRo@Bm8;c3W-J)L_n$6v<5c4>iu<%z6=AA)y>N+r1
z(9@O2hteDlw2VkKMlL*|eGA8;HDUp{#1!tp@%jXxNtGh>SjoyA!h)oVBAW+uXmdRj8r7gh6VXdhJ)NGanXIlAavaqb~Fw2Pfh65xCnm65>ZZ8Iid
zrBRYLWHhWA>^*3DRKq0tqH>7vX-lZN!WmUtcH`6fTXm;&USf9COJO9Wy+qcXi*NJ)
za=Zb0#u3qvlR`Y^5IY)njCVIczr8h8r4%jTDY+EQpesD~tFMz&r`ck3fl`??VN*}*
z7V~3aFOE1z>0lqBbNEUEeIwc-P0_m63L(N0mN0YWF!0|iPwPKjp)DS<%0WVy%Yf>6
zpQZ_d-DA<#L>W4$R176y26if05rB$jEN*YkKsAk(nv=iGudr+wpeG}V=
z&Y^bY-qJZ@XI-pmDPgX>*KBU(VIW8c8?$G+Rz9hC%?bju5-IcWStAUGDA9+uF+1kG
zz@W0+W>pbfTVf(00^tE-NVJ;SA~O^|%qt84r|IOdS?qLD)E4aeZks!*G?Rwp;zaiUJQ|@N6p?G25ow*AwtrN
zI7E5e7JG#j6`ugWnW}{ymA;<7NYGOok8k^c<=x?^Pk
diff --git a/docs/overview.rst b/docs/overview.rst
index c96bded9..0a8c6d36 100644
--- a/docs/overview.rst
+++ b/docs/overview.rst
@@ -85,6 +85,9 @@ The service is not involved in data delivery and hence does not put restrictions
Implementation:
* Implemented as a Java Spring Boot application.
+* Repo: *nonrtric/plt/informationcoordinatorservice*.
+
+More details available at the `Information Coordination Service site `_
A1 Policy Management Service (from ONAP CCSDK)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/docs/release-notes.rst b/docs/release-notes.rst
index 94200b8f..db3dd6d8 100644
--- a/docs/release-notes.rst
+++ b/docs/release-notes.rst
@@ -14,30 +14,6 @@ This document provides the release notes for the release of the different parts
:local:
-Version history Information Coordinator Service
-===============================================
-
-+------------+----------+------------------+--------------------+
-| **Date** | **Ver.** | **Author** | **Comment** |
-| | | | |
-+------------+----------+------------------+--------------------+
-| 2020-12-03 | 1.0.0 | Henrik Andersson | Cherry Release |
-| | | | |
-+------------+----------+------------------+--------------------+
-| 2021-06-23 | 1.1.0 | Henrik Andersson | D Release |
-| | | | |
-+------------+----------+------------------+--------------------+
-| 2021-12-13 | 1.2.0 | Henrik Andersson | E Release |
-| | | | Renamed and minor |
-| | | | improvements |
-+------------+----------+------------------+--------------------+
-| 2022-02-07 | 1.2.1 | Henrik Andersson | E Maintenance |
-| | | | Release |
-| | | | Non root user in |
-| | | | Docker |
-+------------+----------+------------------+--------------------+
-
-
Version history Helm Manager
============================
diff --git a/information-coordinator-service/.gitignore b/information-coordinator-service/.gitignore
deleted file mode 100644
index b83d2226..00000000
--- a/information-coordinator-service/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target/
diff --git a/information-coordinator-service/Dockerfile b/information-coordinator-service/Dockerfile
deleted file mode 100644
index cc8813e9..00000000
--- a/information-coordinator-service/Dockerfile
+++ /dev/null
@@ -1,51 +0,0 @@
-#
-# ============LICENSE_START=======================================================
-# Copyright (C) 2020 Nordix Foundation.
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# SPDX-License-Identifier: Apache-2.0
-# ============LICENSE_END=========================================================
-#
-FROM openjdk:11-jre-slim
-
-ARG JAR
-
-WORKDIR /opt/app/information-coordinator-service
-RUN mkdir -p /var/log/information-coordinator-service
-RUN mkdir -p /opt/app/information-coordinator-service/etc/cert/
-RUN mkdir -p /var/information-coordinator-service
-
-EXPOSE 8083 8434
-
-ADD /config/application.yaml /opt/app/information-coordinator-service/config/application.yaml
-ADD target/${JAR} /opt/app/information-coordinator-service/information-coordinator-service.jar
-ADD /config/keystore.jks /opt/app/information-coordinator-service/etc/cert/keystore.jks
-ADD /config/truststore.jks /opt/app/information-coordinator-service/etc/cert/truststore.jks
-
-ARG user=nonrtric
-ARG group=nonrtric
-
-RUN groupadd $user && \
- useradd -r -g $group $user
-RUN chown -R $user:$group /opt/app/information-coordinator-service
-RUN chown -R $user:$group /var/log/information-coordinator-service
-RUN chown -R $user:$group /var/information-coordinator-service
-
-USER ${user}
-
-CMD ["java", "-jar", "/opt/app/information-coordinator-service/information-coordinator-service.jar"]
-
-
-
-
diff --git a/information-coordinator-service/api/README.md b/information-coordinator-service/api/README.md
deleted file mode 100644
index e69de29b..00000000
diff --git a/information-coordinator-service/api/ics-api.json b/information-coordinator-service/api/ics-api.json
deleted file mode 100644
index d49398c1..00000000
--- a/information-coordinator-service/api/ics-api.json
+++ /dev/null
@@ -1,1289 +0,0 @@
-{
- "components": {"schemas": {
- "consumer_information_type": {
- "description": "Information for an Information type",
- "type": "object",
- "required": [
- "job_data_schema",
- "no_of_producers",
- "type_status"
- ],
- "properties": {
- "no_of_producers": {
- "format": "int32",
- "description": "The number of registered producers for the type",
- "type": "integer"
- },
- "type_status": {
- "description": "Allowed values: ENABLED: one or several producers for the information type are available DISABLED: no producers for the information type are available",
- "type": "string",
- "enum": [
- "ENABLED",
- "DISABLED"
- ]
- },
- "job_data_schema": {
- "description": "Json schema for the job data",
- "type": "object"
- }
- }
- },
- "EiTypeObject": {
- "description": "Information for an EI type",
- "type": "object"
- },
- "service_status_info": {
- "type": "object",
- "required": [
- "no_of_jobs",
- "no_of_producers",
- "no_of_types",
- "status"
- ],
- "properties": {
- "no_of_producers": {
- "format": "int32",
- "description": "Number of Information Producers",
- "type": "integer"
- },
- "no_of_types": {
- "format": "int32",
- "description": "Number of Information Types",
- "type": "integer"
- },
- "no_of_jobs": {
- "format": "int32",
- "description": "Number of Information Jobs",
- "type": "integer"
- },
- "status": {
- "description": "status text",
- "type": "string"
- }
- }
- },
- "producer_registration_info": {
- "description": "Information for an Information Producer",
- "type": "object",
- "required": [
- "info_job_callback_url",
- "info_producer_supervision_callback_url",
- "supported_info_types"
- ],
- "properties": {
- "info_producer_supervision_callback_url": {
- "description": "callback for producer supervision",
- "type": "string"
- },
- "supported_info_types": {
- "description": "Supported Information Type IDs",
- "type": "array",
- "items": {
- "description": "Supported Information Type IDs",
- "type": "string"
- }
- },
- "info_job_callback_url": {
- "description": "callback for Information Job",
- "type": "string"
- }
- }
- },
- "consumer_type_registration_info": {
- "description": "Information for an Information type",
- "type": "object",
- "required": [
- "info_type_id",
- "job_data_schema",
- "status"
- ],
- "properties": {
- "info_type_id": {
- "description": "Information type identifier",
- "type": "string"
- },
- "job_data_schema": {
- "description": "Json schema for the job data",
- "type": "object"
- },
- "status": {
- "description": "Allowed values: REGISTERED: the information type has been registered DEREGISTERED: the information type has been removed",
- "type": "string",
- "enum": [
- "REGISTERED",
- "DEREGISTERED"
- ]
- }
- }
- },
- "ProblemDetails": {
- "description": "A problem detail to carry details in a HTTP response according to RFC 7807",
- "type": "object",
- "properties": {
- "detail": {
- "description": "A human-readable explanation specific to this occurrence of the problem.",
- "type": "string",
- "example": "Information Job type not found"
- },
- "status": {
- "format": "int32",
- "description": "The HTTP status code generated by the origin server for this occurrence of the problem.",
- "type": "integer",
- "example": 404
- }
- }
- },
- "EiJobStatusObject": {
- "description": "Status for an EI job",
- "type": "object",
- "required": ["eiJobStatus"],
- "properties": {"eiJobStatus": {
- "description": "Allowed values for EI job status: ENABLED: the A1-EI producer is able to deliver EI result for the EI job DISABLED: the A1-EI producer is unable to deliver EI result for the EI job",
- "type": "string",
- "enum": [
- "ENABLED",
- "DISABLED"
- ]
- }}
- },
- "consumer_job_status": {
- "description": "Status for an Information Job",
- "type": "object",
- "required": [
- "info_job_status",
- "producers"
- ],
- "properties": {
- "info_job_status": {
- "description": "Allowed values: ENABLED: the A1-Information producer is able to deliver result for the Information Job DISABLED: the A1-Information producer is unable to deliver result for the Information Job",
- "type": "string",
- "enum": [
- "ENABLED",
- "DISABLED"
- ]
- },
- "producers": {
- "description": "An array of all registered Information Producer Identifiers.",
- "type": "array",
- "items": {
- "description": "An array of all registered Information Producer Identifiers.",
- "type": "string"
- }
- }
- }
- },
- "EiJobObject": {
- "description": "Information for an Enrichment Information Job",
- "type": "object",
- "required": [
- "eiTypeId",
- "jobDefinition",
- "jobOwner",
- "jobResultUri"
- ],
- "properties": {
- "eiTypeId": {
- "description": "EI type Idenitifier of the EI job",
- "type": "string"
- },
- "jobResultUri": {
- "description": "The target URI of the EI data",
- "type": "string"
- },
- "jobOwner": {
- "description": "Identity of the owner of the job",
- "type": "string"
- },
- "statusNotificationUri": {
- "description": "The target of EI job status notifications",
- "type": "string"
- },
- "jobDefinition": {
- "description": "EI type specific job data",
- "type": "object"
- }
- }
- },
- "producer_info_type_info": {
- "description": "Information for an Information Type",
- "type": "object",
- "required": ["info_job_data_schema"],
- "properties": {
- "info_type_information": {
- "description": "Type specific information for the information type",
- "type": "object"
- },
- "info_job_data_schema": {
- "description": "Json schema for the job data",
- "type": "object"
- }
- }
- },
- "producer_info_job_request": {
- "description": "The body of the Information Producer callbacks for Information Job creation and deletion",
- "type": "object",
- "required": ["info_job_identity"],
- "properties": {
- "owner": {
- "description": "The owner of the job",
- "type": "string"
- },
- "last_updated": {
- "description": "The time when the job was last updated or created (ISO-8601)",
- "type": "string"
- },
- "info_job_identity": {
- "description": "Identity of the Information Job",
- "type": "string"
- },
- "target_uri": {
- "description": "URI for the target of the produced Information",
- "type": "string"
- },
- "info_job_data": {
- "description": "Json for the job data",
- "type": "object"
- },
- "info_type_identity": {
- "description": "Type identity for the job",
- "type": "string"
- }
- }
- },
- "consumer_job": {
- "description": "Information for an Information Job",
- "type": "object",
- "required": [
- "info_type_id",
- "job_definition",
- "job_owner",
- "job_result_uri"
- ],
- "properties": {
- "info_type_id": {
- "description": "Information type Idenitifier of the subscription job",
- "type": "string"
- },
- "job_result_uri": {
- "description": "The target URI of the subscribed information",
- "type": "string"
- },
- "job_owner": {
- "description": "Identity of the owner of the job",
- "type": "string"
- },
- "job_definition": {
- "description": "Information type specific job data",
- "type": "object"
- },
- "status_notification_uri": {
- "description": "The target of Information subscription job status notifications",
- "type": "string"
- }
- }
- },
- "producer_status": {
- "description": "Status for an Info Producer",
- "type": "object",
- "required": ["operational_state"],
- "properties": {"operational_state": {
- "description": "Represents the operational states",
- "type": "string",
- "enum": [
- "ENABLED",
- "DISABLED"
- ]
- }}
- },
- "Void": {
- "description": "Void/empty ",
- "type": "object"
- },
- "Link": {
- "type": "object",
- "properties": {
- "templated": {"type": "boolean"},
- "href": {"type": "string"}
- }
- },
- "consumer_type_subscription_info": {
- "description": "Information for an information type subscription",
- "type": "object",
- "required": [
- "owner",
- "status_result_uri"
- ],
- "properties": {
- "owner": {
- "description": "Identity of the owner of the subscription",
- "type": "string"
- },
- "status_result_uri": {
- "description": "The target URI of the subscribed information",
- "type": "string"
- }
- }
- }
- }},
- "openapi": "3.0.1",
- "paths": {
- "/data-producer/v1/info-types": {"get": {
- "summary": "Info Type identifiers",
- "operationId": "getInfoTypdentifiers",
- "responses": {"200": {
- "description": "Info Type identifiers",
- "content": {"application/json": {"schema": {
- "type": "array",
- "items": {"type": "string"}
- }}}
- }},
- "tags": ["Data producer (registration)"]
- }},
- "/actuator/threaddump": {"get": {
- "summary": "Actuator web endpoint 'threaddump'",
- "operationId": "threaddump_2",
- "responses": {"200": {
- "description": "OK",
- "content": {"*/*": {"schema": {"type": "object"}}}
- }},
- "tags": ["Actuator"]
- }},
- "/A1-EI/v1/eitypes/{eiTypeId}": {"get": {
- "summary": "Individual EI type",
- "operationId": "getEiType",
- "responses": {
- "200": {
- "description": "EI type",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EiTypeObject"}}}
- },
- "404": {
- "description": "Enrichment Information type is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "eiTypeId",
- "required": true
- }],
- "tags": ["A1-EI (registration)"]
- }},
- "/data-producer/v1/info-types/{infoTypeId}": {
- "get": {
- "summary": "Individual Information Type",
- "operationId": "getInfoType",
- "responses": {
- "200": {
- "description": "Info Type",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_info_type_info"}}}
- },
- "404": {
- "description": "Information type is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "infoTypeId",
- "required": true
- }],
- "tags": ["Data producer (registration)"]
- },
- "delete": {
- "summary": "Individual Information Type",
- "operationId": "deleteInfoType",
- "responses": {
- "200": {
- "description": "Not used",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- },
- "204": {
- "description": "Producer deleted",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- },
- "404": {
- "description": "Information type is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- },
- "409": {
- "description": "The Information type has one or several active producers",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "infoTypeId",
- "required": true
- }],
- "tags": ["Data producer (registration)"]
- },
- "put": {
- "summary": "Individual Information Type",
- "requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_info_type_info"}}},
- "required": true
- },
- "operationId": "putInfoType",
- "responses": {
- "200": {
- "description": "Type updated",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- },
- "201": {
- "description": "Type created",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- },
- "400": {
- "description": "Input validation failed",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "infoTypeId",
- "required": true
- }],
- "tags": ["Data producer (registration)"]
- }
- },
- "/data-consumer/v1/info-type-subscription/{subscriptionId}": {
- "get": {
- "summary": "Individual subscription for information types (registration/deregistration)",
- "operationId": "getIndividualTypeSubscription",
- "responses": {
- "200": {
- "description": "Type subscription",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/consumer_type_subscription_info"}}}
- },
- "404": {
- "description": "Subscription is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "subscriptionId",
- "required": true
- }],
- "tags": ["Data consumer"]
- },
- "delete": {
- "summary": "Individual subscription for information types (registration/deregistration)",
- "operationId": "deleteIndividualTypeSubscription",
- "responses": {
- "200": {
- "description": "Not used",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- },
- "204": {
- "description": "Subscription deleted",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- },
- "404": {
- "description": "Subscription is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "subscriptionId",
- "required": true
- }],
- "tags": ["Data consumer"]
- },
- "put": {
- "summary": "Individual subscription for information types (registration/deregistration)",
- "requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/consumer_type_subscription_info"}}},
- "required": true
- },
- "description": "This service operation is used to subscribe to notifications for changes in the availability of data types.",
- "operationId": "putIndividualTypeSubscription",
- "responses": {
- "200": {
- "description": "Subscription updated",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- },
- "201": {
- "description": "Subscription created",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "subscriptionId",
- "required": true
- }],
- "tags": ["Data consumer"]
- }
- },
- "/example-dataproducer/health-check": {"get": {
- "summary": "Producer supervision",
- "description": "The endpoint is provided by the Information Producer and is used for supervision of the producer.",
- "operationId": "producerSupervision",
- "responses": {"200": {
- "description": "The producer is OK",
- "content": {"application/json": {"schema": {"type": "string"}}}
- }},
- "tags": ["Data producer (callbacks)"]
- }},
- "/actuator/loggers": {"get": {
- "summary": "Actuator web endpoint 'loggers'",
- "operationId": "loggers",
- "responses": {"200": {
- "description": "OK",
- "content": {"*/*": {"schema": {"type": "object"}}}
- }},
- "tags": ["Actuator"]
- }},
- "/actuator/health/**": {"get": {
- "summary": "Actuator web endpoint 'health-path'",
- "operationId": "health-path",
- "responses": {"200": {
- "description": "OK",
- "content": {"*/*": {"schema": {"type": "object"}}}
- }},
- "tags": ["Actuator"]
- }},
- "/data-consumer/v1/info-types": {"get": {
- "summary": "Information type identifiers",
- "operationId": "getinfoTypeIdentifiers",
- "responses": {"200": {
- "description": "Information type identifiers",
- "content": {"application/json": {"schema": {
- "type": "array",
- "items": {"type": "string"}
- }}}
- }},
- "tags": ["Data consumer"]
- }},
- "/example-dataconsumer/info-type-status": {"post": {
- "summary": "Callback for changed Information type registration status",
- "requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/consumer_type_registration_info"}}},
- "required": true
- },
- "description": "The primitive is implemented by the data consumer and is invoked when a Information type status has been changed. Subscription are managed by primitives in 'Data consumer'",
- "operationId": "typeStatusCallback",
- "responses": {"200": {
- "description": "OK",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- }},
- "tags": ["Data consumer (callbacks)"]
- }},
- "/actuator/metrics/{requiredMetricName}": {"get": {
- "summary": "Actuator web endpoint 'metrics-requiredMetricName'",
- "operationId": "metrics-requiredMetricName",
- "responses": {"200": {
- "description": "OK",
- "content": {"*/*": {"schema": {"type": "object"}}}
- }},
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "requiredMetricName",
- "required": true
- }],
- "tags": ["Actuator"]
- }},
- "/actuator": {"get": {
- "summary": "Actuator root web endpoint",
- "operationId": "links",
- "responses": {"200": {
- "description": "OK",
- "content": {"*/*": {"schema": {
- "additionalProperties": {
- "additionalProperties": {"$ref": "#/components/schemas/Link"},
- "type": "object"
- },
- "type": "object"
- }}}
- }},
- "tags": ["Actuator"]
- }},
- "/data-consumer/v1/info-jobs": {"get": {
- "summary": "Information Job identifiers",
- "description": "query for information job identifiers",
- "operationId": "getJobIds",
- "responses": {
- "200": {
- "description": "Information information job identifiers",
- "content": {"application/json": {"schema": {
- "type": "array",
- "items": {"type": "string"}
- }}}
- },
- "404": {
- "description": "Information type is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- }
- },
- "parameters": [
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "infoTypeId",
- "description": "selects subscription jobs of matching information type",
- "required": false
- },
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "owner",
- "description": "selects result for one owner",
- "required": false
- }
- ],
- "tags": ["Data consumer"]
- }},
- "/actuator/loggers/{name}": {
- "post": {
- "summary": "Actuator web endpoint 'loggers-name'",
- "operationId": "loggers-name",
- "responses": {"200": {
- "description": "OK",
- "content": {"*/*": {"schema": {"type": "object"}}}
- }},
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "name",
- "required": true
- }],
- "tags": ["Actuator"]
- },
- "get": {
- "summary": "Actuator web endpoint 'loggers-name'",
- "operationId": "loggers-name_2",
- "responses": {"200": {
- "description": "OK",
- "content": {"*/*": {"schema": {"type": "object"}}}
- }},
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "name",
- "required": true
- }],
- "tags": ["Actuator"]
- }
- },
- "/example-dataproducer/info-job": {"post": {
- "summary": "Callback for Information Job creation/modification",
- "requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_info_job_request"}}},
- "required": true
- },
- "description": "The call is invoked to activate or to modify a data subscription. The endpoint is provided by the Information Producer.",
- "operationId": "jobCreatedCallback",
- "responses": {"200": {
- "description": "OK",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- }},
- "tags": ["Data producer (callbacks)"]
- }},
- "/example-dataproducer/info-job/{infoJobId}": {"delete": {
- "summary": "Callback for Information Job deletion",
- "description": "The call is invoked to terminate a data subscription. The endpoint is provided by the Information Producer.",
- "operationId": "jobDeletedCallback",
- "responses": {"200": {
- "description": "OK",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- }},
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "infoJobId",
- "required": true
- }],
- "tags": ["Data producer (callbacks)"]
- }},
- "/A1-EI/v1/eijobs/{eiJobId}/status": {"get": {
- "summary": "EI job status",
- "operationId": "getEiJobStatus_1",
- "responses": {
- "200": {
- "description": "EI job status",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EiJobStatusObject"}}}
- },
- "404": {
- "description": "Enrichment Information job is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "eiJobId",
- "required": true
- }],
- "tags": ["A1-EI (registration)"]
- }},
- "/data-producer/v1/info-producers/{infoProducerId}/status": {"get": {
- "summary": "Information producer status",
- "operationId": "getInfoProducerStatus",
- "responses": {
- "200": {
- "description": "Information producer status",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_status"}}}
- },
- "404": {
- "description": "Information producer is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "infoProducerId",
- "required": true
- }],
- "tags": ["Data producer (registration)"]
- }},
- "/data-consumer/v1/info-jobs/{infoJobId}/status": {"get": {
- "summary": "Job status",
- "operationId": "getEiJobStatus",
- "responses": {
- "200": {
- "description": "Information subscription job status",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/consumer_job_status"}}}
- },
- "404": {
- "description": "Information subscription job is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "infoJobId",
- "required": true
- }],
- "tags": ["Data consumer"]
- }},
- "/actuator/metrics": {"get": {
- "summary": "Actuator web endpoint 'metrics'",
- "operationId": "metrics",
- "responses": {"200": {
- "description": "OK",
- "content": {"*/*": {"schema": {"type": "object"}}}
- }},
- "tags": ["Actuator"]
- }},
- "/example-dataconsumer/info-jobs/{infoJobId}/status": {"post": {
- "summary": "Callback for changed Information Job status",
- "requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EiJobStatusObject"}}},
- "required": true
- },
- "description": "The primitive is implemented by the data consumer and is invoked when a Information Job status has been changed.",
- "operationId": "jobStatusCallback",
- "responses": {"200": {
- "description": "OK",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- }},
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "infoJobId",
- "required": true
- }],
- "tags": ["A1-EI (callbacks)"]
- }},
- "/actuator/info": {"get": {
- "summary": "Actuator web endpoint 'info'",
- "operationId": "info",
- "responses": {"200": {
- "description": "OK",
- "content": {"*/*": {"schema": {"type": "object"}}}
- }},
- "tags": ["Actuator"]
- }},
- "/A1-EI/v1/eitypes": {"get": {
- "summary": "EI type identifiers",
- "operationId": "getEiTypeIdentifiers",
- "responses": {"200": {
- "description": "EI type identifiers",
- "content": {"application/json": {"schema": {
- "type": "array",
- "items": {"type": "string"}
- }}}
- }},
- "tags": ["A1-EI (registration)"]
- }},
- "/data-producer/v1/info-producers/{infoProducerId}": {
- "get": {
- "summary": "Individual Information Producer",
- "operationId": "getInfoProducer",
- "responses": {
- "200": {
- "description": "Information producer",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_registration_info"}}}
- },
- "404": {
- "description": "Information producer is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "infoProducerId",
- "required": true
- }],
- "tags": ["Data producer (registration)"]
- },
- "delete": {
- "summary": "Individual Information Producer",
- "operationId": "deleteInfoProducer",
- "responses": {
- "200": {
- "description": "Not used",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- },
- "204": {
- "description": "Producer deleted",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- },
- "404": {
- "description": "Producer is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "infoProducerId",
- "required": true
- }],
- "tags": ["Data producer (registration)"]
- },
- "put": {
- "summary": "Individual Information Producer",
- "requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_registration_info"}}},
- "required": true
- },
- "operationId": "putInfoProducer",
- "responses": {
- "200": {
- "description": "Producer updated",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- },
- "201": {
- "description": "Producer created",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- },
- "400": {
- "description": "Input validation failed",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- },
- "404": {
- "description": "Producer type not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "infoProducerId",
- "required": true
- }],
- "tags": ["Data producer (registration)"]
- }
- },
- "/status": {"get": {
- "summary": "Returns status and statistics of this service",
- "operationId": "getStatus",
- "responses": {"200": {
- "description": "Service is living",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/service_status_info"}}}
- }},
- "tags": ["Service status"]
- }},
- "/data-consumer/v1/info-type-subscription": {"get": {
- "summary": "Information type subscription identifiers",
- "description": "query for information type subscription identifiers",
- "operationId": "getInfoTypeSubscriptions",
- "responses": {"200": {
- "description": "Information type subscription identifiers",
- "content": {"application/json": {"schema": {
- "type": "array",
- "items": {"type": "string"}
- }}}
- }},
- "parameters": [{
- "schema": {"type": "string"},
- "in": "query",
- "name": "owner",
- "description": "selects result for one owner",
- "required": false
- }],
- "tags": ["Data consumer"]
- }},
- "/A1-EI/v1/eijobs/{eiJobId}": {
- "get": {
- "summary": "Individual EI job",
- "operationId": "getIndividualEiJob_1",
- "responses": {
- "200": {
- "description": "EI job",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EiJobObject"}}}
- },
- "404": {
- "description": "Enrichment Information job is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "eiJobId",
- "required": true
- }],
- "tags": ["A1-EI (registration)"]
- },
- "delete": {
- "summary": "Individual EI job",
- "operationId": "deleteIndividualEiJob_1",
- "responses": {
- "200": {
- "description": "Not used",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- },
- "204": {
- "description": "Job deleted",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- },
- "404": {
- "description": "Enrichment Information job is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "eiJobId",
- "required": true
- }],
- "tags": ["A1-EI (registration)"]
- },
- "put": {
- "summary": "Individual EI job",
- "requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EiJobObject"}}},
- "required": true
- },
- "operationId": "putIndividualEiJob",
- "responses": {
- "200": {
- "description": "Job updated",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- },
- "201": {
- "description": "Job created",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- },
- "400": {
- "description": "Input validation failed",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- },
- "404": {
- "description": "Enrichment Information type is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- },
- "409": {
- "description": "Cannot modify job type",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "eiJobId",
- "required": true
- }],
- "tags": ["A1-EI (registration)"]
- }
- },
- "/actuator/logfile": {"get": {
- "summary": "Actuator web endpoint 'logfile'",
- "operationId": "logfile",
- "responses": {"200": {
- "description": "OK",
- "content": {"*/*": {"schema": {"type": "object"}}}
- }},
- "tags": ["Actuator"]
- }},
- "/data-consumer/v1/info-jobs/{infoJobId}": {
- "get": {
- "summary": "Individual data subscription job",
- "operationId": "getIndividualEiJob",
- "responses": {
- "200": {
- "description": "Information subscription job",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/consumer_job"}}}
- },
- "404": {
- "description": "Information subscription job is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "infoJobId",
- "required": true
- }],
- "tags": ["Data consumer"]
- },
- "delete": {
- "summary": "Individual data subscription job",
- "operationId": "deleteIndividualEiJob",
- "responses": {
- "200": {
- "description": "Not used",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- },
- "204": {
- "description": "Job deleted",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- },
- "404": {
- "description": "Information subscription job is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "infoJobId",
- "required": true
- }],
- "tags": ["Data consumer"]
- },
- "put": {
- "summary": "Individual data subscription job",
- "requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/consumer_job"}}},
- "required": true
- },
- "description": "The job will be enabled when a producer is available",
- "operationId": "putIndividualInfoJob",
- "responses": {
- "200": {
- "description": "Job updated",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- },
- "201": {
- "description": "Job created",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- },
- "400": {
- "description": "Input validation failed",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- },
- "404": {
- "description": "Information type is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- },
- "409": {
- "description": "Cannot modify job type",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- }
- },
- "parameters": [
- {
- "schema": {"type": "string"},
- "in": "path",
- "name": "infoJobId",
- "required": true
- },
- {
- "schema": {
- "default": false,
- "type": "boolean"
- },
- "in": "query",
- "name": "typeCheck",
- "description": "when true, a validation of that the type exists and that the job matches the type schema.",
- "required": false
- }
- ],
- "tags": ["Data consumer"]
- }
- },
- "/data-producer/v1/info-producers": {"get": {
- "summary": "Information producer identifiers",
- "operationId": "getInfoProducerIdentifiers",
- "responses": {"200": {
- "description": "Information producer identifiers",
- "content": {"application/json": {"schema": {
- "type": "array",
- "items": {"type": "string"}
- }}}
- }},
- "parameters": [{
- "schema": {"type": "string"},
- "in": "query",
- "name": "infoTypeId",
- "description": "If given, only the producers for the EI Data type is returned.",
- "required": false
- }],
- "tags": ["Data producer (registration)"]
- }},
- "/data-consumer/v1/info-types/{infoTypeId}": {"get": {
- "summary": "Individual information type",
- "operationId": "getInfoType_1",
- "responses": {
- "200": {
- "description": "Information type",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/consumer_information_type"}}}
- },
- "404": {
- "description": "Information type is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "infoTypeId",
- "required": true
- }],
- "tags": ["Data consumer"]
- }},
- "/actuator/health": {"get": {
- "summary": "Actuator web endpoint 'health'",
- "operationId": "health",
- "responses": {"200": {
- "description": "OK",
- "content": {"*/*": {"schema": {"type": "object"}}}
- }},
- "tags": ["Actuator"]
- }},
- "/A1-EI/v1/eijobs": {"get": {
- "summary": "EI job identifiers",
- "description": "query for EI job identifiers",
- "operationId": "getEiJobIds",
- "responses": {
- "200": {
- "description": "EI job identifiers",
- "content": {"application/json": {"schema": {
- "type": "array",
- "items": {"type": "string"}
- }}}
- },
- "404": {
- "description": "Enrichment Information type is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- }
- },
- "parameters": [
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "eiTypeId",
- "description": "selects EI jobs of matching EI type",
- "required": false
- },
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "owner",
- "description": "selects EI jobs for one EI job owner",
- "required": false
- }
- ],
- "tags": ["A1-EI (registration)"]
- }},
- "/data-producer/v1/info-producers/{infoProducerId}/info-jobs": {"get": {
- "summary": "Information Job definitions",
- "description": "Information Job definitions for one Information Producer",
- "operationId": "getInfoProducerJobs",
- "responses": {
- "200": {
- "description": "Information producer",
- "content": {"application/json": {"schema": {
- "type": "array",
- "items": {"$ref": "#/components/schemas/producer_info_job_request"}
- }}}
- },
- "404": {
- "description": "Information producer is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "infoProducerId",
- "required": true
- }],
- "tags": ["Data producer (registration)"]
- }},
- "/actuator/heapdump": {"get": {
- "summary": "Actuator web endpoint 'heapdump'",
- "operationId": "heapdump",
- "responses": {"200": {
- "description": "OK",
- "content": {"*/*": {"schema": {"type": "object"}}}
- }},
- "tags": ["Actuator"]
- }}
- },
- "info": {
- "license": {
- "name": "Copyright (C) 2020-2022 Nordix Foundation. Licensed under the Apache License.",
- "url": "http://www.apache.org/licenses/LICENSE-2.0"
- },
- "description": "
API documentation<\/h1>
General<\/h2>
The ICS is a data subscription service which decouples data producers from data consumers. A data consumer can create a data subscription (Information Job) without any knowledge of its data producers (one subscription may involve several data producers). A data producer has the ability to produce one or several types of data (Information Type). One type of data can be produced by zero to many producers.
A data consumer can have several active data subscriptions (Information Job). One Information Job consists of the type of data to produce and additional parameters, which may be different for different data types. These parameters are not defined or limited by this service and may for instance include:
Parameters related to delivery (Kafka stream, callback URL etc.). These are different for different delivery protocols.<\/li>
Filtering information (scope, filter or other discriminators).<\/li>
Periodicy<\/li>
Other info used for aggregation<\/li>
<\/p>
APIs provided by the service<\/h2>
A1-EI<\/h4>
This API is between Near-RT RIC and the Non-RT RIC. The Near-RT RIC is a data consumer, which creates Information Jobs to subscribe for data. In this context, the information is referred to as 'Enrichment Information', EI.<\/p>
Data producer API<\/h4>
This API is provided by the Non-RT RIC platform and is intended to be part of the O-RAN R1 interface. The API is for use by different kinds of data producers and provides support for:
Registry of supported information types and which parameters needed to setup a subscription.<\/li>
Registry of existing data producers.<\/li>
Callback API provided by producers to setup subscriptions.<\/li><\/ul><\/p>
Data consumer API<\/h4>
This API is provided by the Non-RT RIC platform and is intended to be part of the O-RAN R1 interface. The API is for use by different kinds of data consumers and provides support for:
Querying of available types of data to consume.<\/li>
Management of data subscription jobs<\/li>
Optional callback API provided by consumers to get notification on added and removed information types.<\/li><\/ul><\/p>
Service status<\/h4>
This API provides a means to monitor the health of this service.<\/p>",
- "title": "Data management and exposure",
- "version": "1.0"
- },
- "tags": [
- {
- "name": "A1-EI (registration)",
- "description": "Data consumer EI job registration"
- },
- {
- "name": "A1-EI (callbacks)",
- "description": "Data consumer EI job status callbacks"
- },
- {
- "name": "Data consumer (callbacks)",
- "description": "API for data consumers"
- },
- {
- "name": "Data producer (registration)",
- "description": "API for data producers"
- },
- {
- "name": "Data producer (callbacks)",
- "description": "API implemented by data producers"
- },
- {
- "name": "Data consumer",
- "description": "API for data consumers"
- },
- {
- "name": "Service status",
- "description": "API for monitoring of the service"
- },
- {
- "name": "Actuator",
- "description": "Monitor and interact",
- "externalDocs": {
- "description": "Spring Boot Actuator Web API Documentation",
- "url": "https://docs.spring.io/spring-boot/docs/current/actuator-api/html/"
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/information-coordinator-service/api/ics-api.yaml b/information-coordinator-service/api/ics-api.yaml
deleted file mode 100644
index 0f73cd06..00000000
--- a/information-coordinator-service/api/ics-api.yaml
+++ /dev/null
@@ -1,1492 +0,0 @@
-openapi: 3.0.1
-info:
- title: Data management and exposure
- description: '
API documentation
General
The ICS is a data subscription
- service which decouples data producers from data consumers. A data consumer can
- create a data subscription (Information Job) without any knowledge of its data
- producers (one subscription may involve several data producers). A data producer
- has the ability to produce one or several types of data (Information Type). One
- type of data can be produced by zero to many producers.
A data
- consumer can have several active data subscriptions (Information Job). One Information
- Job consists of the type of data to produce and additional parameters, which may
- be different for different data types. These parameters are not defined or limited
- by this service and may for instance include:
Parameters related to
- delivery (Kafka stream, callback URL etc.). These are different for different
- delivery protocols.
Filtering information (scope, filter or other discriminators).
Periodicy
Other
- info used for aggregation
APIs provided by the service
A1-EI
This
- API is between Near-RT RIC and the Non-RT RIC. The Near-RT RIC is a data consumer,
- which creates Information Jobs to subscribe for data. In this context, the information
- is referred to as ''Enrichment Information'', EI.
Data producer API
This
- API is provided by the Non-RT RIC platform and is intended to be part of the O-RAN
- R1 interface. The API is for use by different kinds of data producers and provides
- support for:
Registry of supported information types and which parameters
- needed to setup a subscription.
Registry of existing data producers.
Callback
- API provided by producers to setup subscriptions.
Data consumer
- API
This API is provided by the Non-RT RIC platform and is intended to
- be part of the O-RAN R1 interface. The API is for use by different kinds of data
- consumers and provides support for:
Querying of available types of data
- to consume.
Management of data subscription jobs
Optional callback
- API provided by consumers to get notification on added and removed information
- types.
Service status
This API provides a means to monitor
- the health of this service.
'
- license:
- name: Copyright (C) 2020-2022 Nordix Foundation. Licensed under the Apache License.
- url: http://www.apache.org/licenses/LICENSE-2.0
- version: "1.0"
-servers:
-- url: /
-tags:
-- name: A1-EI (registration)
- description: Data consumer EI job registration
-- name: A1-EI (callbacks)
- description: Data consumer EI job status callbacks
-- name: Data consumer (callbacks)
- description: API for data consumers
-- name: Data producer (registration)
- description: API for data producers
-- name: Data producer (callbacks)
- description: API implemented by data producers
-- name: Data consumer
- description: API for data consumers
-- name: Service status
- description: API for monitoring of the service
-- name: Actuator
- description: Monitor and interact
- externalDocs:
- description: Spring Boot Actuator Web API Documentation
- url: https://docs.spring.io/spring-boot/docs/current/actuator-api/html/
-paths:
- /data-producer/v1/info-types:
- get:
- tags:
- - Data producer (registration)
- summary: Info Type identifiers
- operationId: getInfoTypdentifiers
- responses:
- 200:
- description: Info Type identifiers
- content:
- application/json:
- schema:
- type: array
- items:
- type: string
- /actuator/threaddump:
- get:
- tags:
- - Actuator
- summary: Actuator web endpoint 'threaddump'
- operationId: threaddump_2
- responses:
- 200:
- description: OK
- content:
- '*/*':
- schema:
- type: object
- /A1-EI/v1/eitypes/{eiTypeId}:
- get:
- tags:
- - A1-EI (registration)
- summary: Individual EI type
- operationId: getEiType
- parameters:
- - name: eiTypeId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- responses:
- 200:
- description: EI type
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/EiTypeObject'
- 404:
- description: Enrichment Information type is not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- /data-producer/v1/info-types/{infoTypeId}:
- get:
- tags:
- - Data producer (registration)
- summary: Individual Information Type
- operationId: getInfoType
- parameters:
- - name: infoTypeId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- responses:
- 200:
- description: Info Type
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/producer_info_type_info'
- 404:
- description: Information type is not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- put:
- tags:
- - Data producer (registration)
- summary: Individual Information Type
- operationId: putInfoType
- parameters:
- - name: infoTypeId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/producer_info_type_info'
- required: true
- responses:
- 200:
- description: Type updated
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- 201:
- description: Type created
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- 400:
- description: Input validation failed
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- delete:
- tags:
- - Data producer (registration)
- summary: Individual Information Type
- operationId: deleteInfoType
- parameters:
- - name: infoTypeId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- responses:
- 200:
- description: Not used
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- 204:
- description: Producer deleted
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- 404:
- description: Information type is not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- 409:
- description: The Information type has one or several active producers
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- /data-consumer/v1/info-type-subscription/{subscriptionId}:
- get:
- tags:
- - Data consumer
- summary: Individual subscription for information types (registration/deregistration)
- operationId: getIndividualTypeSubscription
- parameters:
- - name: subscriptionId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- responses:
- 200:
- description: Type subscription
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/consumer_type_subscription_info'
- 404:
- description: Subscription is not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- put:
- tags:
- - Data consumer
- summary: Individual subscription for information types (registration/deregistration)
- description: This service operation is used to subscribe to notifications for
- changes in the availability of data types.
- operationId: putIndividualTypeSubscription
- parameters:
- - name: subscriptionId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/consumer_type_subscription_info'
- required: true
- responses:
- 200:
- description: Subscription updated
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- 201:
- description: Subscription created
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- delete:
- tags:
- - Data consumer
- summary: Individual subscription for information types (registration/deregistration)
- operationId: deleteIndividualTypeSubscription
- parameters:
- - name: subscriptionId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- responses:
- 200:
- description: Not used
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- 204:
- description: Subscription deleted
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- 404:
- description: Subscription is not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- /example-dataproducer/health-check:
- get:
- tags:
- - Data producer (callbacks)
- summary: Producer supervision
- description: The endpoint is provided by the Information Producer and is used
- for supervision of the producer.
- operationId: producerSupervision
- responses:
- 200:
- description: The producer is OK
- content:
- application/json:
- schema:
- type: string
- /actuator/loggers:
- get:
- tags:
- - Actuator
- summary: Actuator web endpoint 'loggers'
- operationId: loggers
- responses:
- 200:
- description: OK
- content:
- '*/*':
- schema:
- type: object
- /actuator/health/**:
- get:
- tags:
- - Actuator
- summary: Actuator web endpoint 'health-path'
- operationId: health-path
- responses:
- 200:
- description: OK
- content:
- '*/*':
- schema:
- type: object
- /data-consumer/v1/info-types:
- get:
- tags:
- - Data consumer
- summary: Information type identifiers
- operationId: getinfoTypeIdentifiers
- responses:
- 200:
- description: Information type identifiers
- content:
- application/json:
- schema:
- type: array
- items:
- type: string
- /example-dataconsumer/info-type-status:
- post:
- tags:
- - Data consumer (callbacks)
- summary: Callback for changed Information type registration status
- description: The primitive is implemented by the data consumer and is invoked
- when a Information type status has been changed. Subscription are managed
- by primitives in 'Data consumer'
- operationId: typeStatusCallback
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/consumer_type_registration_info'
- required: true
- responses:
- 200:
- description: OK
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- /actuator/metrics/{requiredMetricName}:
- get:
- tags:
- - Actuator
- summary: Actuator web endpoint 'metrics-requiredMetricName'
- operationId: metrics-requiredMetricName
- parameters:
- - name: requiredMetricName
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- responses:
- 200:
- description: OK
- content:
- '*/*':
- schema:
- type: object
- /actuator:
- get:
- tags:
- - Actuator
- summary: Actuator root web endpoint
- operationId: links
- responses:
- 200:
- description: OK
- content:
- '*/*':
- schema:
- type: object
- additionalProperties:
- type: object
- additionalProperties:
- $ref: '#/components/schemas/Link'
- /data-consumer/v1/info-jobs:
- get:
- tags:
- - Data consumer
- summary: Information Job identifiers
- description: query for information job identifiers
- operationId: getJobIds
- parameters:
- - name: infoTypeId
- in: query
- description: selects subscription jobs of matching information type
- required: false
- style: form
- explode: true
- schema:
- type: string
- - name: owner
- in: query
- description: selects result for one owner
- required: false
- style: form
- explode: true
- schema:
- type: string
- responses:
- 200:
- description: Information information job identifiers
- content:
- application/json:
- schema:
- type: array
- items:
- type: string
- 404:
- description: Information type is not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- /actuator/loggers/{name}:
- get:
- tags:
- - Actuator
- summary: Actuator web endpoint 'loggers-name'
- operationId: loggers-name_2
- parameters:
- - name: name
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- responses:
- 200:
- description: OK
- content:
- '*/*':
- schema:
- type: object
- post:
- tags:
- - Actuator
- summary: Actuator web endpoint 'loggers-name'
- operationId: loggers-name
- parameters:
- - name: name
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- responses:
- 200:
- description: OK
- content:
- '*/*':
- schema:
- type: object
- /example-dataproducer/info-job:
- post:
- tags:
- - Data producer (callbacks)
- summary: Callback for Information Job creation/modification
- description: The call is invoked to activate or to modify a data subscription.
- The endpoint is provided by the Information Producer.
- operationId: jobCreatedCallback
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/producer_info_job_request'
- required: true
- responses:
- 200:
- description: OK
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- /example-dataproducer/info-job/{infoJobId}:
- delete:
- tags:
- - Data producer (callbacks)
- summary: Callback for Information Job deletion
- description: The call is invoked to terminate a data subscription. The endpoint
- is provided by the Information Producer.
- operationId: jobDeletedCallback
- parameters:
- - name: infoJobId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- responses:
- 200:
- description: OK
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- /A1-EI/v1/eijobs/{eiJobId}/status:
- get:
- tags:
- - A1-EI (registration)
- summary: EI job status
- operationId: getEiJobStatus_1
- parameters:
- - name: eiJobId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- responses:
- 200:
- description: EI job status
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/EiJobStatusObject'
- 404:
- description: Enrichment Information job is not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- /data-producer/v1/info-producers/{infoProducerId}/status:
- get:
- tags:
- - Data producer (registration)
- summary: Information producer status
- operationId: getInfoProducerStatus
- parameters:
- - name: infoProducerId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- responses:
- 200:
- description: Information producer status
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/producer_status'
- 404:
- description: Information producer is not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- /data-consumer/v1/info-jobs/{infoJobId}/status:
- get:
- tags:
- - Data consumer
- summary: Job status
- operationId: getEiJobStatus
- parameters:
- - name: infoJobId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- responses:
- 200:
- description: Information subscription job status
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/consumer_job_status'
- 404:
- description: Information subscription job is not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- /actuator/metrics:
- get:
- tags:
- - Actuator
- summary: Actuator web endpoint 'metrics'
- operationId: metrics
- responses:
- 200:
- description: OK
- content:
- '*/*':
- schema:
- type: object
- /example-dataconsumer/info-jobs/{infoJobId}/status:
- post:
- tags:
- - A1-EI (callbacks)
- summary: Callback for changed Information Job status
- description: The primitive is implemented by the data consumer and is invoked
- when a Information Job status has been changed.
- operationId: jobStatusCallback
- parameters:
- - name: infoJobId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/EiJobStatusObject'
- required: true
- responses:
- 200:
- description: OK
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- /actuator/info:
- get:
- tags:
- - Actuator
- summary: Actuator web endpoint 'info'
- operationId: info
- responses:
- 200:
- description: OK
- content:
- '*/*':
- schema:
- type: object
- /A1-EI/v1/eitypes:
- get:
- tags:
- - A1-EI (registration)
- summary: EI type identifiers
- operationId: getEiTypeIdentifiers
- responses:
- 200:
- description: EI type identifiers
- content:
- application/json:
- schema:
- type: array
- items:
- type: string
- /data-producer/v1/info-producers/{infoProducerId}:
- get:
- tags:
- - Data producer (registration)
- summary: Individual Information Producer
- operationId: getInfoProducer
- parameters:
- - name: infoProducerId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- responses:
- 200:
- description: Information producer
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/producer_registration_info'
- 404:
- description: Information producer is not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- put:
- tags:
- - Data producer (registration)
- summary: Individual Information Producer
- operationId: putInfoProducer
- parameters:
- - name: infoProducerId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/producer_registration_info'
- required: true
- responses:
- 200:
- description: Producer updated
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- 201:
- description: Producer created
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- 400:
- description: Input validation failed
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- 404:
- description: Producer type not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- delete:
- tags:
- - Data producer (registration)
- summary: Individual Information Producer
- operationId: deleteInfoProducer
- parameters:
- - name: infoProducerId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- responses:
- 200:
- description: Not used
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- 204:
- description: Producer deleted
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- 404:
- description: Producer is not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- /status:
- get:
- tags:
- - Service status
- summary: Returns status and statistics of this service
- operationId: getStatus
- responses:
- 200:
- description: Service is living
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/service_status_info'
- /data-consumer/v1/info-type-subscription:
- get:
- tags:
- - Data consumer
- summary: Information type subscription identifiers
- description: query for information type subscription identifiers
- operationId: getInfoTypeSubscriptions
- parameters:
- - name: owner
- in: query
- description: selects result for one owner
- required: false
- style: form
- explode: true
- schema:
- type: string
- responses:
- 200:
- description: Information type subscription identifiers
- content:
- application/json:
- schema:
- type: array
- items:
- type: string
- /A1-EI/v1/eijobs/{eiJobId}:
- get:
- tags:
- - A1-EI (registration)
- summary: Individual EI job
- operationId: getIndividualEiJob_1
- parameters:
- - name: eiJobId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- responses:
- 200:
- description: EI job
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/EiJobObject'
- 404:
- description: Enrichment Information job is not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- put:
- tags:
- - A1-EI (registration)
- summary: Individual EI job
- operationId: putIndividualEiJob
- parameters:
- - name: eiJobId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/EiJobObject'
- required: true
- responses:
- 200:
- description: Job updated
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- 201:
- description: Job created
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- 400:
- description: Input validation failed
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- 404:
- description: Enrichment Information type is not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- 409:
- description: Cannot modify job type
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- delete:
- tags:
- - A1-EI (registration)
- summary: Individual EI job
- operationId: deleteIndividualEiJob_1
- parameters:
- - name: eiJobId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- responses:
- 200:
- description: Not used
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- 204:
- description: Job deleted
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- 404:
- description: Enrichment Information job is not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- /actuator/logfile:
- get:
- tags:
- - Actuator
- summary: Actuator web endpoint 'logfile'
- operationId: logfile
- responses:
- 200:
- description: OK
- content:
- '*/*':
- schema:
- type: object
- /data-consumer/v1/info-jobs/{infoJobId}:
- get:
- tags:
- - Data consumer
- summary: Individual data subscription job
- operationId: getIndividualEiJob
- parameters:
- - name: infoJobId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- responses:
- 200:
- description: Information subscription job
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/consumer_job'
- 404:
- description: Information subscription job is not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- put:
- tags:
- - Data consumer
- summary: Individual data subscription job
- description: The job will be enabled when a producer is available
- operationId: putIndividualInfoJob
- parameters:
- - name: infoJobId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- - name: typeCheck
- in: query
- description: when true, a validation of that the type exists and that the
- job matches the type schema.
- required: false
- style: form
- explode: true
- schema:
- type: boolean
- default: false
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/consumer_job'
- required: true
- responses:
- 200:
- description: Job updated
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- 201:
- description: Job created
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- 400:
- description: Input validation failed
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- 404:
- description: Information type is not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- 409:
- description: Cannot modify job type
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- delete:
- tags:
- - Data consumer
- summary: Individual data subscription job
- operationId: deleteIndividualEiJob
- parameters:
- - name: infoJobId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- responses:
- 200:
- description: Not used
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- 204:
- description: Job deleted
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- 404:
- description: Information subscription job is not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- /data-producer/v1/info-producers:
- get:
- tags:
- - Data producer (registration)
- summary: Information producer identifiers
- operationId: getInfoProducerIdentifiers
- parameters:
- - name: infoTypeId
- in: query
- description: If given, only the producers for the EI Data type is returned.
- required: false
- style: form
- explode: true
- schema:
- type: string
- responses:
- 200:
- description: Information producer identifiers
- content:
- application/json:
- schema:
- type: array
- items:
- type: string
- /data-consumer/v1/info-types/{infoTypeId}:
- get:
- tags:
- - Data consumer
- summary: Individual information type
- operationId: getInfoType_1
- parameters:
- - name: infoTypeId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- responses:
- 200:
- description: Information type
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/consumer_information_type'
- 404:
- description: Information type is not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- /actuator/health:
- get:
- tags:
- - Actuator
- summary: Actuator web endpoint 'health'
- operationId: health
- responses:
- 200:
- description: OK
- content:
- '*/*':
- schema:
- type: object
- /A1-EI/v1/eijobs:
- get:
- tags:
- - A1-EI (registration)
- summary: EI job identifiers
- description: query for EI job identifiers
- operationId: getEiJobIds
- parameters:
- - name: eiTypeId
- in: query
- description: selects EI jobs of matching EI type
- required: false
- style: form
- explode: true
- schema:
- type: string
- - name: owner
- in: query
- description: selects EI jobs for one EI job owner
- required: false
- style: form
- explode: true
- schema:
- type: string
- responses:
- 200:
- description: EI job identifiers
- content:
- application/json:
- schema:
- type: array
- items:
- type: string
- 404:
- description: Enrichment Information type is not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- /data-producer/v1/info-producers/{infoProducerId}/info-jobs:
- get:
- tags:
- - Data producer (registration)
- summary: Information Job definitions
- description: Information Job definitions for one Information Producer
- operationId: getInfoProducerJobs
- parameters:
- - name: infoProducerId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- responses:
- 200:
- description: Information producer
- content:
- application/json:
- schema:
- type: array
- items:
- $ref: '#/components/schemas/producer_info_job_request'
- 404:
- description: Information producer is not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- /actuator/heapdump:
- get:
- tags:
- - Actuator
- summary: Actuator web endpoint 'heapdump'
- operationId: heapdump
- responses:
- 200:
- description: OK
- content:
- '*/*':
- schema:
- type: object
-components:
- schemas:
- consumer_information_type:
- required:
- - job_data_schema
- - no_of_producers
- - type_status
- type: object
- properties:
- no_of_producers:
- type: integer
- description: The number of registered producers for the type
- format: int32
- type_status:
- type: string
- description: 'Allowed values: ENABLED: one or several producers for
- the information type are available DISABLED: no producers for the
- information type are available'
- enum:
- - ENABLED
- - DISABLED
- job_data_schema:
- type: object
- description: Json schema for the job data
- description: Information for an Information type
- EiTypeObject:
- type: object
- description: Information for an EI type
- service_status_info:
- required:
- - no_of_jobs
- - no_of_producers
- - no_of_types
- - status
- type: object
- properties:
- no_of_producers:
- type: integer
- description: Number of Information Producers
- format: int32
- no_of_types:
- type: integer
- description: Number of Information Types
- format: int32
- no_of_jobs:
- type: integer
- description: Number of Information Jobs
- format: int32
- status:
- type: string
- description: status text
- producer_registration_info:
- required:
- - info_job_callback_url
- - info_producer_supervision_callback_url
- - supported_info_types
- type: object
- properties:
- info_producer_supervision_callback_url:
- type: string
- description: callback for producer supervision
- supported_info_types:
- type: array
- description: Supported Information Type IDs
- items:
- type: string
- description: Supported Information Type IDs
- info_job_callback_url:
- type: string
- description: callback for Information Job
- description: Information for an Information Producer
- consumer_type_registration_info:
- required:
- - info_type_id
- - job_data_schema
- - status
- type: object
- properties:
- info_type_id:
- type: string
- description: Information type identifier
- job_data_schema:
- type: object
- description: Json schema for the job data
- status:
- type: string
- description: 'Allowed values: REGISTERED: the information type has
- been registered DEREGISTERED: the information type has been removed'
- enum:
- - REGISTERED
- - DEREGISTERED
- description: Information for an Information type
- ProblemDetails:
- type: object
- properties:
- detail:
- type: string
- description: A human-readable explanation specific to this occurrence of
- the problem.
- example: Information Job type not found
- status:
- type: integer
- description: The HTTP status code generated by the origin server for this
- occurrence of the problem.
- format: int32
- example: 404
- description: A problem detail to carry details in a HTTP response according
- to RFC 7807
- EiJobStatusObject:
- required:
- - eiJobStatus
- type: object
- properties:
- eiJobStatus:
- type: string
- description: 'Allowed values for EI job status: ENABLED: the A1-EI
- producer is able to deliver EI result for the EI job DISABLED: the
- A1-EI producer is unable to deliver EI result for the EI job'
- enum:
- - ENABLED
- - DISABLED
- description: Status for an EI job
- consumer_job_status:
- required:
- - info_job_status
- - producers
- type: object
- properties:
- info_job_status:
- type: string
- description: 'Allowed values: ENABLED: the A1-Information producer
- is able to deliver result for the Information Job DISABLED: the A1-Information
- producer is unable to deliver result for the Information Job'
- enum:
- - ENABLED
- - DISABLED
- producers:
- type: array
- description: An array of all registered Information Producer Identifiers.
- items:
- type: string
- description: An array of all registered Information Producer Identifiers.
- description: Status for an Information Job
- EiJobObject:
- required:
- - eiTypeId
- - jobDefinition
- - jobOwner
- - jobResultUri
- type: object
- properties:
- eiTypeId:
- type: string
- description: EI type Idenitifier of the EI job
- jobResultUri:
- type: string
- description: The target URI of the EI data
- jobOwner:
- type: string
- description: Identity of the owner of the job
- statusNotificationUri:
- type: string
- description: The target of EI job status notifications
- jobDefinition:
- type: object
- description: EI type specific job data
- description: Information for an Enrichment Information Job
- producer_info_type_info:
- required:
- - info_job_data_schema
- type: object
- properties:
- info_type_information:
- type: object
- description: Type specific information for the information type
- info_job_data_schema:
- type: object
- description: Json schema for the job data
- description: Information for an Information Type
- producer_info_job_request:
- required:
- - info_job_identity
- type: object
- properties:
- owner:
- type: string
- description: The owner of the job
- last_updated:
- type: string
- description: The time when the job was last updated or created (ISO-8601)
- info_job_identity:
- type: string
- description: Identity of the Information Job
- target_uri:
- type: string
- description: URI for the target of the produced Information
- info_job_data:
- type: object
- description: Json for the job data
- info_type_identity:
- type: string
- description: Type identity for the job
- description: The body of the Information Producer callbacks for Information
- Job creation and deletion
- consumer_job:
- required:
- - info_type_id
- - job_definition
- - job_owner
- - job_result_uri
- type: object
- properties:
- info_type_id:
- type: string
- description: Information type Idenitifier of the subscription job
- job_result_uri:
- type: string
- description: The target URI of the subscribed information
- job_owner:
- type: string
- description: Identity of the owner of the job
- job_definition:
- type: object
- description: Information type specific job data
- status_notification_uri:
- type: string
- description: The target of Information subscription job status notifications
- description: Information for an Information Job
- producer_status:
- required:
- - operational_state
- type: object
- properties:
- operational_state:
- type: string
- description: Represents the operational states
- enum:
- - ENABLED
- - DISABLED
- description: Status for an Info Producer
- Void:
- type: object
- description: 'Void/empty '
- Link:
- type: object
- properties:
- templated:
- type: boolean
- href:
- type: string
- consumer_type_subscription_info:
- required:
- - owner
- - status_result_uri
- type: object
- properties:
- owner:
- type: string
- description: Identity of the owner of the subscription
- status_result_uri:
- type: string
- description: The target URI of the subscribed information
- description: Information for an information type subscription
diff --git a/information-coordinator-service/config/README b/information-coordinator-service/config/README
deleted file mode 100644
index 140927f7..00000000
--- a/information-coordinator-service/config/README
+++ /dev/null
@@ -1,41 +0,0 @@
-The keystore.jks and truststore.jks files are created by using the following commands (note that this is an example):
-
-1) Create a CA certificate and a private key:
-
-openssl genrsa -des3 -out CA-key.pem 2048
-openssl req -new -key CA-key.pem -x509 -days 1000 -out CA-cert.pem
-
-2) Create a keystore with a private key entry that is signed by the CA:
-
-keytool -genkeypair -alias policy_agent -keyalg RSA -keysize 2048 -keystore keystore.jks -validity 3650 -storepass policy_agent
-keytool -certreq -alias policy_agent -file request.csr -keystore keystore.jks -ext san=dns:your.domain.com -storepass policy_agent
-openssl x509 -req -days 365 -in request.csr -CA CA-cert.pem -CAkey CA-key.pem -CAcreateserial -out ca_signed-cert.pem
-keytool -importcert -alias ca_cert -file CA-cert.pem -keystore keystore.jks -trustcacerts -storepass policy_agent
-keytool -importcert -alias policy_agent -file ca_signed-cert.pem -keystore keystore.jks -trustcacerts -storepass policy_agent
-
-
-3) Create a trust store containing the CA cert (to trust all certs signed by the CA):
-
-keytool -genkeypair -alias not_used -keyalg RSA -keysize 2048 -keystore truststore.jks -validity 3650 -storepass policy_agent
-keytool -importcert -alias ca_cert -file CA-cert.pem -keystore truststore.jks -trustcacerts -storepass policy_agent
-
-
-4) Command for listing of the contents of jks files, examples:
-keytool -list -v -keystore keystore.jks -storepass policy_agent
-keytool -list -v -keystore truststore.jks -storepass policy_agent
-
-## License
-
-Copyright (C) 2020 Nordix Foundation. All rights reserved.
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
diff --git a/information-coordinator-service/config/application.yaml b/information-coordinator-service/config/application.yaml
deleted file mode 100644
index 372b61c0..00000000
--- a/information-coordinator-service/config/application.yaml
+++ /dev/null
@@ -1,52 +0,0 @@
-spring:
- profiles:
- active: prod
- main:
- allow-bean-definition-overriding: true
- aop:
- auto: false
-springdoc:
- show-actuator: true
-management:
- endpoints:
- web:
- exposure:
- # Enabling of springboot actuator features. See springboot documentation.
- include: "loggers,logfile,health,info,metrics,threaddump,heapdump"
-
-logging:
- # Configuration of logging
- level:
- ROOT: ERROR
- org.springframework: ERROR
- org.springframework.data: ERROR
- org.springframework.web.reactive.function.client.ExchangeFunctions: ERROR
- org.oransc.ics: INFO
- file:
- name: /var/log/information-coordinator-service/application.log
-server:
- # Configuration of the HTTP/REST server. The parameters are defined and handeled by the springboot framework.
- # See springboot documentation.
- port : 8434
- http-port: 8083
- ssl:
- key-store-type: JKS
- key-store-password: policy_agent
- key-store: /opt/app/information-coordinator-service/etc/cert/keystore.jks
- key-password: policy_agent
- key-alias: policy_agent
-app:
- webclient:
- # Configuration of the trust store used for the HTTP client (outgoing requests)
- # The file location and the password for the truststore is only relevant if trust-store-used == true
- # Note that the same keystore as for the server is used.
- trust-store-used: false
- trust-store-password: policy_agent
- trust-store: /opt/app/information-coordinator-service/etc/cert/truststore.jks
- # Configuration of usage of HTTP Proxy for the southbound accesses.
- # The HTTP proxy (if configured) will only be used for accessing NearRT RIC:s
- http.proxy-host:
- http.proxy-port: 0
- vardata-directory: /var/information-coordinator-service
- # If the file name is empty, no authorzation token is sent
- auth-token-file:
\ No newline at end of file
diff --git a/information-coordinator-service/config/keystore.jks b/information-coordinator-service/config/keystore.jks
deleted file mode 100644
index 122997ac7b9ad8a58b7a167916bfdf808f3f3e4b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 4987
zcmY+IWmFRYw8ytG8Uz_g$LMBAN;*nHQbIyfz)5$E9F7J-x)G5M0qF*XjcyPG1O`Z}
zq~!Cx^WwY@_uO-S_kZul--ioBLHs~KJQxZBBOvCFRF6C-2ND7cQ4lB?1!4Y&>0u~*
zpZ_<)cL1aCZU14*e`Q8M`rlh*BtTFh3Va1afzM%l1SJ21{~c!pQ|E3DbVRui`R2z`JnYT~
z43FANcvcsNE(iszs+be9GyPHEXuZSOhC+j)7*#6Cccql^Q&@bwXZ=m~J{(KYCpPU6
zrE^tvqbVbu{HG6T^kVK{X_-e7#Y;Z-O)RtFv17)bdC1)iHpaZ^aSICtL11OXb`zGrw`b{f~hKDM#KWCO{!H**$X-%M%NZe#3iM0#HAXHiwaFi85d--`Ch
zPNm&yw%zLnN1fc~lw;p3T&}(@h0|e~@%1^d_VzONw%m*=`Ia(`pdsk+a@P70UPJgg
zza+bVpE72tPvMzG1?#V8zMYpDPjF^zBd0+ef<^KP@8?VJistw|gJ?w^YH1l?j?L-q
zw00(bBe=~^=@MJlAYK8>xAej56yTO5JzrYABn<2LiY9mJ{mO+|9UWVM_bX(w*X}Jh
zB6&k=5Sn&AqJKK0mhbj)vJ@rZdxd
zdZ&sUzvnc`{b;3SyizGso_sB592AHZemwpqg4iF-!awfRy^iZ%7z)zehy1aY6W5QD
z?G5?$=l9nYiq7-Xm%}8_jb?u{&~ib_38THcFWpQ`;!ZVy0ym*j8m4(kJsbW&e6o~H
z(@H9A|Zs^nY+5T@ULf}lhQBaY91D5GZ(NI7W5-hc@!J$;W(fUE>^^H>$tJRZ%-*n97i&|M@TIUYN#n$z#6Px#poN{X}(B5%*DN*Woj&Jzn%6JHGS~PCe({n!!37Ti-eBF7_j6P5qiELUot9I6fG>YlTZf-_-^s3u4kT1ZeWrFzqia#(_yDVMn5o8pxb%S7tWNYP
zjOTw;bL-Zy5Cdf;6JkU@Aj|i#?mD#3M-<
zOiWx_N=i}^h9b}X-w+`|A&NZVABq710sk86|0clyXIp~*w5?vfgK{pIVv0GH_ORqd
zV6TMW+QNU?HVj3s&T|NzpUIBy3jP%tr(G`Lb-E^*A*xK)$H^A(QGQq8%VFRB2xAw*3{d#lp<#E>5aN2|KpG9KvCv=sE=4o
kNXPF6uXwL(tyZ-G5P-jE=tIN
diff --git a/information-coordinator-service/eclipse-formatter.xml b/information-coordinator-service/eclipse-formatter.xml
deleted file mode 100644
index c8cca2ee..00000000
--- a/information-coordinator-service/eclipse-formatter.xml
+++ /dev/null
@@ -1,314 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/information-coordinator-service/pom.xml b/information-coordinator-service/pom.xml
deleted file mode 100644
index fba179f6..00000000
--- a/information-coordinator-service/pom.xml
+++ /dev/null
@@ -1,360 +0,0 @@
-
-
-
- 4.0.0
-
- org.springframework.boot
- spring-boot-starter-parent
- 2.6.6
-
-
- org.o-ran-sc.nonrtric
- information-coordinator-service
- 1.3.0-SNAPSHOT
-
-
- The Apache Software License, Version 2.0
- http://www.apache.org/licenses/LICENSE-2.0.txt
-
-
-
-
- onap-releases
- onap-releases
- https://nexus.onap.org/content/repositories/releases/
-
-
-
- 11
- 3.0.0
- 2.8.2
- 2.1.13
- 20211205
- 3.8.0
- 2.12.2
- 1.24.3
- 3.0.11
- 0.30.0
- 3.7.0.1746
- 0.8.5
- true
-
-
-
- org.springdoc
- springdoc-openapi-ui
- 1.6.6
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
- org.springframework.boot
- spring-boot-starter-thymeleaf
-
-
- org.springframework.boot
- spring-boot-starter-webflux
-
-
- org.springframework
- spring-webflux
-
-
- io.swagger.core.v3
- swagger-jaxrs2
- ${swagger.version}
-
-
- io.swagger.core.v3
- swagger-jaxrs2-servlet-initializer
- ${swagger.version}
-
-
- org.immutables
- value
- ${immutable.version}
- provided
-
-
- org.immutables
- gson
- ${immutable.version}
-
-
- org.json
- json
- ${json.version}
-
-
- org.projectlombok
- lombok
- provided
-
-
-
- com.github.erosb
- everit-json-schema
- 1.12.1
-
-
-
- org.springframework.boot
- spring-boot-starter-actuator
-
-
-
- io.springfox
- springfox-swagger2
- ${springfox.version}
-
-
- io.springfox
- springfox-swagger-ui
- ${springfox.version}
-
-
-
- org.springframework.boot
- spring-boot-devtools
- true
-
-
- org.springframework.boot
- spring-boot-configuration-processor
- true
-
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
- org.awaitility
- awaitility
- test
-
-
- io.projectreactor
- reactor-test
- test
-
-
- org.junit.jupiter
- junit-jupiter-engine
- test
-
-
- org.mockito
- mockito-junit-jupiter
- test
-
-
- org.mockito
- mockito-core
- test
-
-
- com.squareup.okhttp3
- mockwebserver
- test
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
- net.revelc.code.formatter
- formatter-maven-plugin
- ${formatter-maven-plugin.version}
-
- ${project.basedir}/eclipse-formatter.xml
-
-
-
-
- com.diffplug.spotless
- spotless-maven-plugin
- ${spotless-maven-plugin.version}
-
-
-
-
- com,java,org
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
- false
-
-
-
- maven-failsafe-plugin
-
-
- org.codehaus.mojo
- build-helper-maven-plugin
-
-
- add-source
- generate-sources
-
- add-source
-
-
-
-
-
-
-
-
-
-
- org.jacoco
- jacoco-maven-plugin
- ${jacoco-maven-plugin.version}
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
- default-report
- prepare-package
-
- report
-
-
-
-
-
- io.swagger.codegen.v3
- swagger-codegen-maven-plugin
- ${swagger-codegen-maven-plugin.version}
-
-
- test
-
- generate
-
-
- ${project.basedir}/api/ics-api.json
- openapi-yaml
-
-
- ics-api.yaml
-
-
-
-
-
-
- io.fabric8
- docker-maven-plugin
- ${docker-maven-plugin}
- false
-
-
- generate-information-coordinator-service-image
- package
-
- build
-
-
- ${env.CONTAINER_PULL_REGISTRY}
-
-
- o-ran-sc/nonrtric-information-coordinator-service:${project.version}
-
- try
- ${basedir}
- Dockerfile
-
- ${project.build.finalName}.jar
-
-
- ${project.version}
-
-
-
-
-
-
-
- push-information-coordinator-service-image
-
- build
- push
-
-
- ${env.CONTAINER_PULL_REGISTRY}
- ${env.CONTAINER_PUSH_REGISTRY}
-
-
- o-ran-sc/nonrtric-information-coordinator-service:${project.version}
-
- ${basedir}
- Dockerfile
-
- ${project.build.finalName}.jar
-
-
- ${project.version}
- latest
-
-
-
-
-
-
-
-
-
-
- org.sonarsource.scanner.maven
- sonar-maven-plugin
- ${sonar-maven-plugin.version}
-
-
-
-
- JIRA
- https://jira.o-ran-sc.org/
-
-
diff --git a/information-coordinator-service/src/main/java/org/oransc/ics/Application.java b/information-coordinator-service/src/main/java/org/oransc/ics/Application.java
deleted file mode 100644
index 46caac11..00000000
--- a/information-coordinator-service/src/main/java/org/oransc/ics/Application.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 Nordix Foundation
- * %%
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================LICENSE_END===================================
- */
-
-package org.oransc.ics;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-@SpringBootApplication
-public class Application {
-
- public static void main(String[] args) {
- SpringApplication.run(Application.class);
- }
-
-}
diff --git a/information-coordinator-service/src/main/java/org/oransc/ics/BeanFactory.java b/information-coordinator-service/src/main/java/org/oransc/ics/BeanFactory.java
deleted file mode 100644
index 3847cc33..00000000
--- a/information-coordinator-service/src/main/java/org/oransc/ics/BeanFactory.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 Nordix Foundation
- * %%
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================LICENSE_END===================================
- */
-
-package org.oransc.ics;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-import java.lang.invoke.MethodHandles;
-
-import org.apache.catalina.connector.Connector;
-import org.oransc.ics.clients.SecurityContext;
-import org.oransc.ics.configuration.ApplicationConfig;
-import org.oransc.ics.controllers.r1producer.ProducerCallbacks;
-import org.oransc.ics.repository.InfoJobs;
-import org.oransc.ics.repository.InfoTypes;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
-import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-class BeanFactory {
-
- @Value("${server.http-port}")
- private int httpPort = 0;
-
- private final ApplicationConfig applicationConfig = new ApplicationConfig();
- private final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
- private ProducerCallbacks producerCallbacks;
- private InfoTypes infoTypes;
- private InfoJobs infoJobs;
-
- @Bean
- public ObjectMapper mapper() {
- return new ObjectMapper();
- }
-
- @Bean
- public ServletWebServerFactory servletContainer() {
- TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
- if (httpPort > 0) {
- tomcat.addAdditionalTomcatConnectors(getHttpConnector(httpPort));
- }
- return tomcat;
- }
-
- @Bean
- public InfoJobs infoJobs(SecurityContext securityContext) {
- if (infoJobs == null) {
- infoJobs = new InfoJobs(getApplicationConfig(), producerCallbacks(securityContext));
- try {
- infoJobs.restoreJobsFromDatabase();
- } catch (Exception e) {
- logger.error("Could not restore jobs from database: {}", e.getMessage());
- }
- }
- return infoJobs;
- }
-
- @Bean
- public InfoTypes infoTypes() {
- if (this.infoTypes == null) {
- infoTypes = new InfoTypes(getApplicationConfig());
- try {
- infoTypes.restoreTypesFromDatabase();
- } catch (Exception e) {
- logger.error("Could not restore Information Types from database: {}", e.getMessage());
- }
- }
- return infoTypes;
- }
-
- @Bean
- public ProducerCallbacks producerCallbacks(SecurityContext securityContext) {
- if (this.producerCallbacks == null) {
- producerCallbacks = new ProducerCallbacks(getApplicationConfig(), securityContext);
- }
- return this.producerCallbacks;
- }
-
- @Bean
- public ApplicationConfig getApplicationConfig() {
- return this.applicationConfig;
- }
-
- private static Connector getHttpConnector(int httpPort) {
- Connector connector = new Connector(TomcatServletWebServerFactory.DEFAULT_PROTOCOL);
- connector.setScheme("http");
- connector.setPort(httpPort);
- connector.setSecure(false);
- return connector;
- }
-
-}
diff --git a/information-coordinator-service/src/main/java/org/oransc/ics/SwaggerConfig.java b/information-coordinator-service/src/main/java/org/oransc/ics/SwaggerConfig.java
deleted file mode 100644
index 98c6e81b..00000000
--- a/information-coordinator-service/src/main/java/org/oransc/ics/SwaggerConfig.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 Nordix Foundation
- * %%
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================LICENSE_END===================================
- */
-
-package org.oransc.ics;
-
-import io.swagger.v3.oas.annotations.OpenAPIDefinition;
-import io.swagger.v3.oas.annotations.info.Info;
-import io.swagger.v3.oas.annotations.info.License;
-
-/**
- * Swagger configuration class that uses swagger documentation type and scans
- * all the controllers. To access the swagger gui go to
- * http://ip:port/swagger-ui.html
- */
-
-@OpenAPIDefinition( //
- info = @Info(
- title = SwaggerConfig.API_TITLE, //
- version = "1.0", //
- description = SwaggerConfig.DESCRIPTION, //
- license = @License(
- name = "Copyright (C) 2020-2022 Nordix Foundation. Licensed under the Apache License.",
- url = "http://www.apache.org/licenses/LICENSE-2.0")))
-public class SwaggerConfig {
- private SwaggerConfig() {
- }
-
- static final String API_TITLE = "Data management and exposure";
-
- static final String DESCRIPTION = "
API documentation
" //
- + "
General
" //
- + "
" //
- + " The ICS is a data subscription service which decouples data producers from data consumers."
- + " A data consumer can create a data subscription (Information Job) without any knowledge of its data producers (one subscription may involve several data producers)."
- + " A data producer has the ability to produce one or several types of data (Information Type)."
- + " One type of data can be produced by zero to many producers." + "
"
- + " A data consumer can have several active data subscriptions (Information Job)."
- + " One Information Job consists of the type of data to produce and additional parameters, which may be different for different data types." //
- + " These parameters are not defined or limited by this service and may for instance include:" + "
" //
- + "
Parameters related to delivery (Kafka stream, callback URL etc.). These are different for different delivery protocols.
"
- + "
Filtering information (scope, filter or other discriminators).
" + "
Periodicy
"
- + "
Other info used for aggregation
" + "
" //
- + "" //
- + "
APIs provided by the service
" //
- + "
A1-EI
" //
- + "
" //
- + " This API is between Near-RT RIC and the Non-RT RIC." //
- + " The Near-RT RIC is a data consumer, which creates Information Jobs to subscribe for data." //
- + " In this context, the information is referred to as 'Enrichment Information', EI." //
- + "
" //
- + "
Data producer API
" //
- + "
" //
- + " This API is provided by the Non-RT RIC platform and is intended to be part of the O-RAN R1 interface." //
- + " The API is for use by different kinds of data producers and provides support for:" //
- + "
" //
- + "
Registry of supported information types and which parameters needed to setup a subscription.
" //
- + "
Registry of existing data producers.
" //
- + "
Callback API provided by producers to setup subscriptions.
" //
- + "
" //
- + "" //
- + "
Data consumer API
" //
- + "
" //
- + " This API is provided by the Non-RT RIC platform and is intended to be part of the O-RAN R1 interface." //
- + " The API is for use by different kinds of data consumers and provides support for:" //
- + "
" //
- + "
Querying of available types of data to consume.
" //
- + "
Management of data subscription jobs
" //
- + "
Optional callback API provided by consumers to get notification on added and removed information types.
" //
- + "
" //
- + "" //
- + "
Service status
" //
- + "
" //
- + " This API provides a means to monitor the health of this service." //
- + "
";
-
-}
diff --git a/information-coordinator-service/src/main/java/org/oransc/ics/clients/AsyncRestClient.java b/information-coordinator-service/src/main/java/org/oransc/ics/clients/AsyncRestClient.java
deleted file mode 100644
index 2879092c..00000000
--- a/information-coordinator-service/src/main/java/org/oransc/ics/clients/AsyncRestClient.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2020 Nordix Foundation
- * %%
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================LICENSE_END===================================
- */
-
-package org.oransc.ics.clients;
-
-import io.netty.channel.ChannelOption;
-import io.netty.handler.ssl.SslContext;
-import io.netty.handler.timeout.ReadTimeoutHandler;
-import io.netty.handler.timeout.WriteTimeoutHandler;
-
-import java.lang.invoke.MethodHandles;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.oransc.ics.configuration.WebClientConfig.HttpProxyConfig;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.http.MediaType;
-import org.springframework.http.ResponseEntity;
-import org.springframework.http.client.reactive.ReactorClientHttpConnector;
-import org.springframework.lang.Nullable;
-import org.springframework.web.reactive.function.client.ExchangeFilterFunction;
-import org.springframework.web.reactive.function.client.ExchangeStrategies;
-import org.springframework.web.reactive.function.client.WebClient;
-import org.springframework.web.reactive.function.client.WebClient.RequestHeadersSpec;
-
-import reactor.core.publisher.Mono;
-import reactor.netty.http.client.HttpClient;
-import reactor.netty.transport.ProxyProvider;
-
-/**
- * Generic reactive REST client.
- */
-public class AsyncRestClient {
-
- private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
- private WebClient webClient = null;
- private final String baseUrl;
- private static final AtomicInteger sequenceNumber = new AtomicInteger();
- private final SslContext sslContext;
- private final HttpProxyConfig httpProxyConfig;
- private final SecurityContext securityContext;
-
- public AsyncRestClient(String baseUrl, @Nullable SslContext sslContext, @Nullable HttpProxyConfig httpProxyConfig,
- SecurityContext securityContext) {
- this.baseUrl = baseUrl;
- this.sslContext = sslContext;
- this.httpProxyConfig = httpProxyConfig;
- this.securityContext = securityContext;
- }
-
- public Mono> postForEntity(String uri, @Nullable String body) {
- Mono bodyProducer = body != null ? Mono.just(body) : Mono.empty();
-
- RequestHeadersSpec> request = getWebClient() //
- .post() //
- .uri(uri) //
- .contentType(MediaType.APPLICATION_JSON) //
- .body(bodyProducer, String.class);
- return retrieve(request);
- }
-
- public Mono post(String uri, @Nullable String body) {
- return postForEntity(uri, body) //
- .map(this::toBody);
- }
-
- public Mono postWithAuthHeader(String uri, String body, String username, String password) {
- RequestHeadersSpec> request = getWebClient() //
- .post() //
- .uri(uri) //
- .headers(headers -> headers.setBasicAuth(username, password)) //
- .contentType(MediaType.APPLICATION_JSON) //
- .bodyValue(body);
- return retrieve(request) //
- .map(this::toBody);
- }
-
- public Mono> putForEntity(String uri, String body) {
- RequestHeadersSpec> request = getWebClient() //
- .put() //
- .uri(uri) //
- .contentType(MediaType.APPLICATION_JSON) //
- .bodyValue(body);
- return retrieve(request);
- }
-
- public Mono> putForEntity(String uri) {
- RequestHeadersSpec> request = getWebClient() //
- .put() //
- .uri(uri);
- return retrieve(request);
- }
-
- public Mono put(String uri, String body) {
- return putForEntity(uri, body) //
- .map(this::toBody);
- }
-
- public Mono> getForEntity(String uri) {
- RequestHeadersSpec> request = getWebClient().get().uri(uri);
- return retrieve(request);
- }
-
- public Mono get(String uri) {
- return getForEntity(uri) //
- .map(this::toBody);
- }
-
- public Mono> deleteForEntity(String uri) {
- RequestHeadersSpec> request = getWebClient().delete().uri(uri);
- return retrieve(request);
- }
-
- public Mono delete(String uri) {
- return deleteForEntity(uri) //
- .map(this::toBody);
- }
-
- private Mono> retrieve(RequestHeadersSpec> request) {
- if (securityContext.isConfigured()) {
- request.headers(h -> h.setBearerAuth(securityContext.getBearerAuthToken()));
- }
- return request.retrieve() //
- .toEntity(String.class);
- }
-
- private static Object createTraceTag() {
- return sequenceNumber.incrementAndGet();
- }
-
- private String toBody(ResponseEntity entity) {
- if (entity.getBody() == null) {
- return "";
- } else {
- return entity.getBody();
- }
- }
-
- private boolean isHttpProxyConfigured() {
- return httpProxyConfig != null && httpProxyConfig.httpProxyPort() > 0
- && !httpProxyConfig.httpProxyHost().isEmpty();
- }
-
- private HttpClient buildHttpClient() {
- HttpClient httpClient = HttpClient.create() //
- .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 10_000) //
- .doOnConnected(connection -> {
- connection.addHandlerLast(new ReadTimeoutHandler(30));
- connection.addHandlerLast(new WriteTimeoutHandler(30));
- });
-
- if (this.sslContext != null) {
- httpClient = httpClient.secure(ssl -> ssl.sslContext(sslContext));
- }
-
- if (isHttpProxyConfigured()) {
- httpClient = httpClient.proxy(proxy -> proxy.type(ProxyProvider.Proxy.HTTP)
- .host(httpProxyConfig.httpProxyHost()).port(httpProxyConfig.httpProxyPort()));
- }
- return httpClient;
- }
-
- public WebClient buildWebClient(String baseUrl) {
- Object traceTag = createTraceTag();
-
- final HttpClient httpClient = buildHttpClient();
- ExchangeStrategies exchangeStrategies = ExchangeStrategies.builder() //
- .codecs(configurer -> configurer.defaultCodecs().maxInMemorySize(-1)) //
- .build();
-
- ExchangeFilterFunction reqLogger = ExchangeFilterFunction.ofRequestProcessor(req -> {
- logger.debug("{} {} uri = '{}''", traceTag, req.method(), req.url());
- return Mono.just(req);
- });
-
- ExchangeFilterFunction respLogger = ExchangeFilterFunction.ofResponseProcessor(resp -> {
- logger.debug("{} resp: {}", traceTag, resp.statusCode());
- return Mono.just(resp);
- });
-
- return WebClient.builder() //
- .clientConnector(new ReactorClientHttpConnector(httpClient)) //
- .baseUrl(baseUrl) //
- .exchangeStrategies(exchangeStrategies) //
- .filter(reqLogger) //
- .filter(respLogger) //
- .build();
- }
-
- private WebClient getWebClient() {
- if (this.webClient == null) {
- this.webClient = buildWebClient(baseUrl);
- }
- return this.webClient;
- }
-}
diff --git a/information-coordinator-service/src/main/java/org/oransc/ics/clients/AsyncRestClientFactory.java b/information-coordinator-service/src/main/java/org/oransc/ics/clients/AsyncRestClientFactory.java
deleted file mode 100644
index 9a6c4f70..00000000
--- a/information-coordinator-service/src/main/java/org/oransc/ics/clients/AsyncRestClientFactory.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2020 Nordix Foundation
- * %%
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================LICENSE_END===================================
- */
-
-package org.oransc.ics.clients;
-
-import io.netty.handler.ssl.SslContext;
-import io.netty.handler.ssl.SslContextBuilder;
-import io.netty.handler.ssl.util.InsecureTrustManagerFactory;
-
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.invoke.MethodHandles;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.UnrecoverableKeyException;
-import java.security.cert.Certificate;
-import java.security.cert.CertificateException;
-import java.security.cert.X509Certificate;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import javax.net.ssl.KeyManagerFactory;
-
-import org.oransc.ics.configuration.WebClientConfig;
-import org.oransc.ics.configuration.WebClientConfig.HttpProxyConfig;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.util.ResourceUtils;
-
-/**
- * Factory for a generic reactive REST client.
- */
-public class AsyncRestClientFactory {
- private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
- private final SslContextFactory sslContextFactory;
- private final HttpProxyConfig httpProxyConfig;
- private final SecurityContext securityContext;
-
- public AsyncRestClientFactory(WebClientConfig clientConfig, SecurityContext securityContext) {
- if (clientConfig != null) {
- this.sslContextFactory = new CachingSslContextFactory(clientConfig);
- this.httpProxyConfig = clientConfig.httpProxyConfig();
- } else {
- logger.warn("No configuration for web client defined, HTTPS will not work");
- this.sslContextFactory = null;
- this.httpProxyConfig = null;
- }
- this.securityContext = securityContext;
- }
-
- public AsyncRestClient createRestClientNoHttpProxy(String baseUrl) {
- return createRestClient(baseUrl, false);
- }
-
- public AsyncRestClient createRestClientUseHttpProxy(String baseUrl) {
- return createRestClient(baseUrl, true);
- }
-
- private AsyncRestClient createRestClient(String baseUrl, boolean useHttpProxy) {
- if (this.sslContextFactory != null) {
- try {
- return new AsyncRestClient(baseUrl, this.sslContextFactory.createSslContext(),
- useHttpProxy ? httpProxyConfig : null, this.securityContext);
- } catch (Exception e) {
- String exceptionString = e.toString();
- logger.error("Could not init SSL context, reason: {}", exceptionString);
- }
- }
- return new AsyncRestClient(baseUrl, null, httpProxyConfig, this.securityContext);
- }
-
- private class SslContextFactory {
- private final WebClientConfig clientConfig;
-
- public SslContextFactory(WebClientConfig clientConfig) {
- this.clientConfig = clientConfig;
- }
-
- public SslContext createSslContext() throws UnrecoverableKeyException, NoSuchAlgorithmException,
- CertificateException, KeyStoreException, IOException {
- return this.createSslContext(createKeyManager());
- }
-
- private SslContext createSslContext(KeyManagerFactory keyManager)
- throws NoSuchAlgorithmException, CertificateException, KeyStoreException, IOException {
- if (this.clientConfig.isTrustStoreUsed()) {
- return createSslContextRejectingUntrustedPeers(this.clientConfig.trustStore(),
- this.clientConfig.trustStorePassword(), keyManager);
- } else {
- // Trust anyone
- return SslContextBuilder.forClient() //
- .keyManager(keyManager) //
- .trustManager(InsecureTrustManagerFactory.INSTANCE) //
- .build();
- }
- }
-
- private SslContext createSslContextRejectingUntrustedPeers(String trustStorePath, String trustStorePass,
- KeyManagerFactory keyManager)
- throws NoSuchAlgorithmException, CertificateException, IOException, KeyStoreException {
-
- final KeyStore trustStore = getTrustStore(trustStorePath, trustStorePass);
- List certificateList = Collections.list(trustStore.aliases()).stream() //
- .filter(alias -> isCertificateEntry(trustStore, alias)) //
- .map(alias -> getCertificate(trustStore, alias)) //
- .collect(Collectors.toList());
- final X509Certificate[] certificates = certificateList.toArray(new X509Certificate[certificateList.size()]);
-
- return SslContextBuilder.forClient() //
- .keyManager(keyManager) //
- .trustManager(certificates) //
- .build();
- }
-
- private boolean isCertificateEntry(KeyStore trustStore, String alias) {
- try {
- return trustStore.isCertificateEntry(alias);
- } catch (KeyStoreException e) {
- logger.error("Error reading truststore {}", e.getMessage());
- return false;
- }
- }
-
- private Certificate getCertificate(KeyStore trustStore, String alias) {
- try {
- return trustStore.getCertificate(alias);
- } catch (KeyStoreException e) {
- logger.error("Error reading truststore {}", e.getMessage());
- return null;
- }
- }
-
- private KeyManagerFactory createKeyManager() throws NoSuchAlgorithmException, CertificateException, IOException,
- UnrecoverableKeyException, KeyStoreException {
- final KeyManagerFactory keyManager = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
- final KeyStore keyStore = KeyStore.getInstance(this.clientConfig.keyStoreType());
- final String keyStoreFile = this.clientConfig.keyStore();
- final String keyStorePassword = this.clientConfig.keyStorePassword();
- final String keyPassword = this.clientConfig.keyPassword();
- try (final InputStream inputStream = new FileInputStream(keyStoreFile)) {
- keyStore.load(inputStream, keyStorePassword.toCharArray());
- }
- keyManager.init(keyStore, keyPassword.toCharArray());
- return keyManager;
- }
-
- private synchronized KeyStore getTrustStore(String trustStorePath, String trustStorePass)
- throws NoSuchAlgorithmException, CertificateException, IOException, KeyStoreException {
-
- KeyStore store = KeyStore.getInstance(KeyStore.getDefaultType());
- store.load(new FileInputStream(ResourceUtils.getFile(trustStorePath)), trustStorePass.toCharArray());
- return store;
- }
- }
-
- public class CachingSslContextFactory extends SslContextFactory {
- private SslContext cachedContext = null;
-
- public CachingSslContextFactory(WebClientConfig clientConfig) {
- super(clientConfig);
- }
-
- @Override
- public SslContext createSslContext() throws UnrecoverableKeyException, NoSuchAlgorithmException,
- CertificateException, KeyStoreException, IOException {
- if (this.cachedContext == null) {
- this.cachedContext = super.createSslContext();
- }
- return this.cachedContext;
-
- }
- }
-}
diff --git a/information-coordinator-service/src/main/java/org/oransc/ics/clients/SecurityContext.java b/information-coordinator-service/src/main/java/org/oransc/ics/clients/SecurityContext.java
deleted file mode 100644
index aadc1bf5..00000000
--- a/information-coordinator-service/src/main/java/org/oransc/ics/clients/SecurityContext.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2022 Nordix Foundation
- * %%
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================LICENSE_END===================================
- */
-
-package org.oransc.ics.clients;
-
-import java.lang.invoke.MethodHandles;
-import java.nio.file.Files;
-import java.nio.file.Path;
-
-import lombok.Setter;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.stereotype.Component;
-
-@EnableConfigurationProperties
-@ConfigurationProperties()
-@Component
-public class SecurityContext {
-
- private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
- private long tokenTimestamp = 0;
-
- private String authToken = "";
-
- @Setter
- private Path authTokenFilePath;
-
- public SecurityContext(@Value("${app.auth-token-file:\"\"}") String authTokenFilename) {
- if (!authTokenFilename.isEmpty()) {
- this.authTokenFilePath = Path.of(authTokenFilename);
- }
- }
-
- public boolean isConfigured() {
- return authTokenFilePath != null;
- }
-
- public synchronized String getBearerAuthToken() {
- if (!isConfigured()) {
- return "";
- }
- try {
- long lastModified = authTokenFilePath.toFile().lastModified();
- if (lastModified != this.tokenTimestamp) {
- this.authToken = Files.readString(authTokenFilePath);
- this.tokenTimestamp = lastModified;
- }
- } catch (Exception e) {
- logger.warn("Could not read auth token file: {}, reason: {}", authTokenFilePath, e.getMessage());
- }
- return this.authToken;
- }
-
-}
diff --git a/information-coordinator-service/src/main/java/org/oransc/ics/configuration/ApplicationConfig.java b/information-coordinator-service/src/main/java/org/oransc/ics/configuration/ApplicationConfig.java
deleted file mode 100644
index 0a63d423..00000000
--- a/information-coordinator-service/src/main/java/org/oransc/ics/configuration/ApplicationConfig.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2020 Nordix Foundation
- * %%
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================LICENSE_END===================================
- */
-
-package org.oransc.ics.configuration;
-
-import lombok.Getter;
-
-import org.oransc.ics.configuration.WebClientConfig.HttpProxyConfig;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
-
-@EnableConfigurationProperties
-@ConfigurationProperties()
-public class ApplicationConfig {
-
- private static final Logger logger = LoggerFactory.getLogger(ApplicationConfig.class);
-
- @Getter
- @Value("${app.vardata-directory}")
- private String vardataDirectory;
-
- @Value("${server.ssl.key-store-type}")
- private String sslKeyStoreType = "";
-
- @Value("${server.ssl.key-store-password}")
- private String sslKeyStorePassword = "";
-
- @Value("${server.ssl.key-store}")
- private String sslKeyStore = "";
-
- @Value("${server.ssl.key-password}")
- private String sslKeyPassword = "";
-
- @Value("${app.webclient.trust-store-used}")
- private boolean sslTrustStoreUsed = false;
-
- @Value("${app.webclient.trust-store-password}")
- private String sslTrustStorePassword = "";
-
- @Value("${app.webclient.trust-store}")
- private String sslTrustStore = "";
-
- @Value("${app.webclient.http.proxy-host:\"\"}")
- private String httpProxyHost = "";
-
- @Value("${app.webclient.http.proxy-port:0}")
- private int httpProxyPort = 0;
-
- private WebClientConfig webClientConfig = null;
-
- public WebClientConfig getWebClientConfig() {
- if (this.webClientConfig == null) {
- if (this.httpProxyPort == 0) {
- logger.info("Http proxy is not used");
- } else {
- logger.info("Http proxy is used for RAN access {}:{}", httpProxyHost, httpProxyPort);
- }
- HttpProxyConfig httpProxyConfig = ImmutableHttpProxyConfig.builder() //
- .httpProxyHost(this.httpProxyHost) //
- .httpProxyPort(this.httpProxyPort) //
- .build();
- this.webClientConfig = ImmutableWebClientConfig.builder() //
- .keyStoreType(this.sslKeyStoreType) //
- .keyStorePassword(this.sslKeyStorePassword) //
- .keyStore(this.sslKeyStore) //
- .keyPassword(this.sslKeyPassword) //
- .isTrustStoreUsed(this.sslTrustStoreUsed) //
- .trustStore(this.sslTrustStore) //
- .trustStorePassword(this.sslTrustStorePassword) //
- .httpProxyConfig(httpProxyConfig) //
- .build();
- }
- return this.webClientConfig;
- }
-
-}
diff --git a/information-coordinator-service/src/main/java/org/oransc/ics/configuration/WebClientConfig.java b/information-coordinator-service/src/main/java/org/oransc/ics/configuration/WebClientConfig.java
deleted file mode 100644
index 12e9cfd8..00000000
--- a/information-coordinator-service/src/main/java/org/oransc/ics/configuration/WebClientConfig.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2020 Nordix Foundation
- * %%
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================LICENSE_END===================================
- */
-
-package org.oransc.ics.configuration;
-
-import org.immutables.value.Value;
-
-@Value.Immutable
-@Value.Style(redactedMask = "####")
-public interface WebClientConfig {
- public String keyStoreType();
-
- @Value.Redacted
- public String keyStorePassword();
-
- public String keyStore();
-
- @Value.Redacted
- public String keyPassword();
-
- public boolean isTrustStoreUsed();
-
- @Value.Redacted
- public String trustStorePassword();
-
- public String trustStore();
-
- @Value.Immutable
- public interface HttpProxyConfig {
- public String httpProxyHost();
-
- public int httpProxyPort();
- }
-
- public HttpProxyConfig httpProxyConfig();
-
-}
diff --git a/information-coordinator-service/src/main/java/org/oransc/ics/controllers/ErrorResponse.java b/information-coordinator-service/src/main/java/org/oransc/ics/controllers/ErrorResponse.java
deleted file mode 100644
index 25b0c165..00000000
--- a/information-coordinator-service/src/main/java/org/oransc/ics/controllers/ErrorResponse.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2020 Nordix Foundation
- * %%
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================LICENSE_END===================================
- */
-
-package org.oransc.ics.controllers;
-
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.google.gson.annotations.SerializedName;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-
-import org.oransc.ics.exceptions.ServiceException;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.MediaType;
-import org.springframework.http.ResponseEntity;
-import reactor.core.publisher.Mono;
-
-public class ErrorResponse {
- private static Gson gson = new GsonBuilder().create();
-
- // Returned as body for all failed REST calls
- @Schema(
- name = "ProblemDetails",
- description = "A problem detail to carry details in a HTTP response according to RFC 7807")
- public static class ErrorInfo {
- @SerializedName("type")
- private String type = "about:blank";
-
- @SerializedName("title")
- private String title = null;
-
- @SerializedName("status")
- private final Integer status;
-
- @SerializedName("detail")
- private String detail = null;
-
- @SerializedName("instance")
- private String instance = null;
-
- public ErrorInfo(String detail, Integer status) {
- this.detail = detail;
- this.status = status;
- }
-
- @Schema(
- example = "404",
- description = "The HTTP status code generated by the origin server for this occurrence of the problem.")
- public Integer getStatus() {
- return status;
- }
-
- @Schema(
- example = "Information Job type not found",
- description = "A human-readable explanation specific to this occurrence of the problem.")
- public String getDetail() {
- return this.detail;
- }
- }
-
- @Schema(name = "message")
- public final String message;
-
- ErrorResponse(String message) {
- this.message = message;
- }
-
- public static Mono> createMono(Throwable e, HttpStatus code) {
- return Mono.just(create(e, code));
- }
-
- public static ResponseEntity