46b66b06a70cc0c98c246864a7864d64ed830bc0
[policy/models.git] / models-interactions / model-simulators / src / main / java / org / onap / policy / simulators / GuardSimulatorJaxRs.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * simulators
4  * ================================================================================
5  * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
6  * Modifications Copyright (C) 2019 Nordix Foundation.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  */
21
22 package org.onap.policy.simulators;
23
24 import java.util.Collections;
25 import java.util.Map;
26
27 import javax.ws.rs.Consumes;
28 import javax.ws.rs.POST;
29 import javax.ws.rs.Path;
30 import javax.ws.rs.Produces;
31 import javax.ws.rs.core.MediaType;
32
33 import org.onap.policy.models.decisions.concepts.DecisionRequest;
34 import org.onap.policy.models.decisions.concepts.DecisionResponse;
35
36 @Path("/policy/pdpx/v1")
37 public class GuardSimulatorJaxRs {
38     public static final String DENY_CLNAME = "denyGuard";
39
40     /**
41      * Get a guard decision.
42      *
43      * @param req the request
44      * @return the response
45      */
46     @POST
47     @Path("/decision")
48     @Consumes(MediaType.APPLICATION_JSON)
49     @Produces("application/json")
50     public DecisionResponse getGuardDecision(DecisionRequest req) {
51         @SuppressWarnings("unchecked")
52         Map<String, String> guard = (Map<String, String>) req.getResource().get("guard");
53         String clName = guard.get("clname");
54         DecisionResponse response = new DecisionResponse();
55         if (DENY_CLNAME.equals(clName)) {
56             response.setStatus("Deny");
57             response.setAdvice(Collections.emptyMap());
58             response.setObligations(Collections.emptyMap());
59             response.setPolicies(Collections.emptyMap());
60             return response;
61         } else {
62             response.setStatus("Permit");
63             response.setAdvice(Collections.emptyMap());
64             response.setObligations(Collections.emptyMap());
65             response.setPolicies(Collections.emptyMap());
66             return response;
67         }
68     }
69 }