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