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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.onap.policy.controlloop.actor.so;
23 import java.util.Collections;
24 import java.util.HashMap;
25 import java.util.List;
27 import java.util.UUID;
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;
56 import com.google.common.collect.ImmutableList;
57 import com.google.common.collect.ImmutableMap;
59 public class SOActorServiceProvider implements Actor {
61 private static final Logger logger = LoggerFactory.getLogger(SOActorServiceProvider.class);
63 private static String vnfItemVnfId;
65 private String vnfItemVnfType;
67 private String vnfItemModelInvariantId;
69 private String vnfItemModelVersionId;
71 private String vnfItemModelName;
73 private String vnfItemModelVersion;
75 private String vnfItemModelNameVersionId;
77 private static String serviceItemServiceInstanceId;
79 private String serviceItemModelInvariantId;
81 private String serviceItemModelName;
83 private String serviceItemModelType;
85 private String serviceItemModelVersion;
87 private String serviceItemModelNameVersionId;
89 private String vfModuleItemVfModuleName;
91 private String vfModuleItemModelInvariantId;
93 private String vfModuleItemModelVersionId;
95 private String vfModuleItemModelName;
97 private String vfModuleItemModelNameVersionId;
99 private String tenantItemTenantId;
101 private String cloudRegionItemCloudRegionId;
103 private static final ImmutableList<String> recipes = ImmutableList.of(
105 private static final ImmutableMap<String, List<String>> targets = new ImmutableMap.Builder<String, List<String>>()
106 .put("VF Module Create", ImmutableList.of("VFC"))
110 public String actor() {
115 public List<String> recipes() {
116 return ImmutableList.copyOf(recipes);
120 public List<String> recipeTargets(String recipe) {
121 return ImmutableList.copyOf(targets.getOrDefault(recipe, Collections.emptyList()));
125 public List<String> recipePayloads(String recipe) {
126 return Collections.emptyList();
130 * SOActorServiceProvider Constructor
133 public SOActorServiceProvider() {
138 * Constructs and sends an AAI vserver Named Query
141 * @returns the response to the AAI Named Query
143 private AAINQResponseWrapper AaiNamedQueryRequest(VirtualControlLoopEvent onset) {
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();
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;
158 Map<String, Map<String, String>> aainqinstancefiltermap = new HashMap<>();
159 Map<String, String> aainqinstancefiltermapitem = new HashMap<>();
160 aainqinstancefiltermapitem.put("vserver-name", onset.AAI.get("vserver.vserver-name")); // TO DO: get vserver.vname from dcae onset.AAI.get("vserver.vserver-name")
161 aainqinstancefiltermap.put("vserver", aainqinstancefiltermapitem);
162 aainqinstancefilter.instanceFilter.add(aainqinstancefiltermap);
163 aainqrequest.instanceFilters = aainqinstancefilter;
165 // print aainqrequest for debug
167 logger.debug("AAI Request sent:");
168 logger.debug(Serialization.gsonPretty.toJson(aainqrequest));
170 // Create AAINQRequestWrapper
172 // AAINQRequestWrapper aainqRequestWrapper = new AAINQRequestWrapper(onset.requestID, aainqrequest);
174 // insert aainqrequest into memory
176 // insert(aainqRequestWrapper);
179 * Obtain A&AI credentials from properties.environment file
180 * TODO: What if these are null?
182 String aaiUrl = PolicyEngine.manager.getEnvironmentProperty("aai.url");
183 String aaiUsername = PolicyEngine.manager.getEnvironmentProperty("aai.username");
184 String aaiPassword = PolicyEngine.manager.getEnvironmentProperty("aai.password");
186 //***** send the request *****\\
187 AAINQResponse aainqresponse = AAIManager.postQuery(aaiUrl, aaiUsername, aaiPassword,
188 aainqrequest, onset.requestID);
190 // Check AAI response
191 if (aainqresponse == null) {
192 System.err.println("Failed to get AAI response");
194 // Fail and retract everything
197 // Create AAINQResponseWrapper
198 AAINQResponseWrapper aainqResponseWrapper = new AAINQResponseWrapper(onset.requestID, aainqresponse);
200 // insert aainqResponseWrapper to memory -- Is this needed?
201 // insert(aainqResponseWrapper);
203 if (logger.isDebugEnabled()) {
204 logger.debug("AAI Named Query Response: ");
205 logger.debug(Serialization.gsonPretty.toJson(aainqResponseWrapper.aainqresponse));
208 extractSOFieldsFromNamedQuery(aainqResponseWrapper, onset);
209 return aainqResponseWrapper;
215 * Extract the required fields from the named query response
216 * @param namedQueryResponseWrapper
219 private void extractSOFieldsFromNamedQuery(AAINQResponseWrapper namedQueryResponseWrapper, VirtualControlLoopEvent onset) {
223 setVnfItemVnfId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.vnfID);
224 setVnfItemVnfType(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.vnfType);
225 setVnfItemVnfType(vnfItemVnfType.substring(vnfItemVnfType.lastIndexOf("/")+1));
226 setVnfItemModelInvariantId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.modelInvariantId);
227 setVnfItemModelVersionId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.modelVersionId);
228 setVnfItemModelName(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(0).propertyValue);
229 setVnfItemModelVersion(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(2).propertyValue);
230 setVnfItemModelNameVersionId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(4).propertyValue);
233 setServiceItemServiceInstanceId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.serviceInstanceID);
234 setServiceItemModelInvariantId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.modelInvariantId);
235 setServiceItemModelName(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(0).propertyValue);
236 setServiceItemModelType(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(1).propertyValue);
237 setServiceItemModelVersion(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.modelVersionId);
238 setServiceItemModelNameVersionId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(4).propertyValue);
240 // Find the index for base vf module and non-base vf module
242 List<AAINQInventoryResponseItem> inventoryItems = namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems;
243 for (AAINQInventoryResponseItem m : inventoryItems) {
244 if (m.vfModule != null && m.vfModule.isBaseVfModule) {
245 baseIndex = inventoryItems.indexOf(m);
248 if (baseIndex != -1) {
253 // Report the error if either base vf module or non-base vf module is not found
254 if (baseIndex == -1) {
255 logger.error("Either base or non-base vf module is not found from AAI response.");
259 // This comes from the base module
260 setVfModuleItemVfModuleName(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(baseIndex).vfModule.vfModuleName);
261 setVfModuleItemVfModuleName(vfModuleItemVfModuleName.replace("Vfmodule", "vDNS"));
263 // vfModuleItem - NOT the base module
264 setVfModuleItemModelInvariantId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(baseIndex).vfModule.modelInvariantId);
265 setVfModuleItemModelVersionId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(baseIndex).vfModule.modelVersionId);
266 setVfModuleItemModelName(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(baseIndex).extraProperties.extraProperty.get(0).propertyValue);
267 setVfModuleItemModelNameVersionId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(baseIndex).extraProperties.extraProperty.get(4).propertyValue);
270 setTenantItemTenantId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).tenant.tenantId);
273 setCloudRegionItemCloudRegionId(namedQueryResponseWrapper.aainqresponse.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).items.inventoryResponseItems.get(0).cloudRegion.cloudRegionId);
275 } catch (Exception e) {
276 logger.warn("Problem extracting SO data from AAI query response because of {}", e.getMessage(), e);
282 * Checks whether extracted fields from AAI Named Query are null or not
283 * @return false if some extracted fields are missing, true otherwise
285 private boolean checkExtractedFields() {
287 if ((getVnfItemVnfId() == null) || (getVnfItemVnfType() == null) ||
288 (getVnfItemModelInvariantId() == null) || (getVnfItemModelName() == null) ||
289 (getVnfItemModelVersion() == null) || (getVnfItemModelNameVersionId() == null) ||
290 (getServiceItemServiceInstanceId() == null) || (getServiceItemModelName() == null) ||
291 (getServiceItemModelType() == null) || (getServiceItemModelVersion() == null) ||
292 (getServiceItemModelNameVersionId() == null) || (getVfModuleItemVfModuleName() == null) ||
293 (getVfModuleItemModelInvariantId() == null) || (getVfModuleItemModelVersionId() == null) ||
294 (getVfModuleItemModelName() == null) || (getVfModuleItemModelNameVersionId() == null) ||
295 (getTenantItemTenantId() == null) || (getCloudRegionItemCloudRegionId() == null)) {
302 * Construct SO Request
308 * @throws IllegalAccessException
310 public SORequest constructRequest(VirtualControlLoopEvent onset, ControlLoopOperation operation, Policy policy) {
312 if ("SO".equals(policy.getActor()) && "VF Module Create".equals(policy.getRecipe())) {
313 // perform named query request and handle response
314 AaiNamedQueryRequest(onset);
316 // for future extension
320 // check if the fields extracted from named query response are
321 // not null so we can proceed with SO request
322 if (!checkExtractedFields()) {
323 logger.warn("AAI response is missing some required fields. Cannot proceed with SO Request construction.");
328 // Construct SO Request
329 SORequest request = new SORequest();
330 // request.requestId = onset.requestID;
331 request.requestDetails = new SORequestDetails();
332 request.requestDetails.modelInfo = new SOModelInfo();
333 request.requestDetails.cloudConfiguration = new SOCloudConfiguration();
334 request.requestDetails.requestInfo = new SORequestInfo();
335 request.requestDetails.requestParameters = new SORequestParameters();
336 request.requestDetails.requestParameters.userParams = null;
338 // cloudConfiguration
340 request.requestDetails.cloudConfiguration.lcpCloudRegionId = getCloudRegionItemCloudRegionId();
341 request.requestDetails.cloudConfiguration.tenantId = getTenantItemTenantId();
345 request.requestDetails.modelInfo.modelType = "vfModule";
346 request.requestDetails.modelInfo.modelInvariantId = getVfModuleItemModelInvariantId();
347 request.requestDetails.modelInfo.modelVersionId = getVfModuleItemModelNameVersionId();
348 request.requestDetails.modelInfo.modelName = getVfModuleItemModelName();
349 request.requestDetails.modelInfo.modelVersion = getVfModuleItemModelVersionId();
353 request.requestDetails.requestInfo.instanceName = getVfModuleItemVfModuleName();
354 request.requestDetails.requestInfo.source = "POLICY";
355 request.requestDetails.requestInfo.suppressRollback = false;
356 request.requestDetails.requestInfo.requestorId = "policy";
358 // relatedInstanceList
360 SORelatedInstanceListElement relatedInstanceListElement1 = new SORelatedInstanceListElement();
361 SORelatedInstanceListElement relatedInstanceListElement2 = new SORelatedInstanceListElement();
362 relatedInstanceListElement1.relatedInstance = new SORelatedInstance();
363 relatedInstanceListElement2.relatedInstance = new SORelatedInstance();
365 relatedInstanceListElement1.relatedInstance.instanceId = getServiceItemServiceInstanceId();
366 relatedInstanceListElement1.relatedInstance.modelInfo = new SOModelInfo();
367 relatedInstanceListElement1.relatedInstance.modelInfo.modelType = "service";
368 relatedInstanceListElement1.relatedInstance.modelInfo.modelInvariantId = getServiceItemModelInvariantId();
369 relatedInstanceListElement1.relatedInstance.modelInfo.modelVersionId = getServiceItemModelNameVersionId();
370 relatedInstanceListElement1.relatedInstance.modelInfo.modelName = getServiceItemModelName();
371 relatedInstanceListElement1.relatedInstance.modelInfo.modelVersion = getServiceItemModelVersion();
373 relatedInstanceListElement2.relatedInstance.instanceId = getVnfItemVnfId();
374 relatedInstanceListElement2.relatedInstance.modelInfo = new SOModelInfo();
375 relatedInstanceListElement2.relatedInstance.modelInfo.modelType = "vnf";
376 relatedInstanceListElement2.relatedInstance.modelInfo.modelInvariantId = getVnfItemModelInvariantId();
377 relatedInstanceListElement2.relatedInstance.modelInfo.modelVersionId = getVnfItemModelNameVersionId();
378 relatedInstanceListElement2.relatedInstance.modelInfo.modelName = getVnfItemModelName();
379 relatedInstanceListElement2.relatedInstance.modelInfo.modelVersion = getVnfItemModelVersion();
380 relatedInstanceListElement2.relatedInstance.modelInfo.modelCustomizationName = getVnfItemVnfType();
382 request.requestDetails.relatedInstanceList.add(relatedInstanceListElement1);
383 request.requestDetails.relatedInstanceList.add(relatedInstanceListElement2);
385 // print SO request for debug
387 logger.debug("SO request sent:");
388 logger.debug(Serialization.gsonPretty.toJson(request));
395 * This method is needed to get the serviceInstanceId and vnfInstanceId which is used
396 * in the asyncSORestCall
401 public static void sendRequest(String requestID, WorkingMemory wm, Object request) {
402 SOManager Mm = new SOManager();
403 Mm.asyncSORestCall(requestID, wm, getServiceItemServiceInstanceId(), getVnfItemVnfId(), (SORequest)request);
407 * @return the vnfItemVnfId
409 public static String getVnfItemVnfId() {
414 * @param vnfItemVnfId the vnfItemVnfId to set
416 private static void setVnfItemVnfId(String vnfItemVnfId) {
417 SOActorServiceProvider.vnfItemVnfId = vnfItemVnfId;
421 * @return the vnfItemVnfType
423 public String getVnfItemVnfType() {
424 return this.vnfItemVnfType;
428 * @param vnfItemVnfType the vnfItemVnfType to set
430 private void setVnfItemVnfType(String vnfItemVnfType) {
431 this.vnfItemVnfType = vnfItemVnfType;
435 * @return the vnfItemModelInvariantId
437 public String getVnfItemModelInvariantId() {
438 return this.vnfItemModelInvariantId;
442 * @param vnfItemModelInvariantId the vnfItemModelInvariantId to set
444 private void setVnfItemModelInvariantId(String vnfItemModelInvariantId) {
445 this.vnfItemModelInvariantId = vnfItemModelInvariantId;
449 * @return the vnfItemModelVersionId
451 public String getVnfItemModelVersionId() {
452 return this.vnfItemModelVersionId;
456 * @param vnfItemModelVersionId the vnfItemModelVersionId to set
458 private void setVnfItemModelVersionId(String vnfItemModelVersionId) {
459 this.vnfItemModelVersionId = vnfItemModelVersionId;
463 * @return the vnfItemModelName
465 public String getVnfItemModelName() {
466 return this.vnfItemModelName;
470 * @param vnfItemModelName the vnfItemModelName to set
472 private void setVnfItemModelName(String vnfItemModelName) {
473 this.vnfItemModelName = vnfItemModelName;
477 * @return the vnfItemModelVersion
479 public String getVnfItemModelVersion() {
480 return this.vnfItemModelVersion;
484 * @param vnfItemModelVersion the vnfItemModelVersion to set
486 private void setVnfItemModelVersion(String vnfItemModelVersion) {
487 this.vnfItemModelVersion = vnfItemModelVersion;
491 * @return the vnfItemModelNameVersionId
493 public String getVnfItemModelNameVersionId() {
494 return this.vnfItemModelNameVersionId;
498 * @param vnfItemModelNameVersionId the vnfItemModelNameVersionId to set
500 private void setVnfItemModelNameVersionId(String vnfItemModelNameVersionId) {
501 this.vnfItemModelNameVersionId = vnfItemModelNameVersionId;
505 * @return the serviceItemServiceInstanceId
507 public static String getServiceItemServiceInstanceId() {
508 return serviceItemServiceInstanceId;
512 * @param serviceItemServiceInstanceId the serviceItemServiceInstanceId to set
514 private static void setServiceItemServiceInstanceId(
515 String serviceItemServiceInstanceId) {
516 SOActorServiceProvider.serviceItemServiceInstanceId = serviceItemServiceInstanceId;
520 * @return the serviceItemModelInvariantId
522 public String getServiceItemModelInvariantId() {
523 return this.serviceItemModelInvariantId;
527 * @param serviceItemModelInvariantId the serviceItemModelInvariantId to set
529 private void setServiceItemModelInvariantId(String serviceItemModelInvariantId) {
530 this.serviceItemModelInvariantId = serviceItemModelInvariantId;
534 * @return the serviceItemModelName
536 public String getServiceItemModelName() {
537 return this.serviceItemModelName;
541 * @param serviceItemModelName the serviceItemModelName to set
543 private void setServiceItemModelName(String serviceItemModelName) {
544 this.serviceItemModelName = serviceItemModelName;
548 * @return the serviceItemModelType
550 public String getServiceItemModelType() {
551 return this.serviceItemModelType;
555 * @param serviceItemModelType the serviceItemModelType to set
557 private void setServiceItemModelType(String serviceItemModelType) {
558 this.serviceItemModelType = serviceItemModelType;
562 * @return the serviceItemModelVersion
564 public String getServiceItemModelVersion() {
565 return this.serviceItemModelVersion;
569 * @param serviceItemModelVersion the serviceItemModelVersion to set
571 private void setServiceItemModelVersion(String serviceItemModelVersion) {
572 this.serviceItemModelVersion = serviceItemModelVersion;
576 * @return the serviceItemModelNameVersionId
578 public String getServiceItemModelNameVersionId() {
579 return this.serviceItemModelNameVersionId;
583 * @param serviceItemModelNameVersionId the serviceItemModelNameVersionId to set
585 private void setServiceItemModelNameVersionId(
586 String serviceItemModelNameVersionId) {
587 this.serviceItemModelNameVersionId = serviceItemModelNameVersionId;
591 * @return the vfModuleItemVfModuleName
593 public String getVfModuleItemVfModuleName() {
594 return this.vfModuleItemVfModuleName;
598 * @param vfModuleItemVfModuleName the vfModuleItemVfModuleName to set
600 private void setVfModuleItemVfModuleName(String vfModuleItemVfModuleName) {
601 this.vfModuleItemVfModuleName = vfModuleItemVfModuleName;
605 * @return the vfModuleItemModelInvariantId
607 public String getVfModuleItemModelInvariantId() {
608 return this.vfModuleItemModelInvariantId;
612 * @param vfModuleItemModelInvariantId the vfModuleItemModelInvariantId to set
614 private void setVfModuleItemModelInvariantId(String vfModuleItemModelInvariantId) {
615 this.vfModuleItemModelInvariantId = vfModuleItemModelInvariantId;
619 * @return the vfModuleItemModelVersionId
621 public String getVfModuleItemModelVersionId() {
622 return this.vfModuleItemModelVersionId;
626 * @param vfModuleItemModelVersionId the vfModuleItemModelVersionId to set
628 private void setVfModuleItemModelVersionId(
629 String vfModuleItemModelVersionId) {
630 this.vfModuleItemModelVersionId = vfModuleItemModelVersionId;
634 * @return the vfModuleItemModelName
636 public String getVfModuleItemModelName() {
637 return this.vfModuleItemModelName;
641 * @param vfModuleItemModelName the vfModuleItemModelName to set
643 private void setVfModuleItemModelName(String vfModuleItemModelName) {
644 this.vfModuleItemModelName = vfModuleItemModelName;
648 * @return the vfModuleItemModelNameVersionId
650 public String getVfModuleItemModelNameVersionId() {
651 return this.vfModuleItemModelNameVersionId;
655 * @param vfModuleItemModelNameVersionId the vfModuleItemModelNameVersionId to set
657 private void setVfModuleItemModelNameVersionId(
658 String vfModuleItemModelNameVersionId) {
659 this.vfModuleItemModelNameVersionId = vfModuleItemModelNameVersionId;
663 * @return the tenantItemTenantId
665 public String getTenantItemTenantId() {
666 return this.tenantItemTenantId;
670 * @param tenantItemTenantId the tenantItemTenantId to set
672 private void setTenantItemTenantId(String tenantItemTenantId) {
673 this.tenantItemTenantId = tenantItemTenantId;
677 * @return the cloudRegionItemCloudRegionId
679 public String getCloudRegionItemCloudRegionId() {
680 return this.cloudRegionItemCloudRegionId;
684 * @param cloudRegionItemCloudRegionId the cloudRegionItemCloudRegionId to set
686 private void setCloudRegionItemCloudRegionId(
687 String cloudRegionItemCloudRegionId) {
688 this.cloudRegionItemCloudRegionId = cloudRegionItemCloudRegionId;