aboutsummaryrefslogtreecommitdiffstats
path: root/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain
diff options
context:
space:
mode:
Diffstat (limited to 'dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain')
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/AlertAction.java32
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/AlertType.java44
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/BaseCEFModel.java39
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/CEFModel.java32
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/CommonEventHeader.java181
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/Criticality.java31
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/Domain.java41
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/Event.java61
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/EventListener.java45
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/EventSeverity.java36
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/Field.java53
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/InternalHeaderFields.java38
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/MeasurementsForVfScalingFields.java81
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/NamedArrayOfFields.java55
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/PerformanceCounter.java68
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/Priority.java34
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/ThresholdCrossingAlertFields.java158
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/VNicPerformance.java308
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/PolicyModel.java33
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/BaseTCAPolicyModel.java37
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/ClosedLoopEventStatus.java34
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/ControlLoopSchemaType.java33
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/Direction.java76
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/MetricsPerEventName.java115
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/TCAPolicy.java58
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/TCAPolicyModel.java35
-rw-r--r--dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/Threshold.java127
27 files changed, 1885 insertions, 0 deletions
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/AlertAction.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/AlertAction.java
new file mode 100644
index 0000000..09ff85a
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/AlertAction.java
@@ -0,0 +1,32 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.cef;
+
+/**
+ * Common Event Format Alert Action
+ *
+ * @author Rajiv Singla. Creation Date: 08/15/2017.
+ */
+public enum AlertAction implements CEFModel {
+
+ CLEAR, CONT, SET
+
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/AlertType.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/AlertType.java
new file mode 100644
index 0000000..f42c331
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/AlertType.java
@@ -0,0 +1,44 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.cef;
+
+/**
+ *
+ * @author Rajiv Singla. Creation Date: 08/15/2017.
+ */
+public enum AlertType implements CEFModel {
+
+ CARD_ANOMALY("CARD-ANOMALY"),
+ ELEMENT_ANOMALY("ELEMENT-ANOMALY"),
+ INTERFACE_ANOMALY("INTERFACE-ANOMALY"),
+ SERVICE_ANOMALY("SERVICE-ANOMALY"),
+ UNKNOWN(null);
+
+ private final String name;
+
+ AlertType(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/BaseCEFModel.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/BaseCEFModel.java
new file mode 100644
index 0000000..641db1e
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/BaseCEFModel.java
@@ -0,0 +1,39 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.cef;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.onap.dcae.apod.analytics.model.BaseDynamicPropertiesProvider;
+
+/**
+ * <p>
+ * Base CEF Model should be extended by all CEF Model Entities.
+ * By extending CEF Model all the additional dynamic Properties
+ * can be accumalated in a map.
+ * </p>
+ *
+ * @author Rajiv Singla. Creation Date: 08/15/2017.
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public abstract class BaseCEFModel extends BaseDynamicPropertiesProvider implements CEFModel {
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/CEFModel.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/CEFModel.java
new file mode 100644
index 0000000..665bd38
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/CEFModel.java
@@ -0,0 +1,32 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.cef;
+
+import org.onap.dcae.apod.analytics.model.DCAEAnalyticsModel;
+
+/**
+ * <p>
+ * Marker interface for all DCAE Analytics Common Event Format Model implementations
+ * </p>
+ * @author Rajiv Singla. Creation Date: 08/15/2017.
+ */
+public interface CEFModel extends DCAEAnalyticsModel {
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/CommonEventHeader.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/CommonEventHeader.java
new file mode 100644
index 0000000..468ab91
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/CommonEventHeader.java
@@ -0,0 +1,181 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.cef;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * Fields common to all Events
+ * <p>
+ * @author Rajiv Singla. Creation Date: 08/15/2017.
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class CommonEventHeader extends BaseCEFModel {
+
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * The eventing domain associated with this event
+ *
+ * @param domain New value for domain
+ * @return The eventing domain associated with this event
+ */
+ private Domain domain;
+
+ /**
+ * Event key that is unique to the event source
+ *
+ * @param eventId New value for event key
+ * @return Event key that is unique to the event source
+ */
+ private String eventId;
+
+ /**
+ * Unique event name
+ *
+ * @param eventName New value for event name
+ * @return Unique event name
+ */
+ private String eventName;
+
+
+ /**
+ * Event type e.g. applicationVnf, guestOS, hostOS, platform
+ *
+ * @param eventType New value for event type
+ * @return Event type e.g. applicationVnf, guestOS, hostOS, platform
+ */
+ private String eventType;
+
+
+ /**
+ * Enrichment fields for internal VES Event Listener service use only, not supplied by event sources
+ *
+ * @param internalHeaderFields new value for internal Header Fields
+ * @return Enrichment fields for internal VES Event Listener service use only, not supplied by event sources
+ */
+ private InternalHeaderFields internalHeaderFields;
+
+
+ /**
+ * The latest unix time aka epoch time associated with the event from any component--as microseconds elapsed since
+ * 1 Jan 1970 not including leap seconds
+ *
+ * @param lastEpochMicrosec New value for last Epoc Microsec
+ * @return The latest unix time associated with the event from any component
+ */
+ private Long lastEpochMicrosec;
+
+
+ /**
+ * Three character network function component type as aligned with vfc naming standards
+ *
+ * @param nfcNamingCode New value for nfc naming code
+ * @return Three character network function component type as aligned with vfc naming standards
+ */
+ private String nfcNamingCode;
+
+
+ /**
+ * Four character network function type as aligned with vnf naming standards
+ *
+ * @param nfNamingCode New value for nf naming code
+ * @return Four character network function type as aligned with vnf naming standards
+ */
+ private String nfNamingCode;
+
+
+ /**
+ * Processing Priority
+ *
+ * @param priority New value for processing Priority
+ * @return Processing Priority
+ */
+ private Priority priority;
+
+
+ /**
+ * UUID identifying the entity reporting the event, for example an OAM VM; must be populated by the
+ * enrichment process
+ *
+ * @param reportingEntityId New value for reporting entity Id. Must be populated by the enrichment process
+ * @return UUID identifying the entity reporting the event populated by the enrichment process
+ */
+ private String reportingEntityId;
+
+
+ /**
+ * Name of the entity reporting the event, for example, an EMS name; may be the same as sourceName
+ *
+ * @param reportingEntityName New value for reporting Entity Name
+ * @return Name of the entity reporting the event, may be the same as sourceName
+ */
+ private String reportingEntityName;
+
+
+ /**
+ * Ordering of events communicated by an event source instance or 0 if not needed
+ *
+ * @param sequence New value for Sequence
+ * @return Ordering of events communicated by an event source instance or 0 if not needed
+ */
+ private Integer sequence;
+
+
+ /**
+ * UUID identifying the entity experiencing the event issue; must be populated by the enrichment process
+ *
+ * @param sourceId New value for source id. Must be populated by the enrichment process
+ * @return UUID identifying the entity experiencing the event issue
+ */
+ private String sourceId;
+
+
+ /**
+ * Name of the entity experiencing the event issue
+ *
+ * @param sourceName New value for source name
+ * @return Name of the entity experiencing the event issue
+ */
+ private String sourceName;
+
+
+ /**
+ * the earliest unix time aka epoch time associated with the event from any component--as microseconds elapsed
+ * since 1 Jan 1970 not including leap seconds
+ *
+ * @param startEpochMicrosec New value for start Epoc Microsec
+ * @return The earliest unix time associated with the event from any component
+ */
+ private Long startEpochMicrosec;
+
+
+ /**
+ * Version of the event header
+ *
+ * @param version New value for version of the event header
+ * @return Version of the event header
+ */
+ private Float version;
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/Criticality.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/Criticality.java
new file mode 100644
index 0000000..c48159a
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/Criticality.java
@@ -0,0 +1,31 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.cef;
+
+/**
+ * Performance Criticality
+ *
+ * @author Rajiv Singla. Creation Date: 08/15/2017.
+ */
+public enum Criticality implements CEFModel {
+
+ CRIT, MAJ, UNKNOWN
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/Domain.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/Domain.java
new file mode 100644
index 0000000..1cee639
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/Domain.java
@@ -0,0 +1,41 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.cef;
+
+/**
+ * Eventing domain associated with the event
+ * <p>
+ * @author Rajiv Singla . Creation Date: 08/15/2017.
+ */
+public enum Domain implements CEFModel {
+
+ fault,
+ heartbeat,
+ measurementsForVfScaling,
+ mobileFlow,
+ other,
+ sipSignaling,
+ stateChange,
+ syslog,
+ thresholdCrossingAlert,
+ voiceQuality;
+
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/Event.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/Event.java
new file mode 100644
index 0000000..9f13075
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/Event.java
@@ -0,0 +1,61 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.cef;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * Generic Event Format
+ * <p>
+ * @author Rajiv Singla. Creation Date: 08/15/2017.
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class Event extends BaseCEFModel {
+
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Fields common to all Events
+ *
+ * @param commonEventHeader New value for common Event Header
+ * @return Fields common to all Events
+ */
+ private CommonEventHeader commonEventHeader;
+
+ /**
+ * Measurements for Vf scaling fields
+ *
+ * @param measurementsForVfScalingFields New value for MeasurementsForVfScaling
+ * @return MeasurementsForVfScaling fields
+ */
+ private MeasurementsForVfScalingFields measurementsForVfScalingFields;
+
+ /**
+ * Threshold crossing alert Fields.
+ *
+ * @param thresholdCrossingAlertFields New value for Threshold crossing Fields
+ * @return Threshold crossing Fields
+ */
+ private ThresholdCrossingAlertFields thresholdCrossingAlertFields;
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/EventListener.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/EventListener.java
new file mode 100644
index 0000000..06cee58
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/EventListener.java
@@ -0,0 +1,45 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.cef;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * Common Event Format - Base Event Listener
+ * <p>
+ * @author Rajiv Singla. Creation Date: 08/15/2017.
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class EventListener extends BaseCEFModel {
+
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Common Event Format - Event
+ *
+ * @param event New value for Event
+ * @return Common Event Format Event
+ */
+ private Event event;
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/EventSeverity.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/EventSeverity.java
new file mode 100644
index 0000000..340d0de
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/EventSeverity.java
@@ -0,0 +1,36 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.cef;
+
+/**
+ * CEF Event severity or priority
+ *
+ * @author Rajiv Singla. Creation Date: 08/15/2017.
+ */
+public enum EventSeverity implements CEFModel {
+
+ //NOTE: enum order must not be changed. Events severity is ordered from high to low
+ CRITICAL,
+ MAJOR,
+ MINOR,
+ WARNING,
+ NORMAL
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/Field.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/Field.java
new file mode 100644
index 0000000..2f2a2f0
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/Field.java
@@ -0,0 +1,53 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.cef;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * Name Value Pair
+ * <p>
+ * @author Rajiv Singla. Creation Date: 08/15/2017.
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class Field extends BaseCEFModel {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Name of the Field
+ *
+ * @param name New name for the Field
+ * @return Name of the Field
+ */
+ private String name;
+
+ /**
+ * Value of the Field
+ *
+ * @param value New value for the Field
+ * @return Value of the Field
+ */
+ private String value;
+
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/InternalHeaderFields.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/InternalHeaderFields.java
new file mode 100644
index 0000000..4007a42
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/InternalHeaderFields.java
@@ -0,0 +1,38 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.cef;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * Enrichment fields for internal VES Event Listener service use only, not supplied by event sources
+ * <p>
+ *
+ * @author Rajiv Singla . Creation Date: 08/15/2017.
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class InternalHeaderFields extends BaseCEFModel {
+
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/MeasurementsForVfScalingFields.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/MeasurementsForVfScalingFields.java
new file mode 100644
index 0000000..73b8df2
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/MeasurementsForVfScalingFields.java
@@ -0,0 +1,81 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.cef;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * Common Event Format - MeasurementsForVfScaling fields
+ * <p>
+ * @author Rajiv Singla. Creation Date: 08/15/2017.
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class MeasurementsForVfScalingFields extends BaseCEFModel {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Additional name-value-pair fields
+ *
+ * @param additionalFields New value for additional name-value-pair fields
+ * @return Additional name-value-pair fields
+ */
+ private List<Field> additionalFields;
+
+
+ /**
+ * Array of named name-value-pair arrays for additional Measurements
+ *
+ * @param additionalMeasurements New value for array of named name-value-pair arrays for additional Measurements
+ * @return Array of named name-value-pair arrays for additional Measurements
+ */
+ private List<NamedArrayOfFields> additionalMeasurements;
+
+ /**
+ * Interval over which measurements are being reported in seconds
+ *
+ * @param measurementInterval New value for measurement Interval
+ * @return Interval over which measurements are being reported in seconds
+ */
+ private Long measurementInterval;
+
+ /**
+ * Version of the measurementsForVfScaling block
+ *
+ * @param measurementsForVfScalingVersion New value for measurementsForVfScaling block
+ * @return Version of the measurementsForVfScaling block
+ */
+ private Float measurementsForVfScalingVersion;
+
+ /**
+ * Usage of an array of virtual network interface cards
+ *
+ * @param vNicPerformanceArray New value for Usage of an array of virtual network interface cards
+ * @return Usage of an array of virtual network interface cards
+ */
+ private List<VNicPerformance> vNicPerformanceArray;
+
+
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/NamedArrayOfFields.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/NamedArrayOfFields.java
new file mode 100644
index 0000000..6ab9e58
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/NamedArrayOfFields.java
@@ -0,0 +1,55 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.cef;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * An array of name value pairs along with a name for the array
+ * <p>
+ * @author Rajiv Singla. Creation Date: 08/15/2017.
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class NamedArrayOfFields extends BaseCEFModel {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Name of the NamedArrayOfFields
+ *
+ * @param name New name for the Field
+ * @return Name of the Field
+ */
+ private String name;
+
+ /**
+ * Array of name value pairs
+ *
+ * @param arrayOfFields New value for array of name value pairs
+ * @return Array of name value pairs
+ */
+ private List<Field> arrayOfFields;
+
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/PerformanceCounter.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/PerformanceCounter.java
new file mode 100644
index 0000000..5ab1ef8
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/PerformanceCounter.java
@@ -0,0 +1,68 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.cef;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * Common Event Format - Performance PerformanceCounter
+ *
+ * @author Rajiv Singla. Creation Date: 08/15/2017.
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class PerformanceCounter extends BaseCEFModel {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Performance Counter Criticality.
+ *
+ * @param criticality New value for Criticality
+ * @return Performance Counter Criticality
+ */
+ private Criticality criticality;
+
+ /**
+ * Performance Counter Name
+ *
+ * @param name New value for Performance counter name
+ * @return Performance Counter Name
+ */
+ private String name;
+
+ /**
+ * Performance Counter for Threshold Crossed.
+ *
+ * @param thresholdCrossed New value for Performance Counter Threshold Crossed
+ * @return Performance Counter Threshold Crossed
+ */
+ private String thresholdCrossed;
+
+ /**
+ * Performance Counter Value.
+ *
+ * @param value New Performance Counter Value
+ * @return Performance Counter Value
+ */
+ private String value;
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/Priority.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/Priority.java
new file mode 100644
index 0000000..8b5304b
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/Priority.java
@@ -0,0 +1,34 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.cef;
+
+/**
+ * Common Event Format - Event processing priority
+ * <p>
+ * @author Rajiv Singla. Creation Date: 08/15/2017.
+ */
+public enum Priority implements CEFModel {
+
+ High,
+ Medium,
+ Normal,
+ Low
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/ThresholdCrossingAlertFields.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/ThresholdCrossingAlertFields.java
new file mode 100644
index 0000000..39adbdd
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/ThresholdCrossingAlertFields.java
@@ -0,0 +1,158 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.cef;
+
+import java.util.List;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * Common Event Format - Fields Specific to threshold crossing alert events
+ *
+ * @author Rajiv Singla. Creation Date: 08/15/2017.
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ThresholdCrossingAlertFields extends BaseCEFModel {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Additional Performance counters parameters.
+ *
+ * @param additionalParameters New value for Additional Performance counters
+ * @return Additional Performance counters
+ */
+ private List<PerformanceCounter> additionalParameters;
+
+ /**
+ * Event alert action
+ *
+ * @param alertAction New Event Action
+ * @return Event alert action
+ */
+ private AlertAction alertAction;
+
+ /**
+ * Unique short alert description such as IF-SHUB-ERRDROP
+ *
+ * @param alertDescription New value for Unique short alert description
+ * @return Unique short alert description
+ */
+ private String alertDescription;
+
+ /**
+ * Alert type
+ *
+ * @param alertType New value for Alert Type
+ * @return Alert Type
+ */
+ private AlertType alertType;
+
+ /**
+ * Calculated API value (if applicable)
+ *
+ * @param alertValue New Calculated API value
+ * @return Calculated API value (if applicable)
+ */
+ private String alertValue;
+
+ /**
+ * List of eventIds associated with the event being reported
+ *
+ * @param associatedAlertIdList New value for eventIds associated with the event
+ * @return List of eventIds associated with the event being reported
+ */
+ private List<String> associatedAlertIdList;
+
+ /**
+ * Time when the performance collector picked up the data; with RFC 2822 compliant format:
+ * ‘Sat, 13 Mar 2010 11:29:05 -0800’
+ *
+ * @param collectionTimestamp Set new value for time when the performance collector picked up the data
+ * @return Time when the performance collector picked up the data
+ */
+ private String collectionTimestamp;
+
+ /**
+ * Specific performance collector instance used
+ *
+ * @param dataCollector New value for specific performance collector instance used
+ * @return Specific performance collector instance used
+ */
+ private String dataCollector;
+
+ /**
+ * Type of network element
+ *
+ * @param elementType New value for type of network element
+ * @return Type of network element
+ */
+ private String elementType;
+
+ /**
+ * Event severity or priority
+ *
+ * @param eventSeverity New value for event severity or priority
+ * @return Event severity or priority
+ */
+ private EventSeverity eventSeverity;
+
+ /**
+ * Time closest to when the measurement was made; with RFC 2822 compliant format: ‘Sat, 13 Mar 2010 11:29:05 -0800’
+ *
+ * @param eventStartTimestamp New value for time closest to when the measurement was made
+ * @return Time closest to when the measurement was made
+ */
+ private String eventStartTimestamp;
+
+ /**
+ * Physical or logical port or card (if applicable)
+ *
+ * @param interfaceName New value for Physical or logical port or card (if applicable)
+ * @return Physical or logical port or card (if applicable)
+ */
+ private String interfaceName;
+
+ /**
+ * Network name
+ *
+ * @param networkService New value for network name
+ * @return Network name
+ */
+ private String networkService;
+
+ /**
+ * Possible Root Cause (reserved for future use)
+ *
+ * @param possibleRootCause New value for possible root cause (reserved for future)
+ * @return Possible Root Cause (reserved for future use)
+ */
+ private String possibleRootCause;
+
+ /**
+ * Version of the thresholdCrossingAlertFields block
+ *
+ * @param thresholdCrossingFieldsVersion New value for version of the thresholdCrossingAlertFields block
+ * @return Version of the thresholdCrossingAlertFields block
+ */
+ private Integer thresholdCrossingFieldsVersion;
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/VNicPerformance.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/VNicPerformance.java
new file mode 100644
index 0000000..b5b7a59
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/cef/VNicPerformance.java
@@ -0,0 +1,308 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.cef;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * Describes the performance and errors of an identified virtual network interface card
+ * <p>
+ * @author Rajiv Singla. Creation Date: 08/15/2017.
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class VNicPerformance extends BaseCEFModel {
+
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Cumulative count of broadcast packets received as read at the end of the measurement interval
+ *
+ * @param receivedBroadcastPacketsAccumulated New value for cumulative count of broadcast packets received as
+ * read at the end of the measurement interval
+ * @return Cumulative count of broadcast packets received as read at the end of the measurement interval
+ */
+ private Long receivedBroadcastPacketsAccumulated;
+
+ /**
+ * Count of broadcast packets received within the measurement interval
+ *
+ * @param receivedBroadcastPacketsDelta New value for count of broadcast packets received within the measurement
+ * interval
+ * @return Count of broadcast packets received within the measurement interval
+ */
+ private Long receivedBroadcastPacketsDelta;
+
+ /**
+ * Cumulative count of discarded packets received as read at the end of the measurement interval
+ *
+ * @param receivedDiscardedPacketsAccumulated New value for cumulative count of discarded packets received as read
+ * at the end of the measurement interval
+ * @return Cumulative count of discarded packets received as read at the end of the measurement interval
+ */
+ private Long receivedDiscardedPacketsAccumulated;
+
+ /**
+ * Count of discarded packets received within the measurement interval
+ *
+ * @param receivedDiscardedPacketsDelta New value for count of discarded packets received within the measurement
+ * interval
+ * @return Count of discarded packets received within the measurement interval
+ */
+ private Long receivedDiscardedPacketsDelta;
+
+ /**
+ * Cumulative count of error packets received as read at the end of the measurement interval
+ *
+ * @param receivedErrorPacketsAccumulated New value for cumulative count of error packets received as read at the
+ * end of the measurement interval
+ * @return Cumulative count of error packets received as read at the end of the measurement interval
+ */
+ private Long receivedErrorPacketsAccumulated;
+
+ /**
+ * Count of error packets received within the measurement interval
+ *
+ * @param receivedErrorPacketsDelta New value for count of error packets received within the measurement interval
+ * @return Count of error packets received within the measurement interval
+ */
+ private Long receivedErrorPacketsDelta;
+
+ /**
+ * Cumulative count of multicast packets received as read at the end of the measurement interval
+ *
+ * @param receivedMulticastPacketsAccumulated New value for cumulative count of multicast packets received as
+ * read at the end of the measurement interval
+ * @return Cumulative count of multicast packets received as read at the end of the measurement interval
+ */
+ private Long receivedMulticastPacketsAccumulated;
+
+ /**
+ * Count of multicast packets received within the measurement interval
+ *
+ * @param receivedMulticastPacketsDelta New value for count of multicast packets received within the measurement
+ * interval
+ * @return Count of multicast packets received within the measurement interval
+ */
+ private Long receivedMulticastPacketsDelta;
+
+ /**
+ * Cumulative count of octets received as read at the end of the measurement interval
+ *
+ * @param receivedOctetsAccumulated New value for cumulative count of octets received as read at the end of the
+ * measurement interval
+ * @return Cumulative count of octets received as read at the end of the measurement interval
+ */
+ private Long receivedOctetsAccumulated;
+
+ /**
+ * Count of octets received within the measurement interval
+ *
+ * @param receivedOctetsDelta New value for count of octets received within the measurement interval
+ * @return Count of octets received within the measurement interval
+ */
+ private Long receivedOctetsDelta;
+
+ /**
+ * Cumulative count of all packets received as read at the end of the measurement interval
+ *
+ * @param receivedTotalPacketsAccumulated New value for cumulative count of all packets received as read at the
+ * end of the measurement interval
+ * @return Cumulative count of all packets received as read at the end of the measurement interval
+ */
+ private Long receivedTotalPacketsAccumulated;
+
+ /**
+ * Count of all packets received within the measurement interval
+ *
+ * @param receivedTotalPacketsDelta New value for count of all packets received within the measurement interval
+ * @return Count of all packets received within the measurement interval
+ */
+ private Long receivedTotalPacketsDelta;
+
+ /**
+ * Cumulative count of unicast packets received as read at the end of the measurement interval
+ *
+ * @param receivedUnicastPacketsAccumulated New value for cumulative count of unicast packets received as read at
+ * the end of the measurement interval
+ * @return Cumulative count of unicast packets received as read at the end of the measurement interval
+ */
+ private Long receivedUnicastPacketsAccumulated;
+
+ /**
+ * Count of unicast packets received within the measurement interval
+ *
+ * @param receivedUnicastPacketsDelta New value for count of unicast packets received within the measurement
+ * interval
+ * @return Count of unicast packets received within the measurement interval
+ */
+ private Long receivedUnicastPacketsDelta;
+
+ /**
+ * Cumulative count of broadcast packets transmitted as read at the end of the measurement interval
+ *
+ * @param transmittedBroadcastPacketsAccumulated New value for cumulative count of broadcast packets transmitted
+ * as read at the end of the measurement interval
+ * @return Cumulative count of broadcast packets transmitted as read at the end of the measurement interval
+ */
+ private Long transmittedBroadcastPacketsAccumulated;
+
+ /**
+ * Count of broadcast packets transmitted within the measurement interval
+ *
+ * @param transmittedBroadcastPacketsDelta New value for count of broadcast packets transmitted within the
+ * measurement interval
+ * @return Count of broadcast packets transmitted within the measurement interval
+ */
+ private Long transmittedBroadcastPacketsDelta;
+
+ /**
+ * Cumulative count of discarded packets transmitted as read at the end of the measurement interval
+ *
+ * @param transmittedDiscardedPacketsAccumulated New value for cumulative count of discarded packets transmitted
+ * as read at the end of the measurement interval
+ * @return Cumulative count of discarded packets transmitted as read at the end of the measurement interval
+ */
+ private Long transmittedDiscardedPacketsAccumulated;
+
+ /**
+ * Count of discarded packets transmitted within the measurement interval
+ *
+ * @param transmittedDiscardedPacketsDelta New value for count of discarded packets transmitted within the
+ * measurement interval
+ * @return Count of discarded packets transmitted within the measurement interval
+ */
+ private Long transmittedDiscardedPacketsDelta;
+
+ /**
+ * Cumulative count of error packets transmitted as read at the end of the measurement interval
+ *
+ * @param transmittedErrorPacketsAccumulated New value for cumulative count of error packets transmitted as read
+ * at the end of the measurement interval
+ * @return Cumulative count of error packets transmitted as read at the end of the measurement interval
+ */
+ private Long transmittedErrorPacketsAccumulated;
+
+ /**
+ * Count of error packets transmitted within the measurement interval
+ *
+ * @param transmittedErrorPacketsDelta New value for count of error packets transmitted within the measurement
+ * interval
+ * @return Count of error packets transmitted within the measurement interval
+ */
+ private Long transmittedErrorPacketsDelta;
+
+ /**
+ * Cumulative count of multicast packets transmitted as read at the end of the measurement interval
+ *
+ * @param transmittedMulticastPacketsAccumulated New value for cumulative count of multicast packets transmitted
+ * as read at the end of the measurement interval
+ * @return Cumulative count of multicast packets transmitted as read at the end of the measurement interval
+ */
+ private Long transmittedMulticastPacketsAccumulated;
+
+ /**
+ * Count of multicast packets transmitted within the measurement interval
+ *
+ * @param transmittedMulticastPacketsDelta New value for count of multicast packets transmitted within the
+ * measurement interval
+ * @return Count of multicast packets transmitted within the measurement interval
+ */
+ private Long transmittedMulticastPacketsDelta;
+
+ /**
+ * Cumulative count of octets transmitted as read at the end of the measurement interval
+ *
+ * @param transmittedOctetsAccumulated New value for cumulative count of octets transmitted as read at the end of
+ * the measurement interval
+ * @return Cumulative count of octets transmitted as read at the end of the measurement interval
+ */
+ private Long transmittedOctetsAccumulated;
+
+ /**
+ * Count of octets transmitted within the measurement interval
+ *
+ * @param transmittedOctetsDelta New value for count of octets transmitted within the measurement interval
+ * @return Count of octets transmitted within the measurement interval
+ */
+ private Long transmittedOctetsDelta;
+
+ /**
+ * Cumulative count of all packets transmitted as read at the end of the measurement interval
+ *
+ * @param transmittedTotalPacketsAccumulated New value for cumulative count of all packets transmitted as read at
+ * the end of the measurement interval
+ * @return Cumulative count of all packets transmitted as read at the end of the measurement interval
+ */
+ private Long transmittedTotalPacketsAccumulated;
+
+ /**
+ * Count of all packets transmitted within the measurement interval
+ *
+ * @param transmittedTotalPacketsDelta New value for count of all packets transmitted within the measurement
+ * interval
+ * @return Count of all packets transmitted within the measurement interval
+ */
+ private Long transmittedTotalPacketsDelta;
+
+ /**
+ * Cumulative count of unicast packets transmitted as read at the end of the measurement interval
+ *
+ * @param transmittedUnicastPacketsAccumulated New value for cumulative count of unicast packets transmitted as
+ * read at the end of the measurement interval
+ * @return Cumulative count of unicast packets transmitted as read at the end of the measurement interval
+ */
+ private Long transmittedUnicastPacketsAccumulated;
+
+
+ /**
+ * Count of unicast packets transmitted within the measurement interval
+ *
+ * @param transmittedUnicastPacketsDelta New value for count of unicast packets transmitted within the
+ * measurement interval
+ * @return Count of unicast packets transmitted within the measurement interval
+ */
+ private Long transmittedUnicastPacketsDelta;
+
+
+ /**
+ * Indicates whether vNicPerformance values are likely inaccurate due to counter overflow or other conditions
+ *
+ * @param valuesAreSuspect New value to indicate whether vNicPerformance values are likely inaccurate due to
+ * counter overflow or other conditions
+ * @return Indicates whether vNicPerformance values are likely inaccurate due to counter overflow or other
+ * conditions
+ */
+ private Boolean valuesAreSuspect;
+
+
+ /**
+ * Virtual Network Card Identifier
+ *
+ * @param vNicIdentifier New value for Virtual Network Card Identifier
+ * @return Virtual Network Card Identifier
+ */
+ private String vNicIdentifier;
+
+
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/PolicyModel.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/PolicyModel.java
new file mode 100644
index 0000000..697d966
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/PolicyModel.java
@@ -0,0 +1,33 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.policy;
+
+import org.onap.dcae.apod.analytics.model.DCAEAnalyticsModel;
+
+/**
+ * <p>
+ * Marker Interface all DCAE Analytics Policy Model implementations
+ * </p>
+ *
+ * @author Rajiv Singla . Creation Date: 11/5/2016.
+ */
+public interface PolicyModel extends DCAEAnalyticsModel {
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/BaseTCAPolicyModel.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/BaseTCAPolicyModel.java
new file mode 100644
index 0000000..016e585
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/BaseTCAPolicyModel.java
@@ -0,0 +1,37 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.policy.tca;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.onap.dcae.apod.analytics.model.BaseDynamicPropertiesProvider;
+
+/**
+ * <p>
+ * A Base TCA Policy Model which accumulates all dynamic properties in a dynamicProperties Map
+ * </p>
+ *
+ * @author Rajiv Singla . Creation Date: 11/5/2016.
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public abstract class BaseTCAPolicyModel extends BaseDynamicPropertiesProvider implements TCAPolicyModel {
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/ClosedLoopEventStatus.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/ClosedLoopEventStatus.java
new file mode 100644
index 0000000..4459fc3
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/ClosedLoopEventStatus.java
@@ -0,0 +1,34 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.policy.tca;
+
+/**
+ * TCA Policy Closed Loop Event Status
+ *
+ * @author Rajiv Singla . Creation Date: 9/11/2017.
+ */
+public enum ClosedLoopEventStatus implements TCAPolicyModel {
+
+ ONSET,
+ ABATED,
+ CONTINUE;
+
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/ControlLoopSchemaType.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/ControlLoopSchemaType.java
new file mode 100644
index 0000000..b913703
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/ControlLoopSchemaType.java
@@ -0,0 +1,33 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.policy.tca;
+
+import org.onap.dcae.apod.analytics.model.domain.policy.PolicyModel;
+
+/**
+ * Control Loop Schema Type
+ *
+ * @author Rajiv Singla . Creation Date: 8/24/2017.
+ */
+public enum ControlLoopSchemaType implements PolicyModel {
+
+ VNF, VM;
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/Direction.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/Direction.java
new file mode 100644
index 0000000..a787c4d
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/Direction.java
@@ -0,0 +1,76 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.policy.tca;
+
+import java.math.BigDecimal;
+
+import javax.annotation.Nonnull;
+
+/**
+ * <p>
+ * Enum for Threshold Direction
+ * </p>
+ * @author Rajiv Singla . Creation Date: 11/5/2016.
+ */
+public enum Direction implements TCAPolicyModel {
+
+ EQUAL {
+ @Override
+ public Boolean operate(@Nonnull BigDecimal value1, @Nonnull BigDecimal value2) {
+ return value1.compareTo(value2) == 0;
+ }
+ },
+ LESS {
+ @Override
+ public Boolean operate(@Nonnull BigDecimal value1, @Nonnull BigDecimal value2) {
+ return value1.compareTo(value2) < 0;
+ }
+ },
+ LESS_OR_EQUAL {
+ @Override
+ public Boolean operate(@Nonnull BigDecimal value1, @Nonnull BigDecimal value2) {
+ return value1.compareTo(value2) <= 0;
+ }
+ },
+ GREATER {
+ @Override
+ public Boolean operate(@Nonnull BigDecimal value1, @Nonnull BigDecimal value2) {
+ return value1.compareTo(value2) > 0;
+ }
+ },
+ GREATER_OR_EQUAL {
+ @Override
+ public Boolean operate(@Nonnull BigDecimal value1, @Nonnull BigDecimal value2) {
+ return value1.compareTo(value2) >= 0;
+ }
+ };
+
+ /**
+ * Configure logic for a particular Direction
+ *
+ * @param value1 left operand for Direction operation
+ * @param value2 right operand for Direction operation
+ *
+ * @return result of operation for the direction logic
+ */
+ public abstract Boolean operate(@Nonnull BigDecimal value1, @Nonnull BigDecimal value2);
+
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/MetricsPerEventName.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/MetricsPerEventName.java
new file mode 100644
index 0000000..1b54d0a
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/MetricsPerEventName.java
@@ -0,0 +1,115 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.policy.tca;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * TCA Metrics that need to applied to each Event Name
+ *
+ * @author Rajiv Singla . Creation Date: 11/5/2016.
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class MetricsPerEventName extends BaseTCAPolicyModel{
+
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Event Name to which TCA Policy needs to applied.
+ *
+ * @param eventName New value for eventName to which TCA Policy needs to applied
+ * @return Event Name to which TCA Policy needs to applied
+ */
+ private String eventName;
+
+ /**
+ * Control Loop Schema Type
+ *
+ * @param controlLoopSchemaType New value for Control Loop Schema Type
+ * @return Control Loop Schema Type
+ */
+ private ControlLoopSchemaType controlLoopSchemaType;
+
+ /**
+ * Policy Scope
+ *
+ * @param policyScope New value for Policy Scope
+ * @return Policy Scope
+ */
+ private String policyScope;
+
+ /**
+ * Policy Name
+ *
+ * @param policyName New value for Policy Name
+ * @return Policy Name
+ */
+ private String policyName;
+
+ /**
+ * Policy Version
+ *
+ * @param policyVersion New value for Policy Version
+ * @return Policy Version
+ */
+ private String policyVersion;
+
+ /**
+ * Policy Thresholds
+ *
+ * @param thresholds New value for Policy Thresholds
+ * @return Policy Thresholds
+ */
+ private List<Threshold> thresholds;
+
+
+ /**
+ * Creates a deep copy of given {@link MetricsPerEventName}
+ *
+ * @param metricsPerEventName metrics Per Event Name that need to copied
+ *
+ * @return copy of new metrics per event Name with values copied from given metrics per Event Name
+ */
+ public static MetricsPerEventName copy(final MetricsPerEventName metricsPerEventName) {
+ final MetricsPerEventName newMetricsPerEventName = new MetricsPerEventName();
+ newMetricsPerEventName.setEventName(metricsPerEventName.getEventName());
+ newMetricsPerEventName.setControlLoopSchemaType(metricsPerEventName.getControlLoopSchemaType());
+ newMetricsPerEventName.setPolicyScope(metricsPerEventName.getPolicyScope());
+ newMetricsPerEventName.setPolicyName(metricsPerEventName.getPolicyName());
+ newMetricsPerEventName.setPolicyVersion(metricsPerEventName.getPolicyVersion());
+ if (metricsPerEventName.getThresholds() != null) {
+ List<Threshold> newThresholds = new ArrayList<>(metricsPerEventName.getThresholds().size());
+ for( Threshold threshold : metricsPerEventName.getThresholds()) {
+ newThresholds.add(Threshold.copy(threshold));
+ }
+ newMetricsPerEventName.setThresholds(newThresholds);
+ }
+ return newMetricsPerEventName;
+ }
+
+
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/TCAPolicy.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/TCAPolicy.java
new file mode 100644
index 0000000..45559e3
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/TCAPolicy.java
@@ -0,0 +1,58 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.policy.tca;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * <p>
+ * TCA (Threshold Crossing Alert) Root
+ * </p>
+ *
+ * @author Rajiv Singla . Creation Date: 11/5/2016.
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TCAPolicy extends BaseTCAPolicyModel {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * TCA Policy domain which is associated with TCA incoming CEF message domain
+ *
+ * @param domain New value for domain
+ * @return Policy domain which is associated with incoming CEF message
+ */
+ private String domain;
+
+ /**
+ * Contains TCA Policy metrics that needs to be applied to each Functional Role
+ *
+ * @param metricsPerEventName New value for metrics that needs to be applied to each Functional Role
+ * @return Contains TCA Policy metrics that needs to be applied to each Functional Role
+ */
+ private List<MetricsPerEventName> metricsPerEventName;
+
+
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/TCAPolicyModel.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/TCAPolicyModel.java
new file mode 100644
index 0000000..fefef3c
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/TCAPolicyModel.java
@@ -0,0 +1,35 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.policy.tca;
+
+import org.onap.dcae.apod.analytics.model.domain.policy.PolicyModel;
+
+/**
+ * <p>
+ * Marker interface for all TCA Policy Models
+ * </p>
+ *
+ * @author Rajiv Singla . Creation Date: 11/5/2016.
+ */
+public interface TCAPolicyModel extends PolicyModel {
+
+
+}
diff --git a/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/Threshold.java b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/Threshold.java
new file mode 100644
index 0000000..60da70d
--- /dev/null
+++ b/dcae-analytics-model/src/main/java/org/onap/dcae/apod/analytics/model/domain/policy/tca/Threshold.java
@@ -0,0 +1,127 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.dcae.apod.analytics.model.domain.policy.tca;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.onap.dcae.apod.analytics.model.domain.cef.EventSeverity;
+
+import java.math.BigDecimal;
+
+/**
+ *
+ * @author Rajiv Singla . Creation Date: 11/5/2016.
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class Threshold extends BaseTCAPolicyModel {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Closed Loop Control Name
+ *
+ * @param closedLoopControlName New value for Closed Loop Control Name
+ * @return Closed Loop Control Name
+ */
+ private String closedLoopControlName;
+
+
+ /**
+ * Closed Loop Event Status
+ *
+ * @param closedLoopEventStatus New value for Closed Loop Event Status
+ * @return Closed Loop Event Status
+ */
+ private ClosedLoopEventStatus closedLoopEventStatus;
+
+ /**
+ * Threshold Version
+ *
+ * @param version New value for Threshold Version
+ * @return Threshold Version
+ */
+ private String version;
+
+ /**
+ * Path of the field inside Common Event Format which needs to be monitored by TCA App
+ * for threshold crossing
+ *
+ * @param fieldPath New value for Path of the field inside CEF which needs to be monitored for TCA
+ * @return Path of the field inside Common Event Format which needs to be monitored by TCA App
+ */
+ private String fieldPath;
+
+ /**
+ * Threshold Value
+ *
+ * @param thresholdValue New value for Threshold Value
+ * @return Threshold Value
+ */
+ private Long thresholdValue;
+
+ /**
+ * Direction of threshold
+ *
+ * @param direction New value for Direction of threshold
+ * @return Direction of threshold
+ */
+ private Direction direction;
+
+ /**
+ * Severity of Event based on CEF Convention
+ *
+ * @param severity New value for Severity of Event based on CEF Convention
+ * @return Severity of Event based on CEF Convention
+ */
+ private EventSeverity severity;
+
+
+ /**
+ * Actual Field value that caused the threshold violation. Note: Ignored for serialization / deserialization
+ *
+ *
+ * @param actualFieldValue new value for actual Field value that caused the violation
+ * @return actual field value that caused the violation
+ */
+ private BigDecimal actualFieldValue;
+
+ /**
+ * Creates a deep copy of give {@link Threshold}
+ *
+ * @param threshold threshold that need to be copied
+ *
+ * @return new instance of threshold with copied value for give threshold
+ */
+ public static Threshold copy(final Threshold threshold) {
+ final Threshold newThreshold = new Threshold();
+ newThreshold.setClosedLoopControlName(threshold.getClosedLoopControlName());
+ newThreshold.setClosedLoopEventStatus(threshold.getClosedLoopEventStatus());
+ newThreshold.setFieldPath(threshold.getFieldPath());
+ newThreshold.setThresholdValue(threshold.getThresholdValue());
+ newThreshold.setDirection(threshold.getDirection());
+ newThreshold.setSeverity(threshold.getSeverity());
+ newThreshold.setVersion(threshold.getVersion());
+ newThreshold.setActualFieldValue(threshold.getActualFieldValue());
+ return newThreshold;
+ }
+
+}