class AzureNetworkTemplateBuilder {

    public String build(NetworkCreationRequest networkRequest, List<SubnetRequest> subnets, String resourceGroupName) {
        try {
            Map<String, Object> model = createModel(networkRequest, subnets, resourceGroupName);
            String generatedTemplate = freeMarkerTemplateUtils.processTemplateIntoString(getTemplate(), model);
            LOGGER.debug("Generated Arm template: {}", generatedTemplate);
            return generatedTemplate;
        } catch (IOException | TemplateException e) {
            throw new CloudConnectorException("Failed to process the ARM TemplateBuilder", e);
        }
    }

}