/*- * ============LICENSE_START======================================================= * ONAP : APPC * ================================================================================ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Copyright (C) 2017 Amdocs * ================================================================================ * Modifications Copyright (C) 2019 Ericsson * ============================================================================= * 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.appc.listener.demo.model; import java.io.Serializable; import org.json.JSONObject; import org.onap.appc.listener.util.Mapper; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; /** * This class holds attributes that are common to DMaaP messages both coming in from DCAE and being sent out by APPC * */ @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown = true) public class CommonMessage implements Serializable { /* * { "CommonHeader": { "TimeStamp": "0000-00-00T00:00:00.000Z", "APIver": "1.01", "OriginatorID": "policy.pdp01", * "RequestID": "b74d13c5-bb26-4b04-992c-4679dfc8280e", "SubrequestID": "1" }, "Action": "RESTART", "Payload": { * "VServerSelfLink": * "http://192.168.1.2:8774/v2/abcde12345fghijk6789lmnopq123rst/servers/abc12345-1234-5678-890a-abcdefg12345", * "VNF_NAME": "test", "VMID": "abc12345-1234-5678-890a-abcdefg12345", "TenantID": * "abcde12345fghijk6789lmnopq123rst", "LOC_ID": "Test", "in-maint": "false", "Identity": * "http://example.com:5000/v2.0", "Prov_status": "ACTIVE", "OAM_IPV4": "192.168.1.2", * "is-closed-loop-disabled": "false", "VM_NAME": "basx0001vm034", "OAM_IPV6": "aaaa::bbbb:cccc:dddd:eeee/64" } } */ private static final long serialVersionUID = 1L; /* * The common header */ @JsonProperty("CommonHeader") private CommonHeader header; /* * The payload */ @JsonProperty("Payload") private Payload payload; @JsonIgnore private long startTime = System.currentTimeMillis(); /* * Getters and Setters */ public long getStartTime() { return startTime; } public void setStartTime(long startTime) { this.startTime = startTime; } /** * @return the header */ public CommonHeader getHeader() { return header; } /** * @param header * the header to set */ public void setHeader(CommonHeader header) { this.header = header; } /** * @return the payload */ public Payload getPayload() { return payload; } /** * @param payload * the payload to set */ public void setPayload(Payload payload) { this.payload = payload; } /** * Convenience method to return a json representation of this object. * * @return The json representation of this object */ public JSONObject toJson() { return Mapper.toJsonObject(this); } @JsonIgnoreProperties(ignoreUnknown = true) public static class CommonHeader { /* * "CommonHeader": { "TimeStamp": "2016-05-11T13:53:53.146Z", "APIver": "1.01", "OriginatorID": "policy.pdp01", * "RequestID": "b74d13c5-bb26-4b04-992c-4679dfc8280e", "SubrequestID": "1" } */ /* * The timestamp of the message */ @JsonProperty("TimeStamp") private String timeStamp; /* * The API version of the message */ @JsonProperty("APIver") private String apiVer; /* * The Originator ID of the message */ @JsonProperty("OriginatorID") private String originatorId; /* * The Request Id of the message */ @JsonProperty("RequestID") private String requestID; /* * The Subrequest Id of the message */ @JsonProperty("SubRequestID") private String subRequestId; /** * @return the timeStamp */ public String getTimeStamp() { return timeStamp; } /** * @param timeStamp * the timeStamp to set */ public void setTimeStamp(String timeStamp) { this.timeStamp = timeStamp; } /** * @return the apiVer */ public String getApiVer() { return apiVer; } /** * @param apiVer * the apiVer to set */ public void setApiVer(String apiVer) { this.apiVer = apiVer; } /** * @return the originatorId */ public String getOriginatorId() { return originatorId; } /** * @param originatorId * the originatorId to set */ public void setOriginatorId(String originatorId) { this.originatorId = originatorId; } /** * @return the requestID */ public String getRequestID() { return requestID; } /** * @param requestID * the requestID to set */ public void setRequestID(String requestID) { this.requestID = requestID; } /** * @return the subRequestId */ public String getSubRequestId() { return subRequestId; } /** * @param subRequestId * the subRequestId to set */ public void setSubRequestId(String subRequestId) { this.subRequestId = subRequestId; } }; @JsonIgnoreProperties(ignoreUnknown = true) public static class Payload { /* * "Payload": { "VServerSelfLink": * "http://192.168.1.2:8774/v2/abcde12345fghijk6789lmnopq123rst/servers/abc12345-1234-5678-890a-abcdefg12345", * "VNF_NAME": "test", "VMID": "abc12345-1234-5678-890a-abcdefg12345", "TenantID": * "abcde12345fghijk6789lmnopq123rst", "LOC_ID": "Test", "in-maint": "false", "Identity": * "http://example.com:5000/v2.0", "Prov_status": "ACTIVE", "OAM_IPV4": "192.168.1.2", * "is-closed-loop-disabled": "false", "VM_NAME": "test", "OAM_IPV6": "aaaa::bbbb:cccc:dddd:eeee/64" } */ /* * The TenantID of the message */ @JsonProperty("generic-vnf.vnf-id") private String genericVnfId; /** * @return the TenantID */ public String getGenericVnfId() { return genericVnfId; } /** * @param TenantID * the TenantID to set */ public void setGenericVnfId(String genericVnfId) { this.genericVnfId = genericVnfId; } @JsonProperty("streams") private Streams streams; /** * @return the TenantID */ public String getStreams() { String r = "{\\\"streams\\\": {\\\"active-streams\\\": " + streams.getActiveStreams() + "}}"; return r; } /** * @param TenantID * the TenantID to set */ public void setStreams(Streams streams) { this.streams = streams; } }; @JsonIgnoreProperties(ignoreUnknown = true) public static class Streams { @JsonProperty("active-streams") private int activeStreams; public int getActiveStreams() { return this.activeStreams; } public void setActiveStreams(int activeStreams) { this.activeStreams = activeStreams; } }; }