public FileContentResult downloadARMTemplate(string id, string env) { ARMModel arm = getARMTemplate(id, env); var armtemplate = JsonSerializer.SerializeToUtf8Bytes(arm, options); return(File(armtemplate, "application/json", arm.filename)); }
private ARMModel getARMTemplate(string id, string env) { var jsonModel = getServiceTagsModel(env); ARMModel arm = new ARMModel(); arm.schema = "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#"; arm.contentVersion = "1.0.0.0"; arm.filename = "template.json"; ParameterOptions paraoptions = new ParameterOptions(); paraoptions.type = "String"; paraoptions.defaultValue = "Routetable"; Parameters para = new Parameters(); para.name = paraoptions; arm.parameters = para; Properties prop = new Properties(); prop.routes = new List <Route>(); String[] ids = id.Split(';'); arm.filename = jsonModel.cloud; foreach (ValuesModel values in jsonModel.values) { if (Array.IndexOf(ids, values.id) != -1) { var i = 1; foreach (String prefix in values.properties.addressPrefixes) { Route route = new Route(); route.name = $"{jsonModel.cloud}.{values.id}-{i:000}"; RouteProperties routeprop = new RouteProperties(); routeprop.addressPrefix = prefix; routeprop.nextHopType = "Internet"; route.properties = routeprop; prop.routes.Add(route); i++; } arm.filename += "." + values.id; } } arm.filename += ".arm.json"; Resources res = new Resources(); res.type = "Microsoft.Network/routeTables"; res.name = "[parameters('name')]"; res.apiVersion = "2017-10-01"; res.location = "[resourceGroup().location]"; res.properties = prop; arm.resources = new List <Resources>(); arm.resources.Add(res); return(arm); }
public String deployARMTemplate(string id, string env) { ARMModel arm = getARMTemplate(id, env); return(JsonSerializer.Serialize(arm, options)); }