427f168ea6b6f18ce04c808ab1bf9cc614a9283a
[policy/models.git] / models-pap / src / main / java / org / onap / policy / models / pap / concepts / PolicyStatus.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
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  * ============LICENSE_END=========================================================
17  */
18
19 package org.onap.policy.models.pap.concepts;
20
21 import com.google.gson.annotations.SerializedName;
22 import lombok.Data;
23 import lombok.NoArgsConstructor;
24 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyIdentifier;
25 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier;
26
27 @Data
28 @NoArgsConstructor
29 public class PolicyStatus {
30
31     @SerializedName("policy-type")
32     private String policyTypeId;
33
34     @SerializedName("policy-type-version")
35     private String policyTypeVersion;
36
37     @SerializedName("policy-id")
38     private String policyId;
39
40     @SerializedName("policy-version")
41     private String policyVersion;
42
43     /**
44      * Number of PDPs that have successfully added/deleted the policy.
45      */
46     @SerializedName("success-count")
47     private int successCount = 0;
48
49     /**
50      * Number of PDPs that were unable to add/delete the policy.
51      */
52     @SerializedName("failure-count")
53     private int failureCount = 0;
54
55     /**
56      * Number of PDPs that have not completed the add/delete operation.
57      */
58     @SerializedName("incomplete-count")
59     private int incompleteCount = 0;
60
61
62     /**
63      * Constructs the object.
64      *
65      * @param policyType policy type, from which the name and version are to be extracted
66      * @param policy policy identifier, from which the name and version are to be
67      *        extracted
68      */
69     public PolicyStatus(ToscaPolicyTypeIdentifier policyType, ToscaPolicyIdentifier policy) {
70         this.policyTypeId = policyType.getName();
71         this.policyTypeVersion = policyType.getVersion();
72         this.policyId = policy.getName();
73         this.policyVersion = policy.getVersion();
74     }
75
76     public ToscaPolicyTypeIdentifier getPolicyType() {
77         return new ToscaPolicyTypeIdentifier(policyTypeId, policyTypeVersion);
78     }
79
80     public ToscaPolicyIdentifier getPolicy() {
81         return new ToscaPolicyIdentifier(policyId, policyVersion);
82     }
83 }