17
17
using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Common . Templates . Gateway ;
18
18
using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Common . Templates . GatewayApi ;
19
19
using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Common . Templates . Groups ;
20
+ using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Common . Templates . IdentityProviders ;
20
21
using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Common . Templates . Logger ;
21
22
using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Common . Templates . Master ;
22
23
using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Common . Templates . NamedValues ;
@@ -60,6 +61,7 @@ public class ExtractorExecutor
60
61
readonly IApiRevisionExtractor apiRevisionExtractor ;
61
62
readonly IGatewayExtractor gatewayExtractor ;
62
63
readonly IGatewayApiExtractor gatewayApiExtractor ;
64
+ readonly IIdentityProviderExtractor identityProviderExtractor ;
63
65
64
66
public ExtractorExecutor (
65
67
ILogger < ExtractorExecutor > logger ,
@@ -80,7 +82,8 @@ public ExtractorExecutor(
80
82
IGroupExtractor groupExtractor ,
81
83
IApiRevisionExtractor apiRevisionExtractor ,
82
84
IGatewayExtractor gatewayExtractor ,
83
- IGatewayApiExtractor gatewayApiExtractor )
85
+ IGatewayApiExtractor gatewayApiExtractor ,
86
+ IIdentityProviderExtractor identityProviderExtractor )
84
87
{
85
88
this . logger = logger ;
86
89
this . apisClient = apisClient ;
@@ -101,6 +104,7 @@ public ExtractorExecutor(
101
104
this . apiRevisionExtractor = apiRevisionExtractor ;
102
105
this . gatewayExtractor = gatewayExtractor ;
103
106
this . gatewayApiExtractor = gatewayApiExtractor ;
107
+ this . identityProviderExtractor = identityProviderExtractor ;
104
108
}
105
109
106
110
/// <summary>
@@ -126,7 +130,8 @@ public static ExtractorExecutor BuildExtractorExecutor(
126
130
IGroupExtractor groupExtractor = null ,
127
131
IApiRevisionExtractor apiRevisionExtractor = null ,
128
132
IGatewayExtractor gatewayExtractor = null ,
129
- IGatewayApiExtractor gatewayApiExtractor = null )
133
+ IGatewayApiExtractor gatewayApiExtractor = null ,
134
+ IIdentityProviderExtractor identityProviderExtractor = null )
130
135
=> new ExtractorExecutor (
131
136
logger ,
132
137
apisClient ,
@@ -146,7 +151,8 @@ public static ExtractorExecutor BuildExtractorExecutor(
146
151
groupExtractor ,
147
152
apiRevisionExtractor ,
148
153
gatewayExtractor ,
149
- gatewayApiExtractor ) ;
154
+ gatewayApiExtractor ,
155
+ identityProviderExtractor ) ;
150
156
151
157
public void SetExtractorParameters ( ExtractorParameters extractorParameters )
152
158
{
@@ -401,6 +407,7 @@ public async Task<Template> GenerateParametersTemplateAsync(
401
407
LoggerTemplateResources loggerResources ,
402
408
BackendTemplateResources backendResources ,
403
409
NamedValuesResources namedValuesResources ,
410
+ IdentityProviderResources identityProviderResources ,
404
411
string baseFilesGenerationDirectory )
405
412
{
406
413
this . logger . LogInformation ( "Started generation of parameters template..." ) ;
@@ -411,6 +418,7 @@ public async Task<Template> GenerateParametersTemplateAsync(
411
418
loggerResources ,
412
419
backendResources ,
413
420
namedValuesResources ,
421
+ identityProviderResources ,
414
422
this . extractorParameters ) ;
415
423
416
424
if ( ! templateParameters . Parameters . IsNullOrEmpty ( ) )
@@ -438,7 +446,8 @@ public async Task<Template<MasterTemplateResources>> GenerateMasterTemplateAsync
438
446
AuthorizationServerTemplateResources authorizationServersTemplateResources = null ,
439
447
NamedValuesResources namedValuesTemplateResources = null ,
440
448
TagTemplateResources tagTemplateResources = null ,
441
- GroupTemplateResources groupTemplateResources = null )
449
+ GroupTemplateResources groupTemplateResources = null ,
450
+ IdentityProviderResources identityProviderTemplateResources = null )
442
451
{
443
452
if ( string . IsNullOrEmpty ( this . extractorParameters . LinkedTemplatesBaseUrl ) )
444
453
{
@@ -452,7 +461,7 @@ public async Task<Template<MasterTemplateResources>> GenerateMasterTemplateAsync
452
461
this . extractorParameters , apiTemplateResources , policyTemplateResources , apiVersionSetTemplateResources ,
453
462
productsTemplateResources , productApisTemplateResources , apiTagsTemplateResources , loggersTemplateResources ,
454
463
backendsTemplateResources , authorizationServersTemplateResources , namedValuesTemplateResources , tagTemplateResources ,
455
- groupTemplateResources ) ;
464
+ groupTemplateResources , identityProviderTemplateResources ) ;
456
465
457
466
if ( masterTemplate ? . HasResources ( ) == true )
458
467
{
@@ -663,6 +672,29 @@ await FileWriter.SaveAsJsonAsync(
663
672
return gatewayTemplate ;
664
673
}
665
674
675
+ /// <summary>
676
+ /// Generates identity providers template in the desired folder
677
+ /// </summary>
678
+ /// <param name="baseFilesGenerationDirectory">name of base folder where to save output files</param>
679
+ /// <returns>generated identity provider template</returns>
680
+ public async Task < Template < IdentityProviderResources > > GenerateIdentityProviderTemplateAsync ( string baseFilesGenerationDirectory )
681
+ {
682
+ this . logger . LogInformation ( "Started generation of identity provider template..." ) ;
683
+
684
+ var identityProviderTemplate = await this . identityProviderExtractor . GenerateIdentityProvidersTemplateAsync ( this . extractorParameters ) ;
685
+
686
+ if ( identityProviderTemplate ? . HasResources ( ) == true )
687
+ {
688
+ await FileWriter . SaveAsJsonAsync (
689
+ identityProviderTemplate ,
690
+ directory : baseFilesGenerationDirectory ,
691
+ fileName : this . extractorParameters . FileNames . IdentityProviders ) ;
692
+ }
693
+
694
+ this . logger . LogInformation ( "Finished generation of identity providers template..." ) ;
695
+ return identityProviderTemplate ;
696
+ }
697
+
666
698
/// <summary>
667
699
/// Generates gateway-api template in the desired folder
668
700
/// </summary>
@@ -875,8 +907,9 @@ async Task GenerateTemplates(
875
907
var namedValueTemplate = await this . GenerateNamedValuesTemplateAsync ( singleApiName , apiTemplate . TypedResources . GetAllPolicies ( ) , loggerTemplate . TypedResources . Loggers , baseFilesGenerationDirectory ) ;
876
908
var backendTemplate = await this . GenerateBackendTemplateAsync ( singleApiName , apiTemplate . TypedResources . GetAllPolicies ( ) , namedValueTemplate . TypedResources . NamedValues , baseFilesGenerationDirectory ) ;
877
909
var groupTemplate = await this . GenerateGroupsTemplateAsync ( baseFilesGenerationDirectory ) ;
910
+ var identityProviderTemplate = await this . GenerateIdentityProviderTemplateAsync ( baseFilesGenerationDirectory ) ;
878
911
await this . GenerateGatewayTemplateAsync ( singleApiName , baseFilesGenerationDirectory ) ;
879
- await this . GenerateParametersTemplateAsync ( apisToExtract , loggerTemplate . TypedResources , backendTemplate . TypedResources , namedValueTemplate . TypedResources , baseFilesGenerationDirectory ) ;
912
+ await this . GenerateParametersTemplateAsync ( apisToExtract , loggerTemplate . TypedResources , backendTemplate . TypedResources , namedValueTemplate . TypedResources , identityProviderTemplate . TypedResources , baseFilesGenerationDirectory ) ;
880
913
881
914
await this . GenerateMasterTemplateAsync (
882
915
baseFilesGenerationDirectory ,
@@ -891,7 +924,8 @@ await this.GenerateMasterTemplateAsync(
891
924
authorizationServersTemplateResources : authorizationServerTemplate . TypedResources ,
892
925
namedValuesTemplateResources : namedValueTemplate . TypedResources ,
893
926
tagTemplateResources : tagTemplate . TypedResources ,
894
- groupTemplateResources : groupTemplate . TypedResources ) ;
927
+ groupTemplateResources : groupTemplate . TypedResources ,
928
+ identityProviderTemplateResources : identityProviderTemplate . TypedResources ) ;
895
929
}
896
930
897
931
0 commit comments