[ { "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": "(\/rest\/(api\/){0,1})group(s){0,1}\/(?(create|show|purge|delete))(\/{0,1})" }, "replace": { "serviceClass": "DataPublishing", "serviceName": "Catalogue-WS", "calledMethod": "${Action}Group" } },{ "match": { "serviceClassRegex": "(Data-Catalogue)|(DataPublishing)", "serviceNameRegex": "Catalogue-WS", "calledMethodRegex": "(\/rest\/(api\/){0,1})group(s){0,1}\/(?list)(\/{0,1})" }, "replace": { "serviceClass": "DataPublishing", "serviceName": "Catalogue-WS", "calledMethod": "${Action}Groups" } },{ "match": { "serviceClassRegex": "(Data-Catalogue)|(DataPublishing)", "serviceNameRegex": "Catalogue-WS", "calledMethodRegex": "(\/rest\/(api\/){0,1})item(s){0,1}\/(?(create|show|purge|delete))(\/{0,1})" }, "replace": { "serviceClass": "DataPublishing", "serviceName": "Catalogue-WS", "calledMethod": "${Action}Item" } },{ "match": { "serviceClassRegex": "(Data-Catalogue)|(DataPublishing)", "serviceNameRegex": "Catalogue-WS", "calledMethodRegex": "(\/rest\/(api\/){0,1})item(s){0,1}\/(?list)(\/{0,1})" }, "replace": { "serviceClass": "DataPublishing", "serviceName": "Catalogue-WS", "calledMethod": "${Action}Items" } },{ "match": { "serviceClassRegex": "(Data-Catalogue)|(DataPublishing)", "serviceNameRegex": "Catalogue-WS", "calledMethodRegex": "^\/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": "\/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": "(\/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": "listOrganizations" } },{ "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": "(\/rest\/(api\/){0,1})profile(s){0,1}\/(?(show|profile))(\/{0,1})" }, "replace": { "serviceClass": "DataPublishing", "serviceName": "Catalogue-WS", "calledMethod": "showProfile" } },{ "match": { "serviceClassRegex": "(Data-Catalogue)|(DataPublishing)", "serviceNameRegex": "Catalogue-WS", "calledMethodRegex": "(\/rest\/(api\/){0,1})profile(s){0,1}\/(?(list|profile_names))(\/{0,1})" }, "replace": { "serviceClass": "DataPublishing", "serviceName": "Catalogue-WS", "calledMethod": "listProfile" } },{ "match": { "serviceClassRegex": "(Data-Catalogue)|(DataPublishing)", "serviceNameRegex": "Catalogue-WS", "calledMethodRegex": "(\/rest\/(api\/){0,1})resource(s){0,1}\/(?create|show|purge|delete)(\/{0,1})" }, "replace": { "serviceClass": "DataPublishing", "serviceName": "Catalogue-WS", "calledMethod": "${Action}Resource" } },{ "match": { "serviceClassRegex": "(Data-Catalogue)|(DataPublishing)", "serviceNameRegex": "Catalogue-WS", "calledMethodRegex": "(\/rest\/(api\/){0,1})resource(s){0,1}\/(?list)(\/{0,1})" }, "replace": { "serviceClass": "DataPublishing", "serviceName": "Catalogue-WS", "calledMethod": "${Action}Resource" } },{ "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": "(WPS)|(DataAnalysis)", "serviceNameRegex": "DataMiner", "calledMethodRegex": "^/{0,1}DescribeProcess.*" }, "replace": { "serviceClass": "DataAnalysis", "serviceName": "DataMiner", "calledMethod": "describeProcess" } },{ "match": { "serviceClassRegex": "(WPS)|(DataAnalysis)", "serviceNameRegex": "DataMiner", "calledMethodRegex": "^/{0,1}GetCapabilities.*" }, "replace": { "serviceClass": "DataAnalysis", "serviceName": "DataMiner", "calledMethod": "getCapabilities" } },{ "match": { "serviceClassRegex": "(WPS)|(DataAnalysis)", "serviceNameRegex": "DataMiner", "calledMethodRegex": "^/{0,1}RetrieveResult.*" }, "replace": { "serviceClass": "DataAnalysis", "serviceName": "DataMiner", "calledMethod": "getResult" } },{ "match": { "serviceClassRegex": "(WPS)|(DataAnalysis)", "serviceNameRegex": "DataMiner", "calledMethodRegex": "^\/{0,1}(WebProcessingService|UNKNOWN|OTHER|(gcube\/resource\/scopes)).*" }, "replace": { "serviceClass": "DataAnalysis", "serviceName": "DataMiner", "calledMethod": "OTHER" } },{ "match": { "serviceClassRegex": "(WPS)|(DataAnalysis)", "serviceNameRegex": "DataMiner", "calledMethodRegex": "^/{0,1}CancelComputation.*" }, "replace": { "serviceClass": "DataAnalysis", "serviceName": "DataMiner", "calledMethod": "stop" } },{ "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\/.*" }, "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": "(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|(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)|\\.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": "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": "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": "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 \/plugins(\/){0,1}$))" }, "replace": { "serviceClass": "VREManagement", "serviceName": "SmartExecutor", "calledMethod": "getAvailablePlugins" } },{ "match": { "serviceClassRegex": "VREManagement", "serviceNameRegex": "(SmartExecutor)|(smart-executor)", "calledMethodRegex": ".*((getScheduledExecution.*)|(GET .*executions(\/){0,1}$))" }, "replace": { "serviceClass": "VREManagement", "serviceName": "SmartExecutor", "calledMethod": "getScheduledExecution" } },{ "match": { "serviceClassRegex": "VREManagement", "serviceNameRegex": "(SmartExecutor)|(smart-executor)", "calledMethodRegex": ".*((getStateEvolution)|(getState)|(GET .*executions\/.{1,})).*" }, "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": "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", "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", "serviceNameRegex": "Thredds", "calledMethodRegex": "^(\/){1}(?[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}[^\/]*(\\.(nc|asc|tiff))$" }, "replace": { "serviceClass": "SDI", "serviceName": "Thredds", "calledMethod": "${Protocol}::OTHER" } }]