private async Task <string[]> CreateApiResourceDependencies(DeploymentDefinition creatorConfig, ApiDeploymentDefinition api) { var fileReader = new FileReader(); List <string> apiDependsOn = new List <string>(); if (api.IsDependOnGlobalServicePolicies(creatorConfig)) { apiDependsOn.Add(DependsOn(_nestedTemplateName.GlobalServicePolicy())); } if (api.IsDependOnNamedValues(creatorConfig)) { apiDependsOn.Add(DependsOn(_nestedTemplateName.NamedValues())); } if (api.IsDependOnApiVersionSet()) { apiDependsOn.Add(DependsOn(_nestedTemplateName.ApiVersionSets())); } if (api.IsDependOnProducts() && creatorConfig.Products?.Count > 0) { apiDependsOn.Add(DependsOn(_nestedTemplateName.Products())); } if (api.IsDependOnTags() && creatorConfig.Tags?.Count > 0) { apiDependsOn.Add(DependsOn(_nestedTemplateName.Tags())); } if (await api.IsDependOnLogger(fileReader) && creatorConfig.Loggers != null) { apiDependsOn.Add(DependsOn(_nestedTemplateName.Loggers())); } if (await api.IsDependOnBackend(fileReader) && creatorConfig.Backends != null) { apiDependsOn.Add(DependsOn(_nestedTemplateName.Backends())); } if (api.IsDependOnAuthorizationServers()) { apiDependsOn.Add(DependsOn(_nestedTemplateName.AuthorizationServers())); } if (creatorConfig.Certificates != null) { apiDependsOn.Add(DependsOn(_nestedTemplateName.Certificates())); } return(apiDependsOn.ToArray()); }
private async Task <List <TemplateResource> > CreateChildResourceTemplates(ApiDeploymentDefinition api) { var resources = new List <TemplateResource>(); var dependsOn = new string[] { $"[resourceId('{ResourceType.Api}', parameters('ApimServiceName'), '{api.Name}')]" }; if (api.Policy != null) { resources.Add(await _apiPolicyTemplateCreator.Create(api, dependsOn)); } if (api.Operations != null) { resources.AddRange(await _apiOperationPolicyTemplateCreator.Create(api, dependsOn)); } if (api.IsDependOnProducts()) { resources.AddRange(this._productApiTemplateCreator.CreateProductApiTemplateResources(api, dependsOn)); } if (api.IsDependOnTags()) { resources.AddRange(this._tagApiTemplateCreator.CreateTagApiTemplateResources(api, dependsOn)); } if (api.Diagnostic != null) { resources.Add(this._diagnosticTemplateCreator.CreateAPIDiagnosticTemplateResource(api, dependsOn)); } if (api.Name.Contains(";rev")) { resources.Add(this._releaseTemplateCreator.CreateAPIReleaseTemplateResource(api, dependsOn)); } return(resources); }