Moving and Renaming eexisting subscription impl
[cps.git] / cps-ncmp-service / src / main / java / org / onap / cps / ncmp / api / impl / yangmodels / YangModelSubscriptionEvent.java
1 /*
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
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
22 package org.onap.cps.ncmp.api.impl.yangmodels;
23
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;
29 import lombok.Data;
30 import lombok.EqualsAndHashCode;
31 import lombok.Getter;
32 import lombok.NoArgsConstructor;
33 import lombok.Setter;
34 import org.onap.cps.ncmp.api.impl.deprecated.subscriptions.SubscriptionStatus;
35
36 /**
37  * Subscription event model to persist data into DB.
38  * Yang model subscription event
39  */
40 @Getter
41 @Setter
42 @NoArgsConstructor
43 @JsonInclude(Include.NON_NULL)
44 @EqualsAndHashCode(onlyExplicitlyIncluded = true)
45 public class YangModelSubscriptionEvent {
46
47     @EqualsAndHashCode.Include
48     @JsonProperty("clientID")
49     private String clientId;
50
51     @EqualsAndHashCode.Include
52     @JsonProperty("subscriptionName")
53     private String subscriptionName;
54
55     private String topic;
56
57     @JsonProperty("isTagged")
58     private boolean isTagged;
59
60     private Predicates predicates;
61
62
63     @Data
64     @JsonInclude(JsonInclude.Include.NON_NULL)
65     public static class Predicates {
66
67         private String datastore;
68
69         private List<TargetCmHandle> targetCmHandles;
70
71     }
72
73     @AllArgsConstructor
74     @Data
75     @JsonInclude(JsonInclude.Include.NON_NULL)
76     public static class TargetCmHandle {
77
78         @JsonProperty()
79         private final String cmHandleId;
80
81         @JsonProperty()
82         private final SubscriptionStatus status;
83
84         @JsonProperty()
85         private final String details;
86
87         /**
88          * Constructor with single parameter for TargetCmHandle.
89          *
90          * @param cmHandleId as cm handle id
91          */
92         public TargetCmHandle(final String cmHandleId) {
93             this.cmHandleId = cmHandleId;
94             this.status = SubscriptionStatus.PENDING;
95             this.details = "Subscription forwarded to dmi plugin";
96         }
97     }
98 }
99
100