a31007f32e90fbc378438a14d0cde4a6143ec542
[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.AAINQInstanceFilters;
31 import org.onap.policy.aai.AAINQInventoryResponseItem;
32 import org.onap.policy.aai.AAIManager;
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.ControlLoopNotificationType;
39 import org.onap.policy.controlloop.ControlLoopOperation;
40 import org.onap.policy.controlloop.VirtualControlLoopEvent;
41 import org.onap.policy.controlloop.VirtualControlLoopNotification;
42 import org.onap.policy.controlloop.actorServiceProvider.spi.Actor;
43 import org.onap.policy.controlloop.policy.Policy;
44 import org.onap.policy.so.SOCloudConfiguration;
45 import org.onap.policy.so.SOManager;
46 import org.onap.policy.so.SOModelInfo;
47 import org.onap.policy.so.SORelatedInstance;
48 import org.onap.policy.so.SORelatedInstanceListElement;
49 import org.onap.policy.so.SORequest;
50 import org.onap.policy.so.SORequestDetails;
51 import org.onap.policy.so.SORequestInfo;
52 import org.onap.policy.so.SORequestParameters;
53 import org.onap.policy.so.util.Serialization;
54 import org.slf4j.Logger;
55 import org.slf4j.LoggerFactory;
56
57 import com.google.common.collect.ImmutableList;
58 import com.google.common.collect.ImmutableMap;
59
60 public class SOActorServiceProvider implements Actor {
61         
62         private static final Logger logger = LoggerFactory.getLogger(SOActorServiceProvider.class);
63
64         private static String vnfItemVnfId;
65
66         private String vnfItemVnfType;
67
68         private String vnfItemModelInvariantId;
69
70         private String vnfItemModelVersionId;
71
72         private String vnfItemModelName;
73
74         private String vnfItemModelVersion;
75
76         private String vnfItemModelNameVersionId;
77
78         private static String serviceItemServiceInstanceId;
79
80         private String serviceItemModelInvariantId;
81
82         private String serviceItemModelName;
83
84         private String serviceItemModelType;
85
86         private String serviceItemModelVersion;
87
88         private String serviceItemModelNameVersionId;
89
90         private String vfModuleItemVfModuleName;
91
92         private String vfModuleItemModelInvariantId;
93
94         private String vfModuleItemModelVersionId;
95
96         private String vfModuleItemModelName;
97
98         private String vfModuleItemModelNameVersionId;
99
100         private String tenantItemTenantId;
101
102         private String cloudRegionItemCloudRegionId;
103
104         private static final ImmutableList<String> recipes = ImmutableList.of(
105                         "VF Module Create");
106         private static final ImmutableMap<String, List<String>> targets = new ImmutableMap.Builder<String, List<String>>()
107                         .put("VF Module Create", ImmutableList.of("VFC"))
108                         .build();
109         
110         @Override
111         public String actor() {
112                 return "SO";
113         }
114
115         @Override
116         public List<String> recipes() {
117                 return ImmutableList.copyOf(recipes);
118         }
119
120         @Override
121         public List<String> recipeTargets(String recipe) {
122                 return ImmutableList.copyOf(targets.getOrDefault(recipe, Collections.emptyList()));
123         }
124
125         @Override
126         public List<String> recipePayloads(String recipe) {
127                 return Collections.emptyList();
128         }
129         
130         /**
131          * SOActorServiceProvider Constructor
132          * 
133          */
134         public SOActorServiceProvider() {
135                 
136         }
137         
138         /**
139          * Constructs and sends an AAI vserver Named Query
140          * 
141          * @param eventRequestID
142          * @returns the response to the AAI Named Query
143          */
144         private AAINQResponseWrapper AaiNamedQueryRequest(VirtualControlLoopEvent onset) {
145                 
146                 // create AAI named-query request with UUID started with ""
147                 AAINQRequest aainqrequest = new AAINQRequest();
148                 AAINQQueryParameters aainqqueryparam = new AAINQQueryParameters();
149                 AAINQNamedQuery aainqnamedquery = new AAINQNamedQuery();
150                 AAINQInstanceFilters aainqinstancefilter = new AAINQInstanceFilters();
151
152                 // queryParameters
153                 aainqnamedquery.namedQueryUUID = UUID.fromString("4ff56a54-9e3f-46b7-a337-07a1d3c6b469"); // UUID.fromString($params.getAaiNamedQueryUUID()) TO DO: AaiNamedQueryUUID 
154                 aainqqueryparam.namedQuery = aainqnamedquery;
155                 aainqrequest.queryParameters = aainqqueryparam;
156                 //
157                 // instanceFilters
158                 //
159                 Map<String, Map<String, String>> aainqinstancefiltermap = new HashMap<>();
160                 Map<String, String> aainqinstancefiltermapitem = new HashMap<>();
161                 aainqinstancefiltermapitem.put("vserver-name", onset.AAI.get("vserver.vserver-name")); // TO DO: get vserver.vname from dcae onset.AAI.get("vserver.vserver-name")
162                 aainqinstancefiltermap.put("vserver", aainqinstancefiltermapitem);
163                 aainqinstancefilter.instanceFilter.add(aainqinstancefiltermap);
164                 aainqrequest.instanceFilters = aainqinstancefilter;
165                 //
166                 // print aainqrequest for debug
167                 //
168                 logger.debug("AAI Request sent:");
169                 logger.debug(Serialization.gsonPretty.toJson(aainqrequest));
170                 //
171                 // Create AAINQRequestWrapper
172                 //
173 //              AAINQRequestWrapper aainqRequestWrapper = new AAINQRequestWrapper(onset.requestID, aainqrequest);
174                 //
175                 // insert aainqrequest into memory
176                 //
177 //              insert(aainqRequestWrapper);
178                 
179                 String url = "http://localhost:6666";
180                 String username = "testUser";
181                 String password = "testPass";
182                 
183                 //***** send the request *****\\
184                 AAINQResponse aainqresponse = AAIManager.postQuery(url, username, password, // TO DO: get AAI URL, username, and password
185                                 aainqrequest, onset.requestID);
186
187                 // Check AAI response
188                 if (aainqresponse == null) {
189                         System.err.println("Failed to get AAI response");
190                         
191                         // Fail and retract everything
192                         return null;
193                 } else {
194                         // Create AAINQResponseWrapper
195                         AAINQResponseWrapper aainqResponseWrapper = new AAINQResponseWrapper(onset.requestID, aainqresponse);
196
197                         // insert aainqResponseWrapper to memory -- Is this needed?
198 //                      insert(aainqResponseWrapper);
199                         
200                         // 
201                         extractSOFieldsFromNamedQuery(aainqResponseWrapper, onset);
202                         return aainqResponseWrapper;
203                 }
204         }
205
206         /**
207          * Extract the required fields from the named query response
208          * @param namedQueryResponseWrapper
209          * @param onset
210          */
211         private void extractSOFieldsFromNamedQuery(AAINQResponseWrapper namedQueryResponseWrapper, VirtualControlLoopEvent onset) {
212                 
213                 try {
214                         // vnfItem
215                         setVnfItemVnfId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.vnfID);
216                         setVnfItemVnfType(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.vnfType);
217                         setVnfItemVnfType(vnfItemVnfType.substring(vnfItemVnfType.lastIndexOf("/")+1));
218                         setVnfItemModelInvariantId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.modelInvariantId);
219                         setVnfItemModelVersionId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.modelVersionId);
220                         setVnfItemModelName(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(0).propertyValue);
221                         setVnfItemModelVersion(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(2).propertyValue);
222                         setVnfItemModelNameVersionId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(4).propertyValue);                     
223
224                         // serviceItem
225                         setServiceItemServiceInstanceId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.serviceInstanceID);
226                         setServiceItemModelInvariantId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.modelInvariantId);
227                         setServiceItemModelName(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(0).propertyValue);
228                         setServiceItemModelType(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(1).propertyValue);
229                         setServiceItemModelVersion(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.modelVersionId);
230                         setServiceItemModelNameVersionId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(4).propertyValue);
231                         
232                         // Find the index for base vf module and non-base vf module
233                         int baseIndex = -1;
234                         int nonBaseIndex = -1;
235                         List<AAINQInventoryResponseItem> inventoryItems = namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems;
236                         for (AAINQInventoryResponseItem m : inventoryItems) {
237                                 if (m.vfModule != null && m.vfModule.isBaseVfModule == true) {
238                                         baseIndex = inventoryItems.indexOf(m);
239                                 } else if (m.vfModule != null && m.vfModule.isBaseVfModule == false && m.vfModule.orchestrationStatus == null) {
240                                         nonBaseIndex = inventoryItems.indexOf(m);
241                                 }
242                                 //
243                                 if (baseIndex != -1 && nonBaseIndex != -1) {
244                                         break;
245                                 }
246                         }
247                         
248                         // Report the error if either base vf module or non-base vf module is not found
249                         if (baseIndex == -1 || nonBaseIndex == -1) {
250                                 logger.error("Either base or non-base vf module is not found from AAI response.");
251                                 return;
252                         }
253                         
254                         // This comes from the base module
255                         setVfModuleItemVfModuleName(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(baseIndex).vfModule.vfModuleName);
256                         setVfModuleItemVfModuleName(vfModuleItemVfModuleName.replace("Vfmodule", "vDNS"));
257
258                         // vfModuleItem - NOT the base module
259                         setVfModuleItemModelInvariantId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(nonBaseIndex).vfModule.modelInvariantId);
260                         setVfModuleItemModelVersionId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(nonBaseIndex).vfModule.modelVersionId);
261                         setVfModuleItemModelName(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(nonBaseIndex).extraProperties.extraProperty.get(0).propertyValue);
262                         setVfModuleItemModelNameVersionId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(nonBaseIndex).extraProperties.extraProperty.get(4).propertyValue);
263                         
264                         // tenantItem
265                         setTenantItemTenantId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).tenant.tenantId);
266
267                         // cloudRegionItem
268                         setCloudRegionItemCloudRegionId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).items.inventoryResponseItems.get(0).cloudRegion.cloudRegionId);
269                 
270                 } catch (Exception e) {
271                         logger.error(e.getMessage(), e);
272                         VirtualControlLoopNotification notification = new VirtualControlLoopNotification(onset);
273                         notification.notification = ControlLoopNotificationType.REJECTED;
274                         notification.message = "Exception occurred " + e.getMessage();
275                         notification.policyName = onset.policyName;
276                         notification.policyScope = onset.policyScope;
277                         notification.policyVersion = onset.policyVersion;
278                         //
279                         try {
280                                 logger.debug(Serialization.gsonPretty.toJson(notification));
281                         } catch (Exception e1) {
282                                 logger.error("Can't deliver notification: " + notification);
283                                 logger.error(e1.getMessage(), e1);
284                         }
285                         //
286                         notification.notification = ControlLoopNotificationType.FINAL_FAILURE;
287                         notification.message = "Invalid named-query response from AAI";
288             //
289             try {
290                 logger.debug(Serialization.gsonPretty.toJson(notification));
291             } catch (Exception e1) {
292                 logger.error("Can't deliver notification: " + notification);
293                 logger.error(e1.getMessage(), e1);
294             }   
295                         // Retract everything
296                         return;
297                 }
298
299                 // Extracted fields should not be null
300                 if (checkExtractedFields() == false) {
301                         System.err.println("some fields are missing from AAI response.");
302                         return;
303                 }
304         }
305         
306         /**
307          * Checks whether extracted fields from AAI Named Query are null or not
308          * @return false if some extracted fields are missing, true otherwise
309          */
310         private boolean checkExtractedFields() {
311                 
312                 if ((getVnfItemVnfId() == null) || (getVnfItemVnfType() == null) ||
313                             (getVnfItemModelInvariantId() == null) || (getVnfItemModelName() == null) ||
314                             (getVnfItemModelVersion() == null) || (getVnfItemModelNameVersionId() == null) ||
315                             (getServiceItemServiceInstanceId() == null) || (getServiceItemModelName() == null) ||
316                             (getServiceItemModelType() == null) || (getServiceItemModelVersion() == null) ||
317                             (getServiceItemModelNameVersionId() == null) || (getVfModuleItemVfModuleName() == null) ||
318                             (getVfModuleItemModelInvariantId() == null) || (getVfModuleItemModelVersionId() == null) ||
319                             (getVfModuleItemModelName() == null) || (getVfModuleItemModelNameVersionId() == null) ||
320                             (getTenantItemTenantId() == null) || (getCloudRegionItemCloudRegionId() == null)) {
321                                 return false;
322                         }
323                 return true;
324         }
325         
326         /**
327          * Construct SO Request
328          * 
329          * @param onset
330          * @param operation
331          * @param policy
332          * @return SORequest
333          */
334         public SORequest constructRequest(VirtualControlLoopEvent onset, ControlLoopOperation operation, Policy policy) {
335
336                 if (policy.getActor().equals("SO") && policy.getRecipe().equals("VF Module Create")) {
337                         // perform named query request and handle response
338                         AaiNamedQueryRequest(onset);
339                 } else {
340                         // for future extension
341                         return null;
342                 };
343           
344                 // check if the fields extracted from named query response are 
345                 // not null so we can proceed with SO request
346                 if (checkExtractedFields() == false) {
347                         
348                         System.err.println("AAI response is missing some required fields. Cannot proceed with SO Request construction.");
349                         return null;
350                         
351                 } else {
352
353                         // Construct SO Request
354                         SORequest request = new SORequest();
355                         request.requestId = onset.requestID;
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 = getVfModuleItemModelInvariantId();
372                         request.requestDetails.modelInfo.modelNameVersionId = getVfModuleItemModelNameVersionId();
373                         request.requestDetails.modelInfo.modelName = getVfModuleItemModelName();
374                         request.requestDetails.modelInfo.modelVersion = getVfModuleItemModelVersionId();
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 = getServiceItemModelInvariantId();
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 SO request for debug
410                         //
411                         logger.debug("SO 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 asyncSORestCall 
421          * 
422          * @param wm
423          * @param request
424          */
425         public static void sendRequest(WorkingMemory wm, Object request) {
426                 SOManager Mm = new SOManager();
427                 Mm.asyncSORestCall(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 static void setVnfItemVnfId(String vnfItemVnfId) {
441                 SOActorServiceProvider.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 vnfItemModelInvariantId
460          */
461         public String getVnfItemModelInvariantId() {
462                 return this.vnfItemModelInvariantId;
463         }
464
465         /**
466          * @param vnfItemModelInvariantId the vnfItemModelInvariantId 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 static void setServiceItemServiceInstanceId(
539                         String serviceItemServiceInstanceId) {
540                 SOActorServiceProvider.serviceItemServiceInstanceId = serviceItemServiceInstanceId;
541         }
542
543         /**
544          * @return the serviceItemModelInvariantId
545          */
546         public String getServiceItemModelInvariantId() {
547                 return this.serviceItemModelInvariantId;
548         }
549
550         /**
551          * @param serviceItemModeInvariantlId the serviceItemModelInvariantId to set
552          */
553         private void setServiceItemModelInvariantId(String serviceItemModelInvariantId) {
554                 this.serviceItemModelInvariantId = serviceItemModelInvariantId;
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 vfModuleItemModelInvariantId
630          */
631         public String getVfModuleItemModelInvariantId() {
632                 return this.vfModuleItemModelInvariantId;
633         }
634
635         /**
636          * @param vfModuleItemModelInvariantId the vfModuleItemModelInvariantId to set
637          */
638         private void setVfModuleItemModelInvariantId(String vfModuleItemModelInvariantId) {
639                 this.vfModuleItemModelInvariantId = vfModuleItemModelInvariantId;
640         }
641
642         /**
643          * @return the vfModuleItemModelVersionId
644          */
645         public String getVfModuleItemModelVersionId() {
646                 return this.vfModuleItemModelVersionId;
647         }
648
649         /**
650          * @param vfModuleItemModelVersionId the vfModuleItemModelVersionId to set
651          */
652         private void setVfModuleItemModelVersionId(
653                         String vfModuleItemModelVersionId) {
654                 this.vfModuleItemModelVersionId = vfModuleItemModelVersionId;
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 }