diff options
author | lapentafd <francesco.lapenta@est.tech> | 2023-02-07 15:48:03 +0000 |
---|---|---|
committer | Francesco Davide Lapenta <francesco.lapenta@est.tech> | 2023-02-10 15:07:04 +0000 |
commit | 0a07999ae3b27154249de5744c4b20fbb627dcdb (patch) | |
tree | 647b58bf7d6fa718a0bdeb993006c05f0f2d7e0d | |
parent | 62e8960e2969f24c7f7bfca5c696b8975ec8e81d (diff) |
Removing Drools-pdp swagger annotations
Added swagger extracted documentation in openapi.yaml for
lifecycle, legacy, management and healthcheck.
Added new endpoint to retrieve the generated swagger.json
Modified endpoint in telemetry tool
Issue-ID: POLICY-3465
Change-Id: I003aaf128b1a4991ffe6b79f0659d1bd0137b52d
Signed-off-by: lapentafd <francesco.lapenta@est.tech>
12 files changed, 11040 insertions, 828 deletions
diff --git a/feature-healthcheck/pom.xml b/feature-healthcheck/pom.xml index 7c9efa1d..669f5ba2 100644 --- a/feature-healthcheck/pom.xml +++ b/feature-healthcheck/pom.xml @@ -80,6 +80,43 @@ </execution> </executions> </plugin> + <!-- Controllers interfaces generation --> + <plugin> + <groupId>io.swagger.codegen.v3</groupId> + <artifactId>swagger-codegen-maven-plugin</artifactId> + <version>3.0.27</version> + <executions> + <execution> + <id>code-gen</id> + <goals> + <goal>generate</goal> + </goals> + <configuration> + <inputSpec>${project.basedir}/src/main/resources/openapi/openapi.yaml</inputSpec> + <invokerPackage>org.onap.policy.drools.healthcheck</invokerPackage> + <modelPackage>org.onap.policy.drools.healthcheck.model</modelPackage> + <apiPackage>org.onap.policy.drools.healthcheck</apiPackage> + <language>jaxrs-spec</language> + <generateModels>false</generateModels> + <generateSupportingFiles>false</generateSupportingFiles> + <sortParamsByRequiredFlag>false</sortParamsByRequiredFlag> + <importMappings> + Response=javax.ws.rs.core.Response + </importMappings> + <typeMappings> + <typeMapping>boolean=boolean</typeMapping> + </typeMappings> + <configOptions> + <sourceFolder>src/gen/java</sourceFolder> + <dateLibrary>java11</dateLibrary> + <interfaceOnly>true</interfaceOnly> + <useTags>true</useTags> + <skipIfSpecIsUnchanged>false</skipIfSpecIsUnchanged> + </configOptions> + </configuration> + </execution> + </executions> + </plugin> </plugins> </build> @@ -117,6 +154,12 @@ <artifactId>awaitility</artifactId> <scope>test</scope> </dependency> + <!-- Swagger v3 annotations --> + <dependency> + <groupId>io.swagger.core.v3</groupId> + <artifactId>swagger-annotations</artifactId> + <version>${version.swagger.core.v3}</version> + </dependency> </dependencies> </project> diff --git a/feature-healthcheck/src/main/java/org/onap/policy/drools/healthcheck/RestHealthCheck.java b/feature-healthcheck/src/main/java/org/onap/policy/drools/healthcheck/RestHealthCheck.java index 5b36c5a3..64cea621 100644 --- a/feature-healthcheck/src/main/java/org/onap/policy/drools/healthcheck/RestHealthCheck.java +++ b/feature-healthcheck/src/main/java/org/onap/policy/drools/healthcheck/RestHealthCheck.java @@ -3,6 +3,7 @@ * ONAP * ================================================================================ * Copyright (C) 2017-2019, 2022 AT&T Intellectual Property. All rights reserved. + * Modifications Copyright (C) 2023 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,12 +21,6 @@ package org.onap.policy.drools.healthcheck; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.Info; -import io.swagger.annotations.SwaggerDefinition; -import io.swagger.annotations.Tag; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; @@ -43,35 +38,16 @@ import org.onap.policy.drools.system.PolicyControllerFactory; * REST Healthcheck JAX-RS. */ @Path("/") -@Api @Produces({MediaType.APPLICATION_JSON, YamlMessageBodyHandler.APPLICATION_YAML}) -@SwaggerDefinition( - info = @Info( - description = "PDP-D Healthcheck Service", - version = "v1.0", - title = "PDP-D Healthcheck" - ), - consumes = {MediaType.APPLICATION_JSON, YamlMessageBodyHandler.APPLICATION_YAML}, - produces = {MediaType.APPLICATION_JSON, YamlMessageBodyHandler.APPLICATION_YAML}, - schemes = {SwaggerDefinition.Scheme.HTTP}, - tags = { - @Tag(name = "pdp-d-healthcheck", description = "Drools PDP Healthcheck Operations") - } - ) -public class RestHealthCheck { +public class RestHealthCheck implements HealthcheckApi { /** * System healthcheck per configuration. */ + @Override @GET @Path("healthcheck") - @ApiOperation( - value = "Perform a system healthcheck", - notes = "Provides healthy status of the PDP-D plus the components defined in its " - + "configuration by using a REST interface", - response = Reports.class - ) public Response healthcheck() { var summary = getHealthcheckManager().healthCheck(); return getResponse(summary); @@ -81,13 +57,9 @@ public class RestHealthCheck { * Engine Healthcheck. */ + @Override @GET @Path("healthcheck/engine") - @ApiOperation( - value = "Engine Healthcheck", - notes = "Provides a Healthcheck on the engine", - response = HealthCheck.class - ) public Response engine() { var summary = getHealthcheckManager().engineHealthcheck(); return getResponse(summary); @@ -97,13 +69,9 @@ public class RestHealthCheck { * Healthcheck on the controllers. */ + @Override @GET @Path("healthcheck/controllers") - @ApiOperation( - value = "Controllers Healthcheck", - notes = "Provides a Healthcheck on the configured controllers", - response = Reports.class - ) public Response controllers() { var summary = getHealthcheckManager().controllerHealthcheck(); return getResponse(summary); @@ -113,15 +81,10 @@ public class RestHealthCheck { * Healthcheck a controller. */ + @Override @GET @Path("healthcheck/controllers/{controllerName}") - @ApiOperation( - value = "Controller Healthcheck", - notes = "Provides a Healthcheck on a configured controller", - response = Reports.class - ) - public Response controllers(@ApiParam(value = "Policy Controller Name", - required = true) @PathParam("controllerName") String controllerName) { + public Response controllersName(@PathParam("controllerName") String controllerName) { try { var controller = getControllerFactory().get(controllerName); var summary = getHealthcheckManager().controllerHealthcheck(controller); @@ -137,13 +100,9 @@ public class RestHealthCheck { * Healthcheck on the Http Clients per configuration. */ + @Override @GET @Path("healthcheck/clients") - @ApiOperation( - value = "Http Clients Healthcheck", - notes = "Provides a Healthcheck on the configured HTTP clients", - response = Reports.class - ) public Response clients() { var summary = getHealthcheckManager().clientHealthcheck(); return getResponse(summary); @@ -153,15 +112,10 @@ public class RestHealthCheck { * Healthcheck a on a Http Client. */ + @Override @GET @Path("healthcheck/clients/{clientName}") - @ApiOperation( - value = "Http Client Healthcheck", - notes = "Provides a Healthcheck on a configured HTTP client", - response = Reports.class - ) - public Response clients(@ApiParam(value = "Http Client Name", - required = true) @PathParam("clientName") String clientName) { + public Response clientsName(@PathParam("clientName") String clientName) { try { var client = getClientFactory().get(clientName); var summary = getHealthcheckManager().clientHealthcheck(client); diff --git a/feature-healthcheck/src/main/resources/openapi/openapi.yaml b/feature-healthcheck/src/main/resources/openapi/openapi.yaml new file mode 100644 index 00000000..a16b60b7 --- /dev/null +++ b/feature-healthcheck/src/main/resources/openapi/openapi.yaml @@ -0,0 +1,152 @@ +# ============LICENSE_START======================================================= +# Copyright (C) 2023 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========================================================= + +openapi: 3.0.3 +info: + title: "PDP-D Healthcheck Documentation" + description: PDP-D Healthcheck Services + version: Swagger Server +servers: +- url: http://{drools-ip}:9696 + variables: + drools-ip: + default: 0.0.0.0 +tags: +- name: pdp-d-healthcheck + description: Drools PDP Healthcheck Operations +paths: + /healthcheck: + get: + tags: + - pdp-d-healthcheck + summary: Perform a system healthcheck + description: Provides healthy status of the PDP-D plus the components defined in its configuration by using a REST interface + operationId: healthcheck + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /healthcheck/engine: + get: + tags: + - pdp-d-healthcheck + summary: Healthcheck engine + description: Provides a Healthcheck on the engine + operationId: engine + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /healthcheck/controllers: + get: + tags: + - pdp-d-healthcheck + summary: Controllers Healthcheck + description: Provides a Healthcheck on the configured controllers + operationId: controllers + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /healthcheck/controllers/{controllerName}: + get: + tags: + - pdp-d-healthcheck + summary: Controllers Healthcheck + description: Provides a Healthcheck on the configured controllers + parameters: + - name: controllerName + in: path + description: controller Name + required: true + schema: + type: string + operationId: controllersName + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /healthcheck/clients: + get: + tags: + - pdp-d-healthcheck + summary: Http Clients Healthcheck + description: Provides a Healthcheck on the configured HTTP clients + operationId: clients + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /healthcheck/clients/{clientsName}: + get: + tags: + - pdp-d-healthcheck + summary: Http Clients Healthcheck + description: Provides a Healthcheck on the configured HTTP clients + parameters: + - name: clientsName + in: path + description: controller Name + required: true + schema: + type: string + operationId: clientsName + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' +components: + schemas: + Response: + type: object
\ No newline at end of file diff --git a/feature-legacy-config/src/main/java/org/onap/policy/drools/server/restful/RestLegacyConfigManager.java b/feature-legacy-config/src/main/java/org/onap/policy/drools/server/restful/RestLegacyConfigManager.java index e8d91532..53b359c4 100644 --- a/feature-legacy-config/src/main/java/org/onap/policy/drools/server/restful/RestLegacyConfigManager.java +++ b/feature-legacy-config/src/main/java/org/onap/policy/drools/server/restful/RestLegacyConfigManager.java @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * ONAP * Copyright (C) 2021 AT&T Intellectual Property. All rights reserved. + * Modifications Copyright (C) 2023 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,16 +20,12 @@ package org.onap.policy.drools.server.restful; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import java.util.Properties; import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; -import org.onap.policy.common.endpoints.event.comm.TopicSource; import org.onap.policy.common.endpoints.http.server.YamlMessageBodyHandler; import org.onap.policy.drools.legacy.config.LegacyConfigFeature; @@ -39,16 +36,14 @@ import org.onap.policy.drools.legacy.config.LegacyConfigFeature; @Path("/policy/pdp/engine/legacy/config") @Produces({MediaType.APPLICATION_JSON, YamlMessageBodyHandler.APPLICATION_YAML}) @Consumes({MediaType.APPLICATION_JSON, YamlMessageBodyHandler.APPLICATION_YAML}) -@Api -public class RestLegacyConfigManager { +public class RestLegacyConfigManager implements LegacyApi { /** * GET properties. */ + @Override @GET @Path("properties") - @ApiOperation(value = "Retrieves the legacy configuration properties", - notes = "Legacy Configuration Properties", response = Properties.class) public Response properties() { return Response.status(Response.Status.OK) .entity(LegacyConfigFeature.getLegacyConfig().getProperties()).build(); @@ -57,10 +52,9 @@ public class RestLegacyConfigManager { /** * GET the topic source. */ + @Override @GET @Path("topic/source") - @ApiOperation(value = "Retrieves the legacy configuration topic source", - notes = "Legacy Configuration Source", response = TopicSource.class) public Response source() { return Response.status(Response.Status.OK) .entity(LegacyConfigFeature.getLegacyConfig().getSource()).build(); diff --git a/feature-lifecycle/src/main/java/org/onap/policy/drools/server/restful/RestLifecycleManager.java b/feature-lifecycle/src/main/java/org/onap/policy/drools/server/restful/RestLifecycleManager.java index 5a534639..7282a59b 100644 --- a/feature-lifecycle/src/main/java/org/onap/policy/drools/server/restful/RestLifecycleManager.java +++ b/feature-lifecycle/src/main/java/org/onap/policy/drools/server/restful/RestLifecycleManager.java @@ -1,7 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2019-2022 AT&T Intellectual Property. All rights reserved. - * Modifications Copyright (C) 2021 Nordix Foundation. + * Modifications Copyright (C) 2021,2023 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,12 +20,8 @@ package org.onap.policy.drools.server.restful; import com.worldturner.medeia.api.ValidationFailedException; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; import java.util.Collections; import java.util.List; -import java.util.Properties; import javax.ws.rs.Consumes; import javax.ws.rs.DELETE; import javax.ws.rs.GET; @@ -36,15 +32,12 @@ import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; -import org.onap.policy.common.endpoints.event.comm.TopicSink; -import org.onap.policy.common.endpoints.event.comm.TopicSource; import org.onap.policy.common.endpoints.http.server.YamlMessageBodyHandler; import org.onap.policy.common.utils.coder.CoderException; import org.onap.policy.common.utils.coder.StandardCoder; import org.onap.policy.drools.lifecycle.LifecycleFeature; import org.onap.policy.drools.lifecycle.PolicyTypeController; import org.onap.policy.models.pdp.concepts.PdpStateChange; -import org.onap.policy.models.pdp.concepts.PdpStatistics; import org.onap.policy.models.pdp.concepts.PdpUpdate; import org.onap.policy.models.pdp.enums.PdpState; import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier; @@ -59,8 +52,7 @@ import org.slf4j.LoggerFactory; @Path("/policy/pdp/engine/lifecycle") @Produces({MediaType.APPLICATION_JSON, YamlMessageBodyHandler.APPLICATION_YAML}) @Consumes({MediaType.APPLICATION_JSON, YamlMessageBodyHandler.APPLICATION_YAML}) -@Api -public class RestLifecycleManager { +public class RestLifecycleManager implements LifecycleApi { private static final Logger logger = LoggerFactory.getLogger(RestLifecycleManager.class); @@ -70,10 +62,9 @@ public class RestLifecycleManager { * GET group. */ + @Override @GET @Path("group") - @ApiOperation(value = "Retrieves the Lifecycle group", - notes = "Lifecycle Group", response = String.class) public Response group() { return Response.status(Response.Status.OK).entity(LifecycleFeature.getFsm().getGroup()).build(); } @@ -82,12 +73,10 @@ public class RestLifecycleManager { * PUT group. */ + @Override @PUT @Path("group/{group}") - @ApiOperation(value = "Updates the Lifecycle group", - notes = "Lifecycle Group", response = String.class) - public Response updateGroup( - @ApiParam(value = "Group", required = true) @PathParam("group") String group) { + public Response updateGroup(@PathParam("group") String group) { LifecycleFeature.getFsm().setGroup(group); return Response.status(Response.Status.OK).entity(LifecycleFeature.getFsm().getGroup()).build(); } @@ -96,11 +85,10 @@ public class RestLifecycleManager { * GET subgroup. */ + @Override @GET @Path("subgroup") - @ApiOperation(value = "Retrieves the Lifecycle subgroup", - notes = "Lifecycle Subgroup", response = String.class) - public Response subgroup() { + public Response subgroup1() { return Response.status(Response.Status.OK).entity(LifecycleFeature.getFsm().getSubGroup()).build(); } @@ -108,12 +96,10 @@ public class RestLifecycleManager { * PUT subgroup. */ + @Override @PUT @Path("subgroup/{subgroup}") - @ApiOperation(value = "Retrieves the Lifecycle subgroup", - notes = "Lifecycle Subgroup", response = String.class) - public Response subgroup( - @ApiParam(value = "Subgroup", required = true) @PathParam("subgroup") String subgroup) { + public Response subgroup(@PathParam("subgroup") String subgroup) { LifecycleFeature.getFsm().setSubGroup(subgroup); return Response.status(Response.Status.OK).entity(LifecycleFeature.getFsm().getSubGroup()).build(); } @@ -122,11 +108,10 @@ public class RestLifecycleManager { * GET properties. */ + @Override @GET @Path("properties") - @ApiOperation(value = "Retrieves the Lifecycle properties", - notes = "Lifecycle Properties", response = Properties.class) - public Response properties() { + public Response propertiesLifecycle() { return Response.status(Response.Status.OK).entity(LifecycleFeature.getFsm().getProperties()).build(); } @@ -134,9 +119,9 @@ public class RestLifecycleManager { * GET state. */ + @Override @GET @Path("state") - @ApiOperation(value = "Retrieves the Lifecycle state", notes = "Lifecycle State", response = PdpState.class) public Response state() { return Response.status(Response.Status.OK).entity(LifecycleFeature.getFsm().state()).build(); } @@ -145,11 +130,10 @@ public class RestLifecycleManager { * PUT state. */ + @Override @PUT @Path("state/{state}") - @ApiOperation(value = "updates the Lifecycle state", notes = "Lifecycle State", response = Boolean.class) - public Response updateState( - @ApiParam(value = "state", required = true) @PathParam("state") String state) { + public Response updateState(@PathParam("state") String state) { var change = new PdpStateChange(); change.setPdpGroup(LifecycleFeature.getFsm().getGroup()); @@ -164,11 +148,10 @@ public class RestLifecycleManager { * GET topic source. */ + @Override @GET @Path("topic/source") - @ApiOperation(value = "Retrieves the Lifecycle topic source", - notes = "Lifecycle Topic Source", response = TopicSource.class) - public Response source() { + public Response sourceLifecycle() { return Response.status(Response.Status.OK).entity(LifecycleFeature.getFsm().getSource()).build(); } @@ -176,10 +159,9 @@ public class RestLifecycleManager { * GET topic sink. */ + @Override @GET @Path("topic/sink") - @ApiOperation(value = "Retrieves the Lifecycle topic sink", - notes = "Lifecycle Topic Sink", response = TopicSink.class) public Response sink() { return Response.status(Response.Status.OK).entity(LifecycleFeature.getFsm().getClient()).build(); } @@ -188,10 +170,9 @@ public class RestLifecycleManager { * GET status interval. */ + @Override @GET @Path("status/interval") - @ApiOperation(value = "Retrieves the Lifecycle Status Timer Interval in seconds", - notes = "Lifecycle Status Timer Interval in seconds", response = Long.class) public Response updateStatusTimer() { return Response.status(Response.Status.OK).entity(LifecycleFeature.getFsm().getStatusTimerSeconds()).build(); } @@ -200,12 +181,10 @@ public class RestLifecycleManager { * PUT timeout. */ + @Override @PUT @Path("status/interval/{timeout}") - @ApiOperation(value = "Updates the Lifecycle Status Timer Interval in seconds", - notes = "Lifecycle Status Timer Interval in seconds", response = Long.class) - public Response statusTimer( - @ApiParam(value = "timeout", required = true) @PathParam("timeout") Long timeout) { + public Response statusTimer(@PathParam("timeout") Long timeout) { LifecycleFeature.getFsm().setStatusTimerSeconds(timeout); return Response.status(Response.Status.OK).entity(LifecycleFeature.getFsm().getStatusTimerSeconds()).build(); } @@ -214,52 +193,48 @@ public class RestLifecycleManager { * GET policy types. */ + @Override @GET @Path("policyTypes") - @ApiOperation(value = "List of supported policy types", - notes = "Lifecycle Policy Types", responseContainer = "List") public Response policyTypes() { return Response.status(Response.Status.OK) - .entity(LifecycleFeature.getFsm().getPolicyTypesMap().keySet()) - .build(); + .entity(LifecycleFeature.getFsm().getPolicyTypesMap().keySet()) + .build(); } /** * GET controllers. */ + @Override @GET @Path("policyTypes/{policyType}/{policyTypeVersion}") - @ApiOperation(value = "Entities associated with a policy type", - notes = "Lifecycle policy Types", response = PolicyTypeController.class) public Response policyType( - @ApiParam(value = "Policy Type", required = true) - @PathParam("policyType") String policyType, - @ApiParam(value = "Policy Type Version", required = true) - @PathParam("policyTypeVersion") String policyTypeVersion) { + @PathParam("policyType") String policyType, + @PathParam("policyTypeVersion") String policyTypeVersion) { PolicyTypeController typeController = LifecycleFeature.getFsm().getPolicyTypesMap() - .get(new ToscaConceptIdentifier(policyType, policyTypeVersion)); + .get(new ToscaConceptIdentifier(policyType, policyTypeVersion)); if (typeController == null) { return Response.status(Response.Status.NOT_FOUND).build(); } return Response.status(Response.Status.OK) - .entity(typeController) - .build(); + .entity(typeController) + .build(); } /** * GET policies. */ + @Override @GET @Path("policies") - @ApiOperation(value = "List of policies", responseContainer = "List") public Response policies() { return Response.status(Response.Status.OK) - .entity(LifecycleFeature.getFsm().getPoliciesMap().keySet()) - .build(); + .entity(LifecycleFeature.getFsm().getPoliciesMap().keySet()) + .build(); } @@ -267,11 +242,10 @@ public class RestLifecycleManager { * POST a Policy. */ + @Override @POST @Path("policies") - @ApiOperation(value = "Deploy a policy", response = Boolean.class) - public Response deployTrackedPolicy( - @ApiParam(value = "Tosca Policy", required = true) String policy) { + public Response deployTrackedPolicy(String policy) { var toscaPolicy = getToscaPolicy(policy); if (toscaPolicy == null) { @@ -285,20 +259,20 @@ public class RestLifecycleManager { boolean updateResult = LifecycleFeature.getFsm().update(getDeployPolicyUpdate(List.of(toscaPolicy))); return Response.status((updateResult ? Response.Status.OK : Response.Status.NOT_ACCEPTABLE)) - .entity(updateResult) - .build(); + .entity(updateResult) + .build(); } /** * GET a policy. */ + @Override @GET @Path("policies/{policyName}/{policyVersion}") - @ApiOperation(value = "Retrieves a policy", response = ToscaPolicy.class) public Response policy( - @ApiParam(value = "Policy Name", required = true) @PathParam("policyName") String policyName, - @ApiParam(value = "Policy Version", required = true) @PathParam("policyVersion") String policyVersion) { + @PathParam("policyName") String policyName, + @PathParam("policyVersion") String policyVersion) { ToscaPolicy policy; try { @@ -320,12 +294,12 @@ public class RestLifecycleManager { * DELETE a policy. */ + @Override @DELETE @Path("policies/{policyName}/{policyVersion}") - @ApiOperation(value = "Deletes a Lifecycle tracked policy", response = Boolean.class) public Response undeployPolicy( - @ApiParam(value = "Policy", required = true) @PathParam("policyName") String policyName, - @ApiParam(value = "Policy Version", required = true) @PathParam("policyVersion") String policyVersion) { + @PathParam("policyName") String policyName, + @PathParam("policyVersion") String policyVersion) { ToscaPolicy policy; try { @@ -341,17 +315,17 @@ public class RestLifecycleManager { } return Response.status(Response.Status.OK) - .entity(LifecycleFeature.getFsm().update(getUndeployPolicyUpdate(List.of(policy)))) - .build(); + .entity(LifecycleFeature.getFsm().update(getUndeployPolicyUpdate(List.of(policy)))) + .build(); } /** * List of policies individual Operations supported. */ + @Override @GET @Path("policies/operations") - @ApiOperation(value = "Gets Policy Operations", responseContainer = "List") public Response policiesOperations() { return Response.status(Response.Status.OK).entity(List.of("deployment", "undeployment", "validation")).build(); } @@ -360,10 +334,10 @@ public class RestLifecycleManager { * POST a deployment operation on a policy. */ + @Override @POST @Path("policies/operations/deployment") - @ApiOperation(value = "Deploys a policy", notes = "Deploys a policy", response = Boolean.class) - public Response deployOperation(@ApiParam(value = "Tosca Policy", required = true) String policy) { + public Response deployOperation(String policy) { return deployUndeployOperation(policy, true); } @@ -371,10 +345,10 @@ public class RestLifecycleManager { * POST an undeployment operation on a policy. */ + @Override @POST @Path("policies/operations/undeployment") - @ApiOperation(value = "Undeploys a policy", response = Boolean.class) - public Response undeployOperation(@ApiParam(value = "Tosca Policy", required = true) String policy) { + public Response undeployOperation(String policy) { return deployUndeployOperation(policy, false); } @@ -382,10 +356,10 @@ public class RestLifecycleManager { * POST a policy for validation. */ + @Override @POST @Path("policies/operations/validation") - @ApiOperation(value = "Validates a policy", responseContainer = "List") - public Response validateOperation(@ApiParam(value = "Tosca Policy", required = true) String policy) { + public Response validateOperation(String policy) { var toscaPolicy = getToscaPolicy(policy); if (toscaPolicy == null) { return Response.status(Response.Status.NOT_ACCEPTABLE).build(); @@ -405,9 +379,9 @@ public class RestLifecycleManager { * Get current counts. */ + @Override @GET @Path("statistics") - @ApiOperation(value = "Gets Policy Statistics", response = PdpStatistics.class) public Response stats() { return Response.status(Response.Status.OK).entity(LifecycleFeature.getFsm().statisticsPayload()).build(); } @@ -424,8 +398,8 @@ public class RestLifecycleManager { } return Response.status(Response.Status.OK) - .entity((deploy) ? typeController.deploy(toscaPolicy) : typeController.undeploy(toscaPolicy)) - .build(); + .entity((deploy) ? typeController.deploy(toscaPolicy) : typeController.undeploy(toscaPolicy)) + .build(); } private ToscaPolicy getToscaPolicy(String policy) { diff --git a/policy-management/pom.xml b/policy-management/pom.xml index fa93fa1c..5cca3085 100644 --- a/policy-management/pom.xml +++ b/policy-management/pom.xml @@ -122,6 +122,80 @@ </resources> </configuration> </execution> + <execution> + <id>copy-swagger</id> + <goals> + <goal>copy-resources</goal> + </goals> + <phase>compile</phase> + <configuration> + <outputDirectory>src/main/resources/swagger</outputDirectory> + <resources> + <resource> + <directory>${basedir}/target/generated-sources/swagger</directory> + <includes> + <include>swagger.json</include> + </includes> + <filtering>true</filtering> + </resource> + </resources> + </configuration> + </execution> + </executions> + </plugin> + <!-- Controllers interfaces generation --> + <plugin> + <groupId>io.swagger.codegen.v3</groupId> + <artifactId>swagger-codegen-maven-plugin</artifactId> + <version>3.0.27</version> + <executions> + <execution> + <id>code-gen</id> + <goals> + <goal>generate</goal> + </goals> + <configuration> + <inputSpec>${project.basedir}/src/main/resources/openapi/openapi.yaml</inputSpec> + <invokerPackage>org.onap.policy.drools.server.restful</invokerPackage> + <modelPackage>org.onap.policy.drools.server.restful.model</modelPackage> + <apiPackage>org.onap.policy.drools.server.restful</apiPackage> + <language>jaxrs-spec</language> + <generateModels>false</generateModels> + <generateSupportingFiles>false</generateSupportingFiles> + <sortParamsByRequiredFlag>false</sortParamsByRequiredFlag> + <importMappings> + CoderFilters=org.onap.policy.drools.protocol.coders.EventProtocolCoder.CoderFilters, + CodingResult=org.onap.policy.drools.server.restful.RestManager.CodingResult, + ControllerConfiguration=org.onap.policy.drools.protocol.configuration.ControllerConfiguration, + DroolsController=org.onap.policy.drools.controller.DroolsController, + JsonProtocolFilter=org.onap.policy.drools.protocol.coders.JsonProtocolFilter, + PdpStatistics=org.onap.policy.models.pdp.concepts.PdpStatistics, + PdpdConfiguration=org.onap.policy.drools.protocol.configuration.PdpdConfiguration, + PolicyController=org.onap.policy.drools.system.PolicyController, + PolicyControllerFeatureApi=org.onap.policy.drools.features.PolicyControllerFeatureApi, + PolicyEngine=org.onap.policy.drools.system.PolicyEngine, + PolicyEngineFeatureApi=org.onap.policy.drools.features.PolicyEngineFeatureApi, + PolicyTypeController=org.onap.policy.drools.lifecycle.PolicyTypeController, + Properties=java.util.Properties, + ProtocolCoderToolset=org.onap.policy.drools.protocol.coders.ProtocolCoderToolset, + Response=javax.ws.rs.core.Response, + TopicEndpoint=org.onap.policy.common.endpoints.event.comm.TopicEndpoint, + TopicSink=org.onap.policy.common.endpoints.event.comm.TopicSink, + TopicSource=org.onap.policy.common.endpoints.event.comm.TopicSource, + ToscaPolicy=org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy + </importMappings> + <typeMappings> + <typeMapping>boolean=boolean</typeMapping> + </typeMappings> + <configOptions> + <sourceFolder>src/gen/java</sourceFolder> + <dateLibrary>java11</dateLibrary> + <interfaceOnly>true</interfaceOnly> + <useTags>true</useTags> + <skipIfSpecIsUnchanged>false</skipIfSpecIsUnchanged> + </configOptions> + </configuration> + </execution> </executions> </plugin> </plugins> @@ -287,6 +361,13 @@ <artifactId>awaitility</artifactId> <scope>test</scope> </dependency> + + <!-- Swagger v3 annotations --> + <dependency> + <groupId>io.swagger.core.v3</groupId> + <artifactId>swagger-annotations</artifactId> + <version>${version.swagger.core.v3}</version> + </dependency> </dependencies> </project> diff --git a/policy-management/src/assembly/assemble_zip.xml b/policy-management/src/assembly/assemble_zip.xml index 216376fd..9ae4d25f 100644 --- a/policy-management/src/assembly/assemble_zip.xml +++ b/policy-management/src/assembly/assemble_zip.xml @@ -59,6 +59,10 @@ </excludes> </fileSet> <fileSet> + <directory>target/generated-sources/swagger</directory> + <outputDirectory>bin</outputDirectory> + </fileSet> + <fileSet> <directory>src/main/server/bin</directory> <outputDirectory>bin</outputDirectory> <fileMode>0744</fileMode> diff --git a/policy-management/src/main/java/org/onap/policy/drools/server/restful/RestManager.java b/policy-management/src/main/java/org/onap/policy/drools/server/restful/RestManager.java index dfcfe438..11840a7e 100644 --- a/policy-management/src/main/java/org/onap/policy/drools/server/restful/RestManager.java +++ b/policy-management/src/main/java/org/onap/policy/drools/server/restful/RestManager.java @@ -3,7 +3,7 @@ * ONAP * ================================================================================ * Copyright (C) 2017-2021 AT&T Intellectual Property. All rights reserved. - * Modifications Copyright (C) 2021 Nordix Foundation. + * Modifications Copyright (C) 2021,2023 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,14 +23,10 @@ package org.onap.policy.drools.server.restful; import ch.qos.logback.classic.LoggerContext; import com.google.re2j.Pattern; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import io.swagger.annotations.Info; -import io.swagger.annotations.SwaggerDefinition; -import io.swagger.annotations.Tag; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -41,6 +37,7 @@ import java.util.Properties; import java.util.UUID; import java.util.function.Function; import java.util.function.Supplier; +import java.util.stream.Collectors; import javax.ws.rs.Consumes; import javax.ws.rs.DELETE; import javax.ws.rs.DefaultValue; @@ -60,15 +57,12 @@ import lombok.Setter; import lombok.ToString; import org.onap.policy.common.endpoints.event.comm.Topic; import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure; -import org.onap.policy.common.endpoints.event.comm.TopicEndpoint; import org.onap.policy.common.endpoints.event.comm.TopicEndpointManager; import org.onap.policy.common.endpoints.event.comm.TopicSink; import org.onap.policy.common.endpoints.event.comm.TopicSource; import org.onap.policy.common.endpoints.http.server.YamlMessageBodyHandler; import org.onap.policy.common.utils.logging.LoggerUtils; import org.onap.policy.drools.controller.DroolsController; -import org.onap.policy.drools.features.PolicyControllerFeatureApi; -import org.onap.policy.drools.features.PolicyEngineFeatureApi; import org.onap.policy.drools.properties.DroolsPropertyConstants; import org.onap.policy.drools.protocol.coders.EventProtocolCoder.CoderFilters; import org.onap.policy.drools.protocol.coders.EventProtocolCoderConstants; @@ -78,7 +72,6 @@ import org.onap.policy.drools.protocol.configuration.ControllerConfiguration; import org.onap.policy.drools.protocol.configuration.PdpdConfiguration; import org.onap.policy.drools.system.PolicyController; import org.onap.policy.drools.system.PolicyControllerConstants; -import org.onap.policy.drools.system.PolicyEngine; import org.onap.policy.drools.system.PolicyEngineConstants; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -90,14 +83,10 @@ import org.slf4j.LoggerFactory; @Path("/policy/pdp") @Produces({MediaType.APPLICATION_JSON, YamlMessageBodyHandler.APPLICATION_YAML}) @Consumes({MediaType.APPLICATION_JSON, YamlMessageBodyHandler.APPLICATION_YAML}) -@Api -@SwaggerDefinition(info = @Info(description = "PDP-D Telemetry Services", version = "v1.0", title = "PDP-D Telemetry"), - consumes = {MediaType.APPLICATION_JSON, YamlMessageBodyHandler.APPLICATION_YAML, MediaType.TEXT_PLAIN}, - produces = {MediaType.APPLICATION_JSON, YamlMessageBodyHandler.APPLICATION_YAML}, - schemes = {SwaggerDefinition.Scheme.HTTP}, - tags = {@Tag(name = "pdp-d-telemetry", description = "Drools PDP Telemetry Operations")}) @ToString -public class RestManager { +public class RestManager implements SwaggerApi, DefaultApi, FeaturesApi, InputsApi, + PropertiesApi, EnvironmentApi, SwitchesApi, ControllersApi, + TopicsApi, ToolsApi { private static final String OFFER_FAILED = "{}: cannot offer to topic {} because of {}"; private static final String CANNOT_PERFORM_OPERATION = "cannot perform operation"; @@ -109,24 +98,26 @@ public class RestManager { private static final String FETCH_POLICY_FAILED = "{}: cannot get policy-controller because of {}"; private static final String FETCH_POLICY_BY_NAME_FAILED = "{}: cannot get policy-controller {} because of {}"; private static final String FETCH_POLICY_BY_TOPIC_FAILED = - "{}: cannot get policy-controller {} topic {} because of {}"; + "{}: cannot get policy-controller {} topic {} because of {}"; private static final String FETCH_DROOLS_FAILED = "{}: cannot get drools-controller {} because of {}"; private static final String FETCH_DROOLS_BY_ENTITY_FAILED = - "{}: cannot get: drools-controller {}, session {}, query {}, entity {} because of {}"; + "{}: cannot get: drools-controller {}, session {}, query {}, entity {} because of {}"; private static final String FETCH_DROOLS_BY_PARAMS_FAILED = - "{}: cannot get: drools-controller {}, session {}, query {}, entity {}, params {} because of {}"; + "{}: cannot get: drools-controller {}, session {}, query {}, entity {}, params {} because of {}"; private static final String FETCH_DROOLS_BY_FACTTYPE_FAILED = - "{}: cannot get: drools-controller {}, session {}, factType {}, because of {}"; + "{}: cannot get: drools-controller {}, session {}, factType {}, because of {}"; private static final String FETCH_DECODERS_BY_POLICY_FAILED = - "{}: cannot get decoders for policy-controller {} because of {}"; + "{}: cannot get decoders for policy-controller {} because of {}"; private static final String FETCH_DECODERS_BY_TOPIC_FAILED = - "{}: cannot get decoders for policy-controller {} topic {} because of {}"; + "{}: cannot get decoders for policy-controller {} topic {} because of {}"; private static final String FETCH_DECODER_BY_TYPE_FAILED = - "{}: cannot get decoder filters for policy-controller {} topic {} type {} because of {}"; + "{}: cannot get decoder filters for policy-controller {} topic {} type {} because of {}"; private static final String FETCH_DECODER_BY_FILTER_FAILED = - "{}: cannot get decoder filters for policy-controller {} topic {} type {} filters {} because of {}"; + "{}: cannot get decoder filters for policy-controller {} topic {} type {} filters {} because of {}"; private static final String FETCH_ENCODER_BY_FILTER_FAILED = - "{}: cannot get encoder filters for policy-controller {} because of {}"; + "{}: cannot get encoder filters for policy-controller {} because of {}"; + + private static final String SWAGGER = "/swagger/swagger.json"; /** * Logger. @@ -148,10 +139,34 @@ public class RestManager { * * @return response object */ + @Override + @GET + @Path("engine/swagger") + public Response swagger() { + + try (InputStream inputStream = getClass().getResourceAsStream(SWAGGER); + BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) { + String contents = reader.lines() + .collect(Collectors.joining(System.lineSeparator())); + return Response.status(Response.Status.OK) + .entity(contents) + .build(); + } catch (IOException e) { + logger.error("Cannot read swagger.json {} because of {}", e.getMessage(), e); + return Response.status(Response.Status.INTERNAL_SERVER_ERROR) + .build(); + } + + } + + /** + * GET. + * + * @return response object + */ + @Override @GET @Path("engine") - @ApiOperation(value = "Retrieves the Engine Operational Status", - notes = "Top-level abstraction. Provides a global view of resources", response = PolicyEngine.class) public Response engine() { return Response.status(Response.Status.OK).entity(PolicyEngineConstants.getManager()).build(); } @@ -161,17 +176,15 @@ public class RestManager { * * @return response object */ + @Override @DELETE @Path("engine") - @ApiOperation(value = "Shuts down the Engine", - notes = "Deleting the engine, the top-level abstraction, equivalenty shuts it down", - response = PolicyEngine.class) public Response engineShutdown() { try { PolicyEngineConstants.getManager().shutdown(); } catch (final IllegalStateException e) { logger.error("{}: cannot shutdown {} because of {}", this, PolicyEngineConstants.getManager(), - e.getMessage(), e); + e.getMessage(), e); return Response.status(Response.Status.BAD_REQUEST).entity(PolicyEngineConstants.getManager()).build(); } @@ -183,22 +196,19 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/features") - @ApiOperation(value = "Engine Features", - notes = "Provides the list of loaded features using the PolicyEngineFeatureAPI", responseContainer = "List") public Response engineFeatures() { return Response.status(Response.Status.OK).entity(PolicyEngineConstants.getManager().getFeatures()).build(); } + @Override @GET @Path("engine/features/inventory") - @ApiOperation(value = "Engine Detailed Feature Inventory", - notes = "Provides detailed list of loaded features using the PolicyEngineFeatureAPI", - responseContainer = "List", response = PolicyEngineFeatureApi.class) public Response engineFeaturesInventory() { return Response.status(Response.Status.OK).entity(PolicyEngineConstants.getManager().getFeatureProviders()) - .build(); + .build(); } /** @@ -206,16 +216,13 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/features/{featureName}") - @ApiOperation(value = "Engine Feature", notes = "Provides Details for a given feature Engine Provider", - response = PolicyEngineFeatureApi.class) - @ApiResponses(value = {@ApiResponse(code = 404, message = "The feature cannot be found")}) - public Response engineFeature( - @ApiParam(value = "Feature Name", required = true) @PathParam("featureName") String featureName) { + public Response engineFeature(@PathParam("featureName") String featureName) { try { return Response.status(Response.Status.OK) - .entity(PolicyEngineConstants.getManager().getFeatureProvider(featureName)).build(); + .entity(PolicyEngineConstants.getManager().getFeatureProvider(featureName)).build(); } catch (final IllegalArgumentException iae) { logger.debug("feature unavailable: {}", featureName, iae); return Response.status(Response.Status.NOT_FOUND).entity(new Error(iae.getMessage())).build(); @@ -227,9 +234,9 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/inputs") - @ApiOperation(value = "Engine Input Ports", notes = "List of input ports", responseContainer = "List") public Response engineInputs() { return Response.status(Response.Status.OK).entity(INPUTS).build(); } @@ -239,13 +246,10 @@ public class RestManager { * * @return response object */ + @Override @POST @Path("engine/inputs/configuration") - @ApiOperation(value = "Engine Input Configuration Requests", - notes = "Feeds a configuration request input into the Engine") - @ApiResponses(value = {@ApiResponse(code = 406, message = "The configuration request cannot be honored")}) - public Response engineUpdate( - @ApiParam(value = "Configuration to apply", required = true) PdpdConfiguration configuration) { + public Response engineUpdate(PdpdConfiguration configuration) { final PolicyController controller = null; boolean success; try { @@ -253,12 +257,12 @@ public class RestManager { } catch (final Exception e) { success = false; logger.info("{}: cannot configure {} because of {}", this, PolicyEngineConstants.getManager(), - e.getMessage(), e); + e.getMessage(), e); } if (!success) { return Response.status(Response.Status.NOT_ACCEPTABLE).entity(new Error(CANNOT_PERFORM_OPERATION)) - .build(); + .build(); } else { return Response.status(Response.Status.OK).entity(controller).build(); } @@ -269,10 +273,9 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/properties") - @ApiOperation(value = "Engine Configuration Properties", notes = "Used for booststrapping the engine", - response = Properties.class) public Response engineProperties() { return Response.status(Response.Status.OK).entity(PolicyEngineConstants.getManager().getProperties()).build(); } @@ -282,28 +285,25 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/environment") - @ApiOperation(value = "Engine Environment Properties", - notes = "Installation and OS environment properties used by the engine", response = Properties.class) public Response engineEnvironment() { return Response.status(Response.Status.OK).entity(PolicyEngineConstants.getManager().getEnvironment()).build(); } /** - * GET. - * - * @return response object - */ + * GET. + * + * @return response object + */ + @Override @GET @Path("engine/environment/{envProperty}") @Consumes(MediaType.TEXT_PLAIN) - @ApiOperation(value = "Gets an environment variable", response = String.class) - public Response engineEnvironment( - @ApiParam(value = "Environment Property", - required = true) @PathParam("envProperty") String envProperty) { + public Response engineEnvironmentProperty(@PathParam("envProperty") String envProperty) { return Response.status(Response.Status.OK) - .entity(PolicyEngineConstants.getManager().getEnvironmentProperty(envProperty)).build(); + .entity(PolicyEngineConstants.getManager().getEnvironmentProperty(envProperty)).build(); } /** @@ -311,14 +311,12 @@ public class RestManager { * * @return response object */ + @Override @PUT @Path("engine/environment/{envProperty}") @Consumes(MediaType.TEXT_PLAIN) @Produces(MediaType.TEXT_PLAIN) - @ApiOperation(value = "Adds a new environment value to the engine", response = String.class) - public Response engineEnvironmentAdd( - @ApiParam(value = "Environment Property", required = true) @PathParam("envProperty") String envProperty, - @ApiParam(value = "Environment Value", required = true) String envValue) { + public Response engineEnvironmentAdd(@PathParam("envProperty") String envProperty, String envValue) { final String previousValue = PolicyEngineConstants.getManager().setEnvironmentProperty(envProperty, envValue); return Response.status(Response.Status.OK).entity(previousValue).build(); } @@ -328,10 +326,9 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/switches") - @ApiOperation(value = "Engine Control Switches", notes = "List of the Engine Control Switches", - responseContainer = "List") public Response engineSwitches() { return Response.status(Response.Status.OK).entity(SWITCHES).build(); } @@ -341,12 +338,9 @@ public class RestManager { * * @return response object */ + @Override @PUT @Path("engine/switches/activation") - @ApiOperation(value = "Switches on the Engine Activation Switch", - notes = "Turns on Activation Switch on the Engine. This order entails that the engine " - + "and controllers are unlocked and started", - response = PolicyEngine.class) public Response engineActivation() { var success = true; try { @@ -354,12 +348,12 @@ public class RestManager { } catch (final Exception e) { success = false; logger.info("{}: cannot activate {} because of {}", this, PolicyEngineConstants.getManager(), - e.getMessage(), e); + e.getMessage(), e); } if (!success) { return Response.status(Response.Status.NOT_ACCEPTABLE).entity(new Error(CANNOT_PERFORM_OPERATION)) - .build(); + .build(); } else { return Response.status(Response.Status.OK).entity(PolicyEngineConstants.getManager()).build(); } @@ -370,12 +364,9 @@ public class RestManager { * * @return response object */ + @Override @DELETE @Path("engine/switches/activation") - @ApiOperation(value = "Switches off Engine Activation Switch", - notes = "Turns off the Activation Switch on the Engine. This order entails that the engine " - + "and controllers are locked (with the exception of those resources defined as unmanaged)", - response = PolicyEngine.class) public Response engineDeactivation() { var success = true; try { @@ -383,12 +374,12 @@ public class RestManager { } catch (final Exception e) { success = false; logger.info("{}: cannot deactivate {} because of {}", this, PolicyEngineConstants.getManager(), - e.getMessage(), e); + e.getMessage(), e); } if (!success) { return Response.status(Response.Status.NOT_ACCEPTABLE).entity(new Error(CANNOT_PERFORM_OPERATION)) - .build(); + .build(); } else { return Response.status(Response.Status.OK).entity(PolicyEngineConstants.getManager()).build(); } @@ -399,13 +390,9 @@ public class RestManager { * * @return response object */ + @Override @PUT @Path("engine/switches/lock") - @ApiOperation(value = "Switches on the Engine Lock Control", - notes = "This switch locks all the engine resources as a whole, except those that are defined unmanaged", - response = PolicyEngine.class) - @ApiResponses(value = {@ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) public Response engineLock() { final boolean success = PolicyEngineConstants.getManager().lock(); if (success) { @@ -420,13 +407,9 @@ public class RestManager { * * @return response object */ + @Override @DELETE @Path("engine/switches/lock") - @ApiOperation(value = "Switches off the Lock control", - notes = "This switch locks all the engine resources as a whole, except those that are defined unmanaged", - response = PolicyEngine.class) - @ApiResponses(value = {@ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) public Response engineUnlock() { final boolean success = PolicyEngineConstants.getManager().unlock(); if (success) { @@ -441,13 +424,12 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/controllers") - @ApiOperation(value = "Lists the Policy Controllers Names", notes = "Unique Policy Controller Identifiers", - responseContainer = "List") public Response controllers() { return Response.status(Response.Status.OK).entity(PolicyEngineConstants.getManager().getPolicyControllerIds()) - .build(); + .build(); } /** @@ -455,43 +437,34 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/controllers/inventory") - @ApiOperation(value = "Lists the Policy Controllers", notes = "Detailed list of Policy Controllers", - responseContainer = "List", response = PolicyController.class) public Response controllerInventory() { return Response.status(Response.Status.OK).entity(PolicyEngineConstants.getManager().getPolicyControllers()) - .build(); + .build(); } /** - * POST. - * - * @return response object - */ + * POST. + * + * @return response object + */ + @Override @POST @Path("engine/controllers") - @ApiOperation(value = "Creates and starts a new Policy Controller", - notes = "Controller creation based on properties", response = PolicyController.class) - @ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid configuration information has been provided"), - @ApiResponse(code = 304, message = "The controller already exists"), - @ApiResponse(code = 406, - message = "The administrative state of the system prevents it " + "from processing this request"), - @ApiResponse(code = 206, message = "The controller has been created " + "but cannot be started"), - @ApiResponse(code = 201, message = "The controller has been succesfully created and started")}) - public Response controllerAdd( - @ApiParam(value = "Configuration Properties to apply", required = true) Properties config) { + public Response controllerAdd(Properties config) { if (config == null) { return Response.status(Response.Status.BAD_REQUEST).entity(new Error("A configuration must be provided")) - .build(); + .build(); } final String controllerName = config.getProperty(DroolsPropertyConstants.PROPERTY_CONTROLLER_NAME); if (controllerName == null || controllerName.isEmpty()) { return Response.status(Response.Status.BAD_REQUEST) - .entity(new Error( - "Configuration must have an entry for " + DroolsPropertyConstants.PROPERTY_CONTROLLER_NAME)) - .build(); + .entity(new Error( + "Configuration must have an entry for " + DroolsPropertyConstants.PROPERTY_CONTROLLER_NAME)) + .build(); } PolicyController controller; @@ -506,12 +479,12 @@ public class RestManager { } catch (final IllegalStateException e) { logger.info(FETCH_POLICY_FAILED, this, e.getMessage(), e); return Response.status(Response.Status.NOT_ACCEPTABLE).entity(new Error(controllerName + NOT_FOUND_MSG)) - .build(); + .build(); } try { controller = PolicyEngineConstants.getManager().createPolicyController( - config.getProperty(DroolsPropertyConstants.PROPERTY_CONTROLLER_NAME), config); + config.getProperty(DroolsPropertyConstants.PROPERTY_CONTROLLER_NAME), config); } catch (IllegalArgumentException | IllegalStateException e) { logger.warn("{}: cannot create policy-controller because of {}", this, e.getMessage(), e); return Response.status(Response.Status.BAD_REQUEST).entity(new Error(e.getMessage())).build(); @@ -522,7 +495,7 @@ public class RestManager { if (!success) { logger.info("{}: cannot start {}", this, controller); return Response.status(Response.Status.PARTIAL_CONTENT) - .entity(new Error(controllerName + " can't be started")).build(); + .entity(new Error(controllerName + " can't be started")).build(); } } catch (final IllegalStateException e) { logger.info("{}: cannot start {} because of {}", this, controller, e.getMessage(), e); @@ -537,10 +510,9 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/controllers/features") - @ApiOperation(value = "Lists of Feature Providers Identifiers", notes = "Unique Policy Controller Identifiers", - responseContainer = "List") public Response controllerFeatures() { return Response.status(Response.Status.OK).entity(PolicyEngineConstants.getManager().getFeatures()).build(); } @@ -550,14 +522,12 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/controllers/features/inventory") - @ApiOperation(value = "Detailed Controllers Feature Inventory", - notes = "Provides detailed list of loaded features using the PolicyControllerFeatureAPI", - responseContainer = "List", response = PolicyControllerFeatureApi.class) public Response controllerFeaturesInventory() { return Response.status(Response.Status.OK) - .entity(PolicyControllerConstants.getFactory().getFeatureProviders()).build(); + .entity(PolicyControllerConstants.getFactory().getFeatureProviders()).build(); } /** @@ -565,18 +535,14 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/controllers/features/{featureName}") - @ApiOperation(value = "Controller Feature", - notes = "Provides Details for a given Policy Controller feature provider", - response = PolicyControllerFeatureApi.class) - @ApiResponses(value = {@ApiResponse(code = 404, message = "The feature cannot be found")}) - public Response controllerFeature( - @ApiParam(value = "Feature Name", required = true) @PathParam("featureName") String featureName) { + public Response controllerFeature(@PathParam("featureName") String featureName) { try { return Response.status(Response.Status.OK) - .entity(PolicyControllerConstants.getFactory().getFeatureProvider(featureName)) - .build(); + .entity(PolicyControllerConstants.getFactory().getFeatureProvider(featureName)) + .build(); } catch (final IllegalArgumentException iae) { logger.debug("{}: cannot feature {} because of {}", this, featureName, iae.getMessage(), iae); return Response.status(Response.Status.NOT_FOUND).entity(new Error(iae.getMessage())).build(); @@ -588,22 +554,14 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/controllers/{controller}") - @ApiOperation(value = "Retrieves a Policy Controller", - notes = "A Policy Controller is a concrete drools application abstraction. " - + "It aggregates networking, drools, and other resources," - + "as provides operational controls over drools applications", - response = PolicyController.class) - @ApiResponses( - value = {@ApiResponse(code = 404, message = "The controller cannot be found"), @ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) - public Response controller(@ApiParam(value = "Policy Controller Name", - required = true) @PathParam("controller") String controllerName) { + public Response controller(@PathParam("controller") String controllerName) { return catchArgStateGenericEx( () -> Response.status(Response.Status.OK) - .entity(PolicyControllerConstants.getFactory().get(controllerName)).build(), + .entity(PolicyControllerConstants.getFactory().get(controllerName)).build(), e -> { logger.debug(FETCH_POLICY_BY_NAME_FAILED, this, controllerName, e.getMessage(), e); return (controllerName); @@ -615,42 +573,33 @@ public class RestManager { * * @return response object */ + @Override @DELETE @Path("engine/controllers/{controller}") - @ApiOperation(value = "Deletes a Policy Controller", - notes = "A Policy Controller is a concrete drools application abstraction. " - + "It aggregates networking, drools, and other resources," - + "as provides operational controls over drools applications", - response = PolicyController.class) - @ApiResponses(value = {@ApiResponse(code = 404, message = "The controller cannot be found"), - @ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled"), - @ApiResponse(code = 500, message = "A problem has occurred while deleting the Policy Controller")}) - public Response controllerDelete(@ApiParam(value = "Policy Controller Name", - required = true) @PathParam("controller") String controllerName) { + public Response controllerDelete(@PathParam("controller") String controllerName) { PolicyController controller; try { controller = PolicyControllerConstants.getFactory().get(controllerName); if (controller == null) { return Response.status(Response.Status.BAD_REQUEST) - .entity(new Error(controllerName + DOES_NOT_EXIST_MSG)).build(); + .entity(new Error(controllerName + DOES_NOT_EXIST_MSG)).build(); } } catch (final IllegalArgumentException e) { logger.debug(FETCH_POLICY_BY_NAME_FAILED, this, controllerName, e.getMessage(), e); return Response.status(Response.Status.BAD_REQUEST) - .entity(new Error(controllerName + NOT_FOUND + e.getMessage())).build(); + .entity(new Error(controllerName + NOT_FOUND + e.getMessage())).build(); } catch (final IllegalStateException e) { logger.debug(FETCH_POLICY_BY_NAME_FAILED, this, controllerName, e.getMessage(), e); return Response.status(Response.Status.NOT_ACCEPTABLE) - .entity(new Error(controllerName + NOT_ACCEPTABLE_MSG)).build(); + .entity(new Error(controllerName + NOT_ACCEPTABLE_MSG)).build(); } try { PolicyEngineConstants.getManager().removePolicyController(controllerName); } catch (IllegalArgumentException | IllegalStateException e) { logger.debug("{}: cannot remove policy-controller {} because of {}", this, controllerName, e.getMessage(), - e); + e); return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(new Error(e.getMessage())).build(); } @@ -662,25 +611,20 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/controllers/{controller}/properties") - @ApiOperation(value = "Retrieves the configuration properties of a Policy Controller", - notes = "Configuration resources used by the controller if Properties format", - response = PolicyController.class) - @ApiResponses( - value = {@ApiResponse(code = 404, message = "The controller cannot be found"), @ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) - public Response controllerProperties(@ApiParam(value = "Policy Controller Name", - required = true) @PathParam("controller") String controllerName) { + + public Response controllerProperties(@PathParam("controller") String controllerName) { return catchArgStateGenericEx(() -> { final PolicyController controller = PolicyControllerConstants.getFactory().get(controllerName); return Response.status(Response.Status.OK).entity(controller.getProperties()).build(); }, e -> { - logger.debug(FETCH_POLICY_BY_NAME_FAILED, this, controllerName, e.getMessage(), e); - return (controllerName); - }); + logger.debug(FETCH_POLICY_BY_NAME_FAILED, this, controllerName, e.getMessage(), e); + return (controllerName); + }); } /** @@ -688,10 +632,10 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/controllers/{controller}/inputs") - @ApiOperation(value = "Policy Controller Input Ports", notes = "List of input ports", responseContainer = "List") - public Response controllerInputs() { + public Response controllerInputs(@PathParam("controller") String controllerName) { return Response.status(Response.Status.OK).entity(INPUTS).build(); } @@ -700,38 +644,33 @@ public class RestManager { * * @return response object */ + @Override @POST @Path("engine/controllers/{controller}/inputs/configuration") - @ApiOperation(value = "Policy Controller Input Configuration Requests", - notes = "Feeds a configuration request input into the given Policy Controller") - @ApiResponses(value = {@ApiResponse(code = 400, message = "The configuration request is invalid"), - @ApiResponse(code = 406, message = "The configuration request cannot be honored")}) - public Response controllerUpdate( - @ApiParam(value = "Policy Controller Name", required = true) @PathParam("controller") String controllerName, - @ApiParam(value = "Configuration to apply", - required = true) ControllerConfiguration controllerConfiguration) { + public Response controllerUpdate(ControllerConfiguration controllerConfiguration, + @PathParam("controller") String controllerName) { if (controllerName == null || controllerName.isEmpty() || controllerConfiguration == null - || !controllerName.equals(controllerConfiguration.getName())) { + || !controllerName.equals(controllerConfiguration.getName())) { return Response.status(Response.Status.BAD_REQUEST) - .entity("A valid or matching controller names must be provided").build(); + .entity("A valid or matching controller names must be provided").build(); } return catchArgStateGenericEx(() -> { var controller = - PolicyEngineConstants.getManager().updatePolicyController(controllerConfiguration); + PolicyEngineConstants.getManager().updatePolicyController(controllerConfiguration); if (controller == null) { return Response.status(Response.Status.BAD_REQUEST) - .entity(new Error(controllerName + DOES_NOT_EXIST_MSG)).build(); + .entity(new Error(controllerName + DOES_NOT_EXIST_MSG)).build(); } return Response.status(Response.Status.OK).entity(controller).build(); }, e -> { - logger.info("{}: cannot update policy-controller {} because of {}", this, controllerName, - e.getMessage(), e); - return (controllerName); - }); + logger.info("{}: cannot update policy-controller {} because of {}", this, controllerName, + e.getMessage(), e); + return (controllerName); + }); } /** @@ -739,11 +678,10 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/controllers/{controller}/switches") - @ApiOperation(value = "Policy Controller Switches", notes = "List of the Policy Controller Switches", - responseContainer = "List") - public Response controllerSwitches() { + public Response controllerSwitches(@PathParam("controller") String controllerName) { return Response.status(Response.Status.OK).entity(SWITCHES).build(); } @@ -752,21 +690,17 @@ public class RestManager { * * @return response object */ + @Override @PUT @Path("engine/controllers/{controller}/switches/lock") - @ApiOperation(value = "Switches on the Policy Controller Lock Control", - notes = "This action on the switch locks the Policy Controller", response = PolicyController.class) - @ApiResponses(value = {@ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) - public Response controllerLock(@ApiParam(value = "Policy Controller Name", - required = true) @PathParam("controller") String controllerName) { + public Response controllerLock(@PathParam("controller") String controllerName) { var policyController = PolicyControllerConstants.getFactory().get(controllerName); final boolean success = policyController.lock(); if (success) { return Response.status(Status.OK).entity(policyController).build(); } else { return Response.status(Status.NOT_ACCEPTABLE) - .entity(new Error("Controller " + controllerName + " cannot be locked")).build(); + .entity(new Error("Controller " + controllerName + " cannot be locked")).build(); } } @@ -775,21 +709,17 @@ public class RestManager { * * @return response object */ + @Override @DELETE @Path("engine/controllers/{controller}/switches/lock") - @ApiOperation(value = "Switches off the Policy Controller Lock Control", - notes = "This action on the switch unlocks the Policy Controller", response = PolicyController.class) - @ApiResponses(value = {@ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) - public Response controllerUnlock(@ApiParam(value = "Policy Controller Name", - required = true) @PathParam("controller") String controllerName) { + public Response controllerUnlock(@PathParam("controller") String controllerName) { var policyController = PolicyControllerConstants.getFactory().get(controllerName); final boolean success = policyController.unlock(); if (success) { return Response.status(Status.OK).entity(policyController).build(); } else { return Response.status(Status.NOT_ACCEPTABLE) - .entity(new Error("Controller " + controllerName + " cannot be unlocked")).build(); + .entity(new Error("Controller " + controllerName + " cannot be unlocked")).build(); } } @@ -798,25 +728,19 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/controllers/{controller}/drools") - @ApiOperation(value = "Retrieves the Drools Controller subcomponent of the Policy Controller", - notes = "The Drools Controller provides an abstraction over the Drools subsystem", - response = DroolsController.class) - @ApiResponses( - value = {@ApiResponse(code = 404, message = "The controller cannot be found"), @ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) - public Response drools(@ApiParam(value = "Policy Controller Name", - required = true) @PathParam("controller") String controllerName) { + public Response drools(@PathParam("controller") String controllerName) { return catchArgStateGenericEx(() -> { var drools = this.getDroolsController(controllerName); return Response.status(Response.Status.OK).entity(drools).build(); }, e -> { - logger.debug(FETCH_DROOLS_FAILED, this, controllerName, e.getMessage(), e); - return (controllerName); - }); + logger.debug(FETCH_DROOLS_FAILED, this, controllerName, e.getMessage(), e); + return (controllerName); + }); } /** @@ -824,16 +748,10 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/controllers/{controller}/drools/facts") - @ApiOperation(value = "Retrieves Facts Summary information for a given controller", - notes = "Provides the session names, and a count of fact object in the drools working memory", - responseContainer = "Map") - @ApiResponses( - value = {@ApiResponse(code = 404, message = "The controller cannot be found"), @ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) - public Response droolsFacts(@ApiParam(value = "Policy Controller Name", - required = true) @PathParam("controller") String controllerName) { + public Response droolsFacts2(@PathParam("controller") String controllerName) { return catchArgStateGenericEx(() -> { final Map<String, Long> sessionCounts = new HashMap<>(); @@ -844,9 +762,9 @@ public class RestManager { return sessionCounts; }, e -> { - logger.debug(FETCH_POLICY_BY_NAME_FAILED, this, controllerName, e.getMessage(), e); - return controllerName; - }); + logger.debug(FETCH_POLICY_BY_NAME_FAILED, this, controllerName, e.getMessage(), e); + return controllerName; + }); } /** @@ -854,26 +772,20 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/controllers/{controller}/drools/facts/{session}") - @ApiOperation(value = "Retrieves Fact Types (classnames) for a given controller and its count", - notes = "The fact types are the classnames of the objects inserted in the drools working memory", - responseContainer = "Map") - @ApiResponses(value = {@ApiResponse(code = 404, message = "The controller or session cannot be found"), - @ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) - public Response droolsFacts( - @ApiParam(value = "Policy Controller Name", required = true) @PathParam("controller") String controllerName, - @ApiParam(value = "Drools Session Name", required = true) @PathParam("session") String sessionName) { + public Response droolsFacts1(@PathParam("controller") String controllerName, + @PathParam("session") String sessionName) { return catchArgStateGenericEx(() -> { var drools = this.getDroolsController(controllerName); return drools.factClassNames(sessionName); }, e -> { - logger.debug(FETCH_DROOLS_FAILED, this, controllerName, e.getMessage(), e); - return (controllerName + ":" + sessionName); - }); + logger.debug(FETCH_DROOLS_FAILED, this, controllerName, e.getMessage(), e); + return (controllerName + ":" + sessionName); + }); } /** @@ -881,21 +793,14 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/controllers/{controller}/drools/facts/{session}/{factType}") - @ApiOperation( - value = "Retrieves fact objects of a given type in the drools working memory" - + "for a given controller and session", - notes = "The fact types are the classnames of the objects inserted in the drools working memory", - responseContainer = "List") - @ApiResponses(value = {@ApiResponse(code = 404, message = "The controller, session, or fact type cannot be found"), - @ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) public Response droolsFacts( - @ApiParam(value = "Fact count", required = false) @DefaultValue("false") @QueryParam("count") boolean count, - @ApiParam(value = "Policy Controller Name", required = true) @PathParam("controller") String controllerName, - @ApiParam(value = "Drools Session Name", required = true) @PathParam("session") String sessionName, - @ApiParam(value = "Drools Fact Type", required = true) @PathParam("factType") String factType) { + @PathParam("controller") String controllerName, + @PathParam("session") String sessionName, + @PathParam("factType") String factType, + @DefaultValue("false") @QueryParam("count") boolean count) { return catchArgStateGenericEx(() -> { var drools = this.getDroolsController(controllerName); @@ -903,9 +808,9 @@ public class RestManager { return (count ? facts.size() : facts); }, e -> { - logger.debug(FETCH_POLICY_BY_NAME_FAILED, this, controllerName, e.getMessage(), e); - return (controllerName + ":" + sessionName + ":" + factType); - }); + logger.debug(FETCH_POLICY_BY_NAME_FAILED, this, controllerName, e.getMessage(), e); + return (controllerName + ":" + sessionName + ":" + factType); + }); } /** @@ -913,25 +818,15 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/controllers/{controller}/drools/facts/{session}/{query}/{queriedEntity}") - @ApiOperation( - value = "Gets all the fact objects returned by a DRL query with no parameters " - + "from the drools working memory" - + "for a given controller and session", - notes = "The DRL query must be defined in the DRL file", responseContainer = "List") - @ApiResponses(value = { - @ApiResponse(code = 404, message = "The controller, session, or query information, cannot be found"), - @ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled"), - @ApiResponse(code = 500, message = "A server error has occurred processing this request")}) - public Response droolsFacts( - @ApiParam(value = "Fact count", required = false) @DefaultValue("false") @QueryParam("count") boolean count, - @ApiParam(value = "Policy Controller Name", required = true) @PathParam("controller") String controllerName, - @ApiParam(value = "Drools Session Name", required = true) @PathParam("session") String sessionName, - @ApiParam(value = "Query Name Present in DRL", required = true) @PathParam("query") String queryName, - @ApiParam(value = "Query Identifier Present in the DRL Query", - required = true) @PathParam("queriedEntity") String queriedEntity) { + public Response droolsFacts3( + @PathParam("controller") String controllerName, + @PathParam("session") String sessionName, + @PathParam("query") String queryName, + @PathParam("queriedEntity") String queriedEntity, + @DefaultValue("false") @QueryParam("count") boolean count) { return catchArgStateGenericEx(() -> { var drools = this.getDroolsController(controllerName); @@ -939,10 +834,10 @@ public class RestManager { return (count ? facts.size() : facts); }, e -> { - logger.debug(FETCH_DROOLS_BY_ENTITY_FAILED, this, - controllerName, sessionName, queryName, queriedEntity, e.getMessage(), e); - return (controllerName + ":" + sessionName + ":" + queryName + queriedEntity); - }); + logger.debug(FETCH_DROOLS_BY_ENTITY_FAILED, this, + controllerName, sessionName, queryName, queriedEntity, e.getMessage(), e); + return (controllerName + ":" + sessionName + ":" + queryName + queriedEntity); + }); } /** @@ -950,25 +845,15 @@ public class RestManager { * * @return response object */ + @Override @POST @Path("engine/controllers/{controller}/drools/facts/{session}/{query}/{queriedEntity}") - @ApiOperation( - value = "Gets all the fact objects returned by a DRL query with parameters from the drools working memory" - + "for a given controller and session", - notes = "The DRL query with parameters must be defined in the DRL file", responseContainer = "List") - @ApiResponses(value = { - @ApiResponse(code = 404, message = "The controller, session, or query information, cannot be found"), - @ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled"), - @ApiResponse(code = 500, message = "A server error has occurred processing this request")}) - public Response droolsFacts( - @ApiParam(value = "Policy Controller Name", required = true) @PathParam("controller") String controllerName, - @ApiParam(value = "Drools Session Name", required = true) @PathParam("session") String sessionName, - @ApiParam(value = "Query Name Present in DRL", required = true) @PathParam("query") String queryName, - @ApiParam(value = "Query Identifier Present in the DRL Query", - required = true) @PathParam("queriedEntity") String queriedEntity, - @ApiParam(value = "Query Parameter Values to pass in the DRL Query", - required = false) List<Object> queryParameters) { + public Response droolsFacts4( + @PathParam("controller") String controllerName, + @PathParam("session") String sessionName, + @PathParam("query") String queryName, + @PathParam("queriedEntity") String queriedEntity, + List<Object> queryParameters) { return catchArgStateGenericEx(() -> { var drools = this.getDroolsController(controllerName); @@ -979,10 +864,10 @@ public class RestManager { } }, e -> { - logger.debug(FETCH_DROOLS_BY_PARAMS_FAILED, - this, controllerName, sessionName, queryName, queriedEntity, queryParameters, e.getMessage(), e); - return (controllerName + ":" + sessionName + ":" + queryName + queriedEntity); - }); + logger.debug(FETCH_DROOLS_BY_PARAMS_FAILED, + this, controllerName, sessionName, queryName, queriedEntity, queryParameters, e.getMessage(), e); + return (controllerName + ":" + sessionName + ":" + queryName + queriedEntity); + }); } /** @@ -990,32 +875,23 @@ public class RestManager { * * @return response object */ + @Override @DELETE @Path("engine/controllers/{controller}/drools/facts/{session}/{factType}") - @ApiOperation( - value = "Deletes all the fact objects of a given type from the drools working memory" - + "for a given controller and session. The objects retracted from the working " - + "memory are provided in the response.", - notes = "The fact types are the classnames of the objects inserted in the drools working memory", - responseContainer = "List") - @ApiResponses(value = {@ApiResponse(code = 404, message = "The controller, session, or fact type, cannot be found"), - @ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled"), - @ApiResponse(code = 500, message = "A server error has occurred processing this request")}) - public Response droolsFactsDelete( - @ApiParam(value = "Policy Controller Name", required = true) @PathParam("controller") String controllerName, - @ApiParam(value = "Drools Session Name", required = true) @PathParam("session") String sessionName, - @ApiParam(value = "Drools Fact Type", required = true) @PathParam("factType") String factType) { + public Response droolsFactsDelete1( + @PathParam("controller") String controllerName, + @PathParam("session") String sessionName, + @PathParam("factType") String factType) { return catchArgStateGenericEx(() -> { var drools = this.getDroolsController(controllerName); return drools.facts(sessionName, factType, true); }, e -> { - logger.debug(FETCH_DROOLS_BY_FACTTYPE_FAILED, this, - controllerName, sessionName, factType, e.getMessage(), e); - return (controllerName + ":" + sessionName + ":" + factType); - }); + logger.debug(FETCH_DROOLS_BY_FACTTYPE_FAILED, this, + controllerName, sessionName, factType, e.getMessage(), e); + return (controllerName + ":" + sessionName + ":" + factType); + }); } /** @@ -1023,40 +899,25 @@ public class RestManager { * * @return response object */ + @Override @DELETE @Path("engine/controllers/{controller}/drools/facts/{session}/{query}/{queriedEntity}") - @ApiOperation( - value = "Deletes all the fact objects returned by a DRL query with parameters " - + "from the drools working memory " - + "for a given controller and session", - notes = "The DRL query with parameters must be defined in the DRL file", responseContainer = "List") - @ApiResponses(value = { - @ApiResponse(code = 404, message = "The controller, session, or query information, cannot be found"), - @ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled"), - @ApiResponse(code = 500, message = "A server error has occurred processing this request")}) public Response droolsFactsDelete( - @ApiParam(value = "Policy Controller Name", required = true) @PathParam("controller") String controllerName, - @ApiParam(value = "Drools Session Name", required = true) @PathParam("session") String sessionName, - @ApiParam(value = "Query Name Present in DRL", required = true) @PathParam("query") String queryName, - @ApiParam(value = "Query Identifier Present in the DRL Query", - required = true) @PathParam("queriedEntity") String queriedEntity, - @ApiParam(value = "Query Parameter Values to pass in the DRL Query", - required = false) List<Object> queryParameters) { + @PathParam("controller") String controllerName, + @PathParam("session") String sessionName, + @PathParam("query") String queryName, + @PathParam("queriedEntity") String queriedEntity) { return catchArgStateGenericEx(() -> { var drools = this.getDroolsController(controllerName); - if (queryParameters == null || queryParameters.isEmpty()) { - return drools.factQuery(sessionName, queryName, queriedEntity, true); - } else { - return drools.factQuery(sessionName, queryName, queriedEntity, true, queryParameters.toArray()); - } + return drools.factQuery(sessionName, queryName, queriedEntity, true); + }, e -> { - logger.debug(FETCH_DROOLS_BY_PARAMS_FAILED, - this, controllerName, sessionName, queryName, queriedEntity, queryParameters, e.getMessage(), e); - return (controllerName + ":" + sessionName + ":" + queryName + queriedEntity); - }); + logger.debug(FETCH_DROOLS_BY_PARAMS_FAILED, + this, controllerName, sessionName, queryName, queriedEntity, e.getMessage(), e); + return (controllerName + ":" + sessionName + ":" + queryName + queriedEntity); + }); } /** @@ -1064,12 +925,10 @@ public class RestManager { * * @return response object */ + @Override @POST @Path("engine/controllers/tools/coders/decoders/filters/rule") - @ApiOperation(value = "Produces a Decoder Rule Filter in a format that the Policy Controller can understand", - notes = "The result can be used with other APIs to attach a filter to a decoder") - public Response rules( - @ApiParam(value = "JsonPath expression", required = true) String expression) { + public Response rules(String expression) { return Response.status(Status.OK).entity(new JsonProtocolFilter(expression)).build(); } @@ -1078,29 +937,20 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/controllers/{controller}/decoders") - @ApiOperation(value = "Gets all the decoders used by a controller", - notes = "A Policy Controller uses decoders to deserialize incoming network messages from " - + "subscribed network topics into specific (fact) objects. " - + "The deserialized (fact) object will typically be inserted in the drools working " - + " memory of the controlled drools application.", - responseContainer = "List", response = ProtocolCoderToolset.class) - @ApiResponses( - value = {@ApiResponse(code = 404, message = "The controller cannot be found"), @ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) - public Response decoders(@ApiParam(value = "Policy Controller Name", - required = true) @PathParam("controller") String controllerName) { + public Response decoders(@PathParam("controller") String controllerName) { return catchArgStateGenericEx(() -> { var drools = this.getDroolsController(controllerName); return EventProtocolCoderConstants.getManager().getDecoders(drools.getGroupId(), drools.getArtifactId()); }, e -> { - logger.debug(FETCH_DECODERS_BY_POLICY_FAILED, this, controllerName, - e.getMessage(), e); - return (controllerName); - }); + logger.debug(FETCH_DECODERS_BY_POLICY_FAILED, this, controllerName, + e.getMessage(), e); + return (controllerName); + }); } /** @@ -1108,30 +958,20 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/controllers/{controller}/decoders/filters") - @ApiOperation(value = "Gets all the filters used by a controller", - notes = "A Policy Controller uses decoders to deserialize incoming network messages from " - + "subscribed network topics into specific (fact) objects. " - + "The deserialized (fact) object will typically be inserted in the drools working " - + " memory of the controlled drools application." - + "Acceptance filters are used to filter out undesired network messages for the given controller", - responseContainer = "List", response = CoderFilters.class) - @ApiResponses( - value = {@ApiResponse(code = 404, message = "The controller cannot be found"), @ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) - public Response decoderFilters(@ApiParam(value = "Policy Controller Name", - required = true) @PathParam("controller") String controllerName) { + public Response decoderFilters(@PathParam("controller") String controllerName) { return catchArgStateGenericEx(() -> { var drools = this.getDroolsController(controllerName); return EventProtocolCoderConstants.getManager() - .getDecoderFilters(drools.getGroupId(), drools.getArtifactId()); + .getDecoderFilters(drools.getGroupId(), drools.getArtifactId()); }, e -> { - logger.debug(FETCH_DECODERS_BY_POLICY_FAILED, this, controllerName, e.getMessage(), e); - return (controllerName); - }); + logger.debug(FETCH_DECODERS_BY_POLICY_FAILED, this, controllerName, e.getMessage(), e); + return (controllerName); + }); } /** @@ -1139,30 +979,22 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/controllers/{controller}/decoders/{topic}") - @ApiOperation(value = "Gets all the decoders in use by a controller for a networked topic", - notes = "A Policy Controller uses decoders to deserialize incoming network messages from " - + "subscribed network topics into specific (fact) objects. " - + "The deserialized (fact) object will typically be inserted in the drools working " - + " memory of the controlled drools application.", - responseContainer = "List", response = ProtocolCoderToolset.class) - @ApiResponses(value = {@ApiResponse(code = 404, message = "The controller or topic cannot be found"), - @ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) public Response decoder( - @ApiParam(value = "Policy Controller Name", required = true) @PathParam("controller") String controllerName, - @ApiParam(value = "Networked Topic Name", required = true) @PathParam("topic") String topic) { + @PathParam("controller") String controllerName, + @PathParam("topic") String topic) { return catchArgStateGenericEx(() -> { var drools = this.getDroolsController(controllerName); return EventProtocolCoderConstants.getManager() - .getDecoders(drools.getGroupId(), drools.getArtifactId(), topic); + .getDecoders(drools.getGroupId(), drools.getArtifactId(), topic); }, e -> { - logger.debug(FETCH_DECODERS_BY_TOPIC_FAILED, this, controllerName, topic, e.getMessage(), e); - return (controllerName + ":" + topic); - }); + logger.debug(FETCH_DECODERS_BY_TOPIC_FAILED, this, controllerName, topic, e.getMessage(), e); + return (controllerName + ":" + topic); + }); } /** @@ -1170,37 +1002,28 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/controllers/{controller}/decoders/{topic}/filters") - @ApiOperation(value = "Gets all filters attached to decoders for a given networked topic in use by a controller", - notes = "A Policy Controller uses decoders to deserialize incoming network messages from " - + "subscribed network topics into specific (fact) objects. " - + "The deserialized (fact) object will typically be inserted in the drools working " - + " memory of the controlled drools application." - + "Acceptance filters are used to filter out undesired network messages for the given controller", - responseContainer = "List", response = CoderFilters.class) - @ApiResponses(value = {@ApiResponse(code = 404, message = "The controller or topic cannot be found"), - @ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) - public Response decoderFilter( - @ApiParam(value = "Policy Controller Name", required = true) @PathParam("controller") String controllerName, - @ApiParam(value = "Networked Topic Name", required = true) @PathParam("topic") String topic) { + public Response decoderFilter2( + @PathParam("controller") String controllerName, + @PathParam("topic") String topic) { return catchArgStateGenericEx(() -> { var drools = this.getDroolsController(controllerName); final ProtocolCoderToolset decoder = EventProtocolCoderConstants.getManager() - .getDecoders(drools.getGroupId(), drools.getArtifactId(), topic); + .getDecoders(drools.getGroupId(), drools.getArtifactId(), topic); if (decoder == null) { return Response.status(Response.Status.BAD_REQUEST).entity(new Error(topic + DOES_NOT_EXIST_MSG)) - .build(); + .build(); } else { return decoder.getCoders(); } }, e -> { - logger.debug(FETCH_DECODERS_BY_TOPIC_FAILED, this, controllerName, topic, e.getMessage(), e); - return (controllerName + ":" + topic); - }); + logger.debug(FETCH_DECODERS_BY_TOPIC_FAILED, this, controllerName, topic, e.getMessage(), e); + return (controllerName + ":" + topic); + }); } /** @@ -1208,40 +1031,31 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/controllers/{controller}/decoders/{topic}/filters/{factType}") - @ApiOperation( - value = "Gets all filters attached to decoders for a given subscribed networked topic " + "and fact type", - notes = "Decoders are associated with networked topics. A Policy Controller manages " - + "multiple topics and therefore its attached decoders. " - + "A Policy Controller uses filters to further specify the fact mapping. " - + "Filters are applied on a per fact type (classname).", - responseContainer = "List", response = CoderFilters.class) - @ApiResponses(value = {@ApiResponse(code = 404, message = "The controller, topic, or fact type cannot be found"), - @ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) - public Response decoderFilter( - @ApiParam(value = "Policy Controller Name", required = true) @PathParam("controller") String controllerName, - @ApiParam(value = "Networked Topic Name", required = true) @PathParam("topic") String topic, - @ApiParam(value = "Fact Type", required = true) @PathParam("factType") String factClass) { + public Response decoderFilter1( + @PathParam("controller") String controllerName, + @PathParam("topic") String topic, + @PathParam("factType") String factClass) { return catchArgStateGenericEx(() -> { var drools = this.getDroolsController(controllerName); final ProtocolCoderToolset decoder = EventProtocolCoderConstants.getManager() - .getDecoders(drools.getGroupId(), drools.getArtifactId(), topic); + .getDecoders(drools.getGroupId(), drools.getArtifactId(), topic); final CoderFilters filters = decoder.getCoder(factClass); if (filters == null) { return Response.status(Response.Status.BAD_REQUEST) - .entity(new Error(topic + ":" + factClass + DOES_NOT_EXIST_MSG)).build(); + .entity(new Error(topic + ":" + factClass + DOES_NOT_EXIST_MSG)).build(); } else { return filters; } }, e -> { - logger.debug(FETCH_DECODER_BY_TYPE_FAILED, this, - controllerName, topic, factClass, e.getMessage(), e); - return (controllerName + ":" + topic + ":" + factClass); - }); + logger.debug(FETCH_DECODER_BY_TYPE_FAILED, this, + controllerName, topic, factClass, e.getMessage(), e); + return (controllerName + ":" + topic + ":" + factClass); + }); } /** @@ -1249,48 +1063,37 @@ public class RestManager { * * @return response object */ + @Override @PUT @Path("engine/controllers/{controller}/decoders/{topic}/filters/{factType}") - @ApiOperation(value = "Attaches filters to the decoder for a given networked topic " + "and fact type", - notes = "Decoders are associated with networked topics. A Policy Controller manages " - + "multiple topics and therefore its attached decoders. " - + "A Policy Controller uses filters to further specify the fact mapping. " - + "Filters are applied on a per fact type (classname).", - responseContainer = "List", response = CoderFilters.class) - @ApiResponses(value = { - @ApiResponse(code = 404, - message = "The controller, topic, fact type, cannot be found, " - + "or a filter has not been provided"), - @ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) public Response decoderFilter( - @ApiParam(value = "Policy Controller Name", required = true) @PathParam("controller") String controllerName, - @ApiParam(value = "Topic Name", required = true) @PathParam("topic") String topic, - @ApiParam(value = "Fact Type", required = true) @PathParam("factType") String factClass, - @ApiParam(value = "Configuration Filter", required = true) JsonProtocolFilter configFilters) { + JsonProtocolFilter configFilters, + @PathParam("controller") String controllerName, + @PathParam("topic") String topic, + @PathParam("factType") String factClass) { if (configFilters == null) { return Response.status(Response.Status.BAD_REQUEST).entity(new Error("Configuration Filters not provided")) - .build(); + .build(); } return catchArgStateGenericEx(() -> { var drools = this.getDroolsController(controllerName); final ProtocolCoderToolset decoder = EventProtocolCoderConstants.getManager() - .getDecoders(drools.getGroupId(), drools.getArtifactId(), topic); + .getDecoders(drools.getGroupId(), drools.getArtifactId(), topic); final CoderFilters filters = decoder.getCoder(factClass); if (filters == null) { return Response.status(Response.Status.BAD_REQUEST) - .entity(new Error(topic + ":" + factClass + DOES_NOT_EXIST_MSG)).build(); + .entity(new Error(topic + ":" + factClass + DOES_NOT_EXIST_MSG)).build(); } filters.setFilter(configFilters); return filters; }, e -> { - logger.debug(FETCH_DECODER_BY_FILTER_FAILED, - this, controllerName, topic, factClass, configFilters, e.getMessage(), e); - return (controllerName + ":" + topic + ":" + factClass); - }); + logger.debug(FETCH_DECODER_BY_FILTER_FAILED, + this, controllerName, topic, factClass, configFilters, e.getMessage(), e); + return (controllerName + ":" + topic + ":" + factClass); + }); } /** @@ -1298,45 +1101,38 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/controllers/{controller}/decoders/{topic}/filters/{factType}/rule") - @ApiOperation(value = "Gets the filter rule attached to a topic decoder of a controller", - notes = "Decoders are associated with networked topics. A Policy Controller manages " - + "multiple topics and therefore its attached decoders. " - + "A Policy Controller uses filters to further specify the fact mapping. " - + "Filters are applied on a per fact type using a jsonpath expression rule. ") - @ApiResponses(value = {@ApiResponse(code = 404, message = "The controller, topic, or fact type cannot be found"), - @ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) public Response decoderFilterRules( - @ApiParam(value = "Policy Controller Name", required = true) @PathParam("controller") String controllerName, - @ApiParam(value = "Topic Name", required = true) @PathParam("topic") String topic, - @ApiParam(value = "Fact Type", required = true) @PathParam("factType") String factClass) { + @PathParam("controller") String controllerName, + @PathParam("topic") String topic, + @PathParam("factType") String factClass) { return catchArgStateGenericEx(() -> { var drools = this.getDroolsController(controllerName); final ProtocolCoderToolset decoder = EventProtocolCoderConstants.getManager() - .getDecoders(drools.getGroupId(), drools.getArtifactId(), topic); + .getDecoders(drools.getGroupId(), drools.getArtifactId(), topic); final CoderFilters filters = decoder.getCoder(factClass); if (filters == null) { return Response.status(Response.Status.BAD_REQUEST) - .entity(new Error(controllerName + ":" + topic + ":" + factClass + DOES_NOT_EXIST_MSG)).build(); + .entity(new Error(controllerName + ":" + topic + ":" + factClass + DOES_NOT_EXIST_MSG)).build(); } final JsonProtocolFilter filter = filters.getFilter(); if (filter == null) { return Response.status(Response.Status.BAD_REQUEST) - .entity(new Error(controllerName + ":" + topic + ":" + factClass + NO_FILTERS)).build(); + .entity(new Error(controllerName + ":" + topic + ":" + factClass + NO_FILTERS)).build(); } return filter.getRule(); }, e -> { - logger.debug(FETCH_DECODER_BY_TYPE_FAILED, this, - controllerName, topic, factClass, e.getMessage(), e); - return (controllerName + ":" + topic + ":" + factClass); - }); + logger.debug(FETCH_DECODER_BY_TYPE_FAILED, this, + controllerName, topic, factClass, e.getMessage(), e); + return (controllerName + ":" + topic + ":" + factClass); + }); } /** @@ -1344,47 +1140,39 @@ public class RestManager { * * @return response object */ + @Override @DELETE @Path("engine/controllers/{controller}/decoders/{topic}/filters/{factType}/rule") - @ApiOperation(value = "Deletes the filter rule attached to a topic decoder of a controller", - notes = "Decoders are associated with networked topics. A Policy Controller manages " - + "multiple topics and therefore its attached decoders. " - + "A Policy Controller uses filters to further specify the fact mapping. " - + "Filters are applied on a per fact type using a jsonpath expression rule. ") - @ApiResponses(value = { - @ApiResponse(code = 404, message = "The controller, topic, or fact type cannot be found"), - @ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) public Response decoderFilterRuleDelete( - @ApiParam(value = "Policy Controller Name", required = true) @PathParam("controller") String controllerName, - @ApiParam(value = "Topic Name", required = true) @PathParam("topic") String topic, - @ApiParam(value = "Fact Type", required = true) @PathParam("factType") String factClass) { + @PathParam("controller") String controllerName, + @PathParam("topic") String topic, + @PathParam("factType") String factClass) { return catchArgStateGenericEx(() -> { var drools = this.getDroolsController(controllerName); final ProtocolCoderToolset decoder = EventProtocolCoderConstants.getManager() - .getDecoders(drools.getGroupId(), drools.getArtifactId(), topic); + .getDecoders(drools.getGroupId(), drools.getArtifactId(), topic); final CoderFilters filters = decoder.getCoder(factClass); if (filters == null) { return Response.status(Response.Status.BAD_REQUEST) - .entity(new Error(controllerName + ":" + topic + ":" + factClass + DOES_NOT_EXIST_MSG)).build(); + .entity(new Error(controllerName + ":" + topic + ":" + factClass + DOES_NOT_EXIST_MSG)).build(); } final JsonProtocolFilter filter = filters.getFilter(); if (filter == null) { return Response.status(Response.Status.BAD_REQUEST) - .entity(new Error(controllerName + ":" + topic + ":" + factClass + NO_FILTERS)).build(); + .entity(new Error(controllerName + ":" + topic + ":" + factClass + NO_FILTERS)).build(); } filter.setRule(null); return filter.getRule(); }, e -> { - logger.debug(FETCH_DECODER_BY_TYPE_FAILED, - this, controllerName, topic, factClass, e.getMessage(), e); - return (controllerName + ":" + topic + ":" + factClass); - }); + logger.debug(FETCH_DECODER_BY_TYPE_FAILED, + this, controllerName, topic, factClass, e.getMessage(), e); + return (controllerName + ":" + topic + ":" + factClass); + }); } /** @@ -1392,26 +1180,19 @@ public class RestManager { * * @return response object */ + @Override @PUT @Path("engine/controllers/{controller}/decoders/{topic}/filters/{factType}/rule") - @ApiOperation(value = "Places a new filter rule in a topic decoder", - notes = "Decoders are associated with networked topics. A Policy Controller manages " - + "multiple topics and therefore its attached decoders. " - + "A Policy Controller uses filters to further specify the fact mapping. " - + "Filters are applied on a per fact type using a jsonpath expression rule. ") - @ApiResponses(value = {@ApiResponse(code = 404, message = "The controller, topic, or fact type cannot be found"), - @ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) public Response decoderFilterRule( - @ApiParam(value = "Policy Controller Name", required = true) @PathParam("controller") String controllerName, - @ApiParam(value = "Topic Name", required = true) @PathParam("topic") String topic, - @ApiParam(value = "Fact Type", required = true) @PathParam("factType") String factClass, - @ApiParam(value = "JsonPath filter expression", required = true) String rule) { + @PathParam("controller") String controllerName, + @PathParam("topic") String topic, + @PathParam("factType") String factClass, + String rule) { return catchArgStateGenericEx(() -> decoderFilterRule2(controllerName, topic, factClass, rule), e -> { logger.debug("{}: cannot access decoder filter rules for policy-controller {} " - + "topic {} type {} because of {}", - this, controllerName, topic, factClass, e.getMessage(), e); + + "topic {} type {} because of {}", + this, controllerName, topic, factClass, e.getMessage(), e); return (controllerName + ":" + topic + ":" + factClass); }); } @@ -1419,23 +1200,23 @@ public class RestManager { private Object decoderFilterRule2(String controllerName, String topic, String factClass, String rule) { var drools = this.getDroolsController(controllerName); final ProtocolCoderToolset decoder = EventProtocolCoderConstants.getManager() - .getDecoders(drools.getGroupId(), drools.getArtifactId(), topic); + .getDecoders(drools.getGroupId(), drools.getArtifactId(), topic); final CoderFilters filters = decoder.getCoder(factClass); if (filters == null) { return Response.status(Response.Status.BAD_REQUEST) - .entity(new Error(controllerName + ":" + topic + ":" + factClass + DOES_NOT_EXIST_MSG)).build(); + .entity(new Error(controllerName + ":" + topic + ":" + factClass + DOES_NOT_EXIST_MSG)).build(); } final JsonProtocolFilter filter = filters.getFilter(); if (filter == null) { return Response.status(Response.Status.BAD_REQUEST) - .entity(new Error(controllerName + ":" + topic + ":" + factClass + NO_FILTERS)).build(); + .entity(new Error(controllerName + ":" + topic + ":" + factClass + NO_FILTERS)).build(); } if (rule == null || rule.isEmpty()) { return Response.status(Response.Status.BAD_REQUEST).entity(new Error(controllerName + ":" + topic + ":" - + factClass + " no filter rule provided")).build(); + + factClass + " no filter rule provided")).build(); } filter.setRule(rule); @@ -1447,27 +1228,23 @@ public class RestManager { * * @return response object */ + @Override @POST @Path("engine/controllers/{controller}/decoders/{topic}") @Consumes(MediaType.TEXT_PLAIN) - @ApiOperation(value = "Decodes a string into a fact object, and encodes it back into a string", - notes = "Tests the decode/encode functions of a controller", response = CodingResult.class) - @ApiResponses(value = {@ApiResponse(code = 400, message = "Bad input has been provided"), - @ApiResponse(code = 404, message = "The controller cannot be found"), @ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) public Response decode( - @ApiParam(value = "Policy Controller Name", required = true) @PathParam("controller") String controllerName, - @ApiParam(value = "Topic Name", required = true) @PathParam("topic") String topic, - @ApiParam(value = "JSON String to decode", required = true) String json) { + @PathParam("controller") String controllerName, + @PathParam("topic") String topic, + String json) { if (!checkValidNameInput(controllerName)) { return Response.status(Response.Status.NOT_ACCEPTABLE) - .entity(new Error("controllerName contains whitespaces " + NOT_ACCEPTABLE_MSG)).build(); + .entity(new Error("controllerName contains whitespaces " + NOT_ACCEPTABLE_MSG)).build(); } if (!checkValidNameInput(topic)) { return Response.status(Response.Status.NOT_ACCEPTABLE) - .entity(new Error("topic contains whitespaces " + NOT_ACCEPTABLE_MSG)).build(); + .entity(new Error("topic contains whitespaces " + NOT_ACCEPTABLE_MSG)).build(); } PolicyController policyController; @@ -1475,14 +1252,14 @@ public class RestManager { policyController = PolicyControllerConstants.getFactory().get(controllerName); } catch (final IllegalArgumentException e) { logger.debug(FETCH_DECODERS_BY_TOPIC_FAILED, this, - controllerName, topic, e.getMessage(), e); + controllerName, topic, e.getMessage(), e); return Response.status(Response.Status.NOT_FOUND) - .entity(new Error(controllerName + ":" + topic + ":" + NOT_FOUND_MSG)).build(); + .entity(new Error(controllerName + ":" + topic + ":" + NOT_FOUND_MSG)).build(); } catch (final IllegalStateException e) { logger.debug(FETCH_DECODERS_BY_TOPIC_FAILED, this, - controllerName, topic, e.getMessage(), e); + controllerName, topic, e.getMessage(), e); return Response.status(Response.Status.NOT_ACCEPTABLE) - .entity(new Error(controllerName + ":" + topic + ":" + NOT_ACCEPTABLE_MSG)).build(); + .entity(new Error(controllerName + ":" + topic + ":" + NOT_ACCEPTABLE_MSG)).build(); } var result = new CodingResult(); @@ -1493,11 +1270,11 @@ public class RestManager { Object event; try { event = EventProtocolCoderConstants.getManager().decode(policyController.getDrools().getGroupId(), - policyController.getDrools().getArtifactId(), topic, json); + policyController.getDrools().getArtifactId(), topic, json); result.setDecoding(true); } catch (final Exception e) { logger.debug(FETCH_POLICY_BY_TOPIC_FAILED, this, controllerName, topic, - e.getMessage(), e); + e.getMessage(), e); return Response.status(Response.Status.BAD_REQUEST).entity(new Error(e.getMessage())).build(); } @@ -1507,7 +1284,7 @@ public class RestManager { } catch (final Exception e) { // continue so to propagate decoding results .. logger.debug("{}: cannot encode for policy-controller {} topic {} because of {}", this, controllerName, - topic, e.getMessage(), e); + topic, e.getMessage(), e); } return Response.status(Response.Status.OK).entity(result).build(); @@ -1518,41 +1295,34 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/controllers/{controller}/encoders") - @ApiOperation(value = "Retrieves the encoder filters of a controller", - notes = "The encoders serializes a fact object, typically for network transmission", - responseContainer = "List", response = CoderFilters.class) - @ApiResponses(value = {@ApiResponse(code = 400, message = "Bad input has been provided"), @ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) - public Response encoderFilters(@ApiParam(value = "Policy Controller Name", - required = true) @PathParam("controller") String controllerName) { + public Response encoderFilters(@PathParam("controller") String controllerName) { return catchArgStateGenericEx(() -> { final PolicyController controller = PolicyControllerConstants.getFactory().get(controllerName); var drools = controller.getDrools(); return EventProtocolCoderConstants.getManager() - .getEncoderFilters(drools.getGroupId(), drools.getArtifactId()); + .getEncoderFilters(drools.getGroupId(), drools.getArtifactId()); }, e -> { - logger.debug(FETCH_ENCODER_BY_FILTER_FAILED, this, controllerName, - e.getMessage(), e); - return (controllerName); - }); + logger.debug(FETCH_ENCODER_BY_FILTER_FAILED, this, controllerName, + e.getMessage(), e); + return (controllerName); + }); } + @Override @GET @Path("engine/topics") - @ApiOperation(value = "Retrieves the managed topics", notes = "Network Topics Aggregation", - response = TopicEndpoint.class) public Response topics() { return Response.status(Response.Status.OK).entity(TopicEndpointManager.getManager()).build(); } + @Override @GET @Path("engine/topics/switches") - @ApiOperation(value = "Topics Control Switches", notes = "List of the Topic Control Switches", - responseContainer = "List") public Response topicSwitches() { return Response.status(Response.Status.OK).entity(SWITCHES).build(); } @@ -1562,12 +1332,9 @@ public class RestManager { * * @return response object */ + @Override @PUT @Path("engine/topics/switches/lock") - @ApiOperation(value = "Locks all the managed topics", notes = "The operation affects all managed sources and sinks", - response = TopicEndpoint.class) - @ApiResponses(value = {@ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) public Response topicsLock() { final boolean success = TopicEndpointManager.getManager().lock(); if (success) { @@ -1582,12 +1349,9 @@ public class RestManager { * * @return response object */ + @Override @DELETE @Path("engine/topics/switches/lock") - @ApiOperation(value = "Unlocks all the managed topics", - notes = "The operation affects all managed sources and sinks", response = TopicEndpoint.class) - @ApiResponses(value = {@ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) public Response topicsUnlock() { final boolean success = TopicEndpointManager.getManager().unlock(); if (success) { @@ -1602,10 +1366,9 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/topics/sources") - @ApiOperation(value = "Retrieves the managed topic sources", notes = "Network Topic Sources Agregation", - responseContainer = "List", response = TopicSource.class) public Response sources() { return Response.status(Response.Status.OK).entity(TopicEndpointManager.getManager().getTopicSources()).build(); } @@ -1615,10 +1378,9 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/topics/sinks") - @ApiOperation(value = "Retrieves the managed topic sinks", notes = "Network Topic Sinks Agregation", - responseContainer = "List", response = TopicSink.class) public Response sinks() { return Response.status(Response.Status.OK).entity(TopicEndpointManager.getManager().getTopicSinks()).build(); } @@ -1626,13 +1388,11 @@ public class RestManager { /** * GET sources of a communication type. */ + @Override @GET @Path("engine/topics/sources/{comm: ueb|dmaap|noop}") - @ApiOperation(value = "Retrieves managed topic sources", notes = "Sources for a communication infrastructure", - responseContainer = "List", response = TopicSource.class) public Response commSources( - @ApiParam(value = "Communication Mechanism", required = true) @PathParam("comm") String comm - ) { + @PathParam("comm") String comm) { if (!checkValidNameInput(comm)) { return Response .status(Response.Status.NOT_ACCEPTABLE) @@ -1663,13 +1423,11 @@ public class RestManager { /** * GET sinks of a communication type. */ + @Override @GET @Path("engine/topics/sinks/{comm: ueb|dmaap|noop}") - @ApiOperation(value = "Retrieves managed topic sinks", notes = "Communication Infrastructure Sinks", - responseContainer = "List", response = TopicSink.class) public Response commSinks( - @ApiParam(value = "Communication Mechanism", required = true) @PathParam("comm") String comm - ) { + @PathParam("comm") String comm) { if (!checkValidNameInput(comm)) { return Response .status(Response.Status.NOT_ACCEPTABLE) @@ -1697,18 +1455,15 @@ public class RestManager { return Response.status(status).entity(sinks).build(); } - /** * GET a source. */ + @Override @GET @Path("engine/topics/sources/{comm: ueb|dmaap|noop}/{topic}") - @ApiOperation(value = "Retrieves a managed topic source", - notes = "This is an Network Communication Endpoint source of messages for the Engine", - response = TopicSource.class) public Response sourceTopic( - @ApiParam(value = "Communication Mechanism", required = true) @PathParam("comm") String comm, - @ApiParam(value = "Topic Name", required = true) @PathParam("topic") String topic) { + @PathParam("comm") String comm, + @PathParam("topic") String topic) { return Response .status(Response.Status.OK) .entity(TopicEndpointManager.getManager() @@ -1719,14 +1474,12 @@ public class RestManager { /** * GET a sink. */ + @Override @GET @Path("engine/topics/sinks/{comm: ueb|dmaap|noop}/{topic}") - @ApiOperation(value = "Retrieves a managed topic sink", - notes = "This is a Network Communicaton Endpoint destination of messages from the Engine", - response = TopicSink.class) public Response sinkTopic( - @ApiParam(value = "Communication Mechanism", required = true) @PathParam("comm") String comm, - @ApiParam(value = "Topic Name", required = true) @PathParam("topic") String topic) { + @PathParam("comm") String comm, + @PathParam("topic") String topic) { return Response .status(Response.Status.OK) .entity(TopicEndpointManager.getManager() @@ -1737,77 +1490,68 @@ public class RestManager { /** * GET a source events. */ + @Override @GET @Path("engine/topics/sources/{comm: ueb|dmaap|noop}/{topic}/events") - @ApiOperation(value = "Retrieves the latest events received by an UEB topic", - notes = "This is a Network Communicaton Endpoint source of messages for the Engine", - responseContainer = "List") public Response sourceEvents( - @ApiParam(value = "Communication Mechanism", required = true) @PathParam("comm") String comm, - @ApiParam(value = "Topic Name", required = true) @PathParam("topic") String topic) { + @PathParam("comm") String comm, + @PathParam("topic") String topic) { return Response.status(Status.OK) .entity(Arrays.asList(TopicEndpointManager.getManager() - .getTopicSource(CommInfrastructure.valueOf(comm.toUpperCase()), topic) - .getRecentEvents())) + .getTopicSource(CommInfrastructure.valueOf(comm.toUpperCase()), topic) + .getRecentEvents())) .build(); } /** * GET a sink events. */ + @Override @GET @Path("engine/topics/sinks/{comm: ueb|dmaap|noop}/{topic}/events") - @ApiOperation(value = "Retrieves the latest events received by an UEB topic", - notes = "This is a Network Communicaton Endpoint source of messages for the Engine", - responseContainer = "List") public Response sinkEvents( - @ApiParam(value = "Communication Mechanism", required = true) @PathParam("comm") String comm, - @ApiParam(value = "Topic Name", required = true) @PathParam("topic") String topic) { + @PathParam("comm") String comm, + @PathParam("topic") String topic) { return Response.status(Status.OK) .entity(Arrays.asList(TopicEndpointManager.getManager() - .getTopicSink(CommInfrastructure.valueOf(comm.toUpperCase()), topic) - .getRecentEvents())) + .getTopicSink(CommInfrastructure.valueOf(comm.toUpperCase()), topic) + .getRecentEvents())) .build(); } /** * GET source topic switches. */ + @Override @GET @Path("engine/topics/sources/{comm: ueb|dmaap|noop}/{topic}/switches") - @ApiOperation(value = "Topic Control Switches", notes = "List of the Topic Control Switches", - responseContainer = "List") public Response commSourceTopicSwitches( - @ApiParam(value = "Communication Mechanism", required = true) @PathParam("comm") String comm - ) { + @PathParam("comm") String comm, + @PathParam("topic") String topic) { return Response.status(Response.Status.OK).entity(SWITCHES).build(); } /** * GET sink topic switches. */ + @Override @GET @Path("engine/topics/sinks/{comm: ueb|dmaap|noop}/{topic}/switches") - @ApiOperation(value = "Topic Control Switches", notes = "List of the Topic Control Switches", - responseContainer = "List") public Response commSinkTopicSwitches( - @ApiParam(value = "Communication Mechanism", required = true) @PathParam("comm") String comm - ) { + @PathParam("comm") String comm, + @PathParam("topic") String topic) { return Response.status(Response.Status.OK).entity(SWITCHES).build(); } /** * PUTs a lock on a topic. */ + @Override @PUT @Path("engine/topics/sources/{comm: ueb|dmaap|noop}/{topic}/switches/lock") - @ApiOperation(value = "Locks a topic", response = TopicSource.class) - @ApiResponses(value = {@ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) public Response commSourceTopicLock( - @ApiParam(value = "Communication Mechanism", required = true) @PathParam("comm") String comm, - @ApiParam(value = "Topic Name", required = true) @PathParam("topic") String topic - ) { + @PathParam("comm") String comm, + @PathParam("topic") String topic) { var source = TopicEndpointManager.getManager().getTopicSource(CommInfrastructure.valueOf(comm.toUpperCase()), topic); return getResponse(topic, source.lock(), source); @@ -1816,15 +1560,12 @@ public class RestManager { /** * DELETEs the lock on a topic. */ + @Override @DELETE @Path("engine/topics/sources/{comm: ueb|dmaap|noop}/{topic}/switches/lock") - @ApiOperation(value = "Unlocks topic", response = TopicSource.class) - @ApiResponses(value = {@ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) public Response commSourceTopicUnlock( - @ApiParam(value = "Communication Mechanism", required = true) @PathParam("comm") String comm, - @ApiParam(value = "Topic Name", required = true) @PathParam("topic") String topic - ) { + @PathParam("comm") String comm, + @PathParam("topic") String topic) { var source = TopicEndpointManager.getManager().getTopicSource(CommInfrastructure.valueOf(comm.toUpperCase()), topic); return getResponse(topic, source.unlock(), source); @@ -1833,15 +1574,12 @@ public class RestManager { /** * Starts a topic source. */ + @Override @PUT @Path("engine/topics/sources/{comm: ueb|dmaap|noop}/{topic}/switches/activation") - @ApiOperation(value = "Starts a topic", response = TopicSource.class) - @ApiResponses(value = {@ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) public Response commSourceTopicActivation( - @ApiParam(value = "Communication Mechanism", required = true) @PathParam("comm") String comm, - @ApiParam(value = "Topic Name", required = true) @PathParam("topic") String topic - ) { + @PathParam("comm") String comm, + @PathParam("topic") String topic) { var source = TopicEndpointManager.getManager().getTopicSource(CommInfrastructure.valueOf(comm.toUpperCase()), topic); return getResponse(topic, source.start(), source); @@ -1850,15 +1588,12 @@ public class RestManager { /** * Stops a topic source. */ + @Override @DELETE @Path("engine/topics/sources/{comm: ueb|dmaap|noop}/{topic}/switches/activation") - @ApiOperation(value = "Stops a topic", response = TopicSource.class) - @ApiResponses(value = {@ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) public Response commSourceTopicDeactivation( - @ApiParam(value = "Communication Mechanism", required = true) @PathParam("comm") String comm, - @ApiParam(value = "Topic Name", required = true) @PathParam("topic") String topic - ) { + @PathParam("comm") String comm, + @PathParam("topic") String topic) { var source = TopicEndpointManager.getManager().getTopicSource(CommInfrastructure.valueOf(comm.toUpperCase()), topic); return getResponse(topic, source.stop(), source); @@ -1867,15 +1602,12 @@ public class RestManager { /** * PUTs a lock on a topic. */ + @Override @PUT @Path("engine/topics/sinks/{comm: ueb|dmaap|noop}/{topic}/switches/lock") - @ApiOperation(value = "Locks a topic sink", response = TopicSink.class) - @ApiResponses(value = {@ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) public Response commSinkTopicLock( - @ApiParam(value = "Communication Mechanism", required = true) @PathParam("comm") String comm, - @ApiParam(value = "Topic Name", required = true) @PathParam("topic") String topic - ) { + @PathParam("comm") String comm, + @PathParam("topic") String topic) { var sink = TopicEndpointManager.getManager().getTopicSink(CommInfrastructure.valueOf(comm.toUpperCase()), topic); return getResponse(topic, sink.lock(), sink); @@ -1884,15 +1616,12 @@ public class RestManager { /** * DELETEs the lock on a topic. */ + @Override @DELETE @Path("engine/topics/sinks/{comm: ueb|dmaap|noop}/{topic}/switches/lock") - @ApiOperation(value = "Unlocks a topic sink", response = TopicSink.class) - @ApiResponses(value = {@ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) public Response commSinkTopicUnlock( - @ApiParam(value = "Communication Mechanism", required = true) @PathParam("comm") String comm, - @ApiParam(value = "Topic Name", required = true) @PathParam("topic") String topic - ) { + @PathParam("comm") String comm, + @PathParam("topic") String topic) { var sink = TopicEndpointManager.getManager().getTopicSink(CommInfrastructure.valueOf(comm.toUpperCase()), topic); return getResponse(topic, sink.unlock(), sink); @@ -1901,15 +1630,12 @@ public class RestManager { /** * Starts a topic sink. */ + @Override @PUT @Path("engine/topics/sinks/{comm: ueb|dmaap|noop}/{topic}/switches/activation") - @ApiOperation(value = "Starts a topic sink", response = TopicSink.class) - @ApiResponses(value = {@ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) public Response commSinkTopicActivation( - @ApiParam(value = "Communication Mechanism", required = true) @PathParam("comm") String comm, - @ApiParam(value = "Topic Name", required = true) @PathParam("topic") String topic - ) { + @PathParam("comm") String comm, + @PathParam("topic") String topic) { var sink = TopicEndpointManager.getManager().getTopicSink(CommInfrastructure.valueOf(comm.toUpperCase()), topic); return getResponse(topic, sink.start(), sink); @@ -1918,15 +1644,12 @@ public class RestManager { /** * Stops a topic sink. */ + @Override @DELETE @Path("engine/topics/sinks/{comm: ueb|dmaap|noop}/{topic}/switches/activation") - @ApiOperation(value = "Stops a topic", response = TopicSource.class) - @ApiResponses(value = {@ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled")}) public Response commSinkTopicDeactivation( - @ApiParam(value = "Communication Mechanism", required = true) @PathParam("comm") String comm, - @ApiParam(value = "Topic Name", required = true) @PathParam("topic") String topic - ) { + @PathParam("comm") String comm, + @PathParam("topic") String topic) { var sink = TopicEndpointManager.getManager().getTopicSink(CommInfrastructure.valueOf(comm.toUpperCase()), topic); return getResponse(topic, sink.stop(), sink); @@ -1949,34 +1672,29 @@ public class RestManager { * * @return response object */ + @Override @PUT @Path("engine/topics/sources/{comm: ueb|dmaap|noop}/{topic}/events") @Consumes(MediaType.TEXT_PLAIN) - @ApiOperation(value = "Offers an event to a topic for internal processing by the engine", - notes = "The offered event is treated as it was incoming from the network", responseContainer = "List") - @ApiResponses(value = {@ApiResponse(code = 404, message = "The topic information cannot be found"), - @ApiResponse(code = 406, - message = "The system is an administrative state that prevents " + "this request to be fulfilled"), - @ApiResponse(code = 500, message = "A server error has occurred processing this request")}) public Response commEventOffer( - @ApiParam(value = "Communication Mechanism", required = true) @PathParam("comm") String comm, - @ApiParam(value = "Topic Name", required = true) @PathParam("topic") String topic, - @ApiParam(value = "Network Message", required = true) String json) { + @PathParam("comm") String comm, + @PathParam("topic") String topic, + String json) { return catchArgStateGenericEx(() -> { var source = TopicEndpointManager.getManager() - .getTopicSource(CommInfrastructure.valueOf(comm.toUpperCase()), topic); + .getTopicSource(CommInfrastructure.valueOf(comm.toUpperCase()), topic); if (source.offer(json)) { return Arrays.asList(source.getRecentEvents()); } else { return Response.status(Status.NOT_ACCEPTABLE).entity(new Error("Failure to inject event over " + topic)) - .build(); + .build(); } }, e -> { - logger.debug(OFFER_FAILED, this, topic, e.getMessage(), e); - return (topic); - }); + logger.debug(OFFER_FAILED, this, topic, e.getMessage(), e); + return (topic); + }); } /** @@ -1984,23 +1702,22 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/tools/uuid") - @ApiOperation(value = "Produces an UUID", notes = "UUID generation utility") @Produces(MediaType.TEXT_PLAIN) public Response uuid() { return Response.status(Status.OK).entity(UUID.randomUUID().toString()).build(); } /** - * GET. - * - * @return response object - */ + * GET. + * + * @return response object + */ + @Override @GET @Path("engine/tools/loggers") - @ApiOperation(value = "all active loggers", responseContainer = "List") - @ApiResponses(value = {@ApiResponse(code = 500, message = "logging misconfiguration")}) public Response loggers() { final List<String> names = new ArrayList<>(); if (!(LoggerFactory.getILoggerFactory() instanceof LoggerContext)) { @@ -2021,14 +1738,11 @@ public class RestManager { * * @return response object */ + @Override @GET @Path("engine/tools/loggers/{logger}") @Produces(MediaType.TEXT_PLAIN) - @ApiOperation(value = "logging level of a logger") - @ApiResponses(value = {@ApiResponse(code = 500, message = "logging misconfiguration"), - @ApiResponse(code = 404, message = "logger not found")}) - public Response loggerName( - @ApiParam(value = "Logger Name", required = true) @PathParam("logger") String loggerName) { + public Response loggerName1(@PathParam("logger") String loggerName) { if (!(LoggerFactory.getILoggerFactory() instanceof LoggerContext)) { logger.warn("The SLF4J logger factory is not configured for logback"); return Response.status(Status.INTERNAL_SERVER_ERROR).build(); @@ -2049,27 +1763,24 @@ public class RestManager { * * @return response object */ + @Override @PUT @Path("engine/tools/loggers/{logger}/{level}") @Produces(MediaType.TEXT_PLAIN) @Consumes(MediaType.TEXT_PLAIN) - @ApiOperation(value = "sets the logger level", notes = "Please use the SLF4J logger levels") - @ApiResponses(value = {@ApiResponse(code = 500, message = "logging misconfiguration"), - @ApiResponse(code = 404, message = "logger not found")}) - public Response loggerName(@ApiParam(value = "Logger Name", required = true) @PathParam("logger") String loggerName, - @ApiParam(value = "Logger Level", required = true) @PathParam("level") String loggerLevel) { + public Response loggerName(@PathParam("logger") String loggerName, @PathParam("level") String loggerLevel) { String newLevel; try { if (!checkValidNameInput(loggerName)) { return Response.status(Response.Status.NOT_ACCEPTABLE) - .entity(new Error("logger name: " + NOT_ACCEPTABLE_MSG)) - .build(); + .entity(new Error("logger name: " + NOT_ACCEPTABLE_MSG)) + .build(); } if (!Pattern.matches("^[a-zA-Z]{3,5}$", loggerLevel)) { return Response.status(Response.Status.NOT_ACCEPTABLE) - .entity(new Error("logger level: " + NOT_ACCEPTABLE_MSG)) - .build(); + .entity(new Error("logger level: " + NOT_ACCEPTABLE_MSG)) + .build(); } newLevel = LoggerUtils.setLevel(loggerName, loggerLevel); } catch (final IllegalArgumentException e) { @@ -2128,11 +1839,11 @@ public class RestManager { } catch (final IllegalArgumentException e) { return Response.status(Response.Status.NOT_FOUND).entity(new Error(errorMsg.apply(e) + NOT_FOUND_MSG)) - .build(); + .build(); } catch (final IllegalStateException e) { return Response.status(Response.Status.NOT_ACCEPTABLE) - .entity(new Error(errorMsg.apply(e) + NOT_ACCEPTABLE_MSG)).build(); + .entity(new Error(errorMsg.apply(e) + NOT_ACCEPTABLE_MSG)).build(); } catch (final RuntimeException e) { errorMsg.apply(e); diff --git a/policy-management/src/main/resources/openapi/openapi.yaml b/policy-management/src/main/resources/openapi/openapi.yaml new file mode 100644 index 00000000..612ad10e --- /dev/null +++ b/policy-management/src/main/resources/openapi/openapi.yaml @@ -0,0 +1,4240 @@ +# ============LICENSE_START======================================================= +# Copyright (C) 2023 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========================================================= +openapi: 3.0.3 +info: + title: "PDP-D Telemetry Services Documentation" + description: PDP-D Telemetry Services + version: Swagger Server +servers: +- url: http://{drools-ip}:9696/policy/pdp/engine + variables: + drools-ip: + default: 0.0.0.0 +tags: +- name: pdp-d-telemetry + description: Drools PDP Telemetry Operations +- name: pdp-d-lifecycle + description: Drools PDP Lifecycle Operations +- name: pdp-d-legacy + description: Drools PDP Legacy Operations +paths: + /swagger: + get: + tags: + - pdp-d-telemetry + summary: Retrieves the json swagger documentation + description: Lifecycle Group + operationId: swagger + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: resource not found + content: {} + 501: + description: swagger.json file not found + content: {} + /lifecycle/group: + get: + tags: + - pdp-d-lifecycle + summary: Retrieves the Lifecycle group + description: Lifecycle Group + operationId: group + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /lifecycle/group/{group}: + put: + tags: + - pdp-d-lifecycle + summary: Updates the Lifecycle group + description: Lifecycle Group + operationId: updateGroup + parameters: + - name: group + in: path + description: Group + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /lifecycle/status/interval: + get: + tags: + - pdp-d-lifecycle + summary: Retrieves the Lifecycle Status Timer Interval in seconds + description: Lifecycle Status Timer Interval in seconds + operationId: updateStatusTimer + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /lifecycle/status/interval/{timeout}: + put: + tags: + - pdp-d-lifecycle + summary: Updates the Lifecycle Status Timer Interval in seconds + description: Lifecycle Status Timer Interval in seconds + operationId: statusTimer + parameters: + - name: timeout + in: path + description: timeout + required: true + schema: + type: integer + format: int64 + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /lifecycle/policyTypes: + get: + tags: + - pdp-d-lifecycle + summary: List of supported policy types + description: Lifecycle Policy Types + operationId: policyTypes + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /lifecycle/policies: + get: + tags: + - pdp-d-lifecycle + summary: List of policies + operationId: policies + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + post: + tags: + - pdp-d-lifecycle + summary: Deploy a policy + operationId: deployTrackedPolicy + requestBody: + description: Tosca Policy + content: + application/json: + schema: + type: string + application/yaml: + schema: + type: string + required: true + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + x-codegen-request-body-name: body + /lifecycle/policyTypes/{policyType}/{policyTypeVersion}: + get: + tags: + - pdp-d-lifecycle + summary: Entities associated with a policy type + description: Lifecycle policy Types + operationId: policyType + parameters: + - name: policyType + in: path + description: Policy Type + required: true + schema: + type: string + - name: policyTypeVersion + in: path + description: Policy Type Version + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /lifecycle/policies/operations: + get: + tags: + - pdp-d-lifecycle + summary: Gets Policy Operations + operationId: policiesOperations + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /lifecycle/policies/operations/deployment: + post: + tags: + - pdp-d-lifecycle + summary: Deploys a policy + description: Deploys a policy + operationId: deployOperation + requestBody: + description: Tosca Policy + content: + application/json: + schema: + type: string + application/yaml: + schema: + type: string + required: true + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + x-codegen-request-body-name: body + /lifecycle/policies/operations/undeployment: + post: + tags: + - pdp-d-lifecycle + summary: Undeploys a policy + operationId: undeployOperation + requestBody: + description: Tosca Policy + content: + application/json: + schema: + type: string + application/yaml: + schema: + type: string + required: true + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + x-codegen-request-body-name: body + /lifecycle/policies/operations/validation: + post: + tags: + - pdp-d-lifecycle + summary: Validates a policy + operationId: validateOperation + requestBody: + description: Tosca Policy + content: + application/json: + schema: + type: string + application/yaml: + schema: + type: string + required: true + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + x-codegen-request-body-name: body + /lifecycle/policies/{policyName}/{policyVersion}: + get: + tags: + - pdp-d-lifecycle + summary: Retrieves a policy + operationId: policy + parameters: + - name: policyName + in: path + description: Policy Name + required: true + schema: + type: string + - name: policyVersion + in: path + description: Policy Version + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + delete: + tags: + - pdp-d-lifecycle + summary: Deletes a Lifecycle tracked policy + operationId: undeployPolicy + parameters: + - name: policyName + in: path + description: Policy + required: true + schema: + type: string + - name: policyVersion + in: path + description: Policy Version + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /lifecycle/state: + get: + tags: + - pdp-d-lifecycle + summary: Retrieves the Lifecycle state + description: Lifecycle State + operationId: state + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /lifecycle/state/{state}: + put: + tags: + - pdp-d-lifecycle + summary: updates the Lifecycle state + description: Lifecycle State + operationId: updateState + parameters: + - name: state + in: path + description: state + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /lifecycle/subgroup/{subgroup}: + put: + tags: + - pdp-d-lifecycle + summary: Retrieves the Lifecycle subgroup + description: Lifecycle Subgroup + operationId: subgroup + parameters: + - name: subgroup + in: path + description: Subgroup + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /lifecycle/subgroup: + get: + tags: + - pdp-d-lifecycle + summary: Retrieves the Lifecycle subgroup + description: Lifecycle Subgroup + operationId: subgroup_1 + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /lifecycle/statistics: + get: + tags: + - pdp-d-lifecycle + summary: Gets Policy Statistics + operationId: stats + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /lifecycle/properties: + get: + tags: + - pdp-d-lifecycle + summary: Retrieves the Lifecycle properties + description: Lifecycle Properties + operationId: propertiesLifecycle + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /lifecycle/topic/sink: + get: + tags: + - pdp-d-lifecycle + summary: Retrieves the Lifecycle topic sink + description: Lifecycle Topic Sink + operationId: sink + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /lifecycle/topic/source: + get: + tags: + - pdp-d-lifecycle + summary: Retrieves the Lifecycle topic source + description: Lifecycle Topic Source + operationId: sourceLifecycle + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /: + get: + tags: + - pdp-d-telemetry + summary: Retrieves the Engine Operational Status + description: Top-level abstraction. Provides a global view of resources + operationId: engine + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + delete: + tags: + - pdp-d-telemetry + summary: Shuts down the Engine + description: Deleting the engine, the top-level abstraction, equivalenty shuts + it down + operationId: engineShutdown + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /features: + get: + tags: + - pdp-d-telemetry + summary: Engine Features + description: Provides the list of loaded features using the PolicyEngineFeatureAPI + operationId: engineFeatures + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /features/{featureName}: + get: + tags: + - pdp-d-telemetry + summary: Engine Feature + description: Provides Details for a given feature Engine Provider + operationId: engineFeature + parameters: + - name: featureName + in: path + description: Feature Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: The feature cannot be found + content: {} + /features/inventory: + get: + tags: + - pdp-d-telemetry + summary: Engine Detailed Feature Inventory + description: Provides detailed list of loaded features using the PolicyEngineFeatureAPI + operationId: engineFeaturesInventory + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /inputs: + get: + tags: + - pdp-d-telemetry + summary: Engine Input Ports + description: List of input ports + operationId: engineInputs + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /inputs/configuration: + post: + tags: + - pdp-d-telemetry + summary: Engine Input Configuration Requests + description: Feeds a configuration request input into the Engine + operationId: engineUpdate + requestBody: + description: Configuration to apply + content: + application/json: + schema: + $ref: '#/components/schemas/PdpdConfiguration' + application/yaml: + schema: + $ref: '#/components/schemas/PdpdConfiguration' + required: true + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 406: + description: The configuration request cannot be honored + content: {} + x-codegen-request-body-name: body + /environment/{envProperty}: + get: + tags: + - pdp-d-telemetry + summary: Gets an environment variable + operationId: engineEnvironmentProperty + parameters: + - name: envProperty + in: path + description: Environment Property + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + put: + tags: + - pdp-d-telemetry + summary: Adds a new environment value to the engine + operationId: engineEnvironmentAdd + parameters: + - name: envProperty + in: path + description: Environment Property + required: true + schema: + type: string + requestBody: + description: Environment Value + content: + text/plain: + schema: + type: string + required: true + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + x-codegen-request-body-name: body + /environment: + get: + tags: + - pdp-d-telemetry + summary: Engine Environment Properties + description: Installation and OS environment properties used by the engine + operationId: engineEnvironment + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /switches: + get: + tags: + - pdp-d-telemetry + summary: Engine Control Switches + description: List of the Engine Control Switches + operationId: engineSwitches + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /switches/activation: + put: + tags: + - pdp-d-telemetry + summary: Switches on the Engine Activation Switch + description: Turns on Activation Switch on the Engine. This order entails that + the engine and controllers are unlocked and started + operationId: engineActivation + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + delete: + tags: + - pdp-d-telemetry + summary: Switches off Engine Activation Switch + description: Turns off the Activation Switch on the Engine. This order entails + that the engine and controllers are locked (with the exception of those resources + defined as unmanaged) + operationId: engineDeactivation + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /switches/lock: + put: + tags: + - pdp-d-telemetry + summary: Switches on the Engine Lock Control + description: This switch locks all the engine resources as a whole, except those + that are defined unmanaged + operationId: engineLock + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + delete: + tags: + - pdp-d-telemetry + summary: Switches off the Lock control + description: This switch locks all the engine resources as a whole, except those + that are defined unmanaged + operationId: engineUnlock + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + /properties: + get: + tags: + - pdp-d-telemetry + summary: Engine Configuration Properties + description: Used for booststrapping the engine + operationId: engineProperties + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /controllers: + get: + tags: + - pdp-d-telemetry + summary: Lists the Policy Controllers Names + description: Unique Policy Controller Identifiers + operationId: controllers + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + post: + tags: + - pdp-d-telemetry + summary: Creates and starts a new Policy Controller + description: Controller creation based on properties + operationId: controllerAdd + requestBody: + description: Configuration Properties to apply + content: + application/json: + schema: + $ref: '#/components/schemas/Properties' + application/yaml: + schema: + $ref: '#/components/schemas/Properties' + required: true + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 201: + description: The controller has been succesfully created and started + content: {} + 206: + description: The controller has been created but cannot be started + content: {} + 304: + description: The controller already exists + content: {} + 400: + description: Invalid configuration information has been provided + content: {} + 406: + description: The administrative state of the system prevents it from processing + this request + content: {} + x-codegen-request-body-name: body + /controllers/features: + get: + tags: + - pdp-d-telemetry + summary: Lists of Feature Providers Identifiers + description: Unique Policy Controller Identifiers + operationId: controllerFeatures + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /controllers/features/{featureName}: + get: + tags: + - pdp-d-telemetry + summary: Controller Feature + description: Provides Details for a given Policy Controller feature provider + operationId: controllerFeature + parameters: + - name: featureName + in: path + description: Feature Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: The feature cannot be found + content: {} + /controllers/inventory: + get: + tags: + - pdp-d-telemetry + summary: Lists the Policy Controllers + description: Detailed list of Policy Controllers + operationId: controllerInventory + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /controllers/features/inventory: + get: + tags: + - pdp-d-telemetry + summary: Detailed Controllers Feature Inventory + description: Provides detailed list of loaded features using the PolicyControllerFeatureAPI + operationId: controllerFeaturesInventory + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /controllers/{controller}: + get: + tags: + - pdp-d-telemetry + summary: Retrieves a Policy Controller + description: A Policy Controller is a concrete drools application abstraction. It + aggregates networking, drools, and other resources,as provides operational + controls over drools applications + operationId: controller + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: The controller cannot be found + content: {} + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + delete: + tags: + - pdp-d-telemetry + summary: Deletes a Policy Controller + description: A Policy Controller is a concrete drools application abstraction. It + aggregates networking, drools, and other resources,as provides operational + controls over drools applications + operationId: controllerDelete + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: The controller cannot be found + content: {} + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + 500: + description: A problem has occurred while deleting the Policy Controller + content: {} + /controllers/{controller}/inputs: + get: + tags: + - pdp-d-telemetry + summary: Policy Controller Input Ports + description: List of input ports + operationId: controllerInputs + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /controllers/{controller}/inputs/configuration: + post: + tags: + - pdp-d-telemetry + summary: Policy Controller Input Configuration Requests + description: Feeds a configuration request input into the given Policy Controller + operationId: controllerUpdate + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + requestBody: + description: Configuration to apply + content: + application/json: + schema: + $ref: '#/components/schemas/ControllerConfiguration' + application/yaml: + schema: + $ref: '#/components/schemas/ControllerConfiguration' + required: true + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 400: + description: The configuration request is invalid + content: {} + 406: + description: The configuration request cannot be honored + content: {} + x-codegen-request-body-name: body + /controllers/{controller}/switches: + get: + tags: + - pdp-d-telemetry + summary: Policy Controller Switches + description: List of the Policy Controller Switches + operationId: controllerSwitches + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /controllers/{controller}/switches/lock: + put: + tags: + - pdp-d-telemetry + summary: Switches on the Policy Controller Lock Control + description: This action on the switch locks the Policy Controller + operationId: controllerLock + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + delete: + tags: + - pdp-d-telemetry + summary: Switches off the Policy Controller Lock Control + description: This action on the switch unlocks the Policy Controller + operationId: controllerUnlock + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + /controllers/{controller}/drools/facts/{session}/{factType}: + get: + tags: + - pdp-d-telemetry + summary: Retrieves fact objects of a given type in the drools working memoryfor + a given controller and session + description: The fact types are the classnames of the objects inserted in the + drools working memory + operationId: droolsFacts + parameters: + - name: count + in: query + description: Fact count + schema: + type: boolean + default: false + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + - name: session + in: path + description: Drools Session Name + required: true + schema: + type: string + - name: factType + in: path + description: Drools Fact Type + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: The controller, session, or fact type cannot be found + content: {} + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + delete: + tags: + - pdp-d-telemetry + summary: Deletes all the fact objects of a given type from the drools working + memoryfor a given controller and session. The objects retracted from the + working memory are provided in the response. + description: The fact types are the classnames of the objects inserted in the + drools working memory + operationId: droolsFactsDelete_1 + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + - name: session + in: path + description: Drools Session Name + required: true + schema: + type: string + - name: factType + in: path + description: Drools Fact Type + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: The controller, session, or fact type, cannot be found + content: {} + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + 500: + description: A server error has occurred processing this request + content: {} + /controllers/{controller}/drools/facts/{session}: + get: + tags: + - pdp-d-telemetry + summary: Retrieves Fact Types (classnames) for a given controller and its count + description: The fact types are the classnames of the objects inserted in the + drools working memory + operationId: droolsFacts_1 + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + - name: session + in: path + description: Drools Session Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: The controller or session cannot be found + content: {} + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + /controllers/{controller}/drools/facts: + get: + tags: + - pdp-d-telemetry + summary: Retrieves Facts Summary information for a given controller + description: Provides the session names, and a count of fact object in the drools + working memory + operationId: droolsFacts_2 + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: The controller cannot be found + content: {} + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + /controllers/{controller}/drools/facts/{session}/{query}/{queriedEntity}: + get: + tags: + - pdp-d-telemetry + summary: Gets all the fact objects returned by a DRL query with no parameters + from the drools working memoryfor a given controller and session + description: The DRL query must be defined in the DRL file + operationId: droolsFacts_3 + parameters: + - name: count + in: query + description: Fact count + schema: + type: boolean + default: false + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + - name: session + in: path + description: Drools Session Name + required: true + schema: + type: string + - name: query + in: path + description: Query Name Present in DRL + required: true + schema: + type: string + - name: queriedEntity + in: path + description: Query Identifier Present in the DRL Query + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: The controller, session, or query information, cannot be found + content: {} + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + 500: + description: A server error has occurred processing this request + content: {} + post: + tags: + - pdp-d-telemetry + summary: Gets all the fact objects returned by a DRL query with parameters from + the drools working memoryfor a given controller and session + description: The DRL query with parameters must be defined in the DRL file + operationId: droolsFacts_4 + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + - name: session + in: path + description: Drools Session Name + required: true + schema: + type: string + - name: query + in: path + description: Query Name Present in DRL + required: true + schema: + type: string + - name: queriedEntity + in: path + description: Query Identifier Present in the DRL Query + required: true + schema: + type: string + requestBody: + description: Query Parameter Values to pass in the DRL Query + content: + application/json: + schema: + type: array + items: + type: object + properties: {} + application/yaml: + schema: + type: array + items: + type: object + properties: {} + required: false + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: The controller, session, or query information, cannot be found + content: {} + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + 500: + description: A server error has occurred processing this request + content: {} + x-codegen-request-body-name: body + delete: + tags: + - pdp-d-telemetry + summary: Deletes all the fact objects returned by a DRL query with parameters + from the drools working memory for a given controller and session + description: The DRL query with parameters must be defined in the DRL file + operationId: droolsFactsDelete + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + - name: session + in: path + description: Drools Session Name + required: true + schema: + type: string + - name: query + in: path + description: Query Name Present in DRL + required: true + schema: + type: string + - name: queriedEntity + in: path + description: Query Identifier Present in the DRL Query + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: The controller, session, or query information, cannot be found + content: {} + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + 500: + description: A server error has occurred processing this request + content: {} + x-codegen-request-body-name: body + /controllers/{controller}/decoders: + get: + tags: + - pdp-d-telemetry + summary: Gets all the decoders used by a controller + description: A Policy Controller uses decoders to deserialize incoming network + messages from subscribed network topics into specific (fact) objects. The + deserialized (fact) object will typically be inserted in the drools working memory + of the controlled drools application. + operationId: decoders + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: The controller cannot be found + content: {} + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + /controllers/{controller}/decoders/filters: + get: + tags: + - pdp-d-telemetry + summary: Gets all the filters used by a controller + description: A Policy Controller uses decoders to deserialize incoming network + messages from subscribed network topics into specific (fact) objects. The + deserialized (fact) object will typically be inserted in the drools working memory + of the controlled drools application.Acceptance filters are used to filter + out undesired network messages for the given controller + operationId: decoderFilters + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: The controller cannot be found + content: {} + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + /controllers/{controller}/decoders/{topic}: + get: + tags: + - pdp-d-telemetry + summary: Gets all the decoders in use by a controller for a networked topic + description: A Policy Controller uses decoders to deserialize incoming network + messages from subscribed network topics into specific (fact) objects. The + deserialized (fact) object will typically be inserted in the drools working memory + of the controlled drools application. + operationId: decoder + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + - name: topic + in: path + description: Networked Topic Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: The controller or topic cannot be found + content: {} + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + post: + tags: + - pdp-d-telemetry + summary: Decodes a string into a fact object, and encodes it back into a string + description: Tests the decode/encode functions of a controller + operationId: decode + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + - name: topic + in: path + description: Topic Name + required: true + schema: + type: string + requestBody: + description: JSON String to decode + content: + text/plain: + schema: + type: string + required: true + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 400: + description: Bad input has been provided + content: {} + 404: + description: The controller cannot be found + content: {} + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + x-codegen-request-body-name: body + /controllers/{controller}/decoders/{topic}/filters/{factType}: + get: + tags: + - pdp-d-telemetry + summary: Gets all filters attached to decoders for a given subscribed networked + topic and fact type + description: Decoders are associated with networked topics. A Policy Controller + manages multiple topics and therefore its attached decoders. A Policy Controller + uses filters to further specify the fact mapping. Filters are applied on + a per fact type (classname). + operationId: decoderFilter_1 + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + - name: topic + in: path + description: Networked Topic Name + required: true + schema: + type: string + - name: factType + in: path + description: Fact Type + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: The controller, topic, or fact type cannot be found + content: {} + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + put: + tags: + - pdp-d-telemetry + summary: Attaches filters to the decoder for a given networked topic and fact + type + description: Decoders are associated with networked topics. A Policy Controller + manages multiple topics and therefore its attached decoders. A Policy Controller + uses filters to further specify the fact mapping. Filters are applied on + a per fact type (classname). + operationId: decoderFilter + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + - name: topic + in: path + description: Topic Name + required: true + schema: + type: string + - name: factType + in: path + description: Fact Type + required: true + schema: + type: string + requestBody: + description: Configuration Filter + content: + application/json: + schema: + $ref: '#/components/schemas/JsonProtocolFilter' + application/yaml: + schema: + $ref: '#/components/schemas/JsonProtocolFilter' + required: true + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: The controller, topic, fact type, cannot be found, or a filter + has not been provided + content: {} + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + x-codegen-request-body-name: body + /controllers/{controller}/decoders/{topic}/filters: + get: + tags: + - pdp-d-telemetry + summary: Gets all filters attached to decoders for a given networked topic in + use by a controller + description: A Policy Controller uses decoders to deserialize incoming network + messages from subscribed network topics into specific (fact) objects. The + deserialized (fact) object will typically be inserted in the drools working memory + of the controlled drools application.Acceptance filters are used to filter + out undesired network messages for the given controller + operationId: decoderFilter_2 + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + - name: topic + in: path + description: Networked Topic Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: The controller or topic cannot be found + content: {} + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + /controllers/{controller}/decoders/{topic}/filters/{factType}/rule: + get: + tags: + - pdp-d-telemetry + summary: Gets the filter rule attached to a topic decoder of a controller + description: 'Decoders are associated with networked topics. A Policy Controller + manages multiple topics and therefore its attached decoders. A Policy Controller + uses filters to further specify the fact mapping. Filters are applied on + a per fact type using a jsonpath expression rule. ' + operationId: decoderFilterRules + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + - name: topic + in: path + description: Topic Name + required: true + schema: + type: string + - name: factType + in: path + description: Fact Type + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: The controller, topic, or fact type cannot be found + content: {} + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + put: + tags: + - pdp-d-telemetry + summary: Places a new filter rule in a topic decoder + description: 'Decoders are associated with networked topics. A Policy Controller + manages multiple topics and therefore its attached decoders. A Policy Controller + uses filters to further specify the fact mapping. Filters are applied on + a per fact type using a jsonpath expression rule. ' + operationId: decoderFilterRule + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + - name: topic + in: path + description: Topic Name + required: true + schema: + type: string + - name: factType + in: path + description: Fact Type + required: true + schema: + type: string + requestBody: + description: JsonPath filter expression + content: + application/json: + schema: + type: string + application/yaml: + schema: + type: string + required: true + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: The controller, topic, or fact type cannot be found + content: {} + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + x-codegen-request-body-name: body + delete: + tags: + - pdp-d-telemetry + summary: Deletes the filter rule attached to a topic decoder of a controller + description: 'Decoders are associated with networked topics. A Policy Controller + manages multiple topics and therefore its attached decoders. A Policy Controller + uses filters to further specify the fact mapping. Filters are applied on + a per fact type using a jsonpath expression rule. ' + operationId: decoderFilterRuleDelete + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + - name: topic + in: path + description: Topic Name + required: true + schema: + type: string + - name: factType + in: path + description: Fact Type + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: The controller, topic, or fact type cannot be found + content: {} + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + /controllers/{controller}/encoders: + get: + tags: + - pdp-d-telemetry + summary: Retrieves the encoder filters of a controller + description: The encoders serializes a fact object, typically for network transmission + operationId: encoderFilters + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 400: + description: Bad input has been provided + content: {} + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + /controllers/{controller}/drools: + get: + tags: + - pdp-d-telemetry + summary: Retrieves the Drools Controller subcomponent of the Policy Controller + description: The Drools Controller provides an abstraction over the Drools subsystem + operationId: drools + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: The controller cannot be found + content: {} + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + /controllers/{controller}/properties: + get: + tags: + - pdp-d-telemetry + summary: Retrieves the configuration properties of a Policy Controller + description: Configuration resources used by the controller if Properties format + operationId: controllerProperties + parameters: + - name: controller + in: path + description: Policy Controller Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: The controller cannot be found + content: {} + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + /controllers/tools/coders/decoders/filters/rule: + post: + tags: + - pdp-d-telemetry + summary: Produces a Decoder Rule Filter in a format that the Policy Controller + can understand + description: The result can be used with other APIs to attach a filter to a + decoder + operationId: rules + requestBody: + description: JsonPath expression + content: + application/json: + schema: + type: string + application/yaml: + schema: + type: string + required: true + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + x-codegen-request-body-name: body + /tools/uuid: + get: + tags: + - pdp-d-telemetry + summary: Produces an UUID + description: UUID generation utility + operationId: uuid + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /tools/loggers/{logger}/{level}: + put: + tags: + - pdp-d-telemetry + summary: sets the logger level + description: Please use the SLF4J logger levels + operationId: loggerName + parameters: + - name: logger + in: path + description: Logger Name + required: true + schema: + type: string + - name: level + in: path + description: Logger Level + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: logger not found + content: {} + 500: + description: logging misconfiguration + content: {} + /tools/loggers/{logger}: + get: + tags: + - pdp-d-telemetry + summary: logging level of a logger + operationId: loggerName_1 + parameters: + - name: logger + in: path + description: Logger Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: logger not found + content: {} + 500: + description: logging misconfiguration + content: {} + /tools/loggers: + get: + tags: + - pdp-d-telemetry + summary: all active loggers + operationId: loggers + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 500: + description: logging misconfiguration + content: {} + /topics: + get: + tags: + - pdp-d-telemetry + summary: Retrieves the managed topics + description: Network Topics Aggregation + operationId: topics + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /topics/sources: + get: + tags: + - pdp-d-telemetry + summary: Retrieves the managed topic sources + description: Network Topic Sources Agregation + operationId: sources + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /topics/sinks: + get: + tags: + - pdp-d-telemetry + summary: Retrieves the managed topic sinks + description: Network Topic Sinks Agregation + operationId: sinks + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /topics/switches: + get: + tags: + - pdp-d-telemetry + summary: Topics Control Switches + description: List of the Topic Control Switches + operationId: topicSwitches + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /topics/switches/lock: + put: + tags: + - pdp-d-telemetry + summary: Locks all the managed topics + description: The operation affects all managed sources and sinks + operationId: topicsLock + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + delete: + tags: + - pdp-d-telemetry + summary: Unlocks all the managed topics + description: The operation affects all managed sources and sinks + operationId: topicsUnlock + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + /topics/sources/{comm}: + get: + tags: + - pdp-d-telemetry + summary: Retrieves managed topic sources + description: Sources for a communication infrastructure + operationId: commSources + parameters: + - name: comm + in: path + description: Communication Mechanism + required: true + schema: + pattern: ueb|dmaap|noop + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /topics/sinks/{comm}: + get: + tags: + - pdp-d-telemetry + summary: Retrieves managed topic sinks + description: Communication Infrastructure Sinks + operationId: commSinks + parameters: + - name: comm + in: path + description: Communication Mechanism + required: true + schema: + pattern: ueb|dmaap|noop + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /topics/sources/{comm}/{topic}: + get: + tags: + - pdp-d-telemetry + summary: Retrieves a managed topic source + description: This is an Network Communication Endpoint source of messages for + the Engine + operationId: sourceTopic + parameters: + - name: comm + in: path + description: Communication Mechanism + required: true + schema: + pattern: ueb|dmaap|noop + type: string + - name: topic + in: path + description: Topic Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /topics/sinks/{comm}/{topic}: + get: + tags: + - pdp-d-telemetry + summary: Retrieves a managed topic sink + description: This is a Network Communicaton Endpoint destination of messages + from the Engine + operationId: sinkTopic + parameters: + - name: comm + in: path + description: Communication Mechanism + required: true + schema: + pattern: ueb|dmaap|noop + type: string + - name: topic + in: path + description: Topic Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /topics/sources/{comm}/{topic}/events: + get: + tags: + - pdp-d-telemetry + summary: Retrieves the latest events received by an UEB topic + description: This is a Network Communicaton Endpoint source of messages for + the Engine + operationId: sourceEvents + parameters: + - name: comm + in: path + description: Communication Mechanism + required: true + schema: + pattern: ueb|dmaap|noop + type: string + - name: topic + in: path + description: Topic Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + put: + tags: + - pdp-d-telemetry + summary: Offers an event to a topic for internal processing by the engine + description: The offered event is treated as it was incoming from the network + operationId: commEventOffer + parameters: + - name: comm + in: path + description: Communication Mechanism + required: true + schema: + pattern: ueb|dmaap|noop + type: string + - name: topic + in: path + description: Topic Name + required: true + schema: + type: string + requestBody: + description: Network Message + content: + text/plain: + schema: + type: string + required: true + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 404: + description: The topic information cannot be found + content: {} + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + 500: + description: A server error has occurred processing this request + content: {} + x-codegen-request-body-name: body + /topics/sinks/{comm}/{topic}/events: + get: + tags: + - pdp-d-telemetry + summary: Retrieves the latest events received by an UEB topic + description: This is a Network Communicaton Endpoint source of messages for + the Engine + operationId: sinkEvents + parameters: + - name: comm + in: path + description: Communication Mechanism + required: true + schema: + pattern: ueb|dmaap|noop + type: string + - name: topic + in: path + description: Topic Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /topics/sinks/{comm}/{topic}/switches/lock: + put: + tags: + - pdp-d-telemetry + summary: Locks a topic sink + operationId: commSinkTopicLock + parameters: + - name: comm + in: path + description: Communication Mechanism + required: true + schema: + pattern: ueb|dmaap|noop + type: string + - name: topic + in: path + description: Topic Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + delete: + tags: + - pdp-d-telemetry + summary: Unlocks a topic sink + operationId: commSinkTopicUnlock + parameters: + - name: comm + in: path + description: Communication Mechanism + required: true + schema: + pattern: ueb|dmaap|noop + type: string + - name: topic + in: path + description: Topic Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + /topics/sources/{comm}/{topic}/switches: + get: + tags: + - pdp-d-telemetry + summary: Topic Control Switches + description: List of the Topic Control Switches + operationId: commSourceTopicSwitches + parameters: + - name: comm + in: path + description: Communication Mechanism + required: true + schema: + pattern: ueb|dmaap|noop + type: string + - name: topic + in: path + description: Topic Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /topics/sinks/{comm}/{topic}/switches: + get: + tags: + - pdp-d-telemetry + summary: Topic Control Switches + description: List of the Topic Control Switches + operationId: commSinkTopicSwitches + parameters: + - name: comm + in: path + description: Communication Mechanism + required: true + schema: + pattern: ueb|dmaap|noop + type: string + - name: topic + in: path + description: Topic Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /topics/sources/{comm}/{topic}/switches/lock: + put: + tags: + - pdp-d-telemetry + summary: Locks a topic + operationId: commSourceTopicLock + parameters: + - name: comm + in: path + description: Communication Mechanism + required: true + schema: + pattern: ueb|dmaap|noop + type: string + - name: topic + in: path + description: Topic Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + delete: + tags: + - pdp-d-telemetry + summary: Unlocks topic + operationId: commSourceTopicUnlock + parameters: + - name: comm + in: path + description: Communication Mechanism + required: true + schema: + pattern: ueb|dmaap|noop + type: string + - name: topic + in: path + description: Topic Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + /topics/sources/{comm}/{topic}/switches/activation: + put: + tags: + - pdp-d-telemetry + summary: Starts a topic + operationId: commSourceTopicActivation + parameters: + - name: comm + in: path + description: Communication Mechanism + required: true + schema: + pattern: ueb|dmaap|noop + type: string + - name: topic + in: path + description: Topic Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + delete: + tags: + - pdp-d-telemetry + summary: Stops a topic + operationId: commSourceTopicDeactivation + parameters: + - name: comm + in: path + description: Communication Mechanism + required: true + schema: + pattern: ueb|dmaap|noop + type: string + - name: topic + in: path + description: Topic Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + /topics/sinks/{comm}/{topic}/switches/activation: + put: + tags: + - pdp-d-telemetry + summary: Starts a topic sink + operationId: commSinkTopicActivation + parameters: + - name: comm + in: path + description: Communication Mechanism + required: true + schema: + pattern: ueb|dmaap|noop + type: string + - name: topic + in: path + description: Topic Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + delete: + tags: + - pdp-d-telemetry + summary: Stops a topic + operationId: commSinkTopicDeactivation + parameters: + - name: comm + in: path + description: Communication Mechanism + required: true + schema: + pattern: ueb|dmaap|noop + type: string + - name: topic + in: path + description: Topic Name + required: true + schema: + type: string + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + 406: + description: The system is an administrative state that prevents this request + to be fulfilled + content: {} + /legacy/config/properties: + get: + tags: + - pdp-d-legacy + summary: Legacy Engine Configuration Properties + description: Used for booststrapping the engine + operationId: properties + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /legacy/config/topic/source: + get: + tags: + - pdp-d-legacy + summary: Retrieves the legacy configuration topic source + description: Legacy Topic Source + operationId: source + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' +components: + schemas: + TopicSink: + type: object + properties: + effectiveTopic: + type: string + recentEvents: + type: array + items: + type: string + topic: + type: string + servers: + type: array + items: + type: string + topicCommInfrastructure: + type: string + enum: + - UEB + - DMAAP + - KAFKA + - NOOP + - REST + alive: + type: boolean + locked: + type: boolean + PolicyTypeController: + type: object + properties: + policyType: + $ref: '#/components/schemas/ToscaConceptIdentifier' + ToscaConceptIdentifier: + type: object + properties: + name: + type: string + version: + type: string + PdpEngineWorkerStatistics: + type: object + properties: + engineId: + type: string + engineWorkerState: + type: string + enum: + - UNDEFINED + - STOPPED + - READY + - EXECUTING + - STOPPING + engineTimeStamp: + type: integer + format: int64 + eventCount: + type: integer + format: int64 + lastExecutionTime: + type: integer + format: int64 + averageExecutionTime: + type: number + format: double + upTime: + type: integer + format: int64 + lastEnterTime: + type: integer + format: int64 + lastStart: + type: integer + format: int64 + PdpStatistics: + type: object + properties: + pdpInstanceId: + type: string + timeStamp: + type: integer + format: int64 + generatedId: + type: integer + format: int64 + pdpGroupName: + type: string + pdpSubGroupName: + type: string + policyExecutedCount: + type: integer + format: int64 + policyExecutedSuccessCount: + type: integer + format: int64 + policyExecutedFailCount: + type: integer + format: int64 + policyDeployCount: + type: integer + format: int64 + policyDeploySuccessCount: + type: integer + format: int64 + policyDeployFailCount: + type: integer + format: int64 + policyUndeployCount: + type: integer + format: int64 + policyUndeploySuccessCount: + type: integer + format: int64 + policyUndeployFailCount: + type: integer + format: int64 + engineStats: + type: array + items: + $ref: '#/components/schemas/PdpEngineWorkerStatistics' + TopicSource: + type: object + properties: + effectiveTopic: + type: string + recentEvents: + type: array + items: + type: string + topic: + type: string + servers: + type: array + items: + type: string + topicCommInfrastructure: + type: string + enum: + - UEB + - DMAAP + - KAFKA + - NOOP + - REST + alive: + type: boolean + locked: + type: boolean + ToscaEntityKey: + type: object + properties: + name: + type: string + version: + type: string + ToscaPolicy: + type: object + properties: + name: + type: string + version: + type: string + derived_from: + type: string + metadata: + type: object + additionalProperties: + type: object + properties: {} + description: + type: string + type: + type: string + type_version: + type: string + properties: + type: object + additionalProperties: + type: object + properties: {} + identifier: + $ref: '#/components/schemas/ToscaConceptIdentifier' + typeIdentifier: + $ref: '#/components/schemas/ToscaConceptIdentifier' + definedName: + type: string + definedVersion: + type: string + key: + $ref: '#/components/schemas/ToscaEntityKey' + Agenda: + type: object + AgendaEventListener: + type: object + Annotation: + type: object + Calendars: + type: object + Channel: + type: object + ClassLoader: + type: object + properties: + parent: + $ref: '#/components/schemas/ClassLoader' + name: + type: string + unnamedModule: + $ref: '#/components/schemas/Module' + registeredAsParallelCapable: + type: boolean + definedPackages: + type: array + items: + $ref: '#/components/schemas/Package' + DomainMaker: + type: object + DroolsController: + type: object + properties: + baseDomainNames: + type: array + items: + type: string + recentSourceEvents: + type: array + items: + type: object + properties: {} + recentSinkEvents: + type: array + items: + type: string + sessionNames: + type: array + items: + type: string + container: + $ref: '#/components/schemas/PolicyContainer' + artifactId: + type: string + groupId: + type: string + brained: + type: boolean + canonicalSessionNames: + type: array + items: + type: string + version: + type: string + alive: + type: boolean + locked: + type: boolean + EntryPoint: + type: object + properties: + entryPointId: + type: string + objects: + type: array + items: + type: object + properties: {} + factHandles: + type: array + items: + $ref: '#/components/schemas/FactHandle' + factCount: + type: integer + format: int64 + Environment: + type: object + FactField: + type: object + properties: + fieldAnnotations: + type: array + items: + $ref: '#/components/schemas/Annotation' + metaData: + type: object + additionalProperties: + type: object + properties: {} + key: + type: boolean + name: + type: string + index: + type: integer + format: int32 + FactHandle: + type: object + FactType: + type: object + properties: + metaData: + type: object + additionalProperties: + type: object + properties: {} + superClass: + type: string + classAnnotations: + type: array + items: + $ref: '#/components/schemas/Annotation' + name: + type: string + packageName: + type: string + simpleName: + type: string + fields: + type: array + items: + $ref: '#/components/schemas/FactField' + Global: + type: object + properties: + name: + type: string + type: + type: string + Globals: + type: object + properties: + globalKeys: + type: array + items: + type: string + HttpServletServer: + type: object + properties: + prometheus: + type: boolean + aaf: + type: boolean + name: + type: string + port: + type: integer + format: int32 + alive: + type: boolean + InputStream: + type: object + KieBase: + type: object + properties: + processes: + type: array + items: + $ref: '#/components/schemas/Process' + kieSessions: + type: array + items: + $ref: '#/components/schemas/KieSession' + entryPointIds: + uniqueItems: true + type: array + items: + type: string + kiePackages: + type: array + items: + $ref: '#/components/schemas/KiePackage' + kieBaseEventListeners: + type: array + items: + $ref: '#/components/schemas/KieBaseEventListener' + KieBaseEventListener: + type: object + KieContainer: + type: object + properties: + kieSessionConfiguration: + $ref: '#/components/schemas/KieSessionConfiguration' + releaseId: + $ref: '#/components/schemas/ReleaseId' + kieBase: + $ref: '#/components/schemas/KieBase' + kieBaseNames: + type: array + items: + type: string + classLoader: + $ref: '#/components/schemas/ClassLoader' + KiePackage: + type: object + properties: + processes: + type: array + items: + $ref: '#/components/schemas/Process' + factTypes: + type: array + items: + $ref: '#/components/schemas/FactType' + queries: + type: array + items: + $ref: '#/components/schemas/Query' + functionNames: + type: array + items: + type: string + globalVariables: + type: array + items: + $ref: '#/components/schemas/Global' + rules: + type: array + items: + $ref: '#/components/schemas/Rule' + name: + type: string + KieRuntimeLogger: + type: object + KieSession: + type: object + properties: + identifier: + type: integer + format: int64 + id: + type: integer + format: int32 + globals: + $ref: '#/components/schemas/Globals' + kieBase: + $ref: '#/components/schemas/KieBase' + sessionClock: + $ref: '#/components/schemas/SessionClock' + sessionConfiguration: + $ref: '#/components/schemas/KieSessionConfiguration' + calendars: + $ref: '#/components/schemas/Calendars' + channels: + type: object + additionalProperties: + $ref: '#/components/schemas/Channel' + environment: + $ref: '#/components/schemas/Environment' + agenda: + $ref: '#/components/schemas/Agenda' + entryPoints: + type: array + items: + $ref: '#/components/schemas/EntryPoint' + entryPointId: + type: string + objects: + type: array + items: + type: object + properties: {} + factHandles: + type: array + items: + $ref: '#/components/schemas/FactHandle' + factCount: + type: integer + format: int64 + processInstances: + type: array + items: + $ref: '#/components/schemas/ProcessInstance' + workItemManager: + $ref: '#/components/schemas/WorkItemManager' + logger: + $ref: '#/components/schemas/KieRuntimeLogger' + ruleRuntimeEventListeners: + type: array + items: + $ref: '#/components/schemas/RuleRuntimeEventListener' + agendaEventListeners: + type: array + items: + $ref: '#/components/schemas/AgendaEventListener' + processEventListeners: + type: array + items: + $ref: '#/components/schemas/ProcessEventListener' + KieSessionConfiguration: + type: object + Module: + type: object + properties: + layer: + $ref: '#/components/schemas/ModuleLayer' + name: + type: string + descriptor: + $ref: '#/components/schemas/ModuleDescriptor' + classLoader: + $ref: '#/components/schemas/ClassLoader' + annotations: + type: array + items: + $ref: '#/components/schemas/Annotation' + declaredAnnotations: + type: array + items: + $ref: '#/components/schemas/Annotation' + named: + type: boolean + packages: + uniqueItems: true + type: array + items: + type: string + ModuleDescriptor: + type: object + properties: + open: + type: boolean + automatic: + type: boolean + ModuleLayer: + type: object + Package: + type: object + properties: + name: + type: string + specificationTitle: + type: string + specificationVersion: + type: string + specificationVendor: + type: string + implementationTitle: + type: string + implementationVersion: + type: string + implementationVendor: + type: string + annotations: + type: array + items: + $ref: '#/components/schemas/Annotation' + declaredAnnotations: + type: array + items: + $ref: '#/components/schemas/Annotation' + sealed: + type: boolean + PolicyContainer: + type: object + properties: + kieContainer: + $ref: '#/components/schemas/KieContainer' + policySessions: + type: array + items: + $ref: '#/components/schemas/PolicySession' + artifactId: + type: string + groupId: + type: string + version: + type: string + name: + type: string + classLoader: + $ref: '#/components/schemas/ClassLoader' + alive: + type: boolean + PolicyController: + type: object + properties: + topicSources: + type: array + items: + $ref: '#/components/schemas/TopicSource' + policyTypes: + type: array + items: + $ref: '#/components/schemas/ToscaConceptIdentifier' + topicSinks: + type: array + items: + $ref: '#/components/schemas/TopicSink' + drools: + $ref: '#/components/schemas/DroolsController' + name: + type: string + properties: + type: object + additionalProperties: + type: string + alive: + type: boolean + locked: + type: boolean + PolicyEngine: + type: object + properties: + httpServers: + type: array + items: + $ref: '#/components/schemas/HttpServletServer' + policyControllers: + type: array + items: + $ref: '#/components/schemas/PolicyController' + policyControllerIds: + type: array + items: + type: string + featureProviders: + type: array + items: + $ref: '#/components/schemas/PolicyEngineFeatureApi' + features: + type: array + items: + type: string + domainMaker: + $ref: '#/components/schemas/DomainMaker' + stats: + $ref: '#/components/schemas/PolicyStatsManager' + environment: + type: object + additionalProperties: + type: string + clusterName: + type: string + pdpName: + type: string + sources: + type: array + items: + $ref: '#/components/schemas/TopicSource' + sinks: + type: array + items: + $ref: '#/components/schemas/TopicSink' + executorService: + $ref: '#/components/schemas/ScheduledExecutorService' + properties: + type: object + additionalProperties: + type: string + hostName: + type: string + alive: + type: boolean + locked: + type: boolean + PolicyEngineFeatureApi: + type: object + properties: + sequenceNumber: + type: integer + format: int32 + name: + type: string + PolicySession: + type: object + properties: + name: + type: string + container: + $ref: '#/components/schemas/PolicyContainer' + kieSession: + $ref: '#/components/schemas/KieSession' + fullName: + type: string + PolicyStats: + type: object + properties: + policyExecutedCount: + type: integer + format: int64 + policyExecutedSuccessCount: + type: integer + format: int64 + policyExecutedFailCount: + type: integer + format: int64 + lastExecutionTime: + type: integer + format: int64 + averageExecutionTime: + type: number + format: double + totalElapsedTime: + type: number + format: double + birthTime: + type: integer + format: int64 + lastStart: + type: integer + format: int64 + PolicyStatsManager: + type: object + properties: + groupStat: + $ref: '#/components/schemas/PolicyStats' + subgroupStats: + type: object + additionalProperties: + $ref: '#/components/schemas/PolicyStats' + Process: + type: object + properties: + resource: + $ref: '#/components/schemas/Resource' + metaData: + type: object + additionalProperties: + type: object + properties: {} + version: + type: string + name: + type: string + packageName: + type: string + id: + type: string + type: + type: string + knowledgeType: + type: string + enum: + - RULE + - TYPE + - WINDOW + - ENUM + - PROCESS + - FUNCTION + - QUERY + namespace: + type: string + ProcessEventListener: + type: object + ProcessInstance: + type: object + properties: + parentProcessInstanceId: + type: integer + format: int64 + processName: + type: string + process: + $ref: '#/components/schemas/Process' + processId: + type: string + id: + type: integer + format: int64 + state: + type: integer + format: int32 + eventTypes: + type: array + items: + type: string + Query: + type: object + properties: + metaData: + type: object + additionalProperties: + type: object + properties: {} + name: + type: string + packageName: + type: string + knowledgeType: + type: string + enum: + - RULE + - TYPE + - WINDOW + - ENUM + - PROCESS + - FUNCTION + - QUERY + namespace: + type: string + id: + type: string + Reader: + type: object + ReleaseId: + type: object + properties: + artifactId: + type: string + groupId: + type: string + snapshot: + type: boolean + version: + type: string + Resource: + type: object + properties: + configuration: + $ref: '#/components/schemas/ResourceConfiguration' + targetPath: + type: string + resourceType: + $ref: '#/components/schemas/ResourceType' + sourcePath: + type: string + reader: + $ref: '#/components/schemas/Reader' + inputStream: + $ref: '#/components/schemas/InputStream' + ResourceConfiguration: + type: object + ResourceType: + type: object + properties: + name: + type: string + description: + type: string + defaultExtension: + type: string + defaultPath: + type: string + fullyCoveredByExecModel: + type: boolean + allExtensions: + type: array + items: + type: string + Rule: + type: object + properties: + metaData: + type: object + additionalProperties: + type: object + properties: {} + name: + type: string + packageName: + type: string + knowledgeType: + type: string + enum: + - RULE + - TYPE + - WINDOW + - ENUM + - PROCESS + - FUNCTION + - QUERY + namespace: + type: string + id: + type: string + RuleRuntimeEventListener: + type: object + ScheduledExecutorService: + type: object + properties: + terminated: + type: boolean + shutdown: + type: boolean + SessionClock: + type: object + properties: + currentTime: + type: integer + format: int64 + WorkItemManager: + type: object + PolicyControllerFeatureApi: + type: object + properties: + sequenceNumber: + type: integer + format: int32 + name: + type: string + ControllerConfiguration: + type: object + properties: + name: + type: string + operation: + type: string + drools: + $ref: '#/components/schemas/DroolsConfiguration' + additionalProperties: + type: object + additionalProperties: + type: object + properties: {} + DroolsConfiguration: + type: object + properties: + artifactId: + type: string + groupId: + type: string + version: + type: string + additionalProperties: + type: object + additionalProperties: + type: object + properties: {} + CoderFilters: + type: object + properties: + factClass: + type: string + filter: + $ref: '#/components/schemas/JsonProtocolFilter' + modelClassLoaderHash: + type: integer + format: int32 + CustomCoder: + type: object + properties: + classContainer: + type: string + staticCoderField: + type: string + JsonProtocolFilter: + type: object + properties: + rule: + type: string + ProtocolCoderToolset: + type: object + properties: + topic: + type: string + controllerId: + type: string + groupId: + type: string + artifactId: + type: string + coders: + type: array + items: + $ref: '#/components/schemas/CoderFilters' + customCoder: + $ref: '#/components/schemas/CustomCoder' + DmaapTopicSink: + type: object + properties: + partitionKey: + type: string + apiKey: + type: string + apiSecret: + type: string + effectiveTopic: + type: string + recentEvents: + type: array + items: + type: string + topic: + type: string + servers: + type: array + items: + type: string + topicCommInfrastructure: + type: string + enum: + - UEB + - DMAAP + - KAFKA + - NOOP + - REST + alive: + type: boolean + locked: + type: boolean + DmaapTopicSource: + type: object + properties: + consumerInstance: + type: string + consumerGroup: + type: string + fetchTimeout: + type: integer + format: int32 + fetchLimit: + type: integer + format: int32 + apiKey: + type: string + apiSecret: + type: string + effectiveTopic: + type: string + recentEvents: + type: array + items: + type: string + topic: + type: string + servers: + type: array + items: + type: string + topicCommInfrastructure: + type: string + enum: + - UEB + - DMAAP + - KAFKA + - NOOP + - REST + alive: + type: boolean + locked: + type: boolean + KafkaTopicSink: + type: object + properties: + partitionKey: + type: string + apiKey: + type: string + apiSecret: + type: string + effectiveTopic: + type: string + recentEvents: + type: array + items: + type: string + topic: + type: string + servers: + type: array + items: + type: string + topicCommInfrastructure: + type: string + enum: + - UEB + - DMAAP + - KAFKA + - NOOP + - REST + alive: + type: boolean + locked: + type: boolean + KafkaTopicSource: + type: object + properties: + consumerInstance: + type: string + consumerGroup: + type: string + fetchTimeout: + type: integer + format: int32 + fetchLimit: + type: integer + format: int32 + apiKey: + type: string + apiSecret: + type: string + effectiveTopic: + type: string + recentEvents: + type: array + items: + type: string + topic: + type: string + servers: + type: array + items: + type: string + topicCommInfrastructure: + type: string + enum: + - UEB + - DMAAP + - KAFKA + - NOOP + - REST + alive: + type: boolean + locked: + type: boolean + NoopTopicSink: + type: object + properties: + servers: + type: array + items: + type: string + topic: + type: string + effectiveTopic: + type: string + recentEvents: + type: array + items: + type: string + alive: + type: boolean + locked: + type: boolean + topicCommInfrastructure: + type: string + enum: + - UEB + - DMAAP + - KAFKA + - NOOP + - REST + NoopTopicSource: + type: object + properties: + servers: + type: array + items: + type: string + topic: + type: string + effectiveTopic: + type: string + recentEvents: + type: array + items: + type: string + alive: + type: boolean + locked: + type: boolean + topicCommInfrastructure: + type: string + enum: + - UEB + - DMAAP + - KAFKA + - NOOP + - REST + TopicEndpoint: + type: object + properties: + uebTopicSources: + type: array + items: + $ref: '#/components/schemas/UebTopicSource' + uebTopicSinks: + type: array + items: + $ref: '#/components/schemas/UebTopicSink' + dmaapTopicSinks: + type: array + items: + $ref: '#/components/schemas/DmaapTopicSink' + kafkaTopicSinks: + type: array + items: + $ref: '#/components/schemas/KafkaTopicSink' + noopTopicSinks: + type: array + items: + $ref: '#/components/schemas/NoopTopicSink' + dmaapTopicSources: + type: array + items: + $ref: '#/components/schemas/DmaapTopicSource' + kafkaTopicSources: + type: array + items: + $ref: '#/components/schemas/KafkaTopicSource' + noopTopicSources: + type: array + items: + $ref: '#/components/schemas/NoopTopicSource' + topicSources: + type: array + items: + $ref: '#/components/schemas/TopicSource' + topicSinks: + type: array + items: + $ref: '#/components/schemas/TopicSink' + alive: + type: boolean + locked: + type: boolean + UebTopicSink: + type: object + properties: + partitionKey: + type: string + apiKey: + type: string + apiSecret: + type: string + effectiveTopic: + type: string + recentEvents: + type: array + items: + type: string + topic: + type: string + servers: + type: array + items: + type: string + topicCommInfrastructure: + type: string + enum: + - UEB + - DMAAP + - KAFKA + - NOOP + - REST + alive: + type: boolean + locked: + type: boolean + UebTopicSource: + type: object + properties: + consumerInstance: + type: string + consumerGroup: + type: string + fetchTimeout: + type: integer + format: int32 + fetchLimit: + type: integer + format: int32 + apiKey: + type: string + apiSecret: + type: string + effectiveTopic: + type: string + recentEvents: + type: array + items: + type: string + topic: + type: string + servers: + type: array + items: + type: string + topicCommInfrastructure: + type: string + enum: + - UEB + - DMAAP + - KAFKA + - NOOP + - REST + alive: + type: boolean + locked: + type: boolean + PdpdConfiguration: + type: object + properties: + requestId: + type: string + entity: + type: string + controllers: + type: array + items: + $ref: '#/components/schemas/ControllerConfiguration' + additionalProperties: + type: object + additionalProperties: + type: object + properties: {} + CodingResult: + type: object + properties: + jsonEncoding: + type: string + encoding: + type: boolean + decoding: + type: boolean + Response: + type: object + Properties: + type: object
\ No newline at end of file diff --git a/policy-management/src/main/resources/swagger/swagger.json b/policy-management/src/main/resources/swagger/swagger.json new file mode 100644 index 00000000..1a6a7c17 --- /dev/null +++ b/policy-management/src/main/resources/swagger/swagger.json @@ -0,0 +1,6048 @@ +{ + "openapi" : "3.0.3", + "info" : { + "title" : "PDP-D Telemetry Services Documentation", + "description" : "PDP-D Telemetry Services", + "version" : "Swagger Server" + }, + "servers" : [ { + "url" : "http://{drools-ip}:9696/policy/pdp/engine", + "variables" : { + "drools-ip" : { + "default" : "0.0.0.0" + } + } + } ], + "tags" : [ { + "name" : "pdp-d-telemetry", + "description" : "Drools PDP Telemetry Operations" + }, { + "name" : "pdp-d-lifecycle", + "description" : "Drools PDP Lifecycle Operations" + }, { + "name" : "pdp-d-legacy", + "description" : "Drools PDP Legacy Operations" + } ], + "paths" : { + "/swagger" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Retrieves the json swagger documentation", + "description" : "Lifecycle Group", + "operationId" : "swagger", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "resource not found", + "content" : { } + }, + "501" : { + "description" : "swagger.json file not found", + "content" : { } + } + } + } + }, + "/lifecycle/group" : { + "get" : { + "tags" : [ "pdp-d-lifecycle" ], + "summary" : "Retrieves the Lifecycle group", + "description" : "Lifecycle Group", + "operationId" : "group", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/lifecycle/group/{group}" : { + "put" : { + "tags" : [ "pdp-d-lifecycle" ], + "summary" : "Updates the Lifecycle group", + "description" : "Lifecycle Group", + "operationId" : "updateGroup", + "parameters" : [ { + "name" : "group", + "in" : "path", + "description" : "Group", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/lifecycle/status/interval" : { + "get" : { + "tags" : [ "pdp-d-lifecycle" ], + "summary" : "Retrieves the Lifecycle Status Timer Interval in seconds", + "description" : "Lifecycle Status Timer Interval in seconds", + "operationId" : "updateStatusTimer", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/lifecycle/status/interval/{timeout}" : { + "put" : { + "tags" : [ "pdp-d-lifecycle" ], + "summary" : "Updates the Lifecycle Status Timer Interval in seconds", + "description" : "Lifecycle Status Timer Interval in seconds", + "operationId" : "statusTimer", + "parameters" : [ { + "name" : "timeout", + "in" : "path", + "description" : "timeout", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "integer", + "format" : "int64" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/lifecycle/policyTypes" : { + "get" : { + "tags" : [ "pdp-d-lifecycle" ], + "summary" : "List of supported policy types", + "description" : "Lifecycle Policy Types", + "operationId" : "policyTypes", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/lifecycle/policies" : { + "get" : { + "tags" : [ "pdp-d-lifecycle" ], + "summary" : "List of policies", + "operationId" : "policies", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + }, + "post" : { + "tags" : [ "pdp-d-lifecycle" ], + "summary" : "Deploy a policy", + "operationId" : "deployTrackedPolicy", + "requestBody" : { + "description" : "Tosca Policy", + "content" : { + "application/json" : { + "schema" : { + "type" : "string" + } + }, + "application/yaml" : { + "schema" : { + "type" : "string" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + }, + "x-codegen-request-body-name" : "body" + } + }, + "/lifecycle/policyTypes/{policyType}/{policyTypeVersion}" : { + "get" : { + "tags" : [ "pdp-d-lifecycle" ], + "summary" : "Entities associated with a policy type", + "description" : "Lifecycle policy Types", + "operationId" : "policyType", + "parameters" : [ { + "name" : "policyType", + "in" : "path", + "description" : "Policy Type", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "policyTypeVersion", + "in" : "path", + "description" : "Policy Type Version", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/lifecycle/policies/operations" : { + "get" : { + "tags" : [ "pdp-d-lifecycle" ], + "summary" : "Gets Policy Operations", + "operationId" : "policiesOperations", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/lifecycle/policies/operations/deployment" : { + "post" : { + "tags" : [ "pdp-d-lifecycle" ], + "summary" : "Deploys a policy", + "description" : "Deploys a policy", + "operationId" : "deployOperation", + "requestBody" : { + "description" : "Tosca Policy", + "content" : { + "application/json" : { + "schema" : { + "type" : "string" + } + }, + "application/yaml" : { + "schema" : { + "type" : "string" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + }, + "x-codegen-request-body-name" : "body" + } + }, + "/lifecycle/policies/operations/undeployment" : { + "post" : { + "tags" : [ "pdp-d-lifecycle" ], + "summary" : "Undeploys a policy", + "operationId" : "undeployOperation", + "requestBody" : { + "description" : "Tosca Policy", + "content" : { + "application/json" : { + "schema" : { + "type" : "string" + } + }, + "application/yaml" : { + "schema" : { + "type" : "string" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + }, + "x-codegen-request-body-name" : "body" + } + }, + "/lifecycle/policies/operations/validation" : { + "post" : { + "tags" : [ "pdp-d-lifecycle" ], + "summary" : "Validates a policy", + "operationId" : "validateOperation", + "requestBody" : { + "description" : "Tosca Policy", + "content" : { + "application/json" : { + "schema" : { + "type" : "string" + } + }, + "application/yaml" : { + "schema" : { + "type" : "string" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + }, + "x-codegen-request-body-name" : "body" + } + }, + "/lifecycle/policies/{policyName}/{policyVersion}" : { + "get" : { + "tags" : [ "pdp-d-lifecycle" ], + "summary" : "Retrieves a policy", + "operationId" : "policy", + "parameters" : [ { + "name" : "policyName", + "in" : "path", + "description" : "Policy Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "policyVersion", + "in" : "path", + "description" : "Policy Version", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + }, + "delete" : { + "tags" : [ "pdp-d-lifecycle" ], + "summary" : "Deletes a Lifecycle tracked policy", + "operationId" : "undeployPolicy", + "parameters" : [ { + "name" : "policyName", + "in" : "path", + "description" : "Policy", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "policyVersion", + "in" : "path", + "description" : "Policy Version", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/lifecycle/state" : { + "get" : { + "tags" : [ "pdp-d-lifecycle" ], + "summary" : "Retrieves the Lifecycle state", + "description" : "Lifecycle State", + "operationId" : "state", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/lifecycle/state/{state}" : { + "put" : { + "tags" : [ "pdp-d-lifecycle" ], + "summary" : "updates the Lifecycle state", + "description" : "Lifecycle State", + "operationId" : "updateState", + "parameters" : [ { + "name" : "state", + "in" : "path", + "description" : "state", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/lifecycle/subgroup/{subgroup}" : { + "put" : { + "tags" : [ "pdp-d-lifecycle" ], + "summary" : "Retrieves the Lifecycle subgroup", + "description" : "Lifecycle Subgroup", + "operationId" : "subgroup", + "parameters" : [ { + "name" : "subgroup", + "in" : "path", + "description" : "Subgroup", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/lifecycle/subgroup" : { + "get" : { + "tags" : [ "pdp-d-lifecycle" ], + "summary" : "Retrieves the Lifecycle subgroup", + "description" : "Lifecycle Subgroup", + "operationId" : "subgroup_1", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/lifecycle/statistics" : { + "get" : { + "tags" : [ "pdp-d-lifecycle" ], + "summary" : "Gets Policy Statistics", + "operationId" : "stats", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/lifecycle/properties" : { + "get" : { + "tags" : [ "pdp-d-lifecycle" ], + "summary" : "Retrieves the Lifecycle properties", + "description" : "Lifecycle Properties", + "operationId" : "propertiesLifecycle", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/lifecycle/topic/sink" : { + "get" : { + "tags" : [ "pdp-d-lifecycle" ], + "summary" : "Retrieves the Lifecycle topic sink", + "description" : "Lifecycle Topic Sink", + "operationId" : "sink", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/lifecycle/topic/source" : { + "get" : { + "tags" : [ "pdp-d-lifecycle" ], + "summary" : "Retrieves the Lifecycle topic source", + "description" : "Lifecycle Topic Source", + "operationId" : "sourceLifecycle", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Retrieves the Engine Operational Status", + "description" : "Top-level abstraction. Provides a global view of resources", + "operationId" : "engine", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + }, + "delete" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Shuts down the Engine", + "description" : "Deleting the engine, the top-level abstraction, equivalenty shuts it down", + "operationId" : "engineShutdown", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/features" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Engine Features", + "description" : "Provides the list of loaded features using the PolicyEngineFeatureAPI", + "operationId" : "engineFeatures", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/features/{featureName}" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Engine Feature", + "description" : "Provides Details for a given feature Engine Provider", + "operationId" : "engineFeature", + "parameters" : [ { + "name" : "featureName", + "in" : "path", + "description" : "Feature Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "The feature cannot be found", + "content" : { } + } + } + } + }, + "/features/inventory" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Engine Detailed Feature Inventory", + "description" : "Provides detailed list of loaded features using the PolicyEngineFeatureAPI", + "operationId" : "engineFeaturesInventory", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/inputs" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Engine Input Ports", + "description" : "List of input ports", + "operationId" : "engineInputs", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/inputs/configuration" : { + "post" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Engine Input Configuration Requests", + "description" : "Feeds a configuration request input into the Engine", + "operationId" : "engineUpdate", + "requestBody" : { + "description" : "Configuration to apply", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PdpdConfiguration" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/PdpdConfiguration" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "406" : { + "description" : "The configuration request cannot be honored", + "content" : { } + } + }, + "x-codegen-request-body-name" : "body" + } + }, + "/environment/{envProperty}" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Gets an environment variable", + "operationId" : "engineEnvironmentProperty", + "parameters" : [ { + "name" : "envProperty", + "in" : "path", + "description" : "Environment Property", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + }, + "put" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Adds a new environment value to the engine", + "operationId" : "engineEnvironmentAdd", + "parameters" : [ { + "name" : "envProperty", + "in" : "path", + "description" : "Environment Property", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "requestBody" : { + "description" : "Environment Value", + "content" : { + "text/plain" : { + "schema" : { + "type" : "string" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + }, + "x-codegen-request-body-name" : "body" + } + }, + "/environment" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Engine Environment Properties", + "description" : "Installation and OS environment properties used by the engine", + "operationId" : "engineEnvironment", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/switches" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Engine Control Switches", + "description" : "List of the Engine Control Switches", + "operationId" : "engineSwitches", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/switches/activation" : { + "put" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Switches on the Engine Activation Switch", + "description" : "Turns on Activation Switch on the Engine. This order entails that the engine and controllers are unlocked and started", + "operationId" : "engineActivation", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + }, + "delete" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Switches off Engine Activation Switch", + "description" : "Turns off the Activation Switch on the Engine. This order entails that the engine and controllers are locked (with the exception of those resources defined as unmanaged)", + "operationId" : "engineDeactivation", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/switches/lock" : { + "put" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Switches on the Engine Lock Control", + "description" : "This switch locks all the engine resources as a whole, except those that are defined unmanaged", + "operationId" : "engineLock", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + }, + "delete" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Switches off the Lock control", + "description" : "This switch locks all the engine resources as a whole, except those that are defined unmanaged", + "operationId" : "engineUnlock", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + } + }, + "/properties" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Engine Configuration Properties", + "description" : "Used for booststrapping the engine", + "operationId" : "engineProperties", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/controllers" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Lists the Policy Controllers Names", + "description" : "Unique Policy Controller Identifiers", + "operationId" : "controllers", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + }, + "post" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Creates and starts a new Policy Controller", + "description" : "Controller creation based on properties", + "operationId" : "controllerAdd", + "requestBody" : { + "description" : "Configuration Properties to apply", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Properties" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Properties" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "201" : { + "description" : "The controller has been succesfully created and started", + "content" : { } + }, + "206" : { + "description" : "The controller has been created but cannot be started", + "content" : { } + }, + "304" : { + "description" : "The controller already exists", + "content" : { } + }, + "400" : { + "description" : "Invalid configuration information has been provided", + "content" : { } + }, + "406" : { + "description" : "The administrative state of the system prevents it from processing this request", + "content" : { } + } + }, + "x-codegen-request-body-name" : "body" + } + }, + "/controllers/features" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Lists of Feature Providers Identifiers", + "description" : "Unique Policy Controller Identifiers", + "operationId" : "controllerFeatures", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/controllers/features/{featureName}" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Controller Feature", + "description" : "Provides Details for a given Policy Controller feature provider", + "operationId" : "controllerFeature", + "parameters" : [ { + "name" : "featureName", + "in" : "path", + "description" : "Feature Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "The feature cannot be found", + "content" : { } + } + } + } + }, + "/controllers/inventory" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Lists the Policy Controllers", + "description" : "Detailed list of Policy Controllers", + "operationId" : "controllerInventory", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/controllers/features/inventory" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Detailed Controllers Feature Inventory", + "description" : "Provides detailed list of loaded features using the PolicyControllerFeatureAPI", + "operationId" : "controllerFeaturesInventory", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/controllers/{controller}" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Retrieves a Policy Controller", + "description" : "A Policy Controller is a concrete drools application abstraction. It aggregates networking, drools, and other resources,as provides operational controls over drools applications", + "operationId" : "controller", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "The controller cannot be found", + "content" : { } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + }, + "delete" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Deletes a Policy Controller", + "description" : "A Policy Controller is a concrete drools application abstraction. It aggregates networking, drools, and other resources,as provides operational controls over drools applications", + "operationId" : "controllerDelete", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "The controller cannot be found", + "content" : { } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + }, + "500" : { + "description" : "A problem has occurred while deleting the Policy Controller", + "content" : { } + } + } + } + }, + "/controllers/{controller}/inputs" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Policy Controller Input Ports", + "description" : "List of input ports", + "operationId" : "controllerInputs", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/controllers/{controller}/inputs/configuration" : { + "post" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Policy Controller Input Configuration Requests", + "description" : "Feeds a configuration request input into the given Policy Controller", + "operationId" : "controllerUpdate", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "requestBody" : { + "description" : "Configuration to apply", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ControllerConfiguration" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/ControllerConfiguration" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "400" : { + "description" : "The configuration request is invalid", + "content" : { } + }, + "406" : { + "description" : "The configuration request cannot be honored", + "content" : { } + } + }, + "x-codegen-request-body-name" : "body" + } + }, + "/controllers/{controller}/switches" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Policy Controller Switches", + "description" : "List of the Policy Controller Switches", + "operationId" : "controllerSwitches", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/controllers/{controller}/switches/lock" : { + "put" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Switches on the Policy Controller Lock Control", + "description" : "This action on the switch locks the Policy Controller", + "operationId" : "controllerLock", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + }, + "delete" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Switches off the Policy Controller Lock Control", + "description" : "This action on the switch unlocks the Policy Controller", + "operationId" : "controllerUnlock", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + } + }, + "/controllers/{controller}/drools/facts/{session}/{factType}" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Retrieves fact objects of a given type in the drools working memoryfor a given controller and session", + "description" : "The fact types are the classnames of the objects inserted in the drools working memory", + "operationId" : "droolsFacts", + "parameters" : [ { + "name" : "count", + "in" : "query", + "description" : "Fact count", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "session", + "in" : "path", + "description" : "Drools Session Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "factType", + "in" : "path", + "description" : "Drools Fact Type", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "The controller, session, or fact type cannot be found", + "content" : { } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + }, + "delete" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Deletes all the fact objects of a given type from the drools working memoryfor a given controller and session. The objects retracted from the working memory are provided in the response.", + "description" : "The fact types are the classnames of the objects inserted in the drools working memory", + "operationId" : "droolsFactsDelete_1", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "session", + "in" : "path", + "description" : "Drools Session Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "factType", + "in" : "path", + "description" : "Drools Fact Type", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "The controller, session, or fact type, cannot be found", + "content" : { } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + }, + "500" : { + "description" : "A server error has occurred processing this request", + "content" : { } + } + } + } + }, + "/controllers/{controller}/drools/facts/{session}" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Retrieves Fact Types (classnames) for a given controller and its count", + "description" : "The fact types are the classnames of the objects inserted in the drools working memory", + "operationId" : "droolsFacts_1", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "session", + "in" : "path", + "description" : "Drools Session Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "The controller or session cannot be found", + "content" : { } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + } + }, + "/controllers/{controller}/drools/facts" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Retrieves Facts Summary information for a given controller", + "description" : "Provides the session names, and a count of fact object in the drools working memory", + "operationId" : "droolsFacts_2", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "The controller cannot be found", + "content" : { } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + } + }, + "/controllers/{controller}/drools/facts/{session}/{query}/{queriedEntity}" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Gets all the fact objects returned by a DRL query with no parameters from the drools working memoryfor a given controller and session", + "description" : "The DRL query must be defined in the DRL file", + "operationId" : "droolsFacts_3", + "parameters" : [ { + "name" : "count", + "in" : "query", + "description" : "Fact count", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "session", + "in" : "path", + "description" : "Drools Session Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "query", + "in" : "path", + "description" : "Query Name Present in DRL", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "queriedEntity", + "in" : "path", + "description" : "Query Identifier Present in the DRL Query", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "The controller, session, or query information, cannot be found", + "content" : { } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + }, + "500" : { + "description" : "A server error has occurred processing this request", + "content" : { } + } + } + }, + "post" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Gets all the fact objects returned by a DRL query with parameters from the drools working memoryfor a given controller and session", + "description" : "The DRL query with parameters must be defined in the DRL file", + "operationId" : "droolsFacts_4", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "session", + "in" : "path", + "description" : "Drools Session Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "query", + "in" : "path", + "description" : "Query Name Present in DRL", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "queriedEntity", + "in" : "path", + "description" : "Query Identifier Present in the DRL Query", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "requestBody" : { + "description" : "Query Parameter Values to pass in the DRL Query", + "content" : { + "application/json" : { + "schema" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { } + } + } + }, + "application/yaml" : { + "schema" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { } + } + } + } + }, + "required" : false + }, + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "The controller, session, or query information, cannot be found", + "content" : { } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + }, + "500" : { + "description" : "A server error has occurred processing this request", + "content" : { } + } + }, + "x-codegen-request-body-name" : "body" + }, + "delete" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Deletes all the fact objects returned by a DRL query with parameters from the drools working memory for a given controller and session", + "description" : "The DRL query with parameters must be defined in the DRL file", + "operationId" : "droolsFactsDelete", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "session", + "in" : "path", + "description" : "Drools Session Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "query", + "in" : "path", + "description" : "Query Name Present in DRL", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "queriedEntity", + "in" : "path", + "description" : "Query Identifier Present in the DRL Query", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "The controller, session, or query information, cannot be found", + "content" : { } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + }, + "500" : { + "description" : "A server error has occurred processing this request", + "content" : { } + } + }, + "x-codegen-request-body-name" : "body" + } + }, + "/controllers/{controller}/decoders" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Gets all the decoders used by a controller", + "description" : "A Policy Controller uses decoders to deserialize incoming network messages from subscribed network topics into specific (fact) objects. The deserialized (fact) object will typically be inserted in the drools working memory of the controlled drools application.", + "operationId" : "decoders", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "The controller cannot be found", + "content" : { } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + } + }, + "/controllers/{controller}/decoders/filters" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Gets all the filters used by a controller", + "description" : "A Policy Controller uses decoders to deserialize incoming network messages from subscribed network topics into specific (fact) objects. The deserialized (fact) object will typically be inserted in the drools working memory of the controlled drools application.Acceptance filters are used to filter out undesired network messages for the given controller", + "operationId" : "decoderFilters", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "The controller cannot be found", + "content" : { } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + } + }, + "/controllers/{controller}/decoders/{topic}" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Gets all the decoders in use by a controller for a networked topic", + "description" : "A Policy Controller uses decoders to deserialize incoming network messages from subscribed network topics into specific (fact) objects. The deserialized (fact) object will typically be inserted in the drools working memory of the controlled drools application.", + "operationId" : "decoder", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "topic", + "in" : "path", + "description" : "Networked Topic Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "The controller or topic cannot be found", + "content" : { } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + }, + "post" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Decodes a string into a fact object, and encodes it back into a string", + "description" : "Tests the decode/encode functions of a controller", + "operationId" : "decode", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "topic", + "in" : "path", + "description" : "Topic Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "requestBody" : { + "description" : "JSON String to decode", + "content" : { + "text/plain" : { + "schema" : { + "type" : "string" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "400" : { + "description" : "Bad input has been provided", + "content" : { } + }, + "404" : { + "description" : "The controller cannot be found", + "content" : { } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + }, + "x-codegen-request-body-name" : "body" + } + }, + "/controllers/{controller}/decoders/{topic}/filters/{factType}" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Gets all filters attached to decoders for a given subscribed networked topic and fact type", + "description" : "Decoders are associated with networked topics. A Policy Controller manages multiple topics and therefore its attached decoders. A Policy Controller uses filters to further specify the fact mapping. Filters are applied on a per fact type (classname).", + "operationId" : "decoderFilter_1", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "topic", + "in" : "path", + "description" : "Networked Topic Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "factType", + "in" : "path", + "description" : "Fact Type", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "The controller, topic, or fact type cannot be found", + "content" : { } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + }, + "put" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Attaches filters to the decoder for a given networked topic and fact type", + "description" : "Decoders are associated with networked topics. A Policy Controller manages multiple topics and therefore its attached decoders. A Policy Controller uses filters to further specify the fact mapping. Filters are applied on a per fact type (classname).", + "operationId" : "decoderFilter", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "topic", + "in" : "path", + "description" : "Topic Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "factType", + "in" : "path", + "description" : "Fact Type", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "requestBody" : { + "description" : "Configuration Filter", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/JsonProtocolFilter" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/JsonProtocolFilter" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "The controller, topic, fact type, cannot be found, or a filter has not been provided", + "content" : { } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + }, + "x-codegen-request-body-name" : "body" + } + }, + "/controllers/{controller}/decoders/{topic}/filters" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Gets all filters attached to decoders for a given networked topic in use by a controller", + "description" : "A Policy Controller uses decoders to deserialize incoming network messages from subscribed network topics into specific (fact) objects. The deserialized (fact) object will typically be inserted in the drools working memory of the controlled drools application.Acceptance filters are used to filter out undesired network messages for the given controller", + "operationId" : "decoderFilter_2", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "topic", + "in" : "path", + "description" : "Networked Topic Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "The controller or topic cannot be found", + "content" : { } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + } + }, + "/controllers/{controller}/decoders/{topic}/filters/{factType}/rule" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Gets the filter rule attached to a topic decoder of a controller", + "description" : "Decoders are associated with networked topics. A Policy Controller manages multiple topics and therefore its attached decoders. A Policy Controller uses filters to further specify the fact mapping. Filters are applied on a per fact type using a jsonpath expression rule. ", + "operationId" : "decoderFilterRules", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "topic", + "in" : "path", + "description" : "Topic Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "factType", + "in" : "path", + "description" : "Fact Type", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "The controller, topic, or fact type cannot be found", + "content" : { } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + }, + "put" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Places a new filter rule in a topic decoder", + "description" : "Decoders are associated with networked topics. A Policy Controller manages multiple topics and therefore its attached decoders. A Policy Controller uses filters to further specify the fact mapping. Filters are applied on a per fact type using a jsonpath expression rule. ", + "operationId" : "decoderFilterRule", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "topic", + "in" : "path", + "description" : "Topic Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "factType", + "in" : "path", + "description" : "Fact Type", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "requestBody" : { + "description" : "JsonPath filter expression", + "content" : { + "application/json" : { + "schema" : { + "type" : "string" + } + }, + "application/yaml" : { + "schema" : { + "type" : "string" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "The controller, topic, or fact type cannot be found", + "content" : { } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + }, + "x-codegen-request-body-name" : "body" + }, + "delete" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Deletes the filter rule attached to a topic decoder of a controller", + "description" : "Decoders are associated with networked topics. A Policy Controller manages multiple topics and therefore its attached decoders. A Policy Controller uses filters to further specify the fact mapping. Filters are applied on a per fact type using a jsonpath expression rule. ", + "operationId" : "decoderFilterRuleDelete", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "topic", + "in" : "path", + "description" : "Topic Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "factType", + "in" : "path", + "description" : "Fact Type", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "The controller, topic, or fact type cannot be found", + "content" : { } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + } + }, + "/controllers/{controller}/encoders" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Retrieves the encoder filters of a controller", + "description" : "The encoders serializes a fact object, typically for network transmission", + "operationId" : "encoderFilters", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "400" : { + "description" : "Bad input has been provided", + "content" : { } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + } + }, + "/controllers/{controller}/drools" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Retrieves the Drools Controller subcomponent of the Policy Controller", + "description" : "The Drools Controller provides an abstraction over the Drools subsystem", + "operationId" : "drools", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "The controller cannot be found", + "content" : { } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + } + }, + "/controllers/{controller}/properties" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Retrieves the configuration properties of a Policy Controller", + "description" : "Configuration resources used by the controller if Properties format", + "operationId" : "controllerProperties", + "parameters" : [ { + "name" : "controller", + "in" : "path", + "description" : "Policy Controller Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "The controller cannot be found", + "content" : { } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + } + }, + "/controllers/tools/coders/decoders/filters/rule" : { + "post" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Produces a Decoder Rule Filter in a format that the Policy Controller can understand", + "description" : "The result can be used with other APIs to attach a filter to a decoder", + "operationId" : "rules", + "requestBody" : { + "description" : "JsonPath expression", + "content" : { + "application/json" : { + "schema" : { + "type" : "string" + } + }, + "application/yaml" : { + "schema" : { + "type" : "string" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + }, + "x-codegen-request-body-name" : "body" + } + }, + "/tools/uuid" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Produces an UUID", + "description" : "UUID generation utility", + "operationId" : "uuid", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/tools/loggers/{logger}/{level}" : { + "put" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "sets the logger level", + "description" : "Please use the SLF4J logger levels", + "operationId" : "loggerName", + "parameters" : [ { + "name" : "logger", + "in" : "path", + "description" : "Logger Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "level", + "in" : "path", + "description" : "Logger Level", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "logger not found", + "content" : { } + }, + "500" : { + "description" : "logging misconfiguration", + "content" : { } + } + } + } + }, + "/tools/loggers/{logger}" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "logging level of a logger", + "operationId" : "loggerName_1", + "parameters" : [ { + "name" : "logger", + "in" : "path", + "description" : "Logger Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "logger not found", + "content" : { } + }, + "500" : { + "description" : "logging misconfiguration", + "content" : { } + } + } + } + }, + "/tools/loggers" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "all active loggers", + "operationId" : "loggers", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "500" : { + "description" : "logging misconfiguration", + "content" : { } + } + } + } + }, + "/topics" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Retrieves the managed topics", + "description" : "Network Topics Aggregation", + "operationId" : "topics", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/topics/sources" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Retrieves the managed topic sources", + "description" : "Network Topic Sources Agregation", + "operationId" : "sources", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/topics/sinks" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Retrieves the managed topic sinks", + "description" : "Network Topic Sinks Agregation", + "operationId" : "sinks", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/topics/switches" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Topics Control Switches", + "description" : "List of the Topic Control Switches", + "operationId" : "topicSwitches", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/topics/switches/lock" : { + "put" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Locks all the managed topics", + "description" : "The operation affects all managed sources and sinks", + "operationId" : "topicsLock", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + }, + "delete" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Unlocks all the managed topics", + "description" : "The operation affects all managed sources and sinks", + "operationId" : "topicsUnlock", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + } + }, + "/topics/sources/{comm}" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Retrieves managed topic sources", + "description" : "Sources for a communication infrastructure", + "operationId" : "commSources", + "parameters" : [ { + "name" : "comm", + "in" : "path", + "description" : "Communication Mechanism", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "pattern" : "ueb|dmaap|noop", + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/topics/sinks/{comm}" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Retrieves managed topic sinks", + "description" : "Communication Infrastructure Sinks", + "operationId" : "commSinks", + "parameters" : [ { + "name" : "comm", + "in" : "path", + "description" : "Communication Mechanism", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "pattern" : "ueb|dmaap|noop", + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/topics/sources/{comm}/{topic}" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Retrieves a managed topic source", + "description" : "This is an Network Communication Endpoint source of messages for the Engine", + "operationId" : "sourceTopic", + "parameters" : [ { + "name" : "comm", + "in" : "path", + "description" : "Communication Mechanism", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "pattern" : "ueb|dmaap|noop", + "type" : "string" + } + }, { + "name" : "topic", + "in" : "path", + "description" : "Topic Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/topics/sinks/{comm}/{topic}" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Retrieves a managed topic sink", + "description" : "This is a Network Communicaton Endpoint destination of messages from the Engine", + "operationId" : "sinkTopic", + "parameters" : [ { + "name" : "comm", + "in" : "path", + "description" : "Communication Mechanism", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "pattern" : "ueb|dmaap|noop", + "type" : "string" + } + }, { + "name" : "topic", + "in" : "path", + "description" : "Topic Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/topics/sources/{comm}/{topic}/events" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Retrieves the latest events received by an UEB topic", + "description" : "This is a Network Communicaton Endpoint source of messages for the Engine", + "operationId" : "sourceEvents", + "parameters" : [ { + "name" : "comm", + "in" : "path", + "description" : "Communication Mechanism", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "pattern" : "ueb|dmaap|noop", + "type" : "string" + } + }, { + "name" : "topic", + "in" : "path", + "description" : "Topic Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + }, + "put" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Offers an event to a topic for internal processing by the engine", + "description" : "The offered event is treated as it was incoming from the network", + "operationId" : "commEventOffer", + "parameters" : [ { + "name" : "comm", + "in" : "path", + "description" : "Communication Mechanism", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "pattern" : "ueb|dmaap|noop", + "type" : "string" + } + }, { + "name" : "topic", + "in" : "path", + "description" : "Topic Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "requestBody" : { + "description" : "Network Message", + "content" : { + "text/plain" : { + "schema" : { + "type" : "string" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "404" : { + "description" : "The topic information cannot be found", + "content" : { } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + }, + "500" : { + "description" : "A server error has occurred processing this request", + "content" : { } + } + }, + "x-codegen-request-body-name" : "body" + } + }, + "/topics/sinks/{comm}/{topic}/events" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Retrieves the latest events received by an UEB topic", + "description" : "This is a Network Communicaton Endpoint source of messages for the Engine", + "operationId" : "sinkEvents", + "parameters" : [ { + "name" : "comm", + "in" : "path", + "description" : "Communication Mechanism", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "pattern" : "ueb|dmaap|noop", + "type" : "string" + } + }, { + "name" : "topic", + "in" : "path", + "description" : "Topic Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/topics/sinks/{comm}/{topic}/switches/lock" : { + "put" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Locks a topic sink", + "operationId" : "commSinkTopicLock", + "parameters" : [ { + "name" : "comm", + "in" : "path", + "description" : "Communication Mechanism", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "pattern" : "ueb|dmaap|noop", + "type" : "string" + } + }, { + "name" : "topic", + "in" : "path", + "description" : "Topic Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + }, + "delete" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Unlocks a topic sink", + "operationId" : "commSinkTopicUnlock", + "parameters" : [ { + "name" : "comm", + "in" : "path", + "description" : "Communication Mechanism", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "pattern" : "ueb|dmaap|noop", + "type" : "string" + } + }, { + "name" : "topic", + "in" : "path", + "description" : "Topic Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + } + }, + "/topics/sources/{comm}/{topic}/switches" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Topic Control Switches", + "description" : "List of the Topic Control Switches", + "operationId" : "commSourceTopicSwitches", + "parameters" : [ { + "name" : "comm", + "in" : "path", + "description" : "Communication Mechanism", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "pattern" : "ueb|dmaap|noop", + "type" : "string" + } + }, { + "name" : "topic", + "in" : "path", + "description" : "Topic Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/topics/sinks/{comm}/{topic}/switches" : { + "get" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Topic Control Switches", + "description" : "List of the Topic Control Switches", + "operationId" : "commSinkTopicSwitches", + "parameters" : [ { + "name" : "comm", + "in" : "path", + "description" : "Communication Mechanism", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "pattern" : "ueb|dmaap|noop", + "type" : "string" + } + }, { + "name" : "topic", + "in" : "path", + "description" : "Topic Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/topics/sources/{comm}/{topic}/switches/lock" : { + "put" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Locks a topic", + "operationId" : "commSourceTopicLock", + "parameters" : [ { + "name" : "comm", + "in" : "path", + "description" : "Communication Mechanism", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "pattern" : "ueb|dmaap|noop", + "type" : "string" + } + }, { + "name" : "topic", + "in" : "path", + "description" : "Topic Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + }, + "delete" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Unlocks topic", + "operationId" : "commSourceTopicUnlock", + "parameters" : [ { + "name" : "comm", + "in" : "path", + "description" : "Communication Mechanism", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "pattern" : "ueb|dmaap|noop", + "type" : "string" + } + }, { + "name" : "topic", + "in" : "path", + "description" : "Topic Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + } + }, + "/topics/sources/{comm}/{topic}/switches/activation" : { + "put" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Starts a topic", + "operationId" : "commSourceTopicActivation", + "parameters" : [ { + "name" : "comm", + "in" : "path", + "description" : "Communication Mechanism", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "pattern" : "ueb|dmaap|noop", + "type" : "string" + } + }, { + "name" : "topic", + "in" : "path", + "description" : "Topic Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + }, + "delete" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Stops a topic", + "operationId" : "commSourceTopicDeactivation", + "parameters" : [ { + "name" : "comm", + "in" : "path", + "description" : "Communication Mechanism", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "pattern" : "ueb|dmaap|noop", + "type" : "string" + } + }, { + "name" : "topic", + "in" : "path", + "description" : "Topic Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + } + }, + "/topics/sinks/{comm}/{topic}/switches/activation" : { + "put" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Starts a topic sink", + "operationId" : "commSinkTopicActivation", + "parameters" : [ { + "name" : "comm", + "in" : "path", + "description" : "Communication Mechanism", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "pattern" : "ueb|dmaap|noop", + "type" : "string" + } + }, { + "name" : "topic", + "in" : "path", + "description" : "Topic Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + }, + "delete" : { + "tags" : [ "pdp-d-telemetry" ], + "summary" : "Stops a topic", + "operationId" : "commSinkTopicDeactivation", + "parameters" : [ { + "name" : "comm", + "in" : "path", + "description" : "Communication Mechanism", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "pattern" : "ueb|dmaap|noop", + "type" : "string" + } + }, { + "name" : "topic", + "in" : "path", + "description" : "Topic Name", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + }, + "406" : { + "description" : "The system is an administrative state that prevents this request to be fulfilled", + "content" : { } + } + } + } + }, + "/legacy/config/properties" : { + "get" : { + "tags" : [ "pdp-d-legacy" ], + "summary" : "Legacy Engine Configuration Properties", + "description" : "Used for booststrapping the engine", + "operationId" : "properties", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + }, + "/legacy/config/topic/source" : { + "get" : { + "tags" : [ "pdp-d-legacy" ], + "summary" : "Retrieves the legacy configuration topic source", + "description" : "Legacy Topic Source", + "operationId" : "source", + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + }, + "application/yaml" : { + "schema" : { + "$ref" : "#/components/schemas/Response" + } + } + } + } + } + } + } + }, + "components" : { + "schemas" : { + "TopicSink" : { + "type" : "object", + "properties" : { + "effectiveTopic" : { + "type" : "string" + }, + "recentEvents" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "topic" : { + "type" : "string" + }, + "servers" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "topicCommInfrastructure" : { + "type" : "string", + "enum" : [ "UEB", "DMAAP", "KAFKA", "NOOP", "REST" ] + }, + "alive" : { + "type" : "boolean" + }, + "locked" : { + "type" : "boolean" + } + } + }, + "PolicyTypeController" : { + "type" : "object", + "properties" : { + "policyType" : { + "$ref" : "#/components/schemas/ToscaConceptIdentifier" + } + } + }, + "ToscaConceptIdentifier" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string" + }, + "version" : { + "type" : "string" + } + } + }, + "PdpEngineWorkerStatistics" : { + "type" : "object", + "properties" : { + "engineId" : { + "type" : "string" + }, + "engineWorkerState" : { + "type" : "string", + "enum" : [ "UNDEFINED", "STOPPED", "READY", "EXECUTING", "STOPPING" ] + }, + "engineTimeStamp" : { + "type" : "integer", + "format" : "int64" + }, + "eventCount" : { + "type" : "integer", + "format" : "int64" + }, + "lastExecutionTime" : { + "type" : "integer", + "format" : "int64" + }, + "averageExecutionTime" : { + "type" : "number", + "format" : "double" + }, + "upTime" : { + "type" : "integer", + "format" : "int64" + }, + "lastEnterTime" : { + "type" : "integer", + "format" : "int64" + }, + "lastStart" : { + "type" : "integer", + "format" : "int64" + } + } + }, + "PdpStatistics" : { + "type" : "object", + "properties" : { + "pdpInstanceId" : { + "type" : "string" + }, + "timeStamp" : { + "type" : "integer", + "format" : "int64" + }, + "generatedId" : { + "type" : "integer", + "format" : "int64" + }, + "pdpGroupName" : { + "type" : "string" + }, + "pdpSubGroupName" : { + "type" : "string" + }, + "policyExecutedCount" : { + "type" : "integer", + "format" : "int64" + }, + "policyExecutedSuccessCount" : { + "type" : "integer", + "format" : "int64" + }, + "policyExecutedFailCount" : { + "type" : "integer", + "format" : "int64" + }, + "policyDeployCount" : { + "type" : "integer", + "format" : "int64" + }, + "policyDeploySuccessCount" : { + "type" : "integer", + "format" : "int64" + }, + "policyDeployFailCount" : { + "type" : "integer", + "format" : "int64" + }, + "policyUndeployCount" : { + "type" : "integer", + "format" : "int64" + }, + "policyUndeploySuccessCount" : { + "type" : "integer", + "format" : "int64" + }, + "policyUndeployFailCount" : { + "type" : "integer", + "format" : "int64" + }, + "engineStats" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/PdpEngineWorkerStatistics" + } + } + } + }, + "TopicSource" : { + "type" : "object", + "properties" : { + "effectiveTopic" : { + "type" : "string" + }, + "recentEvents" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "topic" : { + "type" : "string" + }, + "servers" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "topicCommInfrastructure" : { + "type" : "string", + "enum" : [ "UEB", "DMAAP", "KAFKA", "NOOP", "REST" ] + }, + "alive" : { + "type" : "boolean" + }, + "locked" : { + "type" : "boolean" + } + } + }, + "ToscaEntityKey" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string" + }, + "version" : { + "type" : "string" + } + } + }, + "ToscaPolicy" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string" + }, + "version" : { + "type" : "string" + }, + "derived_from" : { + "type" : "string" + }, + "metadata" : { + "type" : "object", + "additionalProperties" : { + "type" : "object", + "properties" : { } + } + }, + "description" : { + "type" : "string" + }, + "type" : { + "type" : "string" + }, + "type_version" : { + "type" : "string" + }, + "properties" : { + "type" : "object", + "additionalProperties" : { + "type" : "object", + "properties" : { } + } + }, + "identifier" : { + "$ref" : "#/components/schemas/ToscaConceptIdentifier" + }, + "typeIdentifier" : { + "$ref" : "#/components/schemas/ToscaConceptIdentifier" + }, + "definedName" : { + "type" : "string" + }, + "definedVersion" : { + "type" : "string" + }, + "key" : { + "$ref" : "#/components/schemas/ToscaEntityKey" + } + } + }, + "Agenda" : { + "type" : "object" + }, + "AgendaEventListener" : { + "type" : "object" + }, + "Annotation" : { + "type" : "object" + }, + "Calendars" : { + "type" : "object" + }, + "Channel" : { + "type" : "object" + }, + "ClassLoader" : { + "type" : "object", + "properties" : { + "parent" : { + "$ref" : "#/components/schemas/ClassLoader" + }, + "name" : { + "type" : "string" + }, + "unnamedModule" : { + "$ref" : "#/components/schemas/Module" + }, + "registeredAsParallelCapable" : { + "type" : "boolean" + }, + "definedPackages" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Package" + } + } + } + }, + "DomainMaker" : { + "type" : "object" + }, + "DroolsController" : { + "type" : "object", + "properties" : { + "baseDomainNames" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "recentSourceEvents" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { } + } + }, + "recentSinkEvents" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "sessionNames" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "container" : { + "$ref" : "#/components/schemas/PolicyContainer" + }, + "artifactId" : { + "type" : "string" + }, + "groupId" : { + "type" : "string" + }, + "brained" : { + "type" : "boolean" + }, + "canonicalSessionNames" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "version" : { + "type" : "string" + }, + "alive" : { + "type" : "boolean" + }, + "locked" : { + "type" : "boolean" + } + } + }, + "EntryPoint" : { + "type" : "object", + "properties" : { + "entryPointId" : { + "type" : "string" + }, + "objects" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { } + } + }, + "factHandles" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/FactHandle" + } + }, + "factCount" : { + "type" : "integer", + "format" : "int64" + } + } + }, + "Environment" : { + "type" : "object" + }, + "FactField" : { + "type" : "object", + "properties" : { + "fieldAnnotations" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Annotation" + } + }, + "metaData" : { + "type" : "object", + "additionalProperties" : { + "type" : "object", + "properties" : { } + } + }, + "key" : { + "type" : "boolean" + }, + "name" : { + "type" : "string" + }, + "index" : { + "type" : "integer", + "format" : "int32" + } + } + }, + "FactHandle" : { + "type" : "object" + }, + "FactType" : { + "type" : "object", + "properties" : { + "metaData" : { + "type" : "object", + "additionalProperties" : { + "type" : "object", + "properties" : { } + } + }, + "superClass" : { + "type" : "string" + }, + "classAnnotations" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Annotation" + } + }, + "name" : { + "type" : "string" + }, + "packageName" : { + "type" : "string" + }, + "simpleName" : { + "type" : "string" + }, + "fields" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/FactField" + } + } + } + }, + "Global" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string" + }, + "type" : { + "type" : "string" + } + } + }, + "Globals" : { + "type" : "object", + "properties" : { + "globalKeys" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + } + }, + "HttpServletServer" : { + "type" : "object", + "properties" : { + "prometheus" : { + "type" : "boolean" + }, + "aaf" : { + "type" : "boolean" + }, + "name" : { + "type" : "string" + }, + "port" : { + "type" : "integer", + "format" : "int32" + }, + "alive" : { + "type" : "boolean" + } + } + }, + "InputStream" : { + "type" : "object" + }, + "KieBase" : { + "type" : "object", + "properties" : { + "processes" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Process" + } + }, + "kieSessions" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/KieSession" + } + }, + "entryPointIds" : { + "uniqueItems" : true, + "type" : "array", + "items" : { + "type" : "string" + } + }, + "kiePackages" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/KiePackage" + } + }, + "kieBaseEventListeners" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/KieBaseEventListener" + } + } + } + }, + "KieBaseEventListener" : { + "type" : "object" + }, + "KieContainer" : { + "type" : "object", + "properties" : { + "kieSessionConfiguration" : { + "$ref" : "#/components/schemas/KieSessionConfiguration" + }, + "releaseId" : { + "$ref" : "#/components/schemas/ReleaseId" + }, + "kieBase" : { + "$ref" : "#/components/schemas/KieBase" + }, + "kieBaseNames" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "classLoader" : { + "$ref" : "#/components/schemas/ClassLoader" + } + } + }, + "KiePackage" : { + "type" : "object", + "properties" : { + "processes" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Process" + } + }, + "factTypes" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/FactType" + } + }, + "queries" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Query" + } + }, + "functionNames" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "globalVariables" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Global" + } + }, + "rules" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Rule" + } + }, + "name" : { + "type" : "string" + } + } + }, + "KieRuntimeLogger" : { + "type" : "object" + }, + "KieSession" : { + "type" : "object", + "properties" : { + "identifier" : { + "type" : "integer", + "format" : "int64" + }, + "id" : { + "type" : "integer", + "format" : "int32" + }, + "globals" : { + "$ref" : "#/components/schemas/Globals" + }, + "kieBase" : { + "$ref" : "#/components/schemas/KieBase" + }, + "sessionClock" : { + "$ref" : "#/components/schemas/SessionClock" + }, + "sessionConfiguration" : { + "$ref" : "#/components/schemas/KieSessionConfiguration" + }, + "calendars" : { + "$ref" : "#/components/schemas/Calendars" + }, + "channels" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/components/schemas/Channel" + } + }, + "environment" : { + "$ref" : "#/components/schemas/Environment" + }, + "agenda" : { + "$ref" : "#/components/schemas/Agenda" + }, + "entryPoints" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntryPoint" + } + }, + "entryPointId" : { + "type" : "string" + }, + "objects" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { } + } + }, + "factHandles" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/FactHandle" + } + }, + "factCount" : { + "type" : "integer", + "format" : "int64" + }, + "processInstances" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ProcessInstance" + } + }, + "workItemManager" : { + "$ref" : "#/components/schemas/WorkItemManager" + }, + "logger" : { + "$ref" : "#/components/schemas/KieRuntimeLogger" + }, + "ruleRuntimeEventListeners" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/RuleRuntimeEventListener" + } + }, + "agendaEventListeners" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/AgendaEventListener" + } + }, + "processEventListeners" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ProcessEventListener" + } + } + } + }, + "KieSessionConfiguration" : { + "type" : "object" + }, + "Module" : { + "type" : "object", + "properties" : { + "layer" : { + "$ref" : "#/components/schemas/ModuleLayer" + }, + "name" : { + "type" : "string" + }, + "descriptor" : { + "$ref" : "#/components/schemas/ModuleDescriptor" + }, + "classLoader" : { + "$ref" : "#/components/schemas/ClassLoader" + }, + "annotations" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Annotation" + } + }, + "declaredAnnotations" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Annotation" + } + }, + "named" : { + "type" : "boolean" + }, + "packages" : { + "uniqueItems" : true, + "type" : "array", + "items" : { + "type" : "string" + } + } + } + }, + "ModuleDescriptor" : { + "type" : "object", + "properties" : { + "open" : { + "type" : "boolean" + }, + "automatic" : { + "type" : "boolean" + } + } + }, + "ModuleLayer" : { + "type" : "object" + }, + "Package" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string" + }, + "specificationTitle" : { + "type" : "string" + }, + "specificationVersion" : { + "type" : "string" + }, + "specificationVendor" : { + "type" : "string" + }, + "implementationTitle" : { + "type" : "string" + }, + "implementationVersion" : { + "type" : "string" + }, + "implementationVendor" : { + "type" : "string" + }, + "annotations" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Annotation" + } + }, + "declaredAnnotations" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Annotation" + } + }, + "sealed" : { + "type" : "boolean" + } + } + }, + "PolicyContainer" : { + "type" : "object", + "properties" : { + "kieContainer" : { + "$ref" : "#/components/schemas/KieContainer" + }, + "policySessions" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/PolicySession" + } + }, + "artifactId" : { + "type" : "string" + }, + "groupId" : { + "type" : "string" + }, + "version" : { + "type" : "string" + }, + "name" : { + "type" : "string" + }, + "classLoader" : { + "$ref" : "#/components/schemas/ClassLoader" + }, + "alive" : { + "type" : "boolean" + } + } + }, + "PolicyController" : { + "type" : "object", + "properties" : { + "topicSources" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TopicSource" + } + }, + "policyTypes" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ToscaConceptIdentifier" + } + }, + "topicSinks" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TopicSink" + } + }, + "drools" : { + "$ref" : "#/components/schemas/DroolsController" + }, + "name" : { + "type" : "string" + }, + "properties" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + }, + "alive" : { + "type" : "boolean" + }, + "locked" : { + "type" : "boolean" + } + } + }, + "PolicyEngine" : { + "type" : "object", + "properties" : { + "httpServers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/HttpServletServer" + } + }, + "policyControllers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/PolicyController" + } + }, + "policyControllerIds" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "featureProviders" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/PolicyEngineFeatureApi" + } + }, + "features" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "domainMaker" : { + "$ref" : "#/components/schemas/DomainMaker" + }, + "stats" : { + "$ref" : "#/components/schemas/PolicyStatsManager" + }, + "environment" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + }, + "clusterName" : { + "type" : "string" + }, + "pdpName" : { + "type" : "string" + }, + "sources" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TopicSource" + } + }, + "sinks" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TopicSink" + } + }, + "executorService" : { + "$ref" : "#/components/schemas/ScheduledExecutorService" + }, + "properties" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + }, + "hostName" : { + "type" : "string" + }, + "alive" : { + "type" : "boolean" + }, + "locked" : { + "type" : "boolean" + } + } + }, + "PolicyEngineFeatureApi" : { + "type" : "object", + "properties" : { + "sequenceNumber" : { + "type" : "integer", + "format" : "int32" + }, + "name" : { + "type" : "string" + } + } + }, + "PolicySession" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string" + }, + "container" : { + "$ref" : "#/components/schemas/PolicyContainer" + }, + "kieSession" : { + "$ref" : "#/components/schemas/KieSession" + }, + "fullName" : { + "type" : "string" + } + } + }, + "PolicyStats" : { + "type" : "object", + "properties" : { + "policyExecutedCount" : { + "type" : "integer", + "format" : "int64" + }, + "policyExecutedSuccessCount" : { + "type" : "integer", + "format" : "int64" + }, + "policyExecutedFailCount" : { + "type" : "integer", + "format" : "int64" + }, + "lastExecutionTime" : { + "type" : "integer", + "format" : "int64" + }, + "averageExecutionTime" : { + "type" : "number", + "format" : "double" + }, + "totalElapsedTime" : { + "type" : "number", + "format" : "double" + }, + "birthTime" : { + "type" : "integer", + "format" : "int64" + }, + "lastStart" : { + "type" : "integer", + "format" : "int64" + } + } + }, + "PolicyStatsManager" : { + "type" : "object", + "properties" : { + "groupStat" : { + "$ref" : "#/components/schemas/PolicyStats" + }, + "subgroupStats" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/components/schemas/PolicyStats" + } + } + } + }, + "Process" : { + "type" : "object", + "properties" : { + "resource" : { + "$ref" : "#/components/schemas/Resource" + }, + "metaData" : { + "type" : "object", + "additionalProperties" : { + "type" : "object", + "properties" : { } + } + }, + "version" : { + "type" : "string" + }, + "name" : { + "type" : "string" + }, + "packageName" : { + "type" : "string" + }, + "id" : { + "type" : "string" + }, + "type" : { + "type" : "string" + }, + "knowledgeType" : { + "type" : "string", + "enum" : [ "RULE", "TYPE", "WINDOW", "ENUM", "PROCESS", "FUNCTION", "QUERY" ] + }, + "namespace" : { + "type" : "string" + } + } + }, + "ProcessEventListener" : { + "type" : "object" + }, + "ProcessInstance" : { + "type" : "object", + "properties" : { + "parentProcessInstanceId" : { + "type" : "integer", + "format" : "int64" + }, + "processName" : { + "type" : "string" + }, + "process" : { + "$ref" : "#/components/schemas/Process" + }, + "processId" : { + "type" : "string" + }, + "id" : { + "type" : "integer", + "format" : "int64" + }, + "state" : { + "type" : "integer", + "format" : "int32" + }, + "eventTypes" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + } + }, + "Query" : { + "type" : "object", + "properties" : { + "metaData" : { + "type" : "object", + "additionalProperties" : { + "type" : "object", + "properties" : { } + } + }, + "name" : { + "type" : "string" + }, + "packageName" : { + "type" : "string" + }, + "knowledgeType" : { + "type" : "string", + "enum" : [ "RULE", "TYPE", "WINDOW", "ENUM", "PROCESS", "FUNCTION", "QUERY" ] + }, + "namespace" : { + "type" : "string" + }, + "id" : { + "type" : "string" + } + } + }, + "Reader" : { + "type" : "object" + }, + "ReleaseId" : { + "type" : "object", + "properties" : { + "artifactId" : { + "type" : "string" + }, + "groupId" : { + "type" : "string" + }, + "snapshot" : { + "type" : "boolean" + }, + "version" : { + "type" : "string" + } + } + }, + "Resource" : { + "type" : "object", + "properties" : { + "configuration" : { + "$ref" : "#/components/schemas/ResourceConfiguration" + }, + "targetPath" : { + "type" : "string" + }, + "resourceType" : { + "$ref" : "#/components/schemas/ResourceType" + }, + "sourcePath" : { + "type" : "string" + }, + "reader" : { + "$ref" : "#/components/schemas/Reader" + }, + "inputStream" : { + "$ref" : "#/components/schemas/InputStream" + } + } + }, + "ResourceConfiguration" : { + "type" : "object" + }, + "ResourceType" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string" + }, + "description" : { + "type" : "string" + }, + "defaultExtension" : { + "type" : "string" + }, + "defaultPath" : { + "type" : "string" + }, + "fullyCoveredByExecModel" : { + "type" : "boolean" + }, + "allExtensions" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + } + }, + "Rule" : { + "type" : "object", + "properties" : { + "metaData" : { + "type" : "object", + "additionalProperties" : { + "type" : "object", + "properties" : { } + } + }, + "name" : { + "type" : "string" + }, + "packageName" : { + "type" : "string" + }, + "knowledgeType" : { + "type" : "string", + "enum" : [ "RULE", "TYPE", "WINDOW", "ENUM", "PROCESS", "FUNCTION", "QUERY" ] + }, + "namespace" : { + "type" : "string" + }, + "id" : { + "type" : "string" + } + } + }, + "RuleRuntimeEventListener" : { + "type" : "object" + }, + "ScheduledExecutorService" : { + "type" : "object", + "properties" : { + "terminated" : { + "type" : "boolean" + }, + "shutdown" : { + "type" : "boolean" + } + } + }, + "SessionClock" : { + "type" : "object", + "properties" : { + "currentTime" : { + "type" : "integer", + "format" : "int64" + } + } + }, + "WorkItemManager" : { + "type" : "object" + }, + "PolicyControllerFeatureApi" : { + "type" : "object", + "properties" : { + "sequenceNumber" : { + "type" : "integer", + "format" : "int32" + }, + "name" : { + "type" : "string" + } + } + }, + "ControllerConfiguration" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string" + }, + "operation" : { + "type" : "string" + }, + "drools" : { + "$ref" : "#/components/schemas/DroolsConfiguration" + }, + "additionalProperties" : { + "type" : "object", + "additionalProperties" : { + "type" : "object", + "properties" : { } + } + } + } + }, + "DroolsConfiguration" : { + "type" : "object", + "properties" : { + "artifactId" : { + "type" : "string" + }, + "groupId" : { + "type" : "string" + }, + "version" : { + "type" : "string" + }, + "additionalProperties" : { + "type" : "object", + "additionalProperties" : { + "type" : "object", + "properties" : { } + } + } + } + }, + "CoderFilters" : { + "type" : "object", + "properties" : { + "factClass" : { + "type" : "string" + }, + "filter" : { + "$ref" : "#/components/schemas/JsonProtocolFilter" + }, + "modelClassLoaderHash" : { + "type" : "integer", + "format" : "int32" + } + } + }, + "CustomCoder" : { + "type" : "object", + "properties" : { + "classContainer" : { + "type" : "string" + }, + "staticCoderField" : { + "type" : "string" + } + } + }, + "JsonProtocolFilter" : { + "type" : "object", + "properties" : { + "rule" : { + "type" : "string" + } + } + }, + "ProtocolCoderToolset" : { + "type" : "object", + "properties" : { + "topic" : { + "type" : "string" + }, + "controllerId" : { + "type" : "string" + }, + "groupId" : { + "type" : "string" + }, + "artifactId" : { + "type" : "string" + }, + "coders" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/CoderFilters" + } + }, + "customCoder" : { + "$ref" : "#/components/schemas/CustomCoder" + } + } + }, + "DmaapTopicSink" : { + "type" : "object", + "properties" : { + "partitionKey" : { + "type" : "string" + }, + "apiKey" : { + "type" : "string" + }, + "apiSecret" : { + "type" : "string" + }, + "effectiveTopic" : { + "type" : "string" + }, + "recentEvents" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "topic" : { + "type" : "string" + }, + "servers" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "topicCommInfrastructure" : { + "type" : "string", + "enum" : [ "UEB", "DMAAP", "KAFKA", "NOOP", "REST" ] + }, + "alive" : { + "type" : "boolean" + }, + "locked" : { + "type" : "boolean" + } + } + }, + "DmaapTopicSource" : { + "type" : "object", + "properties" : { + "consumerInstance" : { + "type" : "string" + }, + "consumerGroup" : { + "type" : "string" + }, + "fetchTimeout" : { + "type" : "integer", + "format" : "int32" + }, + "fetchLimit" : { + "type" : "integer", + "format" : "int32" + }, + "apiKey" : { + "type" : "string" + }, + "apiSecret" : { + "type" : "string" + }, + "effectiveTopic" : { + "type" : "string" + }, + "recentEvents" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "topic" : { + "type" : "string" + }, + "servers" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "topicCommInfrastructure" : { + "type" : "string", + "enum" : [ "UEB", "DMAAP", "KAFKA", "NOOP", "REST" ] + }, + "alive" : { + "type" : "boolean" + }, + "locked" : { + "type" : "boolean" + } + } + }, + "KafkaTopicSink" : { + "type" : "object", + "properties" : { + "partitionKey" : { + "type" : "string" + }, + "apiKey" : { + "type" : "string" + }, + "apiSecret" : { + "type" : "string" + }, + "effectiveTopic" : { + "type" : "string" + }, + "recentEvents" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "topic" : { + "type" : "string" + }, + "servers" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "topicCommInfrastructure" : { + "type" : "string", + "enum" : [ "UEB", "DMAAP", "KAFKA", "NOOP", "REST" ] + }, + "alive" : { + "type" : "boolean" + }, + "locked" : { + "type" : "boolean" + } + } + }, + "KafkaTopicSource" : { + "type" : "object", + "properties" : { + "consumerInstance" : { + "type" : "string" + }, + "consumerGroup" : { + "type" : "string" + }, + "fetchTimeout" : { + "type" : "integer", + "format" : "int32" + }, + "fetchLimit" : { + "type" : "integer", + "format" : "int32" + }, + "apiKey" : { + "type" : "string" + }, + "apiSecret" : { + "type" : "string" + }, + "effectiveTopic" : { + "type" : "string" + }, + "recentEvents" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "topic" : { + "type" : "string" + }, + "servers" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "topicCommInfrastructure" : { + "type" : "string", + "enum" : [ "UEB", "DMAAP", "KAFKA", "NOOP", "REST" ] + }, + "alive" : { + "type" : "boolean" + }, + "locked" : { + "type" : "boolean" + } + } + }, + "NoopTopicSink" : { + "type" : "object", + "properties" : { + "servers" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "topic" : { + "type" : "string" + }, + "effectiveTopic" : { + "type" : "string" + }, + "recentEvents" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "alive" : { + "type" : "boolean" + }, + "locked" : { + "type" : "boolean" + }, + "topicCommInfrastructure" : { + "type" : "string", + "enum" : [ "UEB", "DMAAP", "KAFKA", "NOOP", "REST" ] + } + } + }, + "NoopTopicSource" : { + "type" : "object", + "properties" : { + "servers" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "topic" : { + "type" : "string" + }, + "effectiveTopic" : { + "type" : "string" + }, + "recentEvents" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "alive" : { + "type" : "boolean" + }, + "locked" : { + "type" : "boolean" + }, + "topicCommInfrastructure" : { + "type" : "string", + "enum" : [ "UEB", "DMAAP", "KAFKA", "NOOP", "REST" ] + } + } + }, + "TopicEndpoint" : { + "type" : "object", + "properties" : { + "uebTopicSources" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/UebTopicSource" + } + }, + "uebTopicSinks" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/UebTopicSink" + } + }, + "dmaapTopicSinks" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/DmaapTopicSink" + } + }, + "kafkaTopicSinks" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/KafkaTopicSink" + } + }, + "noopTopicSinks" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/NoopTopicSink" + } + }, + "dmaapTopicSources" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/DmaapTopicSource" + } + }, + "kafkaTopicSources" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/KafkaTopicSource" + } + }, + "noopTopicSources" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/NoopTopicSource" + } + }, + "topicSources" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TopicSource" + } + }, + "topicSinks" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TopicSink" + } + }, + "alive" : { + "type" : "boolean" + }, + "locked" : { + "type" : "boolean" + } + } + }, + "UebTopicSink" : { + "type" : "object", + "properties" : { + "partitionKey" : { + "type" : "string" + }, + "apiKey" : { + "type" : "string" + }, + "apiSecret" : { + "type" : "string" + }, + "effectiveTopic" : { + "type" : "string" + }, + "recentEvents" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "topic" : { + "type" : "string" + }, + "servers" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "topicCommInfrastructure" : { + "type" : "string", + "enum" : [ "UEB", "DMAAP", "KAFKA", "NOOP", "REST" ] + }, + "alive" : { + "type" : "boolean" + }, + "locked" : { + "type" : "boolean" + } + } + }, + "UebTopicSource" : { + "type" : "object", + "properties" : { + "consumerInstance" : { + "type" : "string" + }, + "consumerGroup" : { + "type" : "string" + }, + "fetchTimeout" : { + "type" : "integer", + "format" : "int32" + }, + "fetchLimit" : { + "type" : "integer", + "format" : "int32" + }, + "apiKey" : { + "type" : "string" + }, + "apiSecret" : { + "type" : "string" + }, + "effectiveTopic" : { + "type" : "string" + }, + "recentEvents" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "topic" : { + "type" : "string" + }, + "servers" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "topicCommInfrastructure" : { + "type" : "string", + "enum" : [ "UEB", "DMAAP", "KAFKA", "NOOP", "REST" ] + }, + "alive" : { + "type" : "boolean" + }, + "locked" : { + "type" : "boolean" + } + } + }, + "PdpdConfiguration" : { + "type" : "object", + "properties" : { + "requestId" : { + "type" : "string" + }, + "entity" : { + "type" : "string" + }, + "controllers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ControllerConfiguration" + } + }, + "additionalProperties" : { + "type" : "object", + "additionalProperties" : { + "type" : "object", + "properties" : { } + } + } + } + }, + "CodingResult" : { + "type" : "object", + "properties" : { + "jsonEncoding" : { + "type" : "string" + }, + "encoding" : { + "type" : "boolean" + }, + "decoding" : { + "type" : "boolean" + } + } + }, + "Response" : { + "type" : "object" + }, + "Properties" : { + "type" : "object" + } + } + } +}
\ No newline at end of file diff --git a/policy-management/src/main/server-gen/bin/telemetry b/policy-management/src/main/server-gen/bin/telemetry index 1ded3326..d369e5bf 100644 --- a/policy-management/src/main/server-gen/bin/telemetry +++ b/policy-management/src/main/server-gen/bin/telemetry @@ -52,7 +52,7 @@ fi if [ ! -r "${TELEMETRY_SPEC}" ]; then echo "generating new spec .." - if ! http --verify=no ${CREDENTIALS} "${PROTOCOL}"://localhost:9696/swagger.json >${TELEMETRY_SPEC} 2>/dev/null; then + if ! http --verify=no ${CREDENTIALS} "${PROTOCOL}"://localhost:9696/policy/pdp/engine/swagger >${TELEMETRY_SPEC} 2>/dev/null; then echo "error: cannot generate telemetry spec" rm -f ${TELEMETRY_SPEC} 2>/dev/null exit 3 diff --git a/policy-management/src/test/java/org/onap/policy/drools/server/restful/test/RestManagerTest.java b/policy-management/src/test/java/org/onap/policy/drools/server/restful/test/RestManagerTest.java index feeb25ed..b8561c5c 100644 --- a/policy-management/src/test/java/org/onap/policy/drools/server/restful/test/RestManagerTest.java +++ b/policy-management/src/test/java/org/onap/policy/drools/server/restful/test/RestManagerTest.java @@ -337,6 +337,17 @@ public class RestManagerTest { } @Test + public void testGetSwagger() throws IOException { + HttpGet httpGet; + CloseableHttpResponse response; + httpGet = new HttpGet(HOST_URL + "/engine/swagger"); + response = client.execute(httpGet); + logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode()); + assertEquals(200, response.getStatusLine().getStatusCode()); + httpGet.releaseConnection(); + } + + @Test public void testGet() throws IOException { HttpGet httpGet; CloseableHttpResponse response; |