eb2bc1731ea2dd3b137740a971b6c03b23b0be06
[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.rest.RESTManager;
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 onset
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.setNamedQueryUUID(UUID.fromString("4ff56a54-9e3f-46b7-a337-07a1d3c6b469")); // UUID.fromString($params.getAaiNamedQueryUUID()) TO DO: AaiNamedQueryUUID 
154                 aainqqueryparam.setNamedQuery(aainqnamedquery);
155                 aainqrequest.setQueryParameters(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.getAAI().get("vserver.vserver-name")); // TO DO: get vserver.vname from dcae onset.AAI.get("vserver.vserver-name")
162                 aainqinstancefiltermap.put("vserver", aainqinstancefiltermapitem);
163                 aainqinstancefilter.getInstanceFilter().add(aainqinstancefiltermap);
164                 aainqrequest.setInstanceFilters(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                 /*
180          * Obtain A&AI credentials from properties.environment file
181          * TODO: What if these are null?
182          */
183         String aaiUrl = PolicyEngine.manager.getEnvironmentProperty("aai.url");
184         String aaiUsername = PolicyEngine.manager.getEnvironmentProperty("aai.username");
185         String aaiPassword = PolicyEngine.manager.getEnvironmentProperty("aai.password");
186                 
187                 //***** send the request *****\\
188                 AAINQResponse aainqresponse = new AAIManager(new RESTManager()).postQuery(aaiUrl, aaiUsername, aaiPassword,
189                                 aainqrequest, onset.getRequestID());
190
191                 // Check AAI response
192                 if (aainqresponse == null) {
193                         System.err.println("Failed to get AAI response");
194                         
195                         // Fail and retract everything
196                         return null;
197                 } else {
198                         // Create AAINQResponseWrapper
199                         AAINQResponseWrapper aainqResponseWrapper = new AAINQResponseWrapper(onset.getRequestID(), aainqresponse);
200
201                         // insert aainqResponseWrapper to memory -- Is this needed?
202 //                      insert(aainqResponseWrapper);
203                         
204                         if (logger.isDebugEnabled()) {
205                                 logger.debug("AAI Named Query Response: ");
206                                 logger.debug(Serialization.gsonPretty.toJson(aainqResponseWrapper.getAainqresponse()));
207                         }
208
209                         extractSOFieldsFromNamedQuery(aainqResponseWrapper, onset);
210                         return aainqResponseWrapper;
211                 }
212         }
213
214                 
215         /**
216          * Extract the required fields from the named query response
217          * @param namedQueryResponseWrapper
218          * @param onset
219          */
220         private void extractSOFieldsFromNamedQuery(AAINQResponseWrapper namedQueryResponseWrapper, VirtualControlLoopEvent onset) {
221                 
222                 try {
223                         // vnfItem
224                         setVnfItemVnfId(namedQueryResponseWrapper.getAainqresponse().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getGenericVNF().getVnfID());
225                         setVnfItemVnfType(namedQueryResponseWrapper.getAainqresponse().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getGenericVNF().getVnfType());
226                         setVnfItemVnfType(vnfItemVnfType.substring(vnfItemVnfType.lastIndexOf("/")+1));
227                         setVnfItemModelInvariantId(namedQueryResponseWrapper.getAainqresponse().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getGenericVNF().getModelInvariantId());
228                         setVnfItemModelVersionId(namedQueryResponseWrapper.getAainqresponse().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getGenericVNF().getModelVersionId());
229                         setVnfItemModelName(namedQueryResponseWrapper.getAainqresponse().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getExtraProperties().getExtraProperty().get(1).getPropertyValue());
230                         setVnfItemModelNameVersionId(namedQueryResponseWrapper.getAainqresponse().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getExtraProperties().getExtraProperty().get(0).getPropertyValue());
231                         setVnfItemModelVersion(namedQueryResponseWrapper.getAainqresponse().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getExtraProperties().getExtraProperty().get(4).getPropertyValue());                        
232
233                         // serviceItem
234                         setServiceItemServiceInstanceId(namedQueryResponseWrapper.getAainqresponse().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getServiceInstance().getServiceInstanceID());
235                         setServiceItemModelInvariantId(namedQueryResponseWrapper.getAainqresponse().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getServiceInstance().getModelInvariantId());
236                         setServiceItemModelName(namedQueryResponseWrapper.getAainqresponse().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getExtraProperties().getExtraProperty().get(1).getPropertyValue());
237                         setServiceItemModelType(namedQueryResponseWrapper.getAainqresponse().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getExtraProperties().getExtraProperty().get(1).getPropertyValue());
238                         setServiceItemModelNameVersionId(namedQueryResponseWrapper.getAainqresponse().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getServiceInstance().getModelVersionId());
239                         setServiceItemModelVersion(namedQueryResponseWrapper.getAainqresponse().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getExtraProperties().getExtraProperty().get(4).getPropertyValue());
240
241                         // Find the index for base vf module and non-base vf module
242                         int baseIndex = -1;
243                         int nonBaseIndex = -1;
244                         List<AAINQInventoryResponseItem> inventoryItems = namedQueryResponseWrapper.getAainqresponse().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems();
245                         for (AAINQInventoryResponseItem m : inventoryItems) {
246                                 if (m.getVfModule() != null) {
247                                         if (m.getVfModule().getIsBaseVfModule()) {
248                                                 baseIndex = inventoryItems.indexOf(m);
249                                         } else if (m.getVfModule().getIsBaseVfModule() == false) {
250                                                 nonBaseIndex = inventoryItems.indexOf(m);
251                                         }
252                                 }
253                                 //
254                                 if (baseIndex != -1 && nonBaseIndex != -1) {
255                                         break;
256                                 }
257                         }
258                         
259                         // Report the error if either base vf module or non-base vf module is not found
260                         if (baseIndex == -1 || nonBaseIndex == -1) {
261                                 logger.error("Either base or non-base vf module is not found from AAI response.");
262                                 return;
263                         }
264                         
265                         // This comes from the base module
266                         setVfModuleItemVfModuleName(namedQueryResponseWrapper.getAainqresponse().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(baseIndex).getVfModule().getVfModuleName());
267                         setVfModuleItemVfModuleName(vfModuleItemVfModuleName.replace("Vfmodule", "vDNS"));
268
269                         // vfModuleItem - NOT the base module
270                         setVfModuleItemModelInvariantId(namedQueryResponseWrapper.getAainqresponse().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(nonBaseIndex).getVfModule().getModelInvariantId());
271                         setVfModuleItemModelNameVersionId(namedQueryResponseWrapper.getAainqresponse().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(nonBaseIndex).getVfModule().getModelVersionId());
272                         setVfModuleItemModelName(namedQueryResponseWrapper.getAainqresponse().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(nonBaseIndex).getExtraProperties().getExtraProperty().get(1).getPropertyValue());
273                         setVfModuleItemModelVersionId(namedQueryResponseWrapper.getAainqresponse().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(nonBaseIndex).getExtraProperties().getExtraProperty().get(4).getPropertyValue());
274
275                         // tenantItem
276                         setTenantItemTenantId(namedQueryResponseWrapper.getAainqresponse().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(1).getTenant().getTenantId());
277
278                         // cloudRegionItem
279                         setCloudRegionItemCloudRegionId(namedQueryResponseWrapper.getAainqresponse().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(1).getItems().getInventoryResponseItems().get(0).getCloudRegion().getCloudRegionId());
280                                         
281                 } catch (Exception e) {
282                         logger.warn("Problem extracting SO data from AAI query response because of {}", e.getMessage(), e);
283                         return;
284                 }
285         }
286         
287         /**
288          * Checks whether extracted fields from AAI Named Query are null or not
289          * @return false if some extracted fields are missing, true otherwise
290          */
291         private boolean checkExtractedFields() {
292                 
293                 if ((getVnfItemVnfId() == null) || (getVnfItemVnfType() == null) ||
294                             (getVnfItemModelInvariantId() == null) || (getVnfItemModelName() == null) ||
295                             (getVnfItemModelVersion() == null) || (getVnfItemModelNameVersionId() == null) ||
296                             (getServiceItemServiceInstanceId() == null) || (getServiceItemModelName() == null) ||
297                             (getServiceItemModelType() == null) || (getServiceItemModelVersion() == null) ||
298                             (getServiceItemModelNameVersionId() == null) || (getVfModuleItemVfModuleName() == null) ||
299                             (getVfModuleItemModelInvariantId() == null) || (getVfModuleItemModelVersionId() == null) ||
300                             (getVfModuleItemModelName() == null) || (getVfModuleItemModelNameVersionId() == null) ||
301                             (getTenantItemTenantId() == null) || (getCloudRegionItemCloudRegionId() == null)) {
302                                 return false;
303                         }
304                 return true;
305         }
306                 
307         /**
308          * Construct SO Request
309          * 
310          * @param onset
311          * @param operation
312          * @param policy
313          * @return SORequest
314          * @throws IllegalAccessException 
315          */
316         public SORequest constructRequest(VirtualControlLoopEvent onset, ControlLoopOperation operation, Policy policy) {
317
318                 if ("SO".equals(policy.getActor()) && "VF Module Create".equals(policy.getRecipe())) {
319                         // perform named query request and handle response
320                         AaiNamedQueryRequest(onset);
321                 } else {
322                         // for future extension
323                         return null;
324                 };
325           
326                 // check if the fields extracted from named query response are 
327                 // not null so we can proceed with SO request
328                 if (!checkExtractedFields()) {
329                         logger.warn("AAI response is missing some required fields. Cannot proceed with SO Request construction.");
330                         return null;
331                         
332                 } else {
333
334                         // Construct SO Request
335                         SORequest request = new SORequest();
336 //                      request.requestId = onset.requestID;
337                         request.setRequestDetails(new SORequestDetails());
338                         request.getRequestDetails().setModelInfo(new SOModelInfo());
339                         request.getRequestDetails().setCloudConfiguration(new SOCloudConfiguration());
340                         request.getRequestDetails().setRequestInfo(new SORequestInfo());
341                         request.getRequestDetails().setRequestParameters(new SORequestParameters());
342                         request.getRequestDetails().getRequestParameters().setUserParams(null);
343                         //
344                         // cloudConfiguration
345                         //
346                         request.getRequestDetails().getCloudConfiguration().setLcpCloudRegionId(getCloudRegionItemCloudRegionId());
347                         request.getRequestDetails().getCloudConfiguration().setTenantId(getTenantItemTenantId());
348                         //
349                         // modelInfo
350                         //
351                         request.getRequestDetails().getModelInfo().setModelType("vfModule");
352                         request.getRequestDetails().getModelInfo().setModelInvariantId(getVfModuleItemModelInvariantId());
353                         request.getRequestDetails().getModelInfo().setModelVersionId(getVfModuleItemModelNameVersionId());
354                         request.getRequestDetails().getModelInfo().setModelName(getVfModuleItemModelName());
355                         request.getRequestDetails().getModelInfo().setModelVersion(getVfModuleItemModelVersionId());
356                         //
357                         // requestInfo
358                         //
359                         request.getRequestDetails().getRequestInfo().setInstanceName(getVfModuleItemVfModuleName());
360                         request.getRequestDetails().getRequestInfo().setSource("POLICY");
361                         request.getRequestDetails().getRequestInfo().setSuppressRollback(false);
362                         request.getRequestDetails().getRequestInfo().setRequestorId("policy");
363                         //
364                         // relatedInstanceList
365                         //
366                         SORelatedInstanceListElement relatedInstanceListElement1 = new SORelatedInstanceListElement();
367                         SORelatedInstanceListElement relatedInstanceListElement2 = new SORelatedInstanceListElement();
368                         relatedInstanceListElement1.setRelatedInstance(new SORelatedInstance());
369                         relatedInstanceListElement2.setRelatedInstance(new SORelatedInstance());
370                         //
371                         relatedInstanceListElement1.getRelatedInstance().setInstanceId(getServiceItemServiceInstanceId());
372                         relatedInstanceListElement1.getRelatedInstance().setModelInfo(new SOModelInfo());
373                         relatedInstanceListElement1.getRelatedInstance().getModelInfo().setModelType("service");
374                         relatedInstanceListElement1.getRelatedInstance().getModelInfo().setModelInvariantId(getServiceItemModelInvariantId());
375                         relatedInstanceListElement1.getRelatedInstance().getModelInfo().setModelVersionId(getServiceItemModelNameVersionId());
376                         relatedInstanceListElement1.getRelatedInstance().getModelInfo().setModelName(getServiceItemModelName());
377                         relatedInstanceListElement1.getRelatedInstance().getModelInfo().setModelVersion(getServiceItemModelVersion());
378                         //
379                         relatedInstanceListElement2.getRelatedInstance().setInstanceId(getVnfItemVnfId());
380                         relatedInstanceListElement2.getRelatedInstance().setModelInfo(new SOModelInfo());
381                         relatedInstanceListElement2.getRelatedInstance().getModelInfo().setModelType("vnf");
382                         relatedInstanceListElement2.getRelatedInstance().getModelInfo().setModelInvariantId(getVnfItemModelInvariantId());
383                         relatedInstanceListElement2.getRelatedInstance().getModelInfo().setModelVersionId(getVnfItemModelNameVersionId());
384                         relatedInstanceListElement2.getRelatedInstance().getModelInfo().setModelName(getVnfItemModelName());
385                         relatedInstanceListElement2.getRelatedInstance().getModelInfo().setModelVersion(getVnfItemModelVersion());
386                         relatedInstanceListElement2.getRelatedInstance().getModelInfo().setModelCustomizationName(getVnfItemVnfType());
387                         //      
388                         request.getRequestDetails().getRelatedInstanceList().add(relatedInstanceListElement1);
389                         request.getRequestDetails().getRelatedInstanceList().add(relatedInstanceListElement2);
390                         //
391                         // print SO request for debug
392                         //
393                         logger.debug("SO request sent:");
394                         logger.debug(Serialization.gsonPretty.toJson(request));
395         
396                         return request;
397                 }
398         }
399         
400         /**
401          * This method is needed to get the serviceInstanceId and vnfInstanceId which is used
402          * in the asyncSORestCall 
403          * 
404          * @param wm
405          * @param request
406          */
407         public static void sendRequest(String requestID, WorkingMemory wm, Object request) {
408                 SOManager Mm = new SOManager();
409                 Mm.asyncSORestCall(requestID, wm, getServiceItemServiceInstanceId(), getVnfItemVnfId(), (SORequest)request);
410         }
411                 
412         /**
413          * @return the vnfItemVnfId
414          */
415         public static String getVnfItemVnfId() {
416                 return vnfItemVnfId;
417         }
418
419         /**
420          * @param vnfItemVnfId the vnfItemVnfId to set
421          */
422         private static void setVnfItemVnfId(String vnfItemVnfId) {
423                 SOActorServiceProvider.vnfItemVnfId = vnfItemVnfId;
424         }
425
426         /**
427          * @return the vnfItemVnfType
428          */
429         public String getVnfItemVnfType() {
430                 return this.vnfItemVnfType;
431         }
432
433         /**
434          * @param vnfItemVnfType the vnfItemVnfType to set
435          */
436         private void setVnfItemVnfType(String vnfItemVnfType) {
437                 this.vnfItemVnfType = vnfItemVnfType;
438         }
439
440         /**
441          * @return the vnfItemModelInvariantId
442          */
443         public String getVnfItemModelInvariantId() {
444                 return this.vnfItemModelInvariantId;
445         }
446
447         /**
448          * @param vnfItemModelInvariantId the vnfItemModelInvariantId to set
449          */
450         private void setVnfItemModelInvariantId(String vnfItemModelInvariantId) {
451                 this.vnfItemModelInvariantId = vnfItemModelInvariantId;
452         }
453
454         /**
455          * @return the vnfItemModelVersionId
456          */
457         public String getVnfItemModelVersionId() {
458                 return this.vnfItemModelVersionId;
459         }
460
461         /**
462          * @param vnfItemModelVersionId the vnfItemModelVersionId to set
463          */
464         private void setVnfItemModelVersionId(String vnfItemModelVersionId) {
465                 this.vnfItemModelVersionId = vnfItemModelVersionId;
466         }
467
468         /**
469          * @return the vnfItemModelName
470          */
471         public String getVnfItemModelName() {
472                 return this.vnfItemModelName;
473         }
474
475         /**
476          * @param vnfItemModelName the vnfItemModelName to set
477          */
478         private void setVnfItemModelName(String vnfItemModelName) {
479                 this.vnfItemModelName = vnfItemModelName;
480         }
481
482         /**
483          * @return the vnfItemModelVersion
484          */
485         public String getVnfItemModelVersion() {
486                 return this.vnfItemModelVersion;
487         }
488
489         /**
490          * @param vnfItemModelVersion the vnfItemModelVersion to set
491          */
492         private void setVnfItemModelVersion(String vnfItemModelVersion) {
493                 this.vnfItemModelVersion = vnfItemModelVersion;
494         }
495
496         /**
497          * @return the vnfItemModelNameVersionId
498          */
499         public String getVnfItemModelNameVersionId() {
500                 return this.vnfItemModelNameVersionId;
501         }
502
503         /**
504          * @param vnfItemModelNameVersionId the vnfItemModelNameVersionId to set
505          */
506         private void setVnfItemModelNameVersionId(String vnfItemModelNameVersionId) {
507                 this.vnfItemModelNameVersionId = vnfItemModelNameVersionId;
508         }
509
510         /**
511          * @return the serviceItemServiceInstanceId
512          */
513         public static String getServiceItemServiceInstanceId() {
514                 return serviceItemServiceInstanceId;
515         }
516
517         /**
518          * @param serviceItemServiceInstanceId the serviceItemServiceInstanceId to set
519          */
520         private static void setServiceItemServiceInstanceId(
521                         String serviceItemServiceInstanceId) {
522                 SOActorServiceProvider.serviceItemServiceInstanceId = serviceItemServiceInstanceId;
523         }
524
525         /**
526          * @return the serviceItemModelInvariantId
527          */
528         public String getServiceItemModelInvariantId() {
529                 return this.serviceItemModelInvariantId;
530         }
531
532         /**
533          * @param serviceItemModelInvariantId the serviceItemModelInvariantId to set
534          */
535         private void setServiceItemModelInvariantId(String serviceItemModelInvariantId) {
536                 this.serviceItemModelInvariantId = serviceItemModelInvariantId;
537         }
538
539         /**
540          * @return the serviceItemModelName
541          */
542         public String getServiceItemModelName() {
543                 return this.serviceItemModelName;
544         }
545
546         /**
547          * @param serviceItemModelName the serviceItemModelName to set
548          */
549         private void setServiceItemModelName(String serviceItemModelName) {
550                 this.serviceItemModelName = serviceItemModelName;
551         }
552
553         /**
554          * @return the serviceItemModelType
555          */
556         public String getServiceItemModelType() {
557                 return this.serviceItemModelType;
558         }
559
560         /**
561          * @param serviceItemModelType the serviceItemModelType to set
562          */
563         private void setServiceItemModelType(String serviceItemModelType) {
564                 this.serviceItemModelType = serviceItemModelType;
565         }
566
567         /**
568          * @return the serviceItemModelVersion
569          */
570         public String getServiceItemModelVersion() {
571                 return this.serviceItemModelVersion;
572         }
573
574         /**
575          * @param serviceItemModelVersion the serviceItemModelVersion to set
576          */
577         private void setServiceItemModelVersion(String serviceItemModelVersion) {
578                 this.serviceItemModelVersion = serviceItemModelVersion;
579         }
580
581         /**
582          * @return the serviceItemModelNameVersionId
583          */
584         public String getServiceItemModelNameVersionId() {
585                 return this.serviceItemModelNameVersionId;
586         }
587
588         /**
589          * @param serviceItemModelNameVersionId the serviceItemModelNameVersionId to set
590          */
591         private void setServiceItemModelNameVersionId(
592                         String serviceItemModelNameVersionId) {
593                 this.serviceItemModelNameVersionId = serviceItemModelNameVersionId;
594         }
595
596         /**
597          * @return the vfModuleItemVfModuleName
598          */
599         public String getVfModuleItemVfModuleName() {
600                 return this.vfModuleItemVfModuleName;
601         }
602
603         /**
604          * @param vfModuleItemVfModuleName the vfModuleItemVfModuleName to set
605          */
606         private void setVfModuleItemVfModuleName(String vfModuleItemVfModuleName) {
607                 this.vfModuleItemVfModuleName = vfModuleItemVfModuleName;
608         }
609
610         /**
611          * @return the vfModuleItemModelInvariantId
612          */
613         public String getVfModuleItemModelInvariantId() {
614                 return this.vfModuleItemModelInvariantId;
615         }
616
617         /**
618          * @param vfModuleItemModelInvariantId the vfModuleItemModelInvariantId to set
619          */
620         private void setVfModuleItemModelInvariantId(String vfModuleItemModelInvariantId) {
621                 this.vfModuleItemModelInvariantId = vfModuleItemModelInvariantId;
622         }
623
624         /**
625          * @return the vfModuleItemModelVersionId
626          */
627         public String getVfModuleItemModelVersionId() {
628                 return this.vfModuleItemModelVersionId;
629         }
630
631         /**
632          * @param vfModuleItemModelVersionId the vfModuleItemModelVersionId to set
633          */
634         private void setVfModuleItemModelVersionId(
635                         String vfModuleItemModelVersionId) {
636                 this.vfModuleItemModelVersionId = vfModuleItemModelVersionId;
637         }
638
639         /**
640          * @return the vfModuleItemModelName
641          */
642         public String getVfModuleItemModelName() {
643                 return this.vfModuleItemModelName;
644         }
645
646         /**
647          * @param vfModuleItemModelName the vfModuleItemModelName to set
648          */
649         private void setVfModuleItemModelName(String vfModuleItemModelName) {
650                 this.vfModuleItemModelName = vfModuleItemModelName;
651         }
652
653         /**
654          * @return the vfModuleItemModelNameVersionId
655          */
656         public String getVfModuleItemModelNameVersionId() {
657                 return this.vfModuleItemModelNameVersionId;
658         }
659
660         /**
661          * @param vfModuleItemModelNameVersionId the vfModuleItemModelNameVersionId to set
662          */
663         private void setVfModuleItemModelNameVersionId(
664                         String vfModuleItemModelNameVersionId) {
665                 this.vfModuleItemModelNameVersionId = vfModuleItemModelNameVersionId;
666         }
667
668         /**
669          * @return the tenantItemTenantId
670          */
671         public String getTenantItemTenantId() {
672                 return this.tenantItemTenantId;
673         }
674
675         /**
676          * @param tenantItemTenantId the tenantItemTenantId to set
677          */
678         private void setTenantItemTenantId(String tenantItemTenantId) {
679                 this.tenantItemTenantId = tenantItemTenantId;
680         }
681
682         /**
683          * @return the cloudRegionItemCloudRegionId
684          */
685         public String getCloudRegionItemCloudRegionId() {
686                 return this.cloudRegionItemCloudRegionId;
687         }
688
689         /**
690          * @param cloudRegionItemCloudRegionId the cloudRegionItemCloudRegionId to set
691          */
692         private void setCloudRegionItemCloudRegionId(
693                         String cloudRegionItemCloudRegionId) {
694                 this.cloudRegionItemCloudRegionId = cloudRegionItemCloudRegionId;
695         }
696
697 }