22
22
using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Common . Templates . Logger ;
23
23
using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Common . Templates . Master ;
24
24
using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Common . Templates . NamedValues ;
25
+ using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Common . Templates . OpenIdConnectProviders ;
25
26
using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Common . Templates . Policy ;
26
27
using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Common . Templates . ProductApis ;
27
28
using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Common . Templates . Products ;
@@ -66,6 +67,7 @@ public class ExtractorExecutor
66
67
readonly IIdentityProviderExtractor identityProviderExtractor ;
67
68
readonly IApiManagementServiceExtractor apiManagementServiceExtractor ;
68
69
readonly ISchemaExtractor schemaExtractor ;
70
+ readonly IOpenIdConnectProviderExtractor openIdConnectProviderExtractor ;
69
71
70
72
public ExtractorExecutor (
71
73
ILogger < ExtractorExecutor > logger ,
@@ -89,7 +91,8 @@ public ExtractorExecutor(
89
91
IGatewayApiExtractor gatewayApiExtractor ,
90
92
IIdentityProviderExtractor identityProviderExtractor ,
91
93
IApiManagementServiceExtractor apiManagementServiceExtractor ,
92
- ISchemaExtractor schemaExtractor )
94
+ ISchemaExtractor schemaExtractor ,
95
+ IOpenIdConnectProviderExtractor openIdConnectProviderExtractor )
93
96
{
94
97
this . logger = logger ;
95
98
this . apisClient = apisClient ;
@@ -113,6 +116,7 @@ public ExtractorExecutor(
113
116
this . identityProviderExtractor = identityProviderExtractor ;
114
117
this . apiManagementServiceExtractor = apiManagementServiceExtractor ;
115
118
this . schemaExtractor = schemaExtractor ;
119
+ this . openIdConnectProviderExtractor = openIdConnectProviderExtractor ;
116
120
}
117
121
118
122
/// <summary>
@@ -141,7 +145,8 @@ public static ExtractorExecutor BuildExtractorExecutor(
141
145
IGatewayApiExtractor gatewayApiExtractor = null ,
142
146
IIdentityProviderExtractor identityProviderExtractor = null ,
143
147
IApiManagementServiceExtractor apiManagementServiceExtractor = null ,
144
- ISchemaExtractor schemaExtractor = null )
148
+ ISchemaExtractor schemaExtractor = null ,
149
+ IOpenIdConnectProviderExtractor openIdConnectProviderExtractor = null )
145
150
=> new ExtractorExecutor (
146
151
logger ,
147
152
apisClient ,
@@ -164,7 +169,8 @@ public static ExtractorExecutor BuildExtractorExecutor(
164
169
gatewayApiExtractor ,
165
170
identityProviderExtractor ,
166
171
apiManagementServiceExtractor ,
167
- schemaExtractor ) ;
172
+ schemaExtractor ,
173
+ openIdConnectProviderExtractor ) ;
168
174
169
175
public void SetExtractorParameters ( ExtractorParameters extractorParameters )
170
176
{
@@ -420,6 +426,7 @@ public async Task<Template> GenerateParametersTemplateAsync(
420
426
BackendTemplateResources backendResources ,
421
427
NamedValuesResources namedValuesResources ,
422
428
IdentityProviderResources identityProviderResources ,
429
+ OpenIdConnectProviderResources openIdConnectProviderResources ,
423
430
string baseFilesGenerationDirectory )
424
431
{
425
432
this . logger . LogInformation ( "Started generation of parameters template..." ) ;
@@ -431,6 +438,7 @@ public async Task<Template> GenerateParametersTemplateAsync(
431
438
backendResources ,
432
439
namedValuesResources ,
433
440
identityProviderResources ,
441
+ openIdConnectProviderResources ,
434
442
this . extractorParameters ) ;
435
443
436
444
if ( ! templateParameters . Parameters . IsNullOrEmpty ( ) )
@@ -460,7 +468,8 @@ public async Task<Template<MasterTemplateResources>> GenerateMasterTemplateAsync
460
468
TagTemplateResources tagTemplateResources = null ,
461
469
GroupTemplateResources groupTemplateResources = null ,
462
470
IdentityProviderResources identityProviderTemplateResources = null ,
463
- SchemaTemplateResources schemaTemplateResources = null )
471
+ SchemaTemplateResources schemaTemplateResources = null ,
472
+ OpenIdConnectProviderResources openIdConnectProviderResources = null )
464
473
{
465
474
if ( string . IsNullOrEmpty ( this . extractorParameters . LinkedTemplatesBaseUrl ) )
466
475
{
@@ -474,7 +483,7 @@ public async Task<Template<MasterTemplateResources>> GenerateMasterTemplateAsync
474
483
this . extractorParameters , apiTemplateResources , policyTemplateResources , apiVersionSetTemplateResources ,
475
484
productsTemplateResources , productApisTemplateResources , apiTagsTemplateResources , loggersTemplateResources ,
476
485
backendsTemplateResources , authorizationServersTemplateResources , namedValuesTemplateResources , tagTemplateResources ,
477
- groupTemplateResources , identityProviderTemplateResources , schemaTemplateResources ) ;
486
+ groupTemplateResources , identityProviderTemplateResources , schemaTemplateResources , openIdConnectProviderResources ) ;
478
487
479
488
if ( masterTemplate ? . HasResources ( ) == true )
480
489
{
@@ -708,6 +717,29 @@ await FileWriter.SaveAsJsonAsync(
708
717
return identityProviderTemplate ;
709
718
}
710
719
720
+ /// <summary>
721
+ /// Generates openId connect providers template in the desired folder
722
+ /// </summary>
723
+ /// <param name="baseFilesGenerationDirectory">name of base folder where to save output files</param>
724
+ /// <returns>generated openId connect provider template</returns>
725
+ public async Task < Template < OpenIdConnectProviderResources > > GenerateOpenIdConnectProviderTemplateAsync ( string baseFilesGenerationDirectory )
726
+ {
727
+ this . logger . LogInformation ( "Started generation of openId connect provider template..." ) ;
728
+
729
+ var openIdConnectProviderTemplate = await this . openIdConnectProviderExtractor . GenerateOpenIdConnectProvidersTemplateAsync ( this . extractorParameters ) ;
730
+
731
+ if ( openIdConnectProviderTemplate ? . HasResources ( ) == true )
732
+ {
733
+ await FileWriter . SaveAsJsonAsync (
734
+ openIdConnectProviderTemplate ,
735
+ directory : baseFilesGenerationDirectory ,
736
+ fileName : this . extractorParameters . FileNames . OpenIdConnectProviders ) ;
737
+ }
738
+
739
+ this . logger . LogInformation ( "Finished generation of openId connect providers template..." ) ;
740
+ return openIdConnectProviderTemplate ;
741
+ }
742
+
711
743
/// <summary>
712
744
/// Generates gateway-api template in the desired folder
713
745
/// </summary>
@@ -961,11 +993,12 @@ async Task GenerateTemplates(
961
993
var backendTemplate = await this . GenerateBackendTemplateAsync ( singleApiName , apiTemplate . TypedResources . GetAllPolicies ( ) , namedValueTemplate . TypedResources . NamedValues , baseFilesGenerationDirectory ) ;
962
994
var groupTemplate = await this . GenerateGroupsTemplateAsync ( baseFilesGenerationDirectory ) ;
963
995
var identityProviderTemplate = await this . GenerateIdentityProviderTemplateAsync ( baseFilesGenerationDirectory ) ;
996
+ var openIdConnectProviderTemplate = await this . GenerateOpenIdConnectProviderTemplateAsync ( baseFilesGenerationDirectory ) ;
964
997
var schemasTempate = await this . GenerateSchemasTemplateAsync ( baseFilesGenerationDirectory ) ;
965
998
await this . GenerateGatewayTemplateAsync ( singleApiName , baseFilesGenerationDirectory ) ;
966
999
await this . GenerateGatewayApiTemplateAsync ( singleApiName , multipleApiNames , baseFilesGenerationDirectory ) ;
967
1000
await this . GenerateApiManagementServiceTemplate ( baseFilesGenerationDirectory ) ;
968
- await this . GenerateParametersTemplateAsync ( apisToExtract , loggerTemplate . TypedResources , backendTemplate . TypedResources , namedValueTemplate . TypedResources , identityProviderTemplate . TypedResources , baseFilesGenerationDirectory ) ;
1001
+ await this . GenerateParametersTemplateAsync ( apisToExtract , loggerTemplate . TypedResources , backendTemplate . TypedResources , namedValueTemplate . TypedResources , identityProviderTemplate . TypedResources , openIdConnectProviderTemplate . TypedResources , baseFilesGenerationDirectory ) ;
969
1002
970
1003
await this . GenerateMasterTemplateAsync (
971
1004
baseFilesGenerationDirectory ,
@@ -982,7 +1015,8 @@ await this.GenerateMasterTemplateAsync(
982
1015
tagTemplateResources : tagTemplate . TypedResources ,
983
1016
groupTemplateResources : groupTemplate . TypedResources ,
984
1017
identityProviderTemplateResources : identityProviderTemplate . TypedResources ,
985
- schemaTemplateResources : schemasTempate . TypedResources ) ;
1018
+ schemaTemplateResources : schemasTempate . TypedResources ,
1019
+ openIdConnectProviderResources : openIdConnectProviderTemplate . TypedResources ) ;
986
1020
}
987
1021
988
1022
0 commit comments