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