Skip to content
This repository was archived by the owner on Feb 23, 2024. It is now read-only.

Commit ded77aa

Browse files
committed
convert apiVersionSets to list in creator config
1 parent 91511f1 commit ded77aa

File tree

3 files changed

+32
-26
lines changed

3 files changed

+32
-26
lines changed

src/APIM_ARMTemplate/apimtemplate/Commands/Create.cs

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public CreateCommand()
4444
CreatorFileNames creatorFileNames = fileNameGenerator.GenerateCreatorLinkedFileNames(creatorConfig);
4545

4646
// create templates from provided configuration
47-
Template apiVersionSetTemplate = creatorConfig.apiVersionSet != null ? apiVersionSetTemplateCreator.CreateAPIVersionSetTemplate(creatorConfig) : null;
47+
Template apiVersionSetTemplate = creatorConfig.apiVersionSets != null ? apiVersionSetTemplateCreator.CreateAPIVersionSetTemplate(creatorConfig) : null;
4848
Template productsTemplate = creatorConfig.products != null ? productTemplateCreator.CreateProductTemplate(creatorConfig) : null;
4949
// store name and full template on each api necessary to build unlinked templates
5050
Dictionary<string, Template> initialAPITemplates = new Dictionary<string, Template>();
@@ -126,15 +126,18 @@ public bool ValidateCreatorConfig(CreatorConfig creatorConfig)
126126
isValid = false;
127127
throw new CommandParsingException(this, "LinkTemplatesBaseUrl is required for linked templates");
128128
}
129-
if (creatorConfig.apiVersionSet != null && creatorConfig.apiVersionSet.displayName == null)
129+
foreach(APIVersionSetConfig apiVersionSet in creatorConfig.apiVersionSets)
130130
{
131-
isValid = false;
132-
throw new CommandParsingException(this, "Display name is required if an API Version Set is provided");
133-
}
134-
if (creatorConfig.apiVersionSet != null && creatorConfig.apiVersionSet.versioningScheme == null)
135-
{
136-
isValid = false;
137-
throw new CommandParsingException(this, "Versioning scheme is required if an API Version Set is provided");
131+
if (apiVersionSet != null && apiVersionSet.displayName == null)
132+
{
133+
isValid = false;
134+
throw new CommandParsingException(this, "Display name is required if an API Version Set is provided");
135+
}
136+
if (apiVersionSet != null && apiVersionSet.versioningScheme == null)
137+
{
138+
isValid = false;
139+
throw new CommandParsingException(this, "Versioning scheme is required if an API Version Set is provided");
140+
}
138141
}
139142
foreach (APIConfig api in creatorConfig.apis)
140143
{

src/APIM_ARMTemplate/apimtemplate/Creator/Models/CreatorConfiguration.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class CreatorConfig
1212
{
1313
public string version { get; set; }
1414
public string apimServiceName { get; set; }
15-
public APIVersionSetConfig apiVersionSet { get; set; }
15+
public List<APIVersionSetConfig> apiVersionSets { get; set; }
1616
public List<APIConfig> apis { get; set; }
1717
public List<ProductsTemplateProperties> products { get; set; }
1818
public List<LoggerConfig> loggers { get; set; }

src/APIM_ARMTemplate/apimtemplate/Creator/TemplateCreators/APIVersionSetTemplateCreator.cs

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,24 +24,27 @@ public Template CreateAPIVersionSetTemplate(CreatorConfig creatorConfig)
2424
};
2525

2626
List<TemplateResource> resources = new List<TemplateResource>();
27-
// create apiVersionSet resource with properties
28-
string versionSetId = (creatorConfig.apiVersionSet != null && creatorConfig.apiVersionSet.id != null) ? creatorConfig.apiVersionSet.id : "versionset";
29-
APIVersionSetTemplateResource apiVersionSetTemplateResource = new APIVersionSetTemplateResource()
27+
foreach(APIVersionSetConfig apiVersionSet in creatorConfig.apiVersionSets)
3028
{
31-
name = $"[concat(parameters('ApimServiceName'), '/{versionSetId}')]",
32-
type = ResourceTypeConstants.APIVersionSet,
33-
apiVersion = "2018-06-01-preview",
34-
properties = new APIVersionSetProperties()
29+
// create apiVersionSet resource with properties
30+
string versionSetId = (apiVersionSet != null && apiVersionSet.id != null) ? apiVersionSet.id : "versionset";
31+
APIVersionSetTemplateResource apiVersionSetTemplateResource = new APIVersionSetTemplateResource()
3532
{
36-
displayName = creatorConfig.apiVersionSet.displayName,
37-
description = creatorConfig.apiVersionSet.description,
38-
versionHeaderName = creatorConfig.apiVersionSet.versionHeaderName,
39-
versionQueryName = creatorConfig.apiVersionSet.versionQueryName,
40-
versioningScheme = creatorConfig.apiVersionSet.versioningScheme,
41-
},
42-
dependsOn = new string[] { }
43-
};
44-
resources.Add(apiVersionSetTemplateResource);
33+
name = $"[concat(parameters('ApimServiceName'), '/{versionSetId}')]",
34+
type = ResourceTypeConstants.APIVersionSet,
35+
apiVersion = "2018-06-01-preview",
36+
properties = new APIVersionSetProperties()
37+
{
38+
displayName = apiVersionSet.displayName,
39+
description = apiVersionSet.description,
40+
versionHeaderName = apiVersionSet.versionHeaderName,
41+
versionQueryName = apiVersionSet.versionQueryName,
42+
versioningScheme = apiVersionSet.versioningScheme,
43+
},
44+
dependsOn = new string[] { }
45+
};
46+
resources.Add(apiVersionSetTemplateResource);
47+
}
4548

4649
apiVersionSetTemplate.resources = resources.ToArray();
4750
return apiVersionSetTemplate;

0 commit comments

Comments
 (0)