From ada98e3bfe5906f238a058c4ef056603dd0dbe63 Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Mon, 14 Oct 2019 11:34:15 -0400 Subject: Add PAP Policy Notification classes Added classes that PAP will use to publish to DMaaP to indicate policy status changes (i.e., added/removed from PDPs). Modified serialized name of the policy identified to match other uses (e.g., PAP REST API calls). Added policy type, per review comments. Change-Id: I66131fa9ae0b63081f239e7f402b7fea65c434a5 Issue-ID: POLICY-1841 Signed-off-by: Jim Hahn --- .../models/pap/concepts/PolicyNotification.java | 48 +++++++++++++++++ .../policy/models/pap/concepts/PolicyStatus.java | 60 ++++++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 models-pap/src/main/java/org/onap/policy/models/pap/concepts/PolicyNotification.java create mode 100644 models-pap/src/main/java/org/onap/policy/models/pap/concepts/PolicyStatus.java (limited to 'models-pap/src/main') diff --git a/models-pap/src/main/java/org/onap/policy/models/pap/concepts/PolicyNotification.java b/models-pap/src/main/java/org/onap/policy/models/pap/concepts/PolicyNotification.java new file mode 100644 index 000000000..a9c22c463 --- /dev/null +++ b/models-pap/src/main/java/org/onap/policy/models/pap/concepts/PolicyNotification.java @@ -0,0 +1,48 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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. + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.models.pap.concepts; + +import com.google.gson.annotations.SerializedName; +import java.util.ArrayList; +import java.util.List; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +public class PolicyNotification { + + /** + * Status of policies that are being added to PDPs. + */ + @SerializedName("added-policies") + private List added = new ArrayList<>(); + + /** + * Status of policies that are being deleted from PDPs. + */ + @SerializedName("deleted-policies") + private List deleted = new ArrayList<>(); + + + public PolicyNotification(List added, List deleted) { + this.added = added; + this.deleted = deleted; + } +} diff --git a/models-pap/src/main/java/org/onap/policy/models/pap/concepts/PolicyStatus.java b/models-pap/src/main/java/org/onap/policy/models/pap/concepts/PolicyStatus.java new file mode 100644 index 000000000..56d6c6909 --- /dev/null +++ b/models-pap/src/main/java/org/onap/policy/models/pap/concepts/PolicyStatus.java @@ -0,0 +1,60 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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. + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.models.pap.concepts; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyIdentifier; +import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier; + +@Data +@NoArgsConstructor +public class PolicyStatus { + + @SerializedName("policy-type") + private ToscaPolicyTypeIdentifier policyType; + + @SerializedName("policy") + private ToscaPolicyIdentifier policy; + + /** + * Number of PDPs that have successfully added/deleted the policy. + */ + @SerializedName("success-count") + private int successCount = 0; + + /** + * Number of PDPs that were unable to add/delete the policy. + */ + @SerializedName("failure-count") + private int failureCount = 0; + + /** + * Number of PDPs that have not completed the add/delete operation. + */ + @SerializedName("incomplete-count") + private int incompleteCount = 0; + + + public PolicyStatus(ToscaPolicyTypeIdentifier policyType, ToscaPolicyIdentifier policy) { + this.policyType = policyType; + this.policy = policy; + } +} -- cgit 1.2.3-korg