3d1047ce4e88bb5078cab540836153c201f221ed
[policy/clamp.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2021 Nordix Foundation.
4  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.policy.clamp.controlloop.participant.policy.client;
22
23 import javax.ws.rs.client.Entity;
24 import javax.ws.rs.core.MediaType;
25 import javax.ws.rs.core.Response;
26 import org.onap.policy.clamp.controlloop.participant.policy.main.parameters.ParticipantPolicyParameters;
27 import org.onap.policy.models.base.PfModelException;
28 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
29 import org.springframework.stereotype.Component;
30
31 @Component
32 public class PolicyApiHttpClient extends AbstractHttpClient {
33
34     private static final String POLICY_URI = "/policy/api/v1/";
35
36     /**
37      * Constructor.
38      */
39     public PolicyApiHttpClient(ParticipantPolicyParameters parameters) {
40         super(parameters.getPolicyApiParameters());
41     }
42
43     /**
44      * Create Policy Types.
45      *
46      * @param toscaServiceTemplate the whole ToscaServiceTemplate
47      * @return Response
48      */
49     public Response createPolicyType(ToscaServiceTemplate toscaServiceTemplate) throws PfModelException {
50         return executePost(POLICY_URI + "policytypes", Entity.entity(toscaServiceTemplate, MediaType.APPLICATION_JSON));
51     }
52
53     /**
54      * Create Policies.
55      *
56      * @param toscaServiceTemplate the whole ToscaServiceTemplate
57      * @return Response
58      */
59     public Response createPolicy(final ToscaServiceTemplate toscaServiceTemplate) {
60         return executePost(POLICY_URI + "policies", Entity.entity(toscaServiceTemplate, MediaType.APPLICATION_JSON));
61     }
62
63     /**
64      * Delete Policies.
65      *
66      * @param policyName the name of the policy to be deleted
67      * @param policyVersion the version of the policy to be deleted
68      * @return Response
69      */
70     public Response deletePolicy(final String policyName, final String policyVersion) {
71         return executeDelete(POLICY_URI + "policies/" + policyName + "/versions/" + policyVersion);
72     }
73
74     /**
75      * Delete Policy types.
76      *
77      * @param policyTypeName the name of the policy to be deleted
78      * @param policyTypeVersion the version of the policy to be deleted
79      * @return Response
80      */
81     public Response deletePolicyType(final String policyTypeName, final String policyTypeVersion) {
82         return executeDelete(POLICY_URI + "policytypes/" + policyTypeName + "/versions/" + policyTypeVersion);
83     }
84 }