diff --git a/src/test/java/org/gcube/accounting/datamodel/validations/validators/TestRules.java b/src/test/java/org/gcube/accounting/datamodel/validations/validators/TestRules.java index 4eb7702..52dd266 100644 --- a/src/test/java/org/gcube/accounting/datamodel/validations/validators/TestRules.java +++ b/src/test/java/org/gcube/accounting/datamodel/validations/validators/TestRules.java @@ -228,7 +228,7 @@ public class TestRules extends ContextTest { public void testAllRuleInAdirectory() throws Exception { allRules(); File rulesDirectory = getRulesDirectory(); - File rulesDirFile = new File(rulesDirectory, "SmartExecutor"); + File rulesDirFile = new File(rulesDirectory, "StorageHub"); FilenameFilter filenameFilter = new FilenameFilter() { @Override diff --git a/src/test/resources/rules/StorageHub/StorageHub-createItem(FILE).csv b/src/test/resources/rules/StorageHub/StorageHub-createItem(FILE).csv index c9b6943..782ccab 100644 --- a/src/test/resources/rules/StorageHub/StorageHub-createItem(FILE).csv +++ b/src/test/resources/rules/StorageHub/StorageHub-createItem(FILE).csv @@ -1,3 +1,4 @@ DataAccess,StorageHub,/item/create/byPath DataAccess,StorageHub,/workspace/items/bc1c9525-43f7-4565-b5ea-0a0f9d7853a0/create/FILE -DataAccess,StorageHub,createItem(FILE) \ No newline at end of file +DataAccess,StorageHub,createItem(FILE) +DataAccess,StorageHub,/workspace/items/bc1c9525-43f7-4565-b5ea-0a0f9d7853a0/create/test-upload \ No newline at end of file diff --git a/src/test/resources/rules/StorageHub/StorageHub-createItem(FILE).json b/src/test/resources/rules/StorageHub/StorageHub-createItem(FILE).json index 7e1ac92..c313c66 100644 --- a/src/test/resources/rules/StorageHub/StorageHub-createItem(FILE).json +++ b/src/test/resources/rules/StorageHub/StorageHub-createItem(FILE).json @@ -2,7 +2,7 @@ "match": { "serviceClassRegex": "DataAccess", "serviceNameRegex": "StorageHub", - "calledMethodRegex": "(^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/create\/FILE$)|createItem\\(FILE\\)|(\/item\/create\/byPath)" + "calledMethodRegex": "(^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/create\/(FILE|(?!FOLDER).*)$)|createItem\\(FILE\\)|(\/item\/create\/byPath)" }, "replace": { "serviceClass": "DataAccess", diff --git a/src/test/resources/rules/StorageHub/StorageHub-createItem(FOLDER).csv b/src/test/resources/rules/StorageHub/StorageHub-createItem(FOLDER).csv new file mode 100644 index 0000000..ad53275 --- /dev/null +++ b/src/test/resources/rules/StorageHub/StorageHub-createItem(FOLDER).csv @@ -0,0 +1 @@ +DataAccess,StorageHub,/workspace/items/2240a3dd6c-2c47-4848-bb7b-462e532954a9/create/FOLDER \ No newline at end of file diff --git a/src/test/resources/rules/StorageHub/StorageHub-createItem(FOLDER).json b/src/test/resources/rules/StorageHub/StorageHub-createItem(FOLDER).json new file mode 100644 index 0000000..3c75016 --- /dev/null +++ b/src/test/resources/rules/StorageHub/StorageHub-createItem(FOLDER).json @@ -0,0 +1,12 @@ +{ + "match": { + "serviceClassRegex": "DataAccess", + "serviceNameRegex": "StorageHub", + "calledMethodRegex": "(^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/create\/FOLDER$)|createItem\\(FOLDER\\)" + }, + "replace": { + "serviceClass": "DataAccess", + "serviceName": "StorageHub", + "calledMethod": "createItem(FOLDER)" + } +} \ No newline at end of file diff --git a/src/test/resources/rules/StorageHub/StorageHub-getAcls.csv b/src/test/resources/rules/StorageHub/StorageHub-getAcls.csv new file mode 100644 index 0000000..579c258 --- /dev/null +++ b/src/test/resources/rules/StorageHub/StorageHub-getAcls.csv @@ -0,0 +1 @@ +DataAccess,StorageHub,/workspace/itams/c141d53d-4cae-4bfc-a6f7-9b8bbd8c0e2b/acls \ No newline at end of file diff --git a/src/test/resources/rules/StorageHub/StorageHub-getAcls.json b/src/test/resources/rules/StorageHub/StorageHub-getAcls.json new file mode 100644 index 0000000..8bb777c --- /dev/null +++ b/src/test/resources/rules/StorageHub/StorageHub-getAcls.json @@ -0,0 +1,12 @@ +{ + "match": { + "serviceClassRegex": "DataAccess", + "serviceNameRegex": "StorageHub", + "calledMethodRegex": "^\/(workspace\/){1,2}(item|itam)(s){0,1}\/[0-9a-zA-Z\\-_]*\/acl(s){0,1}(\/){0,1}$|getAcls" + }, + "replace": { + "serviceClass": "DataAccess", + "serviceName": "StorageHub", + "calledMethod": "getAcls" + } +} \ No newline at end of file diff --git a/src/test/resources/rules/StorageHub/StorageHub-getById.csv b/src/test/resources/rules/StorageHub/StorageHub-getById.csv index 167c60a..e5c3632 100644 --- a/src/test/resources/rules/StorageHub/StorageHub-getById.csv +++ b/src/test/resources/rules/StorageHub/StorageHub-getById.csv @@ -6,4 +6,5 @@ DataAccess,StorageHub,/workspace/item/c99d26b6-e0bb-4a48-b32a-77056f49ddeb DataAccess,StorageHub,/workspace/item/da558346-7d1a-4159-8780-a22e63f3c7dc/ DataAccess,StorageHub,/workspace/items/87bea023-3eed-445b-8c27-4d9d4e5921cc DataAccess,StorageHub,/workspace/items/790e4c52-fbca-48e9-b267-67ea2ce708c0 -DataAccess,StorageHub,getById \ No newline at end of file +DataAccess,StorageHub,getById +DataAccess,StorageHub,/workspace/workspace/items/6fbe6284-dd21-4555-bcae-f20662159e46 \ No newline at end of file diff --git a/src/test/resources/rules/StorageHub/StorageHub-getById.json b/src/test/resources/rules/StorageHub/StorageHub-getById.json index 26425dc..e0c5fc2 100644 --- a/src/test/resources/rules/StorageHub/StorageHub-getById.json +++ b/src/test/resources/rules/StorageHub/StorageHub-getById.json @@ -2,7 +2,7 @@ "match": { "serviceClassRegex": "DataAccess", "serviceNameRegex": "StorageHub", - "calledMethodRegex": "^\/workspace(\/item(s){0,1}){0,1}\/(?!(i$)|count|i{0,1}t(h){0,1}rash|group(s){0,1}|user(s){0,1}|paged|v(re|ere|er)fo(ld|dl)ers{0,1}|((C|c)hi(dl|ld|d)ren))[0-9a-zA-Z\\-_]{1,}(\/){0,1}$|getById" + "calledMethodRegex": "^\/workspace(\/workspace){0,1}(\/item(s){0,1}){0,1}\/(?!(i$)|count|i{0,1}t(h){0,1}rash|group(s){0,1}|user(s){0,1}|paged|v(re|ere|er)fo(ld|dl)ers{0,1}|((C|c)hi(dl|ld|d)ren))[0-9a-zA-Z\\-_]{1,}(\/){0,1}$|getById" }, "replace": { "serviceClass": "DataAccess", diff --git a/src/test/resources/rules/StorageHub/StorageHub-getVersions.csv b/src/test/resources/rules/StorageHub/StorageHub-getVersions.csv new file mode 100644 index 0000000..912ba97 --- /dev/null +++ b/src/test/resources/rules/StorageHub/StorageHub-getVersions.csv @@ -0,0 +1,2 @@ +DataAccess,StorageHub,/workspace/workspace/items/6fbe6284-dd21-4555-bcae-f20662159e46/version +DataAccess,StorageHub,/workspace/workspace/items/6fbe6284-dd21-4555-bcae-f20662159e46/versions \ No newline at end of file diff --git a/src/test/resources/rules/StorageHub/StorageHub-getVersions.json b/src/test/resources/rules/StorageHub/StorageHub-getVersions.json new file mode 100644 index 0000000..515545f --- /dev/null +++ b/src/test/resources/rules/StorageHub/StorageHub-getVersions.json @@ -0,0 +1,12 @@ +{ + "match": { + "serviceClassRegex": "DataAccess", + "serviceNameRegex": "StorageHub", + "calledMethodRegex": "^\/(workspace\/){1,2}item(s){0,1}\/[0-9a-zA-Z\\-_]*\/version(s){0,1}(\/){0,1}$|getVersions" + }, + "replace": { + "serviceClass": "DataAccess", + "serviceName": "StorageHub", + "calledMethod": "getVersions" + } +} \ No newline at end of file diff --git a/src/test/resources/rules/StorageHub/StorageHub-resolvePubliclink.csv b/src/test/resources/rules/StorageHub/StorageHub-resolvePubliclink.csv index d08ec7b..af09da9 100644 --- a/src/test/resources/rules/StorageHub/StorageHub-resolvePubliclink.csv +++ b/src/test/resources/rules/StorageHub/StorageHub-resolvePubliclink.csv @@ -1,2 +1,3 @@ DataAccess,StorageHub,/workspace/items/publiclink/E_cb6a04d1-f94b-4c2f-90ed-18c1cee591bc -DataAccess,StorageHub,/workspace/items/publiclink/E_yl9pyk1l/+qF3LnaT17GYrcqp1eg7ZghY9VJUfIk/PIMEGZvJQQZxpQ0jBEOh2eZ \ No newline at end of file +DataAccess,StorageHub,/workspace/items/publiclink/E_yl9pyk1l/+qF3LnaT17GYrcqp1eg7ZghY9VJUfIk/PIMEGZvJQQZxpQ0jBEOh2eZ +DataAccess,StorageHub,/workspace/publiclink/E_Vm9EWkJIY1hyeGNZTiswWVk5STFmczJ5MnBaakdqWEhVL2hNbUhrVFhZdGlwbG5oM0ZNam0rbllGS1N3bTVubQ== \ No newline at end of file diff --git a/src/test/resources/rules/StorageHub/StorageHub-resolvePubliclink.json b/src/test/resources/rules/StorageHub/StorageHub-resolvePubliclink.json index 5279bfd..7467d86 100644 --- a/src/test/resources/rules/StorageHub/StorageHub-resolvePubliclink.json +++ b/src/test/resources/rules/StorageHub/StorageHub-resolvePubliclink.json @@ -2,7 +2,7 @@ "match": { "serviceClassRegex": "DataAccess", "serviceNameRegex": "StorageHub", - "calledMethodRegex": "\/workspace\/items\/publiclink\/.*" + "calledMethodRegex": "\/workspace(\/items){0,1}\/publiclink\/.*" }, "replace": { "serviceClass": "DataAccess", diff --git a/src/test/resources/rules/allRules.json.full b/src/test/resources/rules/allRules.json.full index 6c39a57..6c7d9cc 100644 --- a/src/test/resources/rules/allRules.json.full +++ b/src/test/resources/rules/allRules.json.full @@ -851,13 +851,24 @@ "match": { "serviceClassRegex": "DataAccess", "serviceNameRegex": "StorageHub", - "calledMethodRegex": "(^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/create\/FILE$)|createItem\\(FILE\\)|(\/item\/create\/byPath)" + "calledMethodRegex": "(^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/create\/(FILE|(?!FOLDER).*)$)|createItem\\(FILE\\)|(\/item\/create\/byPath)" }, "replace": { "serviceClass": "DataAccess", "serviceName": "StorageHub", "calledMethod": "createItem(FILE)" } +},{ + "match": { + "serviceClassRegex": "DataAccess", + "serviceNameRegex": "StorageHub", + "calledMethodRegex": "(^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/create\/FOLDER$)|createItem\\(FOLDER\\)" + }, + "replace": { + "serviceClass": "DataAccess", + "serviceName": "StorageHub", + "calledMethod": "createItem(FOLDER)" + } },{ "match": { "serviceClassRegex": "DataAccess", @@ -884,7 +895,18 @@ "match": { "serviceClassRegex": "DataAccess", "serviceNameRegex": "StorageHub", - "calledMethodRegex": "^\/workspace(\/item(s){0,1}){0,1}\/(?!(i$)|count|i{0,1}t(h){0,1}rash|group(s){0,1}|user(s){0,1}|paged|v(re|ere|er)fo(ld|dl)ers{0,1}|((C|c)hi(dl|ld|d)ren))[0-9a-zA-Z\\-_]{1,}(\/){0,1}$|getById" + "calledMethodRegex": "^\/(workspace\/){1,2}(item|itam)(s){0,1}\/[0-9a-zA-Z\\-_]*\/acl(s){0,1}(\/){0,1}$|getAcls" + }, + "replace": { + "serviceClass": "DataAccess", + "serviceName": "StorageHub", + "calledMethod": "getAcls" + } +},{ + "match": { + "serviceClassRegex": "DataAccess", + "serviceNameRegex": "StorageHub", + "calledMethodRegex": "^\/workspace(\/workspace){0,1}(\/item(s){0,1}){0,1}\/(?!(i$)|count|i{0,1}t(h){0,1}rash|group(s){0,1}|user(s){0,1}|paged|v(re|ere|er)fo(ld|dl)ers{0,1}|((C|c)hi(dl|ld|d)ren))[0-9a-zA-Z\\-_]{1,}(\/){0,1}$|getById" }, "replace": { "serviceClass": "DataAccess", @@ -935,6 +957,17 @@ "serviceName": "StorageHub", "calledMethod": "getUsers" } +},{ + "match": { + "serviceClassRegex": "DataAccess", + "serviceNameRegex": "StorageHub", + "calledMethodRegex": "^\/(workspace\/){1,2}item(s){0,1}\/[0-9a-zA-Z\\-_]*\/version(s){0,1}(\/){0,1}$|getVersions" + }, + "replace": { + "serviceClass": "DataAccess", + "serviceName": "StorageHub", + "calledMethod": "getVersions" + } },{ "match": { "serviceClassRegex": "DataAccess", @@ -1016,7 +1049,7 @@ "match": { "serviceClassRegex": "DataAccess", "serviceNameRegex": "StorageHub", - "calledMethodRegex": "\/workspace\/items\/publiclink\/.*" + "calledMethodRegex": "\/workspace(\/items){0,1}\/publiclink\/.*" }, "replace": { "serviceClass": "DataAccess", diff --git a/src/test/resources/rules/allRules.json.min b/src/test/resources/rules/allRules.json.min index ff3c3fa..11c377f 100644 --- a/src/test/resources/rules/allRules.json.min +++ b/src/test/resources/rules/allRules.json.min @@ -1 +1 @@ -[{"match":{"serviceClassRegex":"(?.*)","serviceNameRegex":"(?.*)","calledMethodRegex":"UNKNOWN"},"replace":{"serviceClass":"${ServiceClass}","serviceName":"${ServiceName}","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(WPS)|(DataAnalysis)","serviceNameRegex":"DataMiner","calledMethodRegex":"(?.*)"},"replace":{"serviceClass":"DataAnalysis","serviceName":"DataMiner","calledMethod":"${CalledMethod}"}},{"match":{"serviceClassRegex":"Common","serviceNameRegex":"AuthorizationService","calledMethodRegex":"^/{0,1}gcube/service/generate.*"},"replace":{"serviceClass":"Common","serviceName":"AuthorizationService","calledMethod":"generate"}},{"match":{"serviceClassRegex":"Common","serviceNameRegex":"AuthorizationService","calledMethodRegex":"^/{0,1}gcube/service/retrieve.*"},"replace":{"serviceClass":"Common","serviceName":"AuthorizationService","calledMethod":"retrieve"}},{"match":{"serviceClassRegex":"Common","serviceNameRegex":"AuthorizationService","calledMethodRegex":"^((e\/)|\/){0,1}gcube\/resource\/scopes"},"replace":{"serviceClass":"Common","serviceName":"AuthorizationService","calledMethod":"scopes"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})(?(group|item|resource|namespace))(s){0,1}\/(?(create|show|purge|delete))(\/{0,1})"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"${Action} ${Collection}"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})(?(groups|items|resources))\/(?list)(\/{0,1})"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"${Action} ${Collection}"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})licen(c|s)es\/(?(create|show|purge|delete))(\/{0,1})"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"${Action} license"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})licen(c|s)es\/(?list)(\/{0,1})"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"${Action} licenses"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})profiles\/namespaces(s){0,1}.*"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"list namespaces"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})organi(s|z)ation(s){0,1}\/(?(create|show|purge|delete))(\/{0,1})"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"${Action} organization"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})organi(s|z)ation(s){0,1}\/(?list)(\/){0,1}.*|(listOrgani(s|z)ation(s{0,1}))"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"list organizations"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"^\/rest$|^UNKNOWN$|^OTHER$"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})profile(s){0,1}\/(?(show|profile))(\/){0,1}"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"show profile"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})profile(s){0,1}\/(?(list|profile_names))(\/{0,1})"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"list profile"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"CkanConnector","calledMethodRegex":"^\/{0,1}gcube\/service\/connect.*"},"replace":{"serviceClass":"DataAccess","serviceName":"CkanConnector","calledMethod":"connect"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"CkanConnector","calledMethodRegex":"^\/{0,1}gcube\/service\/disconnect.*"},"replace":{"serviceClass":"DataAccess","serviceName":"CkanConnector","calledMethod":"disconnect"}},{"match":{"serviceClassRegex":"DataAnalysis","serviceNameRegex":"cmems-importer-service","calledMethodRegex":".*"},"replace":{"serviceClass":"DataAnalysis","serviceName":"cmems-importer-service","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAnalysis","serviceNameRegex":"data-analytics-visualization","calledMethodRegex":".*"},"replace":{"serviceClass":"DataAnalysis","serviceName":"data-analytics-visualization","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(WPS)|(DataAnalysis)","serviceNameRegex":"DataMiner","calledMethodRegex":"^\/{0,1}(?(?!(UNKNOWN|OTHER|(gcube\/resource\/scopes))).*)"},"replace":{"serviceClass":"DataAnalysis","serviceName":"DataMiner","calledMethod":"${Method}"}},{"match":{"serviceClassRegex":"(WPS)|(DataAnalysis)","serviceNameRegex":"DataMiner","calledMethodRegex":"^\/{0,1}(UNKNOWN|OTHER|(gcube\/resource\/scopes)).*"},"replace":{"serviceClass":"DataAnalysis","serviceName":"DataMiner","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(DataAnalysis)|(data-analysis)|dataanalysis","serviceNameRegex":"dataminer-pool-manager","calledMethodRegex":"\/{0,1}api\/(algorithm\/){0,1}(?[a-zA-Z]*)"},"replace":{"serviceClass":"DataAnalysis","serviceName":"dataminer-pool-manager","calledMethod":"${Method}"}},{"match":{"serviceClassRegex":"(DataAnalysis)|(data-analysis)|dataanalysis","serviceNameRegex":"dataminer-pool-manager","calledMethodRegex":"\/{0,1}(api|OTHER|(gcube\/resource))"},"replace":{"serviceClass":"DataAnalysis","serviceName":"dataminer-pool-manager","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"data-transfer-service","calledMethodRegex":".*(c|C)apabilities.*"},"replace":{"serviceClass":"DataTransfer","serviceName":"data-transfer-service","calledMethod":"getCapabilities"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"data-transfer-service","calledMethodRegex":".*TransferStatus.*"},"replace":{"serviceClass":"DataTransfer","serviceName":"data-transfer-service","calledMethod":"getTransferStatus"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"data-transfer-service","calledMethodRegex":"(\/{0,1}gcube\/service\/(REST|application.wadl))|OTHER"},"replace":{"serviceClass":"DataTransfer","serviceName":"data-transfer-service","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"data-transfer-service","calledMethodRegex":"\/{0,1}gcube\/service\/REST\/.*"},"replace":{"serviceClass":"DataTransfer","serviceName":"data-transfer-service","calledMethod":"transfer"}},{"match":{"serviceClassRegex":"ResourceManagement","serviceNameRegex":"FHNManager","calledMethodRegex":".*"},"replace":{"serviceClass":"ResourceManagement","serviceName":"FHNManager","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(Index)|(DataRetrieval)","serviceNameRegex":"(FullTextIndexNode)|(FullTextFullTextIndexNodeNode)","calledMethodRegex":".*"},"replace":{"serviceClass":"DataRetrieval","serviceName":"FullTextIndexNode","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(DataCatalogue)|(DataPublishing)","serviceNameRegex":"(science-catalogue)|(gcat)|(gCat)","calledMethodRegex":"^(\/){0,1}(rest\/(api\/){0,1}){0,1}(?group|item|license|namespace|organization|profile|user)s\/(?!list|create)[%0-9a-zA-Z\\-_.+:]*$"},"replace":{"serviceClass":"DataPublishing","serviceName":"gcat","calledMethod":"read ${Collection}"}},{"match":{"serviceClassRegex":"(DataCatalogue)|(DataPublishing)","serviceNameRegex":"(science-catalogue)|(gcat)|(gCat)","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1}){0,1}(?((groups(\/list){0,1}))|items|licenses|namespaces|organizations|profiles|users)$"},"replace":{"serviceClass":"DataPublishing","serviceName":"gcat","calledMethod":"list ${Collection}"}},{"match":{"serviceClassRegex":"(DataCatalogue)|(DataPublishing)","serviceNameRegex":"(science-catalogue)|(gcat)|(gCat)","calledMethodRegex":"(^\/index$)|OTHER|UNKNOWN"},"replace":{"serviceClass":"DataPublishing","serviceName":"gcat","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(DataCatalogue)|(DataPublishing)","serviceNameRegex":"(science-catalogue)|(gcat)|(gCat)","calledMethodRegex":"^(\/){0,1}(rest\/(api\/){0,1}){0,1}items\/[%0-9a-zA-Z\\-_]*\/resources\/[%0-9a-zA-Z\\-_.+:]*$"},"replace":{"serviceClass":"DataPublishing","serviceName":"gcat","calledMethod":"read resource"}},{"match":{"serviceClassRegex":"(DataCatalogue)|(DataPublishing)","serviceNameRegex":"(science-catalogue)|(gcat)|(gCat)","calledMethodRegex":"^(\/){0,1}(rest\/(api\/){0,1}){0,1}items\/[%0-9a-zA-Z\\-_.+:]*\/resources$"},"replace":{"serviceClass":"DataPublishing","serviceName":"gcat","calledMethod":"list resources"}},{"match":{"serviceClassRegex":"(geoanalytics)|(SDI)","serviceNameRegex":"geoanalytics-gos.*","calledMethodRegex":".*"},"replace":{"serviceClass":"SDI","serviceName":"geoanalytics-gos","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"geoanalytics","serviceNameRegex":"geoanalytics-main-service","calledMethodRegex":".*"},"replace":{"serviceClass":"SDI","serviceName":"geoanalytics-main-service","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":".*(\\.create(\\.form){0,1}|\\.insert|\\.xmlinsert\\.form)$"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"create"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":".*(\\.delete(\\.batch|@json|$))"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"delete"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":".*(\\.list(@json|$))"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"list"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":"^(?!.*(read|create|insert|delete|list|get|show|info|search|update|edit)).*$|^(.*(updated|editors|pwupdate|(records.*)|(systeminfo.*)|forget-password|getmap.png|(GetCapabilities.*)|(\/codelists\/.*)))$"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":"(.*(\\.get(\\..*|\/.*|$)|\\.show(\\..*|$)|((\\.|/)info(?!edit).*)))|(read@json)"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"read"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":".*(\\.|-|/|package_|open)search(\/.*|unused(.form){0,1}|\\..*|;jsessionid=.*|-.*|$)"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"search"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":".*(\\.update($|\\.finish|@json)|\\.edit(!{0,1}|\\.save(only){0,1}|\\.commit)$|\\.infoedit$|\\.pwedit$)"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"update"}},{"match":{"serviceClassRegex":"(GeoServer)|(geoserver)|(SpatialData)|(SDI)","serviceNameRegex":"(GeoServer)|(geoserver)","calledMethodRegex":"^(?!.*\/(wfs|wms|wcs|wmts)).*$"},"replace":{"serviceClass":"SDI","serviceName":"GeoServer","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(GeoServer)|(geoserver)|(SpatialData)|(SDI)","serviceNameRegex":"(GeoServer)|(geoserver)","calledMethodRegex":"^.*\/(?(wfs|wms|wcs|wmts)).*$"},"replace":{"serviceClass":"SDI","serviceName":"GeoServer","calledMethod":"/${Protocol}","_comment" : "Do not remove the initial / to avoid that wms is replaced with OTHER"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"GRSFPublisher","calledMethodRegex":"(.*publish-product.*)|(.*create-product.*)|(create)"},"replace":{"serviceClass":"DataPublishing","serviceName":"GRSFPublisher","calledMethod":"create"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"GRSFPublisher","calledMethodRegex":"(.*delete-product.*)|(delete)"},"replace":{"serviceClass":"DataPublishing","serviceName":"GRSFPublisher","calledMethod":"delete"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"GRSFPublisher","calledMethodRegex":".*get-license(s{0,1}).*"},"replace":{"serviceClass":"DataPublishing","serviceName":"GRSFPublisher","calledMethod":"getLicenses"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"GRSFPublisher","calledMethodRegex":".*get-catalogue-id-(and-url-){0,1}from-name.*"},"replace":{"serviceClass":"DataPublishing","serviceName":"GRSFPublisher","calledMethod":"getURLandIdFromName"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"GRSFPublisher","calledMethodRegex":".*((hello)|(UNKNOWN)|(OTHER)).*"},"replace":{"serviceClass":"DataPublishing","serviceName":"GRSFPublisher","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"GRSFPublisher","calledMethodRegex":"(.*update-product.*)|(update)"},"replace":{"serviceClass":"DataPublishing","serviceName":"GRSFPublisher","calledMethod":"update"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"HomeLibraryFileSystem","calledMethodRegex":".*"},"replace":{"serviceClass":"DataAccess","serviceName":"HomeLibraryFileSystem","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"HomeLibraryWebapp","calledMethodRegex":"\/{0,1}((acl|get|rest|post|trash|versioning)\/){0,1}(?[a-zA-Z]*)"},"replace":{"serviceClass":"DataAccess","serviceName":"HomeLibraryWebapp","calledMethod":"${Method}"}},{"match":{"serviceClassRegex":"InformationSystem","serviceNameRegex":"ICProxy","calledMethodRegex":"^(\/){0,1}gcube\/service\/(GCoreEndpoint|HostingNode|RuntimeResource|GenericResource).*"},"replace":{"serviceClass":"InformationSystem","serviceName":"ICProxy","calledMethod":"query"}},{"match":{"serviceClassRegex":"InformationSystem","serviceNameRegex":"ICProxy","calledMethodRegex":"^(\/){0,1}gcube\/service\/(?!GCoreEndpoint|HostingNode|RuntimeResource|GenericResource).*"},"replace":{"serviceClass":"InformationSystem","serviceName":"ICProxy","calledMethod":"read"}},{"match":{"serviceClassRegex":"(InformationSystem)|(Accounting)","serviceNameRegex":"QuotaManager","calledMethodRegex":".*"},"replace":{"serviceClass":"Accounting","serviceName":"QuotaManager","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAnalysis","serviceNameRegex":"RConnector","calledMethodRegex":"^\/{0,1}gcube\/service\/connect.*"},"replace":{"serviceClass":"DataAnalysis","serviceName":"RConnector","calledMethod":"connect"}},{"match":{"serviceClassRegex":"DataAnalysis","serviceNameRegex":"RConnector","calledMethodRegex":"UNKNOWN|OTHER|^\/{0,1}gcube\/resource\/scopes"},"replace":{"serviceClass":"DataAnalysis","serviceName":"RConnector","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"ResourceManagement","serviceNameRegex":"resource-manager-webapp","calledMethodRegex":".*"},"replace":{"serviceClass":"ResourceManagement","serviceName":"resource-manager-webapp","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"InformationSystem","serviceNameRegex":"(resource-registry)|(joint-resource-registry)","calledMethodRegex":"(?!(listContexts|createContext|readContext|updateContext|deleteContext|listInstances|existInstance|createInstance|readInstance|updateInstance|deleteInstance|createType|readType|addToContext|removeFromContext|query|rawQuery)).*"},"replace":{"serviceClass":"InformationSystem","serviceName":"resource-registry","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"Portal","serviceNameRegex":"ReverseProxy","calledMethodRegex":".*"},"replace":{"serviceClass":"Portal","serviceName":"ReverseProxy","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"SDI","serviceNameRegex":"sdi-service","calledMethodRegex":".*"},"replace":{"serviceClass":"SDI","serviceName":"sdi-service","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataPublishing","serviceNameRegex":"SDMXDataSource.*","calledMethodRegex":".*"},"replace":{"serviceClass":"DataPublishing","serviceName":"SDMXDataSource","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"ShareLatex","calledMethodRegex":"^\/{0,1}gcube\/service\/connect.*"},"replace":{"serviceClass":"DataAccess","serviceName":"ShareLatex","calledMethod":"connect"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"ShareLatex","calledMethodRegex":"^\/{0,1}gcube\/service\/disconnect.*"},"replace":{"serviceClass":"DataAccess","serviceName":"ShareLatex","calledMethod":"disconnect"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"ShareLatex","calledMethodRegex":"^(?!(\/{0,1}gcube\/service\/){0,1}((connect)|(disconnect)|(project))).*"},"replace":{"serviceClass":"DataAccess","serviceName":"ShareLatex","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"ShareLatex","calledMethodRegex":"^\/{0,1}gcube\/service\/project.*"},"replace":{"serviceClass":"DataAccess","serviceName":"ShareLatex","calledMethod":"project"}},{"match":{"serviceClassRegex":"(Search)|(DataRetrieval)","serviceNameRegex":"SimulFishGrowthData","calledMethodRegex":".*"},"replace":{"serviceClass":"DataRetrieval","serviceName":"SimulFishGrowthData","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"(SmartExecutor)|(smart-executor)","calledMethodRegex":".*((launch)|(execute)|(POST .*executions)).*"},"replace":{"serviceClass":"VREManagement","serviceName":"SmartExecutor","calledMethod":"execute"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"(SmartExecutor)|(smart-executor)","calledMethodRegex":".*((getAvailablePlugins.*)|(^(GET ){0,1}(\/){0,1}plugins(\/){0,1}$))"},"replace":{"serviceClass":"VREManagement","serviceName":"SmartExecutor","calledMethod":"getAvailablePlugins"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"(SmartExecutor)|(smart-executor)","calledMethodRegex":".*((getScheduledExecution.*)|((GET ){0,1}.*executions(\/(ORPHAN){0,1}){0,1}()$))|((GET ){0,1}(\/){0,1}(rest\/){0,1}plugins\/[0-9a-zA-Z%\\-_]{1,})"},"replace":{"serviceClass":"VREManagement","serviceName":"SmartExecutor","calledMethod":"getScheduledExecution"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"(SmartExecutor)|(smart-executor)","calledMethodRegex":".*((getStateEvolution)|(getState)|(GET .*executions\/(?!executions).{1,})).*|((GET ){0,1}(\/){0,1}(rest\/){0,1}plugins\/[0-9a-zA-Z%\\-_]{1,}\/(?!executions).*)"},"replace":{"serviceClass":"VREManagement","serviceName":"SmartExecutor","calledMethod":"getState"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"(SmartExecutor)|(smart-executor)","calledMethodRegex":".*(UNKNOWN)|(OTHER).*"},"replace":{"serviceClass":"VREManagement","serviceName":"smart-executor","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"(SmartExecutor)|(smart-executor)","calledMethodRegex":".*((stop)|(unSchedule)|(DELETE)|(PURGE)).*"},"replace":{"serviceClass":"VREManagement","serviceName":"SmartExecutor","calledMethod":"stop"}},{"match":{"serviceClassRegex":"Portal","serviceNameRegex":"SocialNetworking","calledMethodRegex":"\/{0,1}rest\/((1|2)\/){0,1}(((people){0,1}(users(\/2){0,1})|comments|full-text-search|hashtags|messages|notifications|people|posts|tokens|vres|vers)\/){0,1}(?[a-zA-Z\\-]*(\/){0,1})"},"replace":{"serviceClass":"Portal","serviceName":"SocialNetworking","calledMethod":"${Method}"}},{"match":{"serviceClassRegex":"Portal","serviceNameRegex":"SocialNetworking","calledMethodRegex":"(\/{0,1}(rest))|OTHER|UNKNOWN|\/gcube\/service\/($|&.*)"},"replace":{"serviceClass":"Portal","serviceName":"SocialNetworking","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(\/workspace\/count)|countById"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"countById"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/create\/FILE$)|createItem\\(FILE\\)|(\/item\/create\/byPath)"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"createItem(FILE)"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/download(\/){0,1}$|downloadById"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"downloadById"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/(firstcopy|(item(s){0,1})\/.*$))|findChildrenByNamePattern"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"findChildrenByNamePattern"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/workspace(\/item(s){0,1}){0,1}\/(?!(i$)|count|i{0,1}t(h){0,1}rash|group(s){0,1}|user(s){0,1}|paged|v(re|ere|er)fo(ld|dl)ers{0,1}|((C|c)hi(dl|ld|d)ren))[0-9a-zA-Z\\-_]{1,}(\/){0,1}$|getById"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getById"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/workspace\/group(s){0,1}\/{0,1}.*|getGroups"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getGroups"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/history(\/){0,1}$|getHistory"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getHistory"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(^\/workspace\/i{0,1}t(h){0,1}rash\/{0,1}.*)|getTrashFolder|getTrashRootFolder"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getTrashFolder"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/workspace\/user(s){0,1}\/{0,1}.*|getUsers"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getUsers"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"\/workspace\/vrefolder\/recents|getVreFolderRecents"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getVreFolderRecents"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"\/workspace\/v(re|ere|er)fo(ld|dl)ers(\/){0,1}|getVreFolders"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getVreFolders"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"\/workspace\/(item(s){0,1}\/){0,1}vrefolder(\/){0,1}|getVreRootFolder"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getVreRootFolder"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(\/workspace(\/.|\/){0,1})|getWorkspace"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getWorkspace"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(listById)|(\/list\/byId)|(\/list\/byPath)|(\/workspace/{0,1}.*\/(get){0,1}(C|c)hi(dl|ld|d)ren)"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"listById"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(listByIdPaged)|(\/workspace/paged(\/){0,1})"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"listByIdPaged"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(test-upload\\(FILE\\))|(OTHER)|(UNKNOWN)|(createItem\\(null\\))"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"\/workspace\/items\/publiclink\/.*"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"resolvePubliclink"}},{"match":{"serviceClassRegex":"content-management","serviceNameRegex":"storage","calledMethodRegex":".*"},"replace":{"serviceClass":"content-management","serviceName":"storage","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"Application|DataAnalysis","serviceNameRegex":"TagMe","calledMethodRegex":"^((e\/)|\/){0,1}tag"},"replace":{"serviceClass":"Application","serviceName":"TagMe","calledMethod":"tag"}},{"match":{"serviceClassRegex":"SDI|DataAnalysis","serviceNameRegex":"Thredds","calledMethodRegex":"^(\/){1}(?[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}(?[a-zA-Z0-9_\\-%]*(?[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}[^\/]*((?[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}(?[a-zA-Z0-9_\\-%]*)(\/){1}(.*\\.(nc|asc|tiff))$"},"replace":{"serviceClass":"SDI","serviceName":"Thredds","calledMethod":"${Protocol}::${Collection}"}},{"match":{"serviceClassRegex":"SDI|DataAnalysis","serviceNameRegex":"Thredds","calledMethodRegex":"^(\/){1}(?[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}[^\/]*(\\.(nc|asc|tiff))$"},"replace":{"serviceClass":"SDI","serviceName":"Thredds","calledMethod":"${Protocol}::OTHER"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"URIResolver","calledMethodRegex":"^\/{0,1}(UNKNOWN|OTHER|postCataloguePublicLink|resolveCataloguePublicLink|resolveStorageHubPublicLink|dataminer.*|r\/.*)"},"replace":{"serviceClass":"DataTransfer","serviceName":"URIResolver","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"URIResolver","calledMethodRegex":"^(\/){0,1}(uri-resolver\/){0,1}(?(ctlg|catalogue|analytics|geonetwork|parthenos_{0,1}registry|shub|storage|knime)).*"},"replace":{"serviceClass":"DataTransfer","serviceName":"URIResolver","calledMethod":"${RedirectType} access"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"URIResolver","calledMethodRegex":"^(?!(\/){0,1}(r\/){0,1}(UNKNOWN|OTHER|dataminer|postCataloguePublicLink|resolveCataloguePublicLink|resolveStorageHubPublicLink|ctlg(-.){0,1}|catalogue|uri-resolver\/catalogue|analytics|geonetwork|parthenos_{0,1}registry|shub|storage|knime)).*$"},"replace":{"serviceClass":"DataTransfer","serviceName":"URIResolver","calledMethod":"TentativeOfHarvesting"}}] \ No newline at end of file +[{"match":{"serviceClassRegex":"(?.*)","serviceNameRegex":"(?.*)","calledMethodRegex":"UNKNOWN"},"replace":{"serviceClass":"${ServiceClass}","serviceName":"${ServiceName}","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(WPS)|(DataAnalysis)","serviceNameRegex":"DataMiner","calledMethodRegex":"(?.*)"},"replace":{"serviceClass":"DataAnalysis","serviceName":"DataMiner","calledMethod":"${CalledMethod}"}},{"match":{"serviceClassRegex":"Common","serviceNameRegex":"AuthorizationService","calledMethodRegex":"^/{0,1}gcube/service/generate.*"},"replace":{"serviceClass":"Common","serviceName":"AuthorizationService","calledMethod":"generate"}},{"match":{"serviceClassRegex":"Common","serviceNameRegex":"AuthorizationService","calledMethodRegex":"^/{0,1}gcube/service/retrieve.*"},"replace":{"serviceClass":"Common","serviceName":"AuthorizationService","calledMethod":"retrieve"}},{"match":{"serviceClassRegex":"Common","serviceNameRegex":"AuthorizationService","calledMethodRegex":"^((e\/)|\/){0,1}gcube\/resource\/scopes"},"replace":{"serviceClass":"Common","serviceName":"AuthorizationService","calledMethod":"scopes"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})(?(group|item|resource|namespace))(s){0,1}\/(?(create|show|purge|delete))(\/{0,1})"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"${Action} ${Collection}"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})(?(groups|items|resources))\/(?list)(\/{0,1})"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"${Action} ${Collection}"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})licen(c|s)es\/(?(create|show|purge|delete))(\/{0,1})"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"${Action} license"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})licen(c|s)es\/(?list)(\/{0,1})"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"${Action} licenses"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})profiles\/namespaces(s){0,1}.*"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"list namespaces"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})organi(s|z)ation(s){0,1}\/(?(create|show|purge|delete))(\/{0,1})"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"${Action} organization"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})organi(s|z)ation(s){0,1}\/(?list)(\/){0,1}.*|(listOrgani(s|z)ation(s{0,1}))"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"list organizations"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"^\/rest$|^UNKNOWN$|^OTHER$"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})profile(s){0,1}\/(?(show|profile))(\/){0,1}"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"show profile"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})profile(s){0,1}\/(?(list|profile_names))(\/{0,1})"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"list profile"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"CkanConnector","calledMethodRegex":"^\/{0,1}gcube\/service\/connect.*"},"replace":{"serviceClass":"DataAccess","serviceName":"CkanConnector","calledMethod":"connect"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"CkanConnector","calledMethodRegex":"^\/{0,1}gcube\/service\/disconnect.*"},"replace":{"serviceClass":"DataAccess","serviceName":"CkanConnector","calledMethod":"disconnect"}},{"match":{"serviceClassRegex":"DataAnalysis","serviceNameRegex":"cmems-importer-service","calledMethodRegex":".*"},"replace":{"serviceClass":"DataAnalysis","serviceName":"cmems-importer-service","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAnalysis","serviceNameRegex":"data-analytics-visualization","calledMethodRegex":".*"},"replace":{"serviceClass":"DataAnalysis","serviceName":"data-analytics-visualization","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(WPS)|(DataAnalysis)","serviceNameRegex":"DataMiner","calledMethodRegex":"^\/{0,1}(?(?!(UNKNOWN|OTHER|(gcube\/resource\/scopes))).*)"},"replace":{"serviceClass":"DataAnalysis","serviceName":"DataMiner","calledMethod":"${Method}"}},{"match":{"serviceClassRegex":"(WPS)|(DataAnalysis)","serviceNameRegex":"DataMiner","calledMethodRegex":"^\/{0,1}(UNKNOWN|OTHER|(gcube\/resource\/scopes)).*"},"replace":{"serviceClass":"DataAnalysis","serviceName":"DataMiner","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(DataAnalysis)|(data-analysis)|dataanalysis","serviceNameRegex":"dataminer-pool-manager","calledMethodRegex":"\/{0,1}api\/(algorithm\/){0,1}(?[a-zA-Z]*)"},"replace":{"serviceClass":"DataAnalysis","serviceName":"dataminer-pool-manager","calledMethod":"${Method}"}},{"match":{"serviceClassRegex":"(DataAnalysis)|(data-analysis)|dataanalysis","serviceNameRegex":"dataminer-pool-manager","calledMethodRegex":"\/{0,1}(api|OTHER|(gcube\/resource))"},"replace":{"serviceClass":"DataAnalysis","serviceName":"dataminer-pool-manager","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"data-transfer-service","calledMethodRegex":".*(c|C)apabilities.*"},"replace":{"serviceClass":"DataTransfer","serviceName":"data-transfer-service","calledMethod":"getCapabilities"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"data-transfer-service","calledMethodRegex":".*TransferStatus.*"},"replace":{"serviceClass":"DataTransfer","serviceName":"data-transfer-service","calledMethod":"getTransferStatus"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"data-transfer-service","calledMethodRegex":"(\/{0,1}gcube\/service\/(REST|application.wadl))|OTHER"},"replace":{"serviceClass":"DataTransfer","serviceName":"data-transfer-service","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"data-transfer-service","calledMethodRegex":"\/{0,1}gcube\/service\/REST\/.*"},"replace":{"serviceClass":"DataTransfer","serviceName":"data-transfer-service","calledMethod":"transfer"}},{"match":{"serviceClassRegex":"ResourceManagement","serviceNameRegex":"FHNManager","calledMethodRegex":".*"},"replace":{"serviceClass":"ResourceManagement","serviceName":"FHNManager","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(Index)|(DataRetrieval)","serviceNameRegex":"(FullTextIndexNode)|(FullTextFullTextIndexNodeNode)","calledMethodRegex":".*"},"replace":{"serviceClass":"DataRetrieval","serviceName":"FullTextIndexNode","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(DataCatalogue)|(DataPublishing)","serviceNameRegex":"(science-catalogue)|(gcat)|(gCat)","calledMethodRegex":"^(\/){0,1}(rest\/(api\/){0,1}){0,1}(?group|item|license|namespace|organization|profile|user)s\/(?!list|create)[%0-9a-zA-Z\\-_.+:]*$"},"replace":{"serviceClass":"DataPublishing","serviceName":"gcat","calledMethod":"read ${Collection}"}},{"match":{"serviceClassRegex":"(DataCatalogue)|(DataPublishing)","serviceNameRegex":"(science-catalogue)|(gcat)|(gCat)","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1}){0,1}(?((groups(\/list){0,1}))|items|licenses|namespaces|organizations|profiles|users)$"},"replace":{"serviceClass":"DataPublishing","serviceName":"gcat","calledMethod":"list ${Collection}"}},{"match":{"serviceClassRegex":"(DataCatalogue)|(DataPublishing)","serviceNameRegex":"(science-catalogue)|(gcat)|(gCat)","calledMethodRegex":"(^\/index$)|OTHER|UNKNOWN"},"replace":{"serviceClass":"DataPublishing","serviceName":"gcat","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(DataCatalogue)|(DataPublishing)","serviceNameRegex":"(science-catalogue)|(gcat)|(gCat)","calledMethodRegex":"^(\/){0,1}(rest\/(api\/){0,1}){0,1}items\/[%0-9a-zA-Z\\-_]*\/resources\/[%0-9a-zA-Z\\-_.+:]*$"},"replace":{"serviceClass":"DataPublishing","serviceName":"gcat","calledMethod":"read resource"}},{"match":{"serviceClassRegex":"(DataCatalogue)|(DataPublishing)","serviceNameRegex":"(science-catalogue)|(gcat)|(gCat)","calledMethodRegex":"^(\/){0,1}(rest\/(api\/){0,1}){0,1}items\/[%0-9a-zA-Z\\-_.+:]*\/resources$"},"replace":{"serviceClass":"DataPublishing","serviceName":"gcat","calledMethod":"list resources"}},{"match":{"serviceClassRegex":"(geoanalytics)|(SDI)","serviceNameRegex":"geoanalytics-gos.*","calledMethodRegex":".*"},"replace":{"serviceClass":"SDI","serviceName":"geoanalytics-gos","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"geoanalytics","serviceNameRegex":"geoanalytics-main-service","calledMethodRegex":".*"},"replace":{"serviceClass":"SDI","serviceName":"geoanalytics-main-service","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":".*(\\.create(\\.form){0,1}|\\.insert|\\.xmlinsert\\.form)$"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"create"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":".*(\\.delete(\\.batch|@json|$))"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"delete"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":".*(\\.list(@json|$))"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"list"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":"^(?!.*(read|create|insert|delete|list|get|show|info|search|update|edit)).*$|^(.*(updated|editors|pwupdate|(records.*)|(systeminfo.*)|forget-password|getmap.png|(GetCapabilities.*)|(\/codelists\/.*)))$"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":"(.*(\\.get(\\..*|\/.*|$)|\\.show(\\..*|$)|((\\.|/)info(?!edit).*)))|(read@json)"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"read"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":".*(\\.|-|/|package_|open)search(\/.*|unused(.form){0,1}|\\..*|;jsessionid=.*|-.*|$)"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"search"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":".*(\\.update($|\\.finish|@json)|\\.edit(!{0,1}|\\.save(only){0,1}|\\.commit)$|\\.infoedit$|\\.pwedit$)"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"update"}},{"match":{"serviceClassRegex":"(GeoServer)|(geoserver)|(SpatialData)|(SDI)","serviceNameRegex":"(GeoServer)|(geoserver)","calledMethodRegex":"^(?!.*\/(wfs|wms|wcs|wmts)).*$"},"replace":{"serviceClass":"SDI","serviceName":"GeoServer","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(GeoServer)|(geoserver)|(SpatialData)|(SDI)","serviceNameRegex":"(GeoServer)|(geoserver)","calledMethodRegex":"^.*\/(?(wfs|wms|wcs|wmts)).*$"},"replace":{"serviceClass":"SDI","serviceName":"GeoServer","calledMethod":"/${Protocol}","_comment" : "Do not remove the initial / to avoid that wms is replaced with OTHER"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"GRSFPublisher","calledMethodRegex":"(.*publish-product.*)|(.*create-product.*)|(create)"},"replace":{"serviceClass":"DataPublishing","serviceName":"GRSFPublisher","calledMethod":"create"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"GRSFPublisher","calledMethodRegex":"(.*delete-product.*)|(delete)"},"replace":{"serviceClass":"DataPublishing","serviceName":"GRSFPublisher","calledMethod":"delete"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"GRSFPublisher","calledMethodRegex":".*get-license(s{0,1}).*"},"replace":{"serviceClass":"DataPublishing","serviceName":"GRSFPublisher","calledMethod":"getLicenses"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"GRSFPublisher","calledMethodRegex":".*get-catalogue-id-(and-url-){0,1}from-name.*"},"replace":{"serviceClass":"DataPublishing","serviceName":"GRSFPublisher","calledMethod":"getURLandIdFromName"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"GRSFPublisher","calledMethodRegex":".*((hello)|(UNKNOWN)|(OTHER)).*"},"replace":{"serviceClass":"DataPublishing","serviceName":"GRSFPublisher","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"GRSFPublisher","calledMethodRegex":"(.*update-product.*)|(update)"},"replace":{"serviceClass":"DataPublishing","serviceName":"GRSFPublisher","calledMethod":"update"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"HomeLibraryFileSystem","calledMethodRegex":".*"},"replace":{"serviceClass":"DataAccess","serviceName":"HomeLibraryFileSystem","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"HomeLibraryWebapp","calledMethodRegex":"\/{0,1}((acl|get|rest|post|trash|versioning)\/){0,1}(?[a-zA-Z]*)"},"replace":{"serviceClass":"DataAccess","serviceName":"HomeLibraryWebapp","calledMethod":"${Method}"}},{"match":{"serviceClassRegex":"InformationSystem","serviceNameRegex":"ICProxy","calledMethodRegex":"^(\/){0,1}gcube\/service\/(GCoreEndpoint|HostingNode|RuntimeResource|GenericResource).*"},"replace":{"serviceClass":"InformationSystem","serviceName":"ICProxy","calledMethod":"query"}},{"match":{"serviceClassRegex":"InformationSystem","serviceNameRegex":"ICProxy","calledMethodRegex":"^(\/){0,1}gcube\/service\/(?!GCoreEndpoint|HostingNode|RuntimeResource|GenericResource).*"},"replace":{"serviceClass":"InformationSystem","serviceName":"ICProxy","calledMethod":"read"}},{"match":{"serviceClassRegex":"(InformationSystem)|(Accounting)","serviceNameRegex":"QuotaManager","calledMethodRegex":".*"},"replace":{"serviceClass":"Accounting","serviceName":"QuotaManager","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAnalysis","serviceNameRegex":"RConnector","calledMethodRegex":"^\/{0,1}gcube\/service\/connect.*"},"replace":{"serviceClass":"DataAnalysis","serviceName":"RConnector","calledMethod":"connect"}},{"match":{"serviceClassRegex":"DataAnalysis","serviceNameRegex":"RConnector","calledMethodRegex":"UNKNOWN|OTHER|^\/{0,1}gcube\/resource\/scopes"},"replace":{"serviceClass":"DataAnalysis","serviceName":"RConnector","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"ResourceManagement","serviceNameRegex":"resource-manager-webapp","calledMethodRegex":".*"},"replace":{"serviceClass":"ResourceManagement","serviceName":"resource-manager-webapp","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"InformationSystem","serviceNameRegex":"(resource-registry)|(joint-resource-registry)","calledMethodRegex":"(?!(listContexts|createContext|readContext|updateContext|deleteContext|listInstances|existInstance|createInstance|readInstance|updateInstance|deleteInstance|createType|readType|addToContext|removeFromContext|query|rawQuery)).*"},"replace":{"serviceClass":"InformationSystem","serviceName":"resource-registry","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"Portal","serviceNameRegex":"ReverseProxy","calledMethodRegex":".*"},"replace":{"serviceClass":"Portal","serviceName":"ReverseProxy","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"SDI","serviceNameRegex":"sdi-service","calledMethodRegex":".*"},"replace":{"serviceClass":"SDI","serviceName":"sdi-service","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataPublishing","serviceNameRegex":"SDMXDataSource.*","calledMethodRegex":".*"},"replace":{"serviceClass":"DataPublishing","serviceName":"SDMXDataSource","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"ShareLatex","calledMethodRegex":"^\/{0,1}gcube\/service\/connect.*"},"replace":{"serviceClass":"DataAccess","serviceName":"ShareLatex","calledMethod":"connect"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"ShareLatex","calledMethodRegex":"^\/{0,1}gcube\/service\/disconnect.*"},"replace":{"serviceClass":"DataAccess","serviceName":"ShareLatex","calledMethod":"disconnect"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"ShareLatex","calledMethodRegex":"^(?!(\/{0,1}gcube\/service\/){0,1}((connect)|(disconnect)|(project))).*"},"replace":{"serviceClass":"DataAccess","serviceName":"ShareLatex","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"ShareLatex","calledMethodRegex":"^\/{0,1}gcube\/service\/project.*"},"replace":{"serviceClass":"DataAccess","serviceName":"ShareLatex","calledMethod":"project"}},{"match":{"serviceClassRegex":"(Search)|(DataRetrieval)","serviceNameRegex":"SimulFishGrowthData","calledMethodRegex":".*"},"replace":{"serviceClass":"DataRetrieval","serviceName":"SimulFishGrowthData","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"(SmartExecutor)|(smart-executor)","calledMethodRegex":".*((launch)|(execute)|(POST .*executions)).*"},"replace":{"serviceClass":"VREManagement","serviceName":"SmartExecutor","calledMethod":"execute"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"(SmartExecutor)|(smart-executor)","calledMethodRegex":".*((getAvailablePlugins.*)|(^(GET ){0,1}(\/){0,1}plugins(\/){0,1}$))"},"replace":{"serviceClass":"VREManagement","serviceName":"SmartExecutor","calledMethod":"getAvailablePlugins"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"(SmartExecutor)|(smart-executor)","calledMethodRegex":".*((getScheduledExecution.*)|((GET ){0,1}.*executions(\/(ORPHAN){0,1}){0,1}()$))|((GET ){0,1}(\/){0,1}(rest\/){0,1}plugins\/[0-9a-zA-Z%\\-_]{1,})"},"replace":{"serviceClass":"VREManagement","serviceName":"SmartExecutor","calledMethod":"getScheduledExecution"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"(SmartExecutor)|(smart-executor)","calledMethodRegex":".*((getStateEvolution)|(getState)|(GET .*executions\/(?!executions).{1,})).*|((GET ){0,1}(\/){0,1}(rest\/){0,1}plugins\/[0-9a-zA-Z%\\-_]{1,}\/(?!executions).*)"},"replace":{"serviceClass":"VREManagement","serviceName":"SmartExecutor","calledMethod":"getState"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"(SmartExecutor)|(smart-executor)","calledMethodRegex":".*(UNKNOWN)|(OTHER).*"},"replace":{"serviceClass":"VREManagement","serviceName":"smart-executor","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"(SmartExecutor)|(smart-executor)","calledMethodRegex":".*((stop)|(unSchedule)|(DELETE)|(PURGE)).*"},"replace":{"serviceClass":"VREManagement","serviceName":"SmartExecutor","calledMethod":"stop"}},{"match":{"serviceClassRegex":"Portal","serviceNameRegex":"SocialNetworking","calledMethodRegex":"\/{0,1}rest\/((1|2)\/){0,1}(((people){0,1}(users(\/2){0,1})|comments|full-text-search|hashtags|messages|notifications|people|posts|tokens|vres|vers)\/){0,1}(?[a-zA-Z\\-]*(\/){0,1})"},"replace":{"serviceClass":"Portal","serviceName":"SocialNetworking","calledMethod":"${Method}"}},{"match":{"serviceClassRegex":"Portal","serviceNameRegex":"SocialNetworking","calledMethodRegex":"(\/{0,1}(rest))|OTHER|UNKNOWN|\/gcube\/service\/($|&.*)"},"replace":{"serviceClass":"Portal","serviceName":"SocialNetworking","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(\/workspace\/count)|countById"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"countById"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/create\/(FILE|(?!FOLDER).*)$)|createItem\\(FILE\\)|(\/item\/create\/byPath)"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"createItem(FILE)"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/create\/FOLDER$)|createItem\\(FOLDER\\)"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"createItem(FOLDER)"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/download(\/){0,1}$|downloadById"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"downloadById"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/(firstcopy|(item(s){0,1})\/.*$))|findChildrenByNamePattern"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"findChildrenByNamePattern"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/(workspace\/){1,2}(item|itam)(s){0,1}\/[0-9a-zA-Z\\-_]*\/acl(s){0,1}(\/){0,1}$|getAcls"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getAcls"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/workspace(\/workspace){0,1}(\/item(s){0,1}){0,1}\/(?!(i$)|count|i{0,1}t(h){0,1}rash|group(s){0,1}|user(s){0,1}|paged|v(re|ere|er)fo(ld|dl)ers{0,1}|((C|c)hi(dl|ld|d)ren))[0-9a-zA-Z\\-_]{1,}(\/){0,1}$|getById"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getById"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/workspace\/group(s){0,1}\/{0,1}.*|getGroups"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getGroups"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/history(\/){0,1}$|getHistory"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getHistory"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(^\/workspace\/i{0,1}t(h){0,1}rash\/{0,1}.*)|getTrashFolder|getTrashRootFolder"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getTrashFolder"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/workspace\/user(s){0,1}\/{0,1}.*|getUsers"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getUsers"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/(workspace\/){1,2}item(s){0,1}\/[0-9a-zA-Z\\-_]*\/version(s){0,1}(\/){0,1}$|getVersions"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getVersions"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"\/workspace\/vrefolder\/recents|getVreFolderRecents"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getVreFolderRecents"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"\/workspace\/v(re|ere|er)fo(ld|dl)ers(\/){0,1}|getVreFolders"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getVreFolders"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"\/workspace\/(item(s){0,1}\/){0,1}vrefolder(\/){0,1}|getVreRootFolder"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getVreRootFolder"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(\/workspace(\/.|\/){0,1})|getWorkspace"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getWorkspace"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(listById)|(\/list\/byId)|(\/list\/byPath)|(\/workspace/{0,1}.*\/(get){0,1}(C|c)hi(dl|ld|d)ren)"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"listById"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(listByIdPaged)|(\/workspace/paged(\/){0,1})"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"listByIdPaged"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(test-upload\\(FILE\\))|(OTHER)|(UNKNOWN)|(createItem\\(null\\))"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"\/workspace(\/items){0,1}\/publiclink\/.*"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"resolvePubliclink"}},{"match":{"serviceClassRegex":"content-management","serviceNameRegex":"storage","calledMethodRegex":".*"},"replace":{"serviceClass":"content-management","serviceName":"storage","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"Application|DataAnalysis","serviceNameRegex":"TagMe","calledMethodRegex":"^((e\/)|\/){0,1}tag"},"replace":{"serviceClass":"Application","serviceName":"TagMe","calledMethod":"tag"}},{"match":{"serviceClassRegex":"SDI|DataAnalysis","serviceNameRegex":"Thredds","calledMethodRegex":"^(\/){1}(?[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}(?[a-zA-Z0-9_\\-%]*(?[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}[^\/]*((?[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}(?[a-zA-Z0-9_\\-%]*)(\/){1}(.*\\.(nc|asc|tiff))$"},"replace":{"serviceClass":"SDI","serviceName":"Thredds","calledMethod":"${Protocol}::${Collection}"}},{"match":{"serviceClassRegex":"SDI|DataAnalysis","serviceNameRegex":"Thredds","calledMethodRegex":"^(\/){1}(?[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}[^\/]*(\\.(nc|asc|tiff))$"},"replace":{"serviceClass":"SDI","serviceName":"Thredds","calledMethod":"${Protocol}::OTHER"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"URIResolver","calledMethodRegex":"^\/{0,1}(UNKNOWN|OTHER|postCataloguePublicLink|resolveCataloguePublicLink|resolveStorageHubPublicLink|dataminer.*|r\/.*)"},"replace":{"serviceClass":"DataTransfer","serviceName":"URIResolver","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"URIResolver","calledMethodRegex":"^(\/){0,1}(uri-resolver\/){0,1}(?(ctlg|catalogue|analytics|geonetwork|parthenos_{0,1}registry|shub|storage|knime)).*"},"replace":{"serviceClass":"DataTransfer","serviceName":"URIResolver","calledMethod":"${RedirectType} access"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"URIResolver","calledMethodRegex":"^(?!(\/){0,1}(r\/){0,1}(UNKNOWN|OTHER|dataminer|postCataloguePublicLink|resolveCataloguePublicLink|resolveStorageHubPublicLink|ctlg(-.){0,1}|catalogue|uri-resolver\/catalogue|analytics|geonetwork|parthenos_{0,1}registry|shub|storage|knime)).*$"},"replace":{"serviceClass":"DataTransfer","serviceName":"URIResolver","calledMethod":"TentativeOfHarvesting"}}] \ No newline at end of file