2222using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Common . Templates . Logger ;
2323using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Common . Templates . Master ;
2424using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Common . Templates . NamedValues ;
25+ using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Common . Templates . OpenIdConnectProviders ;
2526using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Common . Templates . Policy ;
2627using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Common . Templates . ProductApis ;
2728using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Common . Templates . Products ;
@@ -66,6 +67,7 @@ public class ExtractorExecutor
6667 readonly IIdentityProviderExtractor identityProviderExtractor ;
6768 readonly IApiManagementServiceExtractor apiManagementServiceExtractor ;
6869 readonly ISchemaExtractor schemaExtractor ;
70+ readonly IOpenIdConnectProviderExtractor openIdConnectProviderExtractor ;
6971
7072 public ExtractorExecutor (
7173 ILogger < ExtractorExecutor > logger ,
@@ -89,7 +91,8 @@ public ExtractorExecutor(
8991 IGatewayApiExtractor gatewayApiExtractor ,
9092 IIdentityProviderExtractor identityProviderExtractor ,
9193 IApiManagementServiceExtractor apiManagementServiceExtractor ,
92- ISchemaExtractor schemaExtractor )
94+ ISchemaExtractor schemaExtractor ,
95+ IOpenIdConnectProviderExtractor openIdConnectProviderExtractor )
9396 {
9497 this . logger = logger ;
9598 this . apisClient = apisClient ;
@@ -113,6 +116,7 @@ public ExtractorExecutor(
113116 this . identityProviderExtractor = identityProviderExtractor ;
114117 this . apiManagementServiceExtractor = apiManagementServiceExtractor ;
115118 this . schemaExtractor = schemaExtractor ;
119+ this . openIdConnectProviderExtractor = openIdConnectProviderExtractor ;
116120 }
117121
118122 /// <summary>
@@ -141,7 +145,8 @@ public static ExtractorExecutor BuildExtractorExecutor(
141145 IGatewayApiExtractor gatewayApiExtractor = null ,
142146 IIdentityProviderExtractor identityProviderExtractor = null ,
143147 IApiManagementServiceExtractor apiManagementServiceExtractor = null ,
144- ISchemaExtractor schemaExtractor = null )
148+ ISchemaExtractor schemaExtractor = null ,
149+ IOpenIdConnectProviderExtractor openIdConnectProviderExtractor = null )
145150 => new ExtractorExecutor (
146151 logger ,
147152 apisClient ,
@@ -164,7 +169,8 @@ public static ExtractorExecutor BuildExtractorExecutor(
164169 gatewayApiExtractor ,
165170 identityProviderExtractor ,
166171 apiManagementServiceExtractor ,
167- schemaExtractor ) ;
172+ schemaExtractor ,
173+ openIdConnectProviderExtractor ) ;
168174
169175 public void SetExtractorParameters ( ExtractorParameters extractorParameters )
170176 {
@@ -420,6 +426,7 @@ public async Task<Template> GenerateParametersTemplateAsync(
420426 BackendTemplateResources backendResources ,
421427 NamedValuesResources namedValuesResources ,
422428 IdentityProviderResources identityProviderResources ,
429+ OpenIdConnectProviderResources openIdConnectProviderResources ,
423430 string baseFilesGenerationDirectory )
424431 {
425432 this . logger . LogInformation ( "Started generation of parameters template..." ) ;
@@ -431,6 +438,7 @@ public async Task<Template> GenerateParametersTemplateAsync(
431438 backendResources ,
432439 namedValuesResources ,
433440 identityProviderResources ,
441+ openIdConnectProviderResources ,
434442 this . extractorParameters ) ;
435443
436444 if ( ! templateParameters . Parameters . IsNullOrEmpty ( ) )
@@ -460,7 +468,8 @@ public async Task<Template<MasterTemplateResources>> GenerateMasterTemplateAsync
460468 TagTemplateResources tagTemplateResources = null ,
461469 GroupTemplateResources groupTemplateResources = null ,
462470 IdentityProviderResources identityProviderTemplateResources = null ,
463- SchemaTemplateResources schemaTemplateResources = null )
471+ SchemaTemplateResources schemaTemplateResources = null ,
472+ OpenIdConnectProviderResources openIdConnectProviderResources = null )
464473 {
465474 if ( string . IsNullOrEmpty ( this . extractorParameters . LinkedTemplatesBaseUrl ) )
466475 {
@@ -474,7 +483,7 @@ public async Task<Template<MasterTemplateResources>> GenerateMasterTemplateAsync
474483 this . extractorParameters , apiTemplateResources , policyTemplateResources , apiVersionSetTemplateResources ,
475484 productsTemplateResources , productApisTemplateResources , apiTagsTemplateResources , loggersTemplateResources ,
476485 backendsTemplateResources , authorizationServersTemplateResources , namedValuesTemplateResources , tagTemplateResources ,
477- groupTemplateResources , identityProviderTemplateResources , schemaTemplateResources ) ;
486+ groupTemplateResources , identityProviderTemplateResources , schemaTemplateResources , openIdConnectProviderResources ) ;
478487
479488 if ( masterTemplate ? . HasResources ( ) == true )
480489 {
@@ -708,6 +717,29 @@ await FileWriter.SaveAsJsonAsync(
708717 return identityProviderTemplate ;
709718 }
710719
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+
711743 /// <summary>
712744 /// Generates gateway-api template in the desired folder
713745 /// </summary>
@@ -961,11 +993,12 @@ async Task GenerateTemplates(
961993 var backendTemplate = await this . GenerateBackendTemplateAsync ( singleApiName , apiTemplate . TypedResources . GetAllPolicies ( ) , namedValueTemplate . TypedResources . NamedValues , baseFilesGenerationDirectory ) ;
962994 var groupTemplate = await this . GenerateGroupsTemplateAsync ( baseFilesGenerationDirectory ) ;
963995 var identityProviderTemplate = await this . GenerateIdentityProviderTemplateAsync ( baseFilesGenerationDirectory ) ;
996+ var openIdConnectProviderTemplate = await this . GenerateOpenIdConnectProviderTemplateAsync ( baseFilesGenerationDirectory ) ;
964997 var schemasTempate = await this . GenerateSchemasTemplateAsync ( baseFilesGenerationDirectory ) ;
965998 await this . GenerateGatewayTemplateAsync ( singleApiName , baseFilesGenerationDirectory ) ;
966999 await this . GenerateGatewayApiTemplateAsync ( singleApiName , multipleApiNames , baseFilesGenerationDirectory ) ;
9671000 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 ) ;
9691002
9701003 await this . GenerateMasterTemplateAsync (
9711004 baseFilesGenerationDirectory ,
@@ -982,7 +1015,8 @@ await this.GenerateMasterTemplateAsync(
9821015 tagTemplateResources : tagTemplate . TypedResources ,
9831016 groupTemplateResources : groupTemplate . TypedResources ,
9841017 identityProviderTemplateResources : identityProviderTemplate . TypedResources ,
985- schemaTemplateResources : schemasTempate . TypedResources ) ;
1018+ schemaTemplateResources : schemasTempate . TypedResources ,
1019+ openIdConnectProviderResources : openIdConnectProviderTemplate . TypedResources ) ;
9861020 }
9871021
9881022
0 commit comments