8f52608e23299b21e7d3485022e91c9e84263393
[policy/drools-applications.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * SOActorServiceProvider
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.policy.controlloop.actor.so;
22
23 import java.util.Collections;
24 import java.util.HashMap;
25 import java.util.List;
26 import java.util.Map;
27 import java.util.UUID;
28
29 import org.drools.core.WorkingMemory;
30 import org.onap.policy.aai.AAIManager;
31 import org.onap.policy.aai.AAINQInstanceFilters;
32 import org.onap.policy.aai.AAINQInventoryResponseItem;
33 import org.onap.policy.aai.AAINQNamedQuery;
34 import org.onap.policy.aai.AAINQQueryParameters;
35 import org.onap.policy.aai.AAINQRequest;
36 import org.onap.policy.aai.AAINQResponse;
37 import org.onap.policy.aai.AAINQResponseWrapper;
38 import org.onap.policy.controlloop.ControlLoopOperation;
39 import org.onap.policy.controlloop.VirtualControlLoopEvent;
40 import org.onap.policy.controlloop.actorServiceProvider.spi.Actor;
41 import org.onap.policy.controlloop.policy.Policy;
42 import org.onap.policy.drools.system.PolicyEngine;
43 import org.onap.policy.so.SOCloudConfiguration;
44 import org.onap.policy.so.SOManager;
45 import org.onap.policy.so.SOModelInfo;
46 import org.onap.policy.so.SORelatedInstance;
47 import org.onap.policy.so.SORelatedInstanceListElement;
48 import org.onap.policy.so.SORequest;
49 import org.onap.policy.so.SORequestDetails;
50 import org.onap.policy.so.SORequestInfo;
51 import org.onap.policy.so.SORequestParameters;
52 import org.onap.policy.so.util.Serialization;
53 import org.slf4j.Logger;
54 import org.slf4j.LoggerFactory;
55
56 import com.google.common.collect.ImmutableList;
57 import com.google.common.collect.ImmutableMap;
58
59 public class SOActorServiceProvider implements Actor {
60         
61         private static final Logger logger = LoggerFactory.getLogger(SOActorServiceProvider.class);
62
63         private static String vnfItemVnfId;
64
65         private String vnfItemVnfType;
66
67         private String vnfItemModelInvariantId;
68
69         private String vnfItemModelVersionId;
70
71         private String vnfItemModelName;
72
73         private String vnfItemModelVersion;
74
75         private String vnfItemModelNameVersionId;
76
77         private static String serviceItemServiceInstanceId;
78
79         private String serviceItemModelInvariantId;
80
81         private String serviceItemModelName;
82
83         private String serviceItemModelType;
84
85         private String serviceItemModelVersion;
86
87         private String serviceItemModelNameVersionId;
88
89         private String vfModuleItemVfModuleName;
90
91         private String vfModuleItemModelInvariantId;
92
93         private String vfModuleItemModelVersionId;
94
95         private String vfModuleItemModelName;
96
97         private String vfModuleItemModelNameVersionId;
98
99         private String tenantItemTenantId;
100
101         private String cloudRegionItemCloudRegionId;
102
103         private static final ImmutableList<String> recipes = ImmutableList.of(
104                         "VF Module Create");
105         private static final ImmutableMap<String, List<String>> targets = new ImmutableMap.Builder<String, List<String>>()
106                         .put("VF Module Create", ImmutableList.of("VFC"))
107                         .build();
108         
109         @Override
110         public String actor() {
111                 return "SO";
112         }
113
114         @Override
115         public List<String> recipes() {
116                 return ImmutableList.copyOf(recipes);
117         }
118
119         @Override
120         public List<String> recipeTargets(String recipe) {
121                 return ImmutableList.copyOf(targets.getOrDefault(recipe, Collections.emptyList()));
122         }
123
124         @Override
125         public List<String> recipePayloads(String recipe) {
126                 return Collections.emptyList();
127         }
128         
129         /**
130          * SOActorServiceProvider Constructor
131          * 
132          */
133         public SOActorServiceProvider() {
134                 
135         }
136         
137         /**
138          * Constructs and sends an AAI vserver Named Query
139          * 
140          * @param onset
141          * @returns the response to the AAI Named Query
142          */
143         private AAINQResponseWrapper AaiNamedQueryRequest(VirtualControlLoopEvent onset) {
144                 
145                 // create AAI named-query request with UUID started with ""
146                 AAINQRequest aainqrequest = new AAINQRequest();
147                 AAINQQueryParameters aainqqueryparam = new AAINQQueryParameters();
148                 AAINQNamedQuery aainqnamedquery = new AAINQNamedQuery();
149                 AAINQInstanceFilters aainqinstancefilter = new AAINQInstanceFilters();
150
151                 // queryParameters
152                 aainqnamedquery.namedQueryUUID = UUID.fromString("4ff56a54-9e3f-46b7-a337-07a1d3c6b469"); // UUID.fromString($params.getAaiNamedQueryUUID()) TO DO: AaiNamedQueryUUID 
153                 aainqqueryparam.namedQuery = aainqnamedquery;
154                 aainqrequest.queryParameters = aainqqueryparam;
155                 //
156                 // instanceFilters
157                 //
158                 Map<String, Map<String, String>> aainqinstancefiltermap = new HashMap<>();
159                 Map<String, String> aainqinstancefiltermapitem = new HashMap<>();
160                 aainqinstancefiltermapitem.put("vserver-name", onset.AAI.get("vserver.vserver-name")); // TO DO: get vserver.vname from dcae onset.AAI.get("vserver.vserver-name")
161                 aainqinstancefiltermap.put("vserver", aainqinstancefiltermapitem);
162                 aainqinstancefilter.instanceFilter.add(aainqinstancefiltermap);
163                 aainqrequest.instanceFilters = aainqinstancefilter;
164                 //
165                 // print aainqrequest for debug
166                 //
167                 logger.debug("AAI Request sent:");
168                 logger.debug(Serialization.gsonPretty.toJson(aainqrequest));
169                 //
170                 // Create AAINQRequestWrapper
171                 //
172 //              AAINQRequestWrapper aainqRequestWrapper = new AAINQRequestWrapper(onset.requestID, aainqrequest);
173                 //
174                 // insert aainqrequest into memory
175                 //
176 //              insert(aainqRequestWrapper);
177                 
178                 /*
179          * Obtain A&AI credentials from properties.environment file
180          * TODO: What if these are null?
181          */
182         String aaiUrl = PolicyEngine.manager.getEnvironmentProperty("aai.url");
183         String aaiUsername = PolicyEngine.manager.getEnvironmentProperty("aai.username");
184         String aaiPassword = PolicyEngine.manager.getEnvironmentProperty("aai.password");
185                 
186                 //***** send the request *****\\
187                 AAINQResponse aainqresponse = AAIManager.postQuery(aaiUrl, aaiUsername, aaiPassword,
188                                 aainqrequest, onset.requestID);
189
190                 // Check AAI response
191                 if (aainqresponse == null) {
192                         System.err.println("Failed to get AAI response");
193                         
194                         // Fail and retract everything
195                         return null;
196                 } else {
197                         // Create AAINQResponseWrapper
198                         AAINQResponseWrapper aainqResponseWrapper = new AAINQResponseWrapper(onset.requestID, aainqresponse);
199
200                         // insert aainqResponseWrapper to memory -- Is this needed?
201 //                      insert(aainqResponseWrapper);
202                         
203                         if (logger.isDebugEnabled()) {
204                                 logger.debug("AAI Named Query Response: ");
205                                 logger.debug(Serialization.gsonPretty.toJson(aainqResponseWrapper.aainqresponse));
206                         }
207
208                         extractSOFieldsFromNamedQuery(aainqResponseWrapper, onset);
209                         return aainqResponseWrapper;
210                 }
211         }
212
213                 
214         /**
215          * Extract the required fields from the named query response
216          * @param namedQueryResponseWrapper
217          * @param onset
218          */
219         private void extractSOFieldsFromNamedQuery(AAINQResponseWrapper namedQueryResponseWrapper, VirtualControlLoopEvent onset) {
220                 
221                 try {
222                         // vnfItem
223                         setVnfItemVnfId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.vnfID);
224                         setVnfItemVnfType(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.vnfType);
225                         setVnfItemVnfType(vnfItemVnfType.substring(vnfItemVnfType.lastIndexOf("/")+1));
226                         setVnfItemModelInvariantId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.modelInvariantId);
227                         setVnfItemModelVersionId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.modelVersionId);
228                         setVnfItemModelName(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(1).propertyValue);
229                         setVnfItemModelNameVersionId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(0).propertyValue);
230                         setVnfItemModelVersion(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(4).propertyValue);                   
231
232                         // serviceItem
233                         setServiceItemServiceInstanceId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.serviceInstanceID);
234                         setServiceItemModelInvariantId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.modelInvariantId);
235                         setServiceItemModelName(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(1).propertyValue);
236                         setServiceItemModelType(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(1).propertyValue);
237                         setServiceItemModelNameVersionId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.modelVersionId);
238                         setServiceItemModelVersion(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(4).propertyValue);
239
240                         // Find the index for base vf module and non-base vf module
241                         int baseIndex = -1;
242                         List<AAINQInventoryResponseItem> inventoryItems = namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems;
243                         for (AAINQInventoryResponseItem m : inventoryItems) {
244                                 if (m.vfModule != null && m.vfModule.isBaseVfModule) {
245                                         baseIndex = inventoryItems.indexOf(m);
246                                 } 
247                                 //
248                                 if (baseIndex != -1) {
249                                         break;
250                                 }
251                         }
252                         
253                         // Report the error if either base vf module or non-base vf module is not found
254                         if (baseIndex == -1) {
255                                 logger.error("Either base or non-base vf module is not found from AAI response.");
256                                 return;
257                         }
258                         
259                         // This comes from the base module
260                         setVfModuleItemVfModuleName(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(baseIndex).vfModule.vfModuleName);
261                         setVfModuleItemVfModuleName(vfModuleItemVfModuleName.replace("Vfmodule", "vDNS"));
262
263                         // vfModuleItem - NOT the base module
264                         setVfModuleItemModelInvariantId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(baseIndex).vfModule.modelInvariantId);
265                         setVfModuleItemModelNameVersionId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(baseIndex).vfModule.modelVersionId);
266                         setVfModuleItemModelName(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(baseIndex).extraProperties.extraProperty.get(1).propertyValue);
267                         setVfModuleItemModelVersionId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(baseIndex).extraProperties.extraProperty.get(4).propertyValue);
268
269                         // tenantItem
270                         setTenantItemTenantId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).tenant.tenantId);
271
272                         // cloudRegionItem
273                         setCloudRegionItemCloudRegionId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).items.inventoryResponseItems.get(0).cloudRegion.cloudRegionId);
274                                         
275                 } catch (Exception e) {
276                         logger.warn("Problem extracting SO data from AAI query response because of {}", e.getMessage(), e);
277                         return;
278                 }
279         }
280         
281         /**
282          * Checks whether extracted fields from AAI Named Query are null or not
283          * @return false if some extracted fields are missing, true otherwise
284          */
285         private boolean checkExtractedFields() {
286                 
287                 if ((getVnfItemVnfId() == null) || (getVnfItemVnfType() == null) ||
288                             (getVnfItemModelInvariantId() == null) || (getVnfItemModelName() == null) ||
289                             (getVnfItemModelVersion() == null) || (getVnfItemModelNameVersionId() == null) ||
290                             (getServiceItemServiceInstanceId() == null) || (getServiceItemModelName() == null) ||
291                             (getServiceItemModelType() == null) || (getServiceItemModelVersion() == null) ||
292                             (getServiceItemModelNameVersionId() == null) || (getVfModuleItemVfModuleName() == null) ||
293                             (getVfModuleItemModelInvariantId() == null) || (getVfModuleItemModelVersionId() == null) ||
294                             (getVfModuleItemModelName() == null) || (getVfModuleItemModelNameVersionId() == null) ||
295                             (getTenantItemTenantId() == null) || (getCloudRegionItemCloudRegionId() == null)) {
296                                 return false;
297                         }
298                 return true;
299         }
300                 
301         /**
302          * Construct SO Request
303          * 
304          * @param onset
305          * @param operation
306          * @param policy
307          * @return SORequest
308          * @throws IllegalAccessException 
309          */
310         public SORequest constructRequest(VirtualControlLoopEvent onset, ControlLoopOperation operation, Policy policy) {
311
312                 if ("SO".equals(policy.getActor()) && "VF Module Create".equals(policy.getRecipe())) {
313                         // perform named query request and handle response
314                         AaiNamedQueryRequest(onset);
315                 } else {
316                         // for future extension
317                         return null;
318                 };
319           
320                 // check if the fields extracted from named query response are 
321                 // not null so we can proceed with SO request
322                 if (!checkExtractedFields()) {
323                         logger.warn("AAI response is missing some required fields. Cannot proceed with SO Request construction.");
324                         return null;
325                         
326                 } else {
327
328                         // Construct SO Request
329                         SORequest request = new SORequest();
330 //                      request.requestId = onset.requestID;
331                         request.requestDetails = new SORequestDetails();
332                         request.requestDetails.modelInfo = new SOModelInfo();
333                         request.requestDetails.cloudConfiguration = new SOCloudConfiguration();
334                         request.requestDetails.requestInfo = new SORequestInfo();
335                         request.requestDetails.requestParameters = new SORequestParameters();
336                         request.requestDetails.requestParameters.userParams = null;
337                         //
338                         // cloudConfiguration
339                         //
340                         request.requestDetails.cloudConfiguration.lcpCloudRegionId = getCloudRegionItemCloudRegionId();
341                         request.requestDetails.cloudConfiguration.tenantId = getTenantItemTenantId();
342                         //
343                         // modelInfo
344                         //
345                         request.requestDetails.modelInfo.modelType = "vfModule";
346                         request.requestDetails.modelInfo.modelInvariantId = getVfModuleItemModelInvariantId();
347                         request.requestDetails.modelInfo.modelVersionId = getVfModuleItemModelNameVersionId();
348                         request.requestDetails.modelInfo.modelName = getVfModuleItemModelName();
349                         request.requestDetails.modelInfo.modelVersion = getVfModuleItemModelVersionId();
350                         //
351                         // requestInfo
352                         //
353                         request.requestDetails.requestInfo.instanceName = getVfModuleItemVfModuleName();
354                         request.requestDetails.requestInfo.source = "POLICY";
355                         request.requestDetails.requestInfo.suppressRollback = false;
356                         request.requestDetails.requestInfo.requestorId = "policy";
357                         //
358                         // relatedInstanceList
359                         //
360                         SORelatedInstanceListElement relatedInstanceListElement1 = new SORelatedInstanceListElement();
361                         SORelatedInstanceListElement relatedInstanceListElement2 = new SORelatedInstanceListElement();
362                         relatedInstanceListElement1.relatedInstance = new SORelatedInstance();
363                         relatedInstanceListElement2.relatedInstance = new SORelatedInstance();
364                         //
365                         relatedInstanceListElement1.relatedInstance.instanceId = getServiceItemServiceInstanceId();
366                         relatedInstanceListElement1.relatedInstance.modelInfo = new SOModelInfo();
367                         relatedInstanceListElement1.relatedInstance.modelInfo.modelType = "service";
368                         relatedInstanceListElement1.relatedInstance.modelInfo.modelInvariantId = getServiceItemModelInvariantId();
369                         relatedInstanceListElement1.relatedInstance.modelInfo.modelVersionId = getServiceItemModelNameVersionId();
370                         relatedInstanceListElement1.relatedInstance.modelInfo.modelName = getServiceItemModelName();
371                         relatedInstanceListElement1.relatedInstance.modelInfo.modelVersion = getServiceItemModelVersion();
372                         //
373                         relatedInstanceListElement2.relatedInstance.instanceId = getVnfItemVnfId();
374                         relatedInstanceListElement2.relatedInstance.modelInfo = new SOModelInfo();
375                         relatedInstanceListElement2.relatedInstance.modelInfo.modelType = "vnf";
376                         relatedInstanceListElement2.relatedInstance.modelInfo.modelInvariantId = getVnfItemModelInvariantId();
377                         relatedInstanceListElement2.relatedInstance.modelInfo.modelVersionId = getVnfItemModelNameVersionId();
378                         relatedInstanceListElement2.relatedInstance.modelInfo.modelName = getVnfItemModelName();
379                         relatedInstanceListElement2.relatedInstance.modelInfo.modelVersion = getVnfItemModelVersion();
380                         relatedInstanceListElement2.relatedInstance.modelInfo.modelCustomizationName = getVnfItemVnfType();
381                         //      
382                         request.requestDetails.relatedInstanceList.add(relatedInstanceListElement1);
383                         request.requestDetails.relatedInstanceList.add(relatedInstanceListElement2);
384                         //
385                         // print SO request for debug
386                         //
387                         logger.debug("SO request sent:");
388                         logger.debug(Serialization.gsonPretty.toJson(request));
389         
390                         return request;
391                 }
392         }
393         
394         /**
395          * This method is needed to get the serviceInstanceId and vnfInstanceId which is used
396          * in the asyncSORestCall 
397          * 
398          * @param wm
399          * @param request
400          */
401         public static void sendRequest(String requestID, WorkingMemory wm, Object request) {
402                 SOManager Mm = new SOManager();
403                 Mm.asyncSORestCall(requestID, wm, getServiceItemServiceInstanceId(), getVnfItemVnfId(), (SORequest)request);
404         }
405                 
406         /**
407          * @return the vnfItemVnfId
408          */
409         public static String getVnfItemVnfId() {
410                 return vnfItemVnfId;
411         }
412
413         /**
414          * @param vnfItemVnfId the vnfItemVnfId to set
415          */
416         private static void setVnfItemVnfId(String vnfItemVnfId) {
417                 SOActorServiceProvider.vnfItemVnfId = vnfItemVnfId;
418         }
419
420         /**
421          * @return the vnfItemVnfType
422          */
423         public String getVnfItemVnfType() {
424                 return this.vnfItemVnfType;
425         }
426
427         /**
428          * @param vnfItemVnfType the vnfItemVnfType to set
429          */
430         private void setVnfItemVnfType(String vnfItemVnfType) {
431                 this.vnfItemVnfType = vnfItemVnfType;
432         }
433
434         /**
435          * @return the vnfItemModelInvariantId
436          */
437         public String getVnfItemModelInvariantId() {
438                 return this.vnfItemModelInvariantId;
439         }
440
441         /**
442          * @param vnfItemModelInvariantId the vnfItemModelInvariantId to set
443          */
444         private void setVnfItemModelInvariantId(String vnfItemModelInvariantId) {
445                 this.vnfItemModelInvariantId = vnfItemModelInvariantId;
446         }
447
448         /**
449          * @return the vnfItemModelVersionId
450          */
451         public String getVnfItemModelVersionId() {
452                 return this.vnfItemModelVersionId;
453         }
454
455         /**
456          * @param vnfItemModelVersionId the vnfItemModelVersionId to set
457          */
458         private void setVnfItemModelVersionId(String vnfItemModelVersionId) {
459                 this.vnfItemModelVersionId = vnfItemModelVersionId;
460         }
461
462         /**
463          * @return the vnfItemModelName
464          */
465         public String getVnfItemModelName() {
466                 return this.vnfItemModelName;
467         }
468
469         /**
470          * @param vnfItemModelName the vnfItemModelName to set
471          */
472         private void setVnfItemModelName(String vnfItemModelName) {
473                 this.vnfItemModelName = vnfItemModelName;
474         }
475
476         /**
477          * @return the vnfItemModelVersion
478          */
479         public String getVnfItemModelVersion() {
480                 return this.vnfItemModelVersion;
481         }
482
483         /**
484          * @param vnfItemModelVersion the vnfItemModelVersion to set
485          */
486         private void setVnfItemModelVersion(String vnfItemModelVersion) {
487                 this.vnfItemModelVersion = vnfItemModelVersion;
488         }
489
490         /**
491          * @return the vnfItemModelNameVersionId
492          */
493         public String getVnfItemModelNameVersionId() {
494                 return this.vnfItemModelNameVersionId;
495         }
496
497         /**
498          * @param vnfItemModelNameVersionId the vnfItemModelNameVersionId to set
499          */
500         private void setVnfItemModelNameVersionId(String vnfItemModelNameVersionId) {
501                 this.vnfItemModelNameVersionId = vnfItemModelNameVersionId;
502         }
503
504         /**
505          * @return the serviceItemServiceInstanceId
506          */
507         public static String getServiceItemServiceInstanceId() {
508                 return serviceItemServiceInstanceId;
509         }
510
511         /**
512          * @param serviceItemServiceInstanceId the serviceItemServiceInstanceId to set
513          */
514         private static void setServiceItemServiceInstanceId(
515                         String serviceItemServiceInstanceId) {
516                 SOActorServiceProvider.serviceItemServiceInstanceId = serviceItemServiceInstanceId;
517         }
518
519         /**
520          * @return the serviceItemModelInvariantId
521          */
522         public String getServiceItemModelInvariantId() {
523                 return this.serviceItemModelInvariantId;
524         }
525
526         /**
527          * @param serviceItemModelInvariantId the serviceItemModelInvariantId to set
528          */
529         private void setServiceItemModelInvariantId(String serviceItemModelInvariantId) {
530                 this.serviceItemModelInvariantId = serviceItemModelInvariantId;
531         }
532
533         /**
534          * @return the serviceItemModelName
535          */
536         public String getServiceItemModelName() {
537                 return this.serviceItemModelName;
538         }
539
540         /**
541          * @param serviceItemModelName the serviceItemModelName to set
542          */
543         private void setServiceItemModelName(String serviceItemModelName) {
544                 this.serviceItemModelName = serviceItemModelName;
545         }
546
547         /**
548          * @return the serviceItemModelType
549          */
550         public String getServiceItemModelType() {
551                 return this.serviceItemModelType;
552         }
553
554         /**
555          * @param serviceItemModelType the serviceItemModelType to set
556          */
557         private void setServiceItemModelType(String serviceItemModelType) {
558                 this.serviceItemModelType = serviceItemModelType;
559         }
560
561         /**
562          * @return the serviceItemModelVersion
563          */
564         public String getServiceItemModelVersion() {
565                 return this.serviceItemModelVersion;
566         }
567
568         /**
569          * @param serviceItemModelVersion the serviceItemModelVersion to set
570          */
571         private void setServiceItemModelVersion(String serviceItemModelVersion) {
572                 this.serviceItemModelVersion = serviceItemModelVersion;
573         }
574
575         /**
576          * @return the serviceItemModelNameVersionId
577          */
578         public String getServiceItemModelNameVersionId() {
579                 return this.serviceItemModelNameVersionId;
580         }
581
582         /**
583          * @param serviceItemModelNameVersionId the serviceItemModelNameVersionId to set
584          */
585         private void setServiceItemModelNameVersionId(
586                         String serviceItemModelNameVersionId) {
587                 this.serviceItemModelNameVersionId = serviceItemModelNameVersionId;
588         }
589
590         /**
591          * @return the vfModuleItemVfModuleName
592          */
593         public String getVfModuleItemVfModuleName() {
594                 return this.vfModuleItemVfModuleName;
595         }
596
597         /**
598          * @param vfModuleItemVfModuleName the vfModuleItemVfModuleName to set
599          */
600         private void setVfModuleItemVfModuleName(String vfModuleItemVfModuleName) {
601                 this.vfModuleItemVfModuleName = vfModuleItemVfModuleName;
602         }
603
604         /**
605          * @return the vfModuleItemModelInvariantId
606          */
607         public String getVfModuleItemModelInvariantId() {
608                 return this.vfModuleItemModelInvariantId;
609         }
610
611         /**
612          * @param vfModuleItemModelInvariantId the vfModuleItemModelInvariantId to set
613          */
614         private void setVfModuleItemModelInvariantId(String vfModuleItemModelInvariantId) {
615                 this.vfModuleItemModelInvariantId = vfModuleItemModelInvariantId;
616         }
617
618         /**
619          * @return the vfModuleItemModelVersionId
620          */
621         public String getVfModuleItemModelVersionId() {
622                 return this.vfModuleItemModelVersionId;
623         }
624
625         /**
626          * @param vfModuleItemModelVersionId the vfModuleItemModelVersionId to set
627          */
628         private void setVfModuleItemModelVersionId(
629                         String vfModuleItemModelVersionId) {
630                 this.vfModuleItemModelVersionId = vfModuleItemModelVersionId;
631         }
632
633         /**
634          * @return the vfModuleItemModelName
635          */
636         public String getVfModuleItemModelName() {
637                 return this.vfModuleItemModelName;
638         }
639
640         /**
641          * @param vfModuleItemModelName the vfModuleItemModelName to set
642          */
643         private void setVfModuleItemModelName(String vfModuleItemModelName) {
644                 this.vfModuleItemModelName = vfModuleItemModelName;
645         }
646
647         /**
648          * @return the vfModuleItemModelNameVersionId
649          */
650         public String getVfModuleItemModelNameVersionId() {
651                 return this.vfModuleItemModelNameVersionId;
652         }
653
654         /**
655          * @param vfModuleItemModelNameVersionId the vfModuleItemModelNameVersionId to set
656          */
657         private void setVfModuleItemModelNameVersionId(
658                         String vfModuleItemModelNameVersionId) {
659                 this.vfModuleItemModelNameVersionId = vfModuleItemModelNameVersionId;
660         }
661
662         /**
663          * @return the tenantItemTenantId
664          */
665         public String getTenantItemTenantId() {
666                 return this.tenantItemTenantId;
667         }
668
669         /**
670          * @param tenantItemTenantId the tenantItemTenantId to set
671          */
672         private void setTenantItemTenantId(String tenantItemTenantId) {
673                 this.tenantItemTenantId = tenantItemTenantId;
674         }
675
676         /**
677          * @return the cloudRegionItemCloudRegionId
678          */
679         public String getCloudRegionItemCloudRegionId() {
680                 return this.cloudRegionItemCloudRegionId;
681         }
682
683         /**
684          * @param cloudRegionItemCloudRegionId the cloudRegionItemCloudRegionId to set
685          */
686         private void setCloudRegionItemCloudRegionId(
687                         String cloudRegionItemCloudRegionId) {
688                 this.cloudRegionItemCloudRegionId = cloudRegionItemCloudRegionId;
689         }
690
691 }