bf1d24a74f8d1e70642fc6c4e69ccbe0e2d3941b
[policy/clamp.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2021,2023 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.acm.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.acm.participant.policy.main.parameters.ParticipantPolicyParameters;
27 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
28 import org.springframework.stereotype.Component;
29
30 @Component
31 public class PolicyApiHttpClient extends AbstractHttpClient {
32
33     private static final String POLICY_URI = "/policy/api/v1/";
34
35     /**
36      * Constructor.
37      *
38      * @param parameters the policy participant parameters
39      */
40     public PolicyApiHttpClient(ParticipantPolicyParameters parameters) {
41         super(parameters.getPolicyApiParameters());
42     }
43
44     /**
45      * Create Policy Types.
46      *
47      * @param toscaServiceTemplate the whole ToscaServiceTemplate
48      * @return Response
49      */
50     public Response createPolicyType(ToscaServiceTemplate toscaServiceTemplate) {
51         return executePost(POLICY_URI + "policytypes", Entity.entity(toscaServiceTemplate, MediaType.APPLICATION_JSON));
52     }
53
54     /**
55      * Create Policies.
56      *
57      * @param toscaServiceTemplate the whole ToscaServiceTemplate
58      * @return Response
59      */
60     public Response createPolicy(final ToscaServiceTemplate toscaServiceTemplate) {
61         return executePost(POLICY_URI + "policies", Entity.entity(toscaServiceTemplate, MediaType.APPLICATION_JSON));
62     }
63
64     /**
65      * Delete Policies.
66      *
67      * @param policyName the name of the policy to be deleted
68      * @param policyVersion the version of the policy to be deleted
69      * @return Response
70      */
71     public Response deletePolicy(final String policyName, final String policyVersion) {
72         return executeDelete(POLICY_URI + "policies/" + policyName + "/versions/" + policyVersion);
73     }
74
75     /**
76      * Delete Policy types.
77      *
78      * @param policyTypeName the name of the policy to be deleted
79      * @param policyTypeVersion the version of the policy to be deleted
80      * @return Response
81      */
82     public Response deletePolicyType(final String policyTypeName, final String policyTypeVersion) {
83         return executeDelete(POLICY_URI + "policytypes/" + policyTypeName + "/versions/" + policyTypeVersion);
84     }
85 }