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.deprecated.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";