2 * ============LICENSE_START=======================================================
3 * Copyright (C) 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
9 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
22 package org.onap.cps.ncmp.api.impl.yangmodels;
24 import com.fasterxml.jackson.annotation.JsonInclude;
25 import com.fasterxml.jackson.annotation.JsonInclude.Include;
26 import com.fasterxml.jackson.annotation.JsonProperty;
27 import java.util.List;
28 import lombok.AllArgsConstructor;
30 import lombok.EqualsAndHashCode;
32 import lombok.NoArgsConstructor;
34 import org.onap.cps.ncmp.api.impl.subscriptions.SubscriptionStatus;
37 * Subscription event model to persist data into DB.
38 * Yang model subscription event
43 @JsonInclude(Include.NON_NULL)
44 @EqualsAndHashCode(onlyExplicitlyIncluded = true)
45 public class YangModelSubscriptionEvent {
47 @EqualsAndHashCode.Include
48 @JsonProperty("clientID")
49 private String clientId;
51 @EqualsAndHashCode.Include
52 @JsonProperty("subscriptionName")
53 private String subscriptionName;
57 @JsonProperty("isTagged")
58 private boolean isTagged;
60 private Predicates predicates;
64 @JsonInclude(JsonInclude.Include.NON_NULL)
65 public static class Predicates {
67 private String datastore;
69 private List<TargetCmHandle> targetCmHandles;
75 @JsonInclude(JsonInclude.Include.NON_NULL)
76 public static class TargetCmHandle {
79 private final String cmHandleId;
82 private final SubscriptionStatus status;
85 private final String details;
88 * Constructor with single parameter for TargetCmHandle.
90 * @param cmHandleId as cm handle id
92 public TargetCmHandle(final String cmHandleId) {
93 this.cmHandleId = cmHandleId;
94 this.status = SubscriptionStatus.PENDING;
95 this.details = "Subscription forwarded to dmi plugin";