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.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;
57 import com.google.common.collect.ImmutableList;
58 import com.google.common.collect.ImmutableMap;
60 public class SOActorServiceProvider implements Actor {
62 private static final Logger logger = LoggerFactory.getLogger(SOActorServiceProvider.class);
64 private static String vnfItemVnfId;
66 private String vnfItemVnfType;
68 private String vnfItemModelInvariantId;
70 private String vnfItemModelVersionId;
72 private String vnfItemModelName;
74 private String vnfItemModelVersion;
76 private String vnfItemModelNameVersionId;
78 private static String serviceItemServiceInstanceId;
80 private String serviceItemModelInvariantId;
82 private String serviceItemModelName;
84 private String serviceItemModelType;
86 private String serviceItemModelVersion;
88 private String serviceItemModelNameVersionId;
90 private String vfModuleItemVfModuleName;
92 private String vfModuleItemModelInvariantId;
94 private String vfModuleItemModelVersionId;
96 private String vfModuleItemModelName;
98 private String vfModuleItemModelNameVersionId;
100 private String tenantItemTenantId;
102 private String cloudRegionItemCloudRegionId;
104 private static final ImmutableList<String> recipes = ImmutableList.of(
106 private static final ImmutableMap<String, List<String>> targets = new ImmutableMap.Builder<String, List<String>>()
107 .put("VF Module Create", ImmutableList.of("VFC"))
111 public String actor() {
116 public List<String> recipes() {
117 return ImmutableList.copyOf(recipes);
121 public List<String> recipeTargets(String recipe) {
122 return ImmutableList.copyOf(targets.getOrDefault(recipe, Collections.emptyList()));
126 public List<String> recipePayloads(String recipe) {
127 return Collections.emptyList();
131 * SOActorServiceProvider Constructor
134 public SOActorServiceProvider() {
139 * Constructs and sends an AAI vserver Named Query
142 * @returns the response to the AAI Named Query
144 private AAINQResponseWrapper AaiNamedQueryRequest(VirtualControlLoopEvent onset) {
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();
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);
159 Map<String, Map<String, String>> aainqinstancefiltermap = new HashMap<>();
160 Map<String, String> aainqinstancefiltermapitem = new HashMap<>();
161 aainqinstancefiltermapitem.put("vserver-name", onset.AAI.get("vserver.vserver-name")); // TO DO: get vserver.vname from dcae onset.AAI.get("vserver.vserver-name")
162 aainqinstancefiltermap.put("vserver", aainqinstancefiltermapitem);
163 aainqinstancefilter.getInstanceFilter().add(aainqinstancefiltermap);
164 aainqrequest.setInstanceFilters(aainqinstancefilter);
166 // print aainqrequest for debug
168 logger.debug("AAI Request sent:");
169 logger.debug(Serialization.gsonPretty.toJson(aainqrequest));
171 // Create AAINQRequestWrapper
173 // AAINQRequestWrapper aainqRequestWrapper = new AAINQRequestWrapper(onset.requestID, aainqrequest);
175 // insert aainqrequest into memory
177 // insert(aainqRequestWrapper);
180 * Obtain A&AI credentials from properties.environment file
181 * TODO: What if these are null?
183 String aaiUrl = PolicyEngine.manager.getEnvironmentProperty("aai.url");
184 String aaiUsername = PolicyEngine.manager.getEnvironmentProperty("aai.username");
185 String aaiPassword = PolicyEngine.manager.getEnvironmentProperty("aai.password");
187 //***** send the request *****\\
188 AAINQResponse aainqresponse = new AAIManager(new RESTManager()).postQuery(aaiUrl, aaiUsername, aaiPassword,
189 aainqrequest, onset.requestID);
191 // Check AAI response
192 if (aainqresponse == null) {
193 System.err.println("Failed to get AAI response");
195 // Fail and retract everything
198 // Create AAINQResponseWrapper
199 AAINQResponseWrapper aainqResponseWrapper = new AAINQResponseWrapper(onset.requestID, aainqresponse);
201 // insert aainqResponseWrapper to memory -- Is this needed?
202 // insert(aainqResponseWrapper);
204 if (logger.isDebugEnabled()) {
205 logger.debug("AAI Named Query Response: ");
206 logger.debug(Serialization.gsonPretty.toJson(aainqResponseWrapper.getAainqresponse()));
209 extractSOFieldsFromNamedQuery(aainqResponseWrapper, onset);
210 return aainqResponseWrapper;
216 * Extract the required fields from the named query response
217 * @param namedQueryResponseWrapper
220 private void extractSOFieldsFromNamedQuery(AAINQResponseWrapper namedQueryResponseWrapper, VirtualControlLoopEvent onset) {
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());
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());
241 // Find the index for base vf module and non-base vf module
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);
254 if (baseIndex != -1 && nonBaseIndex != -1) {
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.");
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"));
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());
276 setTenantItemTenantId(namedQueryResponseWrapper.getAainqresponse().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(1).getTenant().getTenantId());
279 setCloudRegionItemCloudRegionId(namedQueryResponseWrapper.getAainqresponse().getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(1).getItems().getInventoryResponseItems().get(0).getCloudRegion().getCloudRegionId());
281 } catch (Exception e) {
282 logger.warn("Problem extracting SO data from AAI query response because of {}", e.getMessage(), e);
288 * Checks whether extracted fields from AAI Named Query are null or not
289 * @return false if some extracted fields are missing, true otherwise
291 private boolean checkExtractedFields() {
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)) {
308 * Construct SO Request
314 * @throws IllegalAccessException
316 public SORequest constructRequest(VirtualControlLoopEvent onset, ControlLoopOperation operation, Policy policy) {
318 if ("SO".equals(policy.getActor()) && "VF Module Create".equals(policy.getRecipe())) {
319 // perform named query request and handle response
320 AaiNamedQueryRequest(onset);
322 // for future extension
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.");
334 // Construct SO Request
335 SORequest request = new SORequest();
336 // request.requestId = onset.requestID;
337 request.requestDetails = new SORequestDetails();
338 request.requestDetails.modelInfo = new SOModelInfo();
339 request.requestDetails.cloudConfiguration = new SOCloudConfiguration();
340 request.requestDetails.requestInfo = new SORequestInfo();
341 request.requestDetails.requestParameters = new SORequestParameters();
342 request.requestDetails.requestParameters.userParams = null;
344 // cloudConfiguration
346 request.requestDetails.cloudConfiguration.lcpCloudRegionId = getCloudRegionItemCloudRegionId();
347 request.requestDetails.cloudConfiguration.tenantId = getTenantItemTenantId();
351 request.requestDetails.modelInfo.modelType = "vfModule";
352 request.requestDetails.modelInfo.modelInvariantId = getVfModuleItemModelInvariantId();
353 request.requestDetails.modelInfo.modelVersionId = getVfModuleItemModelNameVersionId();
354 request.requestDetails.modelInfo.modelName = getVfModuleItemModelName();
355 request.requestDetails.modelInfo.modelVersion = getVfModuleItemModelVersionId();
359 request.requestDetails.requestInfo.instanceName = getVfModuleItemVfModuleName();
360 request.requestDetails.requestInfo.source = "POLICY";
361 request.requestDetails.requestInfo.suppressRollback = false;
362 request.requestDetails.requestInfo.requestorId = "policy";
364 // relatedInstanceList
366 SORelatedInstanceListElement relatedInstanceListElement1 = new SORelatedInstanceListElement();
367 SORelatedInstanceListElement relatedInstanceListElement2 = new SORelatedInstanceListElement();
368 relatedInstanceListElement1.relatedInstance = new SORelatedInstance();
369 relatedInstanceListElement2.relatedInstance = new SORelatedInstance();
371 relatedInstanceListElement1.relatedInstance.instanceId = getServiceItemServiceInstanceId();
372 relatedInstanceListElement1.relatedInstance.modelInfo = new SOModelInfo();
373 relatedInstanceListElement1.relatedInstance.modelInfo.modelType = "service";
374 relatedInstanceListElement1.relatedInstance.modelInfo.modelInvariantId = getServiceItemModelInvariantId();
375 relatedInstanceListElement1.relatedInstance.modelInfo.modelVersionId = getServiceItemModelNameVersionId();
376 relatedInstanceListElement1.relatedInstance.modelInfo.modelName = getServiceItemModelName();
377 relatedInstanceListElement1.relatedInstance.modelInfo.modelVersion = getServiceItemModelVersion();
379 relatedInstanceListElement2.relatedInstance.instanceId = getVnfItemVnfId();
380 relatedInstanceListElement2.relatedInstance.modelInfo = new SOModelInfo();
381 relatedInstanceListElement2.relatedInstance.modelInfo.modelType = "vnf";
382 relatedInstanceListElement2.relatedInstance.modelInfo.modelInvariantId = getVnfItemModelInvariantId();
383 relatedInstanceListElement2.relatedInstance.modelInfo.modelVersionId = getVnfItemModelNameVersionId();
384 relatedInstanceListElement2.relatedInstance.modelInfo.modelName = getVnfItemModelName();
385 relatedInstanceListElement2.relatedInstance.modelInfo.modelVersion = getVnfItemModelVersion();
386 relatedInstanceListElement2.relatedInstance.modelInfo.modelCustomizationName = getVnfItemVnfType();
388 request.requestDetails.relatedInstanceList.add(relatedInstanceListElement1);
389 request.requestDetails.relatedInstanceList.add(relatedInstanceListElement2);
391 // print SO request for debug
393 logger.debug("SO request sent:");
394 logger.debug(Serialization.gsonPretty.toJson(request));
401 * This method is needed to get the serviceInstanceId and vnfInstanceId which is used
402 * in the asyncSORestCall
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);
413 * @return the vnfItemVnfId
415 public static String getVnfItemVnfId() {
420 * @param vnfItemVnfId the vnfItemVnfId to set
422 private static void setVnfItemVnfId(String vnfItemVnfId) {
423 SOActorServiceProvider.vnfItemVnfId = vnfItemVnfId;
427 * @return the vnfItemVnfType
429 public String getVnfItemVnfType() {
430 return this.vnfItemVnfType;
434 * @param vnfItemVnfType the vnfItemVnfType to set
436 private void setVnfItemVnfType(String vnfItemVnfType) {
437 this.vnfItemVnfType = vnfItemVnfType;
441 * @return the vnfItemModelInvariantId
443 public String getVnfItemModelInvariantId() {
444 return this.vnfItemModelInvariantId;
448 * @param vnfItemModelInvariantId the vnfItemModelInvariantId to set
450 private void setVnfItemModelInvariantId(String vnfItemModelInvariantId) {
451 this.vnfItemModelInvariantId = vnfItemModelInvariantId;
455 * @return the vnfItemModelVersionId
457 public String getVnfItemModelVersionId() {
458 return this.vnfItemModelVersionId;
462 * @param vnfItemModelVersionId the vnfItemModelVersionId to set
464 private void setVnfItemModelVersionId(String vnfItemModelVersionId) {
465 this.vnfItemModelVersionId = vnfItemModelVersionId;
469 * @return the vnfItemModelName
471 public String getVnfItemModelName() {
472 return this.vnfItemModelName;
476 * @param vnfItemModelName the vnfItemModelName to set
478 private void setVnfItemModelName(String vnfItemModelName) {
479 this.vnfItemModelName = vnfItemModelName;
483 * @return the vnfItemModelVersion
485 public String getVnfItemModelVersion() {
486 return this.vnfItemModelVersion;
490 * @param vnfItemModelVersion the vnfItemModelVersion to set
492 private void setVnfItemModelVersion(String vnfItemModelVersion) {
493 this.vnfItemModelVersion = vnfItemModelVersion;
497 * @return the vnfItemModelNameVersionId
499 public String getVnfItemModelNameVersionId() {
500 return this.vnfItemModelNameVersionId;
504 * @param vnfItemModelNameVersionId the vnfItemModelNameVersionId to set
506 private void setVnfItemModelNameVersionId(String vnfItemModelNameVersionId) {
507 this.vnfItemModelNameVersionId = vnfItemModelNameVersionId;
511 * @return the serviceItemServiceInstanceId
513 public static String getServiceItemServiceInstanceId() {
514 return serviceItemServiceInstanceId;
518 * @param serviceItemServiceInstanceId the serviceItemServiceInstanceId to set
520 private static void setServiceItemServiceInstanceId(
521 String serviceItemServiceInstanceId) {
522 SOActorServiceProvider.serviceItemServiceInstanceId = serviceItemServiceInstanceId;
526 * @return the serviceItemModelInvariantId
528 public String getServiceItemModelInvariantId() {
529 return this.serviceItemModelInvariantId;
533 * @param serviceItemModelInvariantId the serviceItemModelInvariantId to set
535 private void setServiceItemModelInvariantId(String serviceItemModelInvariantId) {
536 this.serviceItemModelInvariantId = serviceItemModelInvariantId;
540 * @return the serviceItemModelName
542 public String getServiceItemModelName() {
543 return this.serviceItemModelName;
547 * @param serviceItemModelName the serviceItemModelName to set
549 private void setServiceItemModelName(String serviceItemModelName) {
550 this.serviceItemModelName = serviceItemModelName;
554 * @return the serviceItemModelType
556 public String getServiceItemModelType() {
557 return this.serviceItemModelType;
561 * @param serviceItemModelType the serviceItemModelType to set
563 private void setServiceItemModelType(String serviceItemModelType) {
564 this.serviceItemModelType = serviceItemModelType;
568 * @return the serviceItemModelVersion
570 public String getServiceItemModelVersion() {
571 return this.serviceItemModelVersion;
575 * @param serviceItemModelVersion the serviceItemModelVersion to set
577 private void setServiceItemModelVersion(String serviceItemModelVersion) {
578 this.serviceItemModelVersion = serviceItemModelVersion;
582 * @return the serviceItemModelNameVersionId
584 public String getServiceItemModelNameVersionId() {
585 return this.serviceItemModelNameVersionId;
589 * @param serviceItemModelNameVersionId the serviceItemModelNameVersionId to set
591 private void setServiceItemModelNameVersionId(
592 String serviceItemModelNameVersionId) {
593 this.serviceItemModelNameVersionId = serviceItemModelNameVersionId;
597 * @return the vfModuleItemVfModuleName
599 public String getVfModuleItemVfModuleName() {
600 return this.vfModuleItemVfModuleName;
604 * @param vfModuleItemVfModuleName the vfModuleItemVfModuleName to set
606 private void setVfModuleItemVfModuleName(String vfModuleItemVfModuleName) {
607 this.vfModuleItemVfModuleName = vfModuleItemVfModuleName;
611 * @return the vfModuleItemModelInvariantId
613 public String getVfModuleItemModelInvariantId() {
614 return this.vfModuleItemModelInvariantId;
618 * @param vfModuleItemModelInvariantId the vfModuleItemModelInvariantId to set
620 private void setVfModuleItemModelInvariantId(String vfModuleItemModelInvariantId) {
621 this.vfModuleItemModelInvariantId = vfModuleItemModelInvariantId;
625 * @return the vfModuleItemModelVersionId
627 public String getVfModuleItemModelVersionId() {
628 return this.vfModuleItemModelVersionId;
632 * @param vfModuleItemModelVersionId the vfModuleItemModelVersionId to set
634 private void setVfModuleItemModelVersionId(
635 String vfModuleItemModelVersionId) {
636 this.vfModuleItemModelVersionId = vfModuleItemModelVersionId;
640 * @return the vfModuleItemModelName
642 public String getVfModuleItemModelName() {
643 return this.vfModuleItemModelName;
647 * @param vfModuleItemModelName the vfModuleItemModelName to set
649 private void setVfModuleItemModelName(String vfModuleItemModelName) {
650 this.vfModuleItemModelName = vfModuleItemModelName;
654 * @return the vfModuleItemModelNameVersionId
656 public String getVfModuleItemModelNameVersionId() {
657 return this.vfModuleItemModelNameVersionId;
661 * @param vfModuleItemModelNameVersionId the vfModuleItemModelNameVersionId to set
663 private void setVfModuleItemModelNameVersionId(
664 String vfModuleItemModelNameVersionId) {
665 this.vfModuleItemModelNameVersionId = vfModuleItemModelNameVersionId;
669 * @return the tenantItemTenantId
671 public String getTenantItemTenantId() {
672 return this.tenantItemTenantId;
676 * @param tenantItemTenantId the tenantItemTenantId to set
678 private void setTenantItemTenantId(String tenantItemTenantId) {
679 this.tenantItemTenantId = tenantItemTenantId;
683 * @return the cloudRegionItemCloudRegionId
685 public String getCloudRegionItemCloudRegionId() {
686 return this.cloudRegionItemCloudRegionId;
690 * @param cloudRegionItemCloudRegionId the cloudRegionItemCloudRegionId to set
692 private void setCloudRegionItemCloudRegionId(
693 String cloudRegionItemCloudRegionId) {
694 this.cloudRegionItemCloudRegionId = cloudRegionItemCloudRegionId;