private TenantDetails createTenantServices()

in services/shared-services/tenant-registration-service/src/main/java/com/amazonaws/saas/eks/TenantRegistrationService.java [131:176]


	private TenantDetails createTenantServices(TenantDetails tenant) {
		String stackName = tenant.getTenantId();
		SaaSProviderMetadata saaSProviderMetadata = getSaaSProviderMetadata(tenant);

		LoggingManager.logInfo(tenant.getTenantId(), "StackName =>" + stackName);
		LoggingManager.logInfo(tenant.getTenantId(), "S3 URL =>" + saaSProviderMetadata.getS3Endpoint());
		LoggingManager.logInfo(tenant.getTenantId(), "ProductServiceEcrRepoUri =>" + saaSProviderMetadata.getProductServiceEcrRepoUri());
		LoggingManager.logInfo(tenant.getTenantId(), "OrderServiceEcrRepoUri =>" + saaSProviderMetadata.getOrderServiceEcrRepoUri());

		AmazonCloudFormation client = AmazonCloudFormationClientBuilder.defaultClient();

		CreateStackRequest createRequest = new CreateStackRequest();
		createRequest.setStackName(stackName);
		createRequest.setTemplateURL(saaSProviderMetadata.getS3Endpoint());

		List<Parameter> parameters = new ArrayList<Parameter>();
		Parameter param = new Parameter();
		param.setParameterKey("TenantName");
		param.setParameterValue(tenant.getTenantId());
		parameters.add(param);

		Parameter customDomainParam = new Parameter();
		customDomainParam.setParameterKey("CustomDomain");
		customDomainParam.setParameterValue(tenant.getCustomDomain());
		parameters.add(customDomainParam);

		Parameter productServiceEcrRepoUriParam = new Parameter();
		productServiceEcrRepoUriParam.setParameterKey("ProductServiceEcrRepoUri");
		productServiceEcrRepoUriParam.setParameterValue(saaSProviderMetadata.getProductServiceEcrRepoUri());
		parameters.add(productServiceEcrRepoUriParam);

		Parameter orderServiceEcrRepoUriParam = new Parameter();
		orderServiceEcrRepoUriParam.setParameterKey("OrderServiceEcrRepoUri");
		orderServiceEcrRepoUriParam.setParameterValue(saaSProviderMetadata.getOrderServiceEcrRepoUri());
		parameters.add(orderServiceEcrRepoUriParam);

		createRequest.setParameters(parameters);

		List<String> capabilities = new ArrayList<String>();
		capabilities.add("CAPABILITY_IAM");
		createRequest.setCapabilities(capabilities);
		client.createStack(createRequest);
		LoggingManager.logInfo(tenant.getTenantId(), "Creating a stack called " + createRequest.getStackName() + ".");

		return tenant;
	}