Merge from ECOMP's repository
[vid.git] / vid-app-common / src / main / java / org / onap / vid / mso / model / VfModuleInstantiationRequestDetails.java
1 package org.onap.vid.mso.model;
2
3 import com.fasterxml.jackson.annotation.JsonProperty;
4
5 import java.util.HashMap;
6 import java.util.List;
7 import java.util.Map;
8
9 /* Based on this model:
10
11 {
12   "requestDetails": {
13       "modelInfo": {
14           “modelType”: “vfModule”,
15           “modelInvariantId”: “ff5256d2-5a33-55df-13ab-12abad84e7ff”,
16           “modelVersionId”: “fe6478e5-ea33-3346-ac12-ab121484a3fe”,
17           “modelCustomizationId”: “856f9806-b01a-11e6-80f5-76304dec7eb7”,
18           “modelName”: “vSAMP12..base..module-0”,
19           "modelVersion": "1"
20       },
21       “cloudConfiguration”: {
22           “lcpCloudRegionId”: “mdt1”,
23           “tenantId”: “88a6ca3ee0394ade9403f075db23167e”
24       },
25       "requestInfo": {
26           “instanceName”: “MSOTEST103a-vSAMP12_base_module-0”,
27           “source”: “VID”,
28           “suppressRollback”: true,
29           “requestorId”: “az2016”
30       },
31       "relatedInstanceList": [
32          {
33       // This related instance captures the volumeGroup to attach
34             “relatedInstance”: {
35                “instanceId”: “17ef4658-bd1f-4ef0-9ca0-ea76e2bf122c”,
36                “instanceName”: “MSOTESTVOL103a-vSAMP12_base_module-0_vol”,
37                “modelInfo”: {
38                   “modelType”: “volumeGroup”
39                }
40             }
41          },
42          {
43             “relatedInstance”: {
44                “instanceId”: “{serviceInstanceId}”,
45                “modelInfo”: {
46                   “modelType”: “service”,
47                   “modelInvariantId”: “ff3514e3-5a33-55df-13ab-12abad84e7ff”,
48                   “modelVersionId”: “fe6985cd-ea33-3346-ac12-ab121484a3fe”,
49                   “modelName”: “{parent service model name}”,
50                   "modelVersion": "1.0"
51                }
52             }
53          },
54          {
55             “relatedInstance”: {
56                “instanceId”: “{vnfInstanceId}”,
57                "modelInfo": {
58                   “modelType”: “vnf”,
59                   “modelInvariantId”: “ff5256d1-5a33-55df-13ab-12abad84e7ff”,
60                   “modelVersionId”: “fe6478e4-ea33-3346-ac12-ab121484a3fe”,
61                   “modelName”: “vSAMP12”,
62                   "modelVersion": "1.0",
63                      “modelCustomizationName”: “vSAMP12 1”,
64                      “modelCustomizationId”: “a7f1d08e-b02d-11e6-80f5-76304dec7eb7”
65                }
66             }
67          }
68       ],
69       “requestParameters”: {
70           “usePreload”: true,
71           “userParams”: []
72       }
73   }
74 }
75
76
77  */
78
79 public class VfModuleInstantiationRequestDetails extends BaseResourceInstantiationRequestDetails {
80
81     public VfModuleInstantiationRequestDetails(
82             @JsonProperty(value = "modelInfo", required = true) ModelInfo modelInfo,
83             @JsonProperty(value = "cloudConfiguration", required = true) CloudConfiguration cloudConfiguration,
84             @JsonProperty(value = "requestInfo", required = true) RequestInfo requestInfo,
85             @JsonProperty(value = "relatedInstanceList", required = true) List<RelatedInstance> relatedInstanceList,
86             @JsonProperty(value = "requestParameters", required = true) RequestParametersVfModule requestParameters)
87     {
88         super(modelInfo, cloudConfiguration, requestInfo, relatedInstanceList, requestParameters);
89     }
90
91     public static class RequestParametersVfModule extends BaseResourceInstantiationRequestDetails.RequestParameters {
92         private final boolean usePreload;
93
94         public RequestParametersVfModule(List<? extends UserParamTypes> userParams, boolean usePreload) {
95             super(userParams);
96             this.usePreload = usePreload;
97         }
98
99         public boolean isUsePreload() {
100             return usePreload;
101         }
102     }
103
104     public static class UserParamMap<K,V> extends HashMap<K,V> implements UserParamTypes, Map<K,V>  {
105
106         public UserParamMap() {
107             super();
108         }
109     }
110 }
111