private IEnumerable <ArmTemplateResource <ProductApiProperties> > CreateProductApis(DeploymentDefinition deploymentDefinition) { return(new ArmTemplateResourceCreator <ApiDeploymentDefinition, ProductApiProperties>(_mapper) .ForDeploymentDefinitions(deploymentDefinition.Apis) .UseResourceCreator(apiDeploymentDefinition => { var templateResources = new List <ArmTemplateResource <ProductApiProperties> >(); foreach (string productDisplayName in apiDeploymentDefinition.ProductList) { var productName = apiDeploymentDefinition.GetProductName(productDisplayName); var dependencies = new List <string>() { $"[resourceId('{ResourceType.Api}', parameters('ApimServiceName'), '{apiDeploymentDefinition.Name}')]", $"[resourceId('{ResourceType.Product}', parameters('ApimServiceName'), '{productName}')]" }; var templateResource = new ArmTemplateResource <ProductApiProperties>( $"{productName}/{apiDeploymentDefinition.Name}", $"[concat(parameters('ApimServiceName'), '/{productName}/{apiDeploymentDefinition.Name}')]", ResourceType.ProductApi, new ProductApiProperties(), dependencies); templateResources.Add(templateResource); } return templateResources; }) .CreateResourcesIf(d => d.IsDependentOnProducts(), true)); }
private IEnumerable <ArmTemplateResource <TagProductProperties> > CreateProductTags(DeploymentDefinition deploymentDefinition) { return(new ArmTemplateResourceCreator <ProductDeploymentDefinition, TagProductProperties>(_mapper) .ForDeploymentDefinitions(deploymentDefinition.Products) .UseResourceCreator(ProductDeploymentDefinition => { var templateResources = new List <ArmTemplateResource <TagProductProperties> >(); foreach (string tagDisplayName in ProductDeploymentDefinition.TagList) { var tagName = ProductDeploymentDefinition.GetTagName(tagDisplayName); var templateRsource = new ArmTemplateResource <TagProductProperties>( $"{ProductDeploymentDefinition.Name}/{tagName}", $"[concat(parameters('ApimServiceName'), '/{ProductDeploymentDefinition.Name}/{tagName}')]", ResourceType.TagProduct, new TagProductProperties(), new string[] { $"[resourceId('{ResourceType.Product}', parameters('ApimServiceName'), '{ProductDeploymentDefinition.Name}')]", $"[resourceId('{ResourceType.Tag}', parameters('ApimServiceName'), '{tagName}')]" }); templateResources.Add(templateRsource); } return templateResources; }) .CreateResourcesIf(d => d.Tags != null, true)); }
private IEnumerable <ArmTemplateResource <ApiOperationPolicyProperties> > CreateOperationPolicies(DeploymentDefinition deploymentDefinition) { return(new ArmTemplateResourceCreator <ApiDeploymentDefinition, ApiOperationPolicyProperties>(_mapper) .ForDeploymentDefinitions(deploymentDefinition.Apis) .UseResourceCreator(apiDeploymentDefinition => { var templateResources = new List <ArmTemplateResource <ApiOperationPolicyProperties> >(); var fileReader = new FileReader(); foreach (var pair in apiDeploymentDefinition.Operations) { var operationPolicy = pair.Value.Policy; var operationName = pair.Key; var isUrl = operationPolicy.IsUri(out _); var templateResource = new ArmTemplateResource <ApiOperationPolicyProperties>( $"{apiDeploymentDefinition.Name}/{operationName}/policy", $"[concat(parameters('ApimServiceName'), '/{apiDeploymentDefinition.Name}/{operationName}/policy')]", ResourceType.ApiOperationPolicy, new ApiOperationPolicyProperties() { Format = isUrl ? "rawxml-link" : "rawxml", Value = isUrl ? operationPolicy : fileReader.RetrieveFileContentsAsync(operationPolicy).Result }, new string[] { $"[resourceId('{ResourceType.Api}', parameters('ApimServiceName'), '{apiDeploymentDefinition.Name}')]" }); templateResources.Add(templateResource); } return templateResources; }) .CreateResourcesIf(d => d.Operations != null, true)); }
VisitAction IArmVisitor <VisitAction> .VisitTemplateResource(ArmTemplateResource templateResource) { if (ShouldStop(VisitTemplateResource(templateResource), out VisitAction parentAction)) { return(parentAction); } if (VisitDictionaryAndCheckStop(templateResource, out parentAction)) { return(parentAction); } return(VisitAction.Continue); }
public virtual VisitAction VisitTemplateResource(ArmTemplateResource templateResource) => DefaultVisit(templateResource);
public object VisitTemplateResource(ArmTemplateResource templateResource) => VisitResource(templateResource);
public JToken VisitTemplateResource(ArmTemplateResource templateResource) => VisitResource(templateResource);