@@ -7,6 +7,7 @@ namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Create
7
7
public class MasterTemplateCreator : TemplateCreator
8
8
{
9
9
public Template CreateLinkedMasterTemplate ( CreatorConfig creatorConfig ,
10
+ Template globalServicePolicyTemplate ,
10
11
Template apiVersionSetTemplate ,
11
12
Template productsTemplate ,
12
13
Template loggersTemplate ,
@@ -26,6 +27,13 @@ public Template CreateLinkedMasterTemplate(CreatorConfig creatorConfig,
26
27
// add deployment resources that links to all resource files
27
28
List < TemplateResource > resources = new List < TemplateResource > ( ) ;
28
29
30
+ // globalServicePolicy
31
+ if ( globalServicePolicyTemplate != null )
32
+ {
33
+ string globalServicePolicyUri = GenerateLinkedTemplateUri ( creatorConfig , fileNames . globalServicePolicy ) ;
34
+ resources . Add ( this . CreateLinkedMasterTemplateResource ( "globalServicePolicyTemplate" , globalServicePolicyUri , new string [ ] { } ) ) ;
35
+ }
36
+
29
37
// apiVersionSet
30
38
if ( apiVersionSetTemplate != null )
31
39
{
@@ -73,7 +81,7 @@ public Template CreateLinkedMasterTemplate(CreatorConfig creatorConfig,
73
81
74
82
string initialAPIFileName = fileNameGenerator . GenerateCreatorAPIFileName ( apiInfo . name , apiInfo . isSplit , true , apimServiceName ) ;
75
83
string initialAPIUri = GenerateLinkedTemplateUri ( creatorConfig , initialAPIFileName ) ;
76
- string [ ] initialAPIDependsOn = CreateAPIResourceDependencies ( apiVersionSetTemplate , productsTemplate , loggersTemplate , backendsTemplate , authorizationServersTemplate , apiInfo ) ;
84
+ string [ ] initialAPIDependsOn = CreateAPIResourceDependencies ( globalServicePolicyTemplate , apiVersionSetTemplate , productsTemplate , loggersTemplate , backendsTemplate , authorizationServersTemplate , apiInfo ) ;
77
85
resources . Add ( this . CreateLinkedMasterTemplateResource ( initialAPIDeploymentResourceName , initialAPIUri , initialAPIDependsOn ) ) ;
78
86
79
87
string subsequentAPIFileName = fileNameGenerator . GenerateCreatorAPIFileName ( apiInfo . name , apiInfo . isSplit , false , apimServiceName ) ;
@@ -88,7 +96,7 @@ public Template CreateLinkedMasterTemplate(CreatorConfig creatorConfig,
88
96
string unifiedAPIDeploymentResourceName = $ "{ originalAPIName } -APITemplate";
89
97
string unifiedAPIFileName = fileNameGenerator . GenerateCreatorAPIFileName ( apiInfo . name , apiInfo . isSplit , true , apimServiceName ) ;
90
98
string unifiedAPIUri = GenerateLinkedTemplateUri ( creatorConfig , unifiedAPIFileName ) ;
91
- string [ ] unifiedAPIDependsOn = CreateAPIResourceDependencies ( apiVersionSetTemplate , productsTemplate , loggersTemplate , backendsTemplate , authorizationServersTemplate , apiInfo ) ;
99
+ string [ ] unifiedAPIDependsOn = CreateAPIResourceDependencies ( globalServicePolicyTemplate , apiVersionSetTemplate , productsTemplate , loggersTemplate , backendsTemplate , authorizationServersTemplate , apiInfo ) ;
92
100
resources . Add ( this . CreateLinkedMasterTemplateResource ( unifiedAPIDeploymentResourceName , unifiedAPIUri , unifiedAPIDependsOn ) ) ;
93
101
}
94
102
}
@@ -97,14 +105,19 @@ public Template CreateLinkedMasterTemplate(CreatorConfig creatorConfig,
97
105
return masterTemplate ;
98
106
}
99
107
100
- public string [ ] CreateAPIResourceDependencies ( Template apiVersionSetTemplate ,
108
+ public string [ ] CreateAPIResourceDependencies ( Template globalServicePolicyTemplate ,
109
+ Template apiVersionSetTemplate ,
101
110
Template productsTemplate ,
102
111
Template loggersTemplate ,
103
112
Template backendsTemplate ,
104
113
Template authorizationServersTemplate ,
105
114
LinkedMasterTemplateAPIInformation apiInfo )
106
115
{
107
116
List < string > apiDependsOn = new List < string > ( ) ;
117
+ if ( globalServicePolicyTemplate != null && apiInfo . dependsOnGlobalServicePolicies == true )
118
+ {
119
+ apiDependsOn . Add ( "[resourceId('Microsoft.Resources/deployments', 'globalServicePolicyTemplate')]" ) ;
120
+ }
108
121
if ( apiVersionSetTemplate != null && apiInfo . dependsOnVersionSets == true )
109
122
{
110
123
apiDependsOn . Add ( "[resourceId('Microsoft.Resources/deployments', 'versionSetTemplate')]" ) ;
@@ -290,6 +303,7 @@ public class LinkedMasterTemplateAPIInformation
290
303
{
291
304
public string name { get ; set ; }
292
305
public bool isSplit { get ; set ; }
306
+ public bool dependsOnGlobalServicePolicies { get ; set ; }
293
307
public bool dependsOnVersionSets { get ; set ; }
294
308
public bool dependsOnProducts { get ; set ; }
295
309
public bool dependsOnLoggers { get ; set ; }
0 commit comments