2  * ============LICENSE_START=======================================================
 
   4  * ================================================================================
 
   5  * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
 
   6  * Modifications Copyright (C) 2019 Nordix Foundation.
 
   7  * ================================================================================
 
   8  * Licensed under the Apache License, Version 2.0 (the "License");
 
   9  * you may not use this file except in compliance with the License.
 
  10  * You may obtain a copy of the License at
 
  12  *      http://www.apache.org/licenses/LICENSE-2.0
 
  14  * Unless required by applicable law or agreed to in writing, software
 
  15  * distributed under the License is distributed on an "AS IS" BASIS,
 
  16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
  17  * See the License for the specific language governing permissions and
 
  18  * limitations under the License.
 
  19  * ============LICENSE_END=========================================================
 
  22 package org.onap.policy.appclcm;
 
  24 import com.google.gson.annotations.SerializedName;
 
  26 import java.io.Serializable;
 
  27 import java.time.Instant;
 
  28 import java.util.HashMap;
 
  30 import java.util.UUID;
 
  32 import lombok.NoArgsConstructor;
 
  33 import lombok.NonNull;
 
  34 import lombok.RequiredArgsConstructor;
 
  37 @RequiredArgsConstructor
 
  39 public class AppcLcmCommonHeader implements Serializable {
 
  41     private static final long serialVersionUID = 6581963539127062114L;
 
  43     @SerializedName(value = "timestamp")
 
  44     private Instant timeStamp = Instant.now();
 
  46     @SerializedName(value = "api-ver")
 
  47     private String apiVer = "2.00";
 
  50     @SerializedName(value = "originator-id")
 
  51     private String originatorId;
 
  54     @SerializedName(value = "request-id")
 
  55     private UUID requestId;
 
  58     @SerializedName(value = "sub-request-id")
 
  59     private String subRequestId;
 
  61     @SerializedName(value = "flags")
 
  62     private Map<String, String> flags = new HashMap<>();
 
  65      * Used to copy a common header.
 
  67      * @param commonHeader a header that is defined by the lcm api guide that contains information
 
  68      *        about the request (requestId, flags, etc.)
 
  70     public AppcLcmCommonHeader(AppcLcmCommonHeader commonHeader) {
 
  71         this.originatorId = commonHeader.originatorId;
 
  72         this.requestId = commonHeader.requestId;
 
  73         this.subRequestId = commonHeader.subRequestId;
 
  74         if (commonHeader.flags != null) {
 
  75             this.flags.putAll(commonHeader.flags);