From 8f799585b95f2cdaa1bcb51bf53f51444b97d922 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Sun, 26 Jun 2022 00:37:26 +0200 Subject: [PATCH 001/274] [MAJOR/BREAKING] Renamed `arm` to `modules` (#1498) * Renamed `arm` to `modules` (#1498) --- .../modulePipelines/ms.aad.domainservices.yml | 6 +- .../ms.analysisservices.servers.yml | 6 +- .../ms.apimanagement.service.yml | 6 +- ...s.appconfiguration.configurationstores.yml | 6 +- .../ms.authorization.locks.yml | 6 +- .../ms.authorization.policyassignments.yml | 6 +- .../ms.authorization.policydefinitions.yml | 6 +- .../ms.authorization.policyexemptions.yml | 6 +- .../ms.authorization.policysetdefinitions.yml | 6 +- .../ms.authorization.roleassignments.yml | 6 +- .../ms.authorization.roledefinitions.yml | 6 +- .../ms.automation.automationaccounts.yml | 6 +- .../ms.batch.batchaccounts.yml | 6 +- .../ms.cognitiveservices.accounts.yml | 6 +- .../ms.compute.availabilitysets.yml | 6 +- .../ms.compute.diskencryptionsets.yml | 6 +- .../modulePipelines/ms.compute.disks.yml | 6 +- .../modulePipelines/ms.compute.galleries.yml | 6 +- .../modulePipelines/ms.compute.images.yml | 6 +- .../ms.compute.proximityplacementgroups.yml | 6 +- .../ms.compute.virtualmachines.yml | 6 +- .../ms.compute.virtualmachinescalesets.yml | 6 +- .../ms.consumption.budgets.yml | 6 +- .../ms.containerinstance.containergroups.yml | 6 +- .../ms.containerregistry.registries.yml | 6 +- .../ms.containerservice.managedclusters.yml | 6 +- .../ms.databricks.workspaces.yml | 6 +- .../ms.datafactory.factories.yml | 6 +- .../ms.dataprotection.backupvaults.yml | 6 +- ...esktopvirtualization.applicationgroups.yml | 6 +- .../ms.desktopvirtualization.hostpools.yml | 6 +- .../ms.desktopvirtualization.scalingplans.yml | 6 +- .../ms.desktopvirtualization.workspaces.yml | 6 +- .../ms.documentdb.databaseaccounts.yml | 6 +- .../ms.eventgrid.systemtopics.yml | 6 +- .../modulePipelines/ms.eventgrid.topics.yml | 6 +- .../ms.eventhub.namespaces.yml | 6 +- .../ms.healthbot.healthbots.yml | 6 +- .../ms.insights.actiongroups.yml | 6 +- .../ms.insights.activitylogalerts.yml | 6 +- .../ms.insights.components.yml | 6 +- .../ms.insights.diagnosticsettings.yml | 6 +- .../ms.insights.metricalerts.yml | 6 +- .../ms.insights.privatelinkscopes.yml | 6 +- .../ms.insights.scheduledqueryrules.yml | 6 +- .../modulePipelines/ms.keyvault.vaults.yml | 6 +- .../ms.kubernetesconfiguration.extensions.yml | 6 +- ...rnetesconfiguration.fluxconfigurations.yml | 6 +- .../modulePipelines/ms.logic.workflows.yml | 6 +- .../ms.machinelearningservices.workspaces.yml | 6 +- ...managedidentity.userassignedidentities.yml | 6 +- ...anagedservices.registrationdefinitions.yml | 6 +- .../ms.management.managementgroups.yml | 6 +- .../ms.netapp.netappaccounts.yml | 6 +- .../ms.network.applicationgateways.yml | 6 +- .../ms.network.applicationsecuritygroups.yml | 6 +- .../ms.network.azurefirewalls.yml | 6 +- .../ms.network.bastionhosts.yml | 6 +- .../ms.network.connections.yml | 6 +- .../ms.network.ddosprotectionplans.yml | 6 +- .../ms.network.expressroutecircuits.yml | 6 +- .../ms.network.firewallpolicies.yml | 6 +- .../modulePipelines/ms.network.frontdoors.yml | 6 +- .../modulePipelines/ms.network.ipgroups.yml | 6 +- .../ms.network.loadbalancers.yml | 6 +- .../ms.network.localnetworkgateways.yml | 6 +- .../ms.network.natgateways.yml | 6 +- .../ms.network.networkinterfaces.yml | 6 +- .../ms.network.networksecuritygroups.yml | 6 +- .../ms.network.networkwatchers.yml | 6 +- .../ms.network.privatednszones.yml | 6 +- .../ms.network.privateendpoints.yml | 6 +- .../ms.network.publicipaddresses.yml | 6 +- .../ms.network.publicipprefixes.yml | 6 +- .../ms.network.routetables.yml | 6 +- .../ms.network.trafficmanagerprofiles.yml | 6 +- .../ms.network.virtualhubs.yml | 6 +- .../ms.network.virtualnetworkgateways.yml | 6 +- .../ms.network.virtualnetworks.yml | 6 +- .../ms.network.virtualwans.yml | 6 +- .../ms.network.vpngateways.yml | 6 +- .../modulePipelines/ms.network.vpnsites.yml | 6 +- .../ms.operationalinsights.workspaces.yml | 6 +- .../ms.operationsmanagement.solutions.yml | 6 +- .../ms.recoveryservices.vaults.yml | 6 +- .../ms.resources.deploymentscripts.yml | 6 +- .../ms.resources.resourcegroups.yml | 6 +- .../modulePipelines/ms.resources.tags.yml | 6 +- .../ms.security.azuresecuritycenter.yml | 6 +- .../ms.servicebus.namespaces.yml | 6 +- .../ms.servicefabric.clusters.yml | 6 +- .../ms.sql.managedinstances.yml | 6 +- .../modulePipelines/ms.sql.servers.yml | 6 +- .../ms.storage.storageaccounts.yml | 6 +- .../ms.synapse.privatelinkhubs.yml | 6 +- ...ms.virtualmachineimages.imagetemplates.yml | 6 +- .../modulePipelines/ms.web.connections.yml | 6 +- .../ms.web.hostingenvironments.yml | 6 +- .../modulePipelines/ms.web.serverfarms.yml | 6 +- .azuredevops/modulePipelines/ms.web.sites.yml | 6 +- .../modulePipelines/ms.web.staticsites.yml | 6 +- .../pipelineTemplates/jobs.publishModule.yml | 6 +- .../jobs.validateModulePester.yml | 12 +- .../platform.dependencies.yml | 2 +- .../platform.updateReadMe.yml | 10 +- .../templates/publishModule/action.yml | 30 +-- .../validateModuleDeployment/action.yml | 24 +-- .../templates/validateModulePester/action.yml | 18 +- .github/workflows/ms.aad.domainservices.yml | 6 +- .../workflows/ms.analysisservices.servers.yml | 6 +- .../workflows/ms.apimanagement.service.yml | 6 +- ...s.appconfiguration.configurationstores.yml | 6 +- .github/workflows/ms.authorization.locks.yml | 6 +- .../ms.authorization.policyassignments.yml | 6 +- .../ms.authorization.policydefinitions.yml | 6 +- .../ms.authorization.policyexemptions.yml | 6 +- .../ms.authorization.policysetdefinitions.yml | 6 +- .../ms.authorization.roleassignments.yml | 6 +- .../ms.authorization.roledefinitions.yml | 6 +- .../ms.automation.automationaccounts.yml | 6 +- .github/workflows/ms.batch.batchaccounts.yml | 6 +- .../ms.cognitiveservices.accounts.yml | 6 +- .../workflows/ms.compute.availabilitysets.yml | 6 +- .../ms.compute.diskencryptionsets.yml | 6 +- .github/workflows/ms.compute.disks.yml | 6 +- .github/workflows/ms.compute.galleries.yml | 6 +- .github/workflows/ms.compute.images.yml | 6 +- .../ms.compute.proximityplacementgroups.yml | 6 +- .../workflows/ms.compute.virtualmachines.yml | 6 +- .../ms.compute.virtualmachinescalesets.yml | 6 +- .github/workflows/ms.consumption.budgets.yml | 6 +- .../ms.containerinstance.containergroups.yml | 6 +- .../ms.containerregistry.registries.yml | 6 +- .../ms.containerservice.managedclusters.yml | 6 +- .../workflows/ms.databricks.workspaces.yml | 6 +- .../workflows/ms.datafactory.factories.yml | 6 +- .../ms.dataprotection.backupvaults.yml | 98 ++++----- ...esktopvirtualization.applicationgroups.yml | 6 +- .../ms.desktopvirtualization.hostpools.yml | 6 +- .../ms.desktopvirtualization.scalingplans.yml | 6 +- .../ms.desktopvirtualization.workspaces.yml | 6 +- .../ms.documentdb.databaseaccounts.yml | 6 +- .../workflows/ms.eventgrid.systemtopics.yml | 6 +- .github/workflows/ms.eventgrid.topics.yml | 6 +- .github/workflows/ms.eventhub.namespaces.yml | 6 +- .github/workflows/ms.healthbot.healthbots.yml | 6 +- .../workflows/ms.insights.actiongroups.yml | 6 +- .../ms.insights.activitylogalerts.yml | 6 +- .github/workflows/ms.insights.components.yml | 6 +- .../ms.insights.diagnosticsettings.yml | 6 +- .../workflows/ms.insights.metricalerts.yml | 6 +- .../ms.insights.privatelinkscopes.yml | 6 +- .../ms.insights.scheduledqueryrules.yml | 6 +- .github/workflows/ms.keyvault.vaults.yml | 6 +- .../ms.kubernetesconfiguration.extensions.yml | 6 +- ...rnetesconfiguration.fluxconfigurations.yml | 6 +- .github/workflows/ms.logic.workflows.yml | 6 +- .../ms.machinelearningservices.workspaces.yml | 6 +- ...managedidentity.userassignedidentities.yml | 6 +- ...anagedservices.registrationdefinitions.yml | 6 +- .../ms.management.managementgroups.yml | 6 +- .../workflows/ms.netapp.netappaccounts.yml | 6 +- .../ms.network.applicationgateways.yml | 6 +- .../ms.network.applicationsecuritygroups.yml | 6 +- .../workflows/ms.network.azurefirewalls.yml | 6 +- .github/workflows/ms.network.bastionhosts.yml | 6 +- .github/workflows/ms.network.connections.yml | 6 +- .../ms.network.ddosprotectionplans.yml | 6 +- .../ms.network.expressroutecircuits.yml | 6 +- .../workflows/ms.network.firewallpolicies.yml | 6 +- .github/workflows/ms.network.frontdoors.yml | 6 +- .github/workflows/ms.network.ipgroups.yml | 6 +- .../workflows/ms.network.loadbalancers.yml | 6 +- .../ms.network.localnetworkgateways.yml | 6 +- .github/workflows/ms.network.natgateways.yml | 6 +- .../ms.network.networkinterfaces.yml | 6 +- .../ms.network.networksecuritygroups.yml | 6 +- .../workflows/ms.network.networkwatchers.yml | 6 +- .../workflows/ms.network.privatednszones.yml | 6 +- .../workflows/ms.network.privateendpoints.yml | 6 +- .../ms.network.publicipaddresses.yml | 6 +- .../workflows/ms.network.publicipprefixes.yml | 6 +- .github/workflows/ms.network.routetables.yml | 6 +- .../ms.network.trafficmanagerprofiles.yml | 6 +- .github/workflows/ms.network.virtualhubs.yml | 6 +- .../ms.network.virtualnetworkgateways.yml | 6 +- .../workflows/ms.network.virtualnetworks.yml | 6 +- .github/workflows/ms.network.virtualwans.yml | 6 +- .github/workflows/ms.network.vpngateways.yml | 6 +- .github/workflows/ms.network.vpnsites.yml | 6 +- .../ms.operationalinsights.workspaces.yml | 6 +- .../ms.operationsmanagement.solutions.yml | 6 +- .../workflows/ms.recoveryservices.vaults.yml | 6 +- .../ms.resources.deploymentscripts.yml | 6 +- .../workflows/ms.resources.resourcegroups.yml | 6 +- .github/workflows/ms.resources.tags.yml | 6 +- .../ms.security.azuresecuritycenter.yml | 6 +- .../workflows/ms.servicebus.namespaces.yml | 6 +- .../workflows/ms.servicefabric.clusters.yml | 6 +- .github/workflows/ms.sql.managedinstances.yml | 6 +- .github/workflows/ms.sql.servers.yml | 6 +- .../workflows/ms.storage.storageaccounts.yml | 6 +- .../workflows/ms.synapse.privatelinkhubs.yml | 6 +- ...ms.virtualmachineimages.imagetemplates.yml | 6 +- .github/workflows/ms.web.connections.yml | 6 +- .../workflows/ms.web.hostingenvironments.yml | 6 +- .github/workflows/ms.web.serverfarms.yml | 6 +- .github/workflows/ms.web.sites.yml | 6 +- .github/workflows/ms.web.staticsites.yml | 6 +- .github/workflows/platform.dependencies.yml | 76 ++++--- .github/workflows/platform.updateReadMe.yml | 10 +- README.md | 202 +++++++++--------- .../.bicep/nested_roleAssignments.bicep | 43 ---- arm/README.md | 107 ---------- .../.bicep/nested_roleAssignments.bicep | 6 +- .../virtualMachinesMultiple/deploy.bicep | 2 +- .../deploy.bicep | 2 +- ...g started - Get module cross-references.md | 2 +- ...board module library and CI environment.md | 24 +-- docs/wiki/Solution creation.md | 16 +- ...ent - GitHub ReadMe module table update.md | 2 +- .../The CI environment - Pipeline design.md | 4 +- .../The CI environment - Static validation.md | 6 +- docs/wiki/The library - Module design.md | 6 +- docs/wiki/The library - Module usage.md | 32 +-- .../.global/global.module.tests.ps1 | 30 +-- {arm => modules}/.global/shared/helper.psm1 | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/parameters.json | 0 .../Microsoft.AAD/DomainServices/deploy.bicep | 0 .../Microsoft.AAD/DomainServices/readme.md | 0 .../Microsoft.AAD/DomainServices/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../servers/.parameters/max.parameters.json | 0 .../servers/.parameters/min.parameters.json | 0 .../servers/.parameters/parameters.json | 0 .../servers/deploy.bicep | 0 .../servers/readme.md | 0 .../servers/version.json | 0 .../.bicep/nested_authorizationServers.bicep | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../service/.parameters/max.parameters.json | 0 .../service/.parameters/min.parameters.json | 0 .../service/.parameters/parameters.json | 0 .../service/apiVersionSets/deploy.bicep | 0 .../service/apiVersionSets/readme.md | 0 .../service/apiVersionSets/version.json | 0 .../service/apis/deploy.bicep | 0 .../service/apis/policies/deploy.bicep | 0 .../service/apis/policies/readme.md | 0 .../service/apis/policies/version.json | 0 .../service/apis/readme.md | 0 .../service/apis/version.json | 0 .../service/authorizationServers/deploy.bicep | 0 .../service/authorizationServers/readme.md | 0 .../service/authorizationServers/version.json | 0 .../service/backends/deploy.bicep | 0 .../service/backends/readme.md | 0 .../service/backends/version.json | 0 .../service/caches/deploy.bicep | 0 .../service/caches/readme.md | 0 .../service/caches/version.json | 0 .../service/deploy.bicep | 0 .../service/identityProviders/deploy.bicep | 0 .../service/identityProviders/readme.md | 0 .../service/identityProviders/version.json | 0 .../service/namedValues/deploy.bicep | 0 .../service/namedValues/readme.md | 0 .../service/namedValues/version.json | 0 .../service/policies/deploy.bicep | 0 .../service/policies/readme.md | 0 .../service/policies/version.json | 0 .../service/portalsettings/deploy.bicep | 0 .../service/portalsettings/readme.md | 0 .../service/portalsettings/version.json | 0 .../service/products/apis/deploy.bicep | 0 .../service/products/apis/readme.md | 0 .../service/products/apis/version.json | 0 .../service/products/deploy.bicep | 0 .../service/products/groups/deploy.bicep | 0 .../service/products/groups/readme.md | 0 .../service/products/groups/version.json | 0 .../service/products/readme.md | 0 .../service/products/version.json | 0 .../Microsoft.ApiManagement/service/readme.md | 0 .../service/subscriptions/deploy.bicep | 0 .../service/subscriptions/readme.md | 0 .../service/subscriptions/version.json | 0 .../service/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/min.parameters.json | 0 .../.parameters/parameters.json | 0 .../configurationStores/deploy.bicep | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../keyValues/deploy.bicep | 0 .../configurationStores/keyValues/readme.md | 0 .../keyValues/version.json | 0 .../configurationStores/readme.md | 0 .../configurationStores/version.json | 0 .../locks/.parameters/rg.parameters.json | 0 .../locks/deploy.bicep | 0 .../Microsoft.Authorization/locks/readme.md | 0 .../locks/resourceGroup/deploy.bicep | 0 .../locks/resourceGroup/readme.md | 0 .../locks/resourceGroup/version.json | 0 .../locks/subscription/deploy.bicep | 0 .../locks/subscription/readme.md | 0 .../locks/subscription/version.json | 0 .../locks/version.json | 0 .../.parameters/mg.min.parameters.json | 0 .../.parameters/mg.parameters.json | 0 .../.parameters/rg.min.parameters.json | 0 .../.parameters/rg.parameters.json | 0 .../.parameters/sub.min.parameters.json | 0 .../.parameters/sub.parameters.json | 0 .../policyAssignments/deploy.bicep | 0 .../managementGroup/deploy.bicep | 0 .../managementGroup/readme.md | 0 .../managementGroup/version.json | 0 .../policyAssignments/readme.md | 2 +- .../resourceGroup/deploy.bicep | 0 .../policyAssignments/resourceGroup/readme.md | 0 .../resourceGroup/version.json | 0 .../subscription/deploy.bicep | 0 .../policyAssignments/subscription/readme.md | 0 .../subscription/version.json | 0 .../policyAssignments/version.json | 0 .../.parameters/mg.min.parameters.json | 0 .../.parameters/mg.parameters.json | 0 .../.parameters/sub.min.parameters.json | 0 .../.parameters/sub.parameters.json | 0 .../policyDefinitions/deploy.bicep | 0 .../managementGroup/deploy.bicep | 0 .../managementGroup/readme.md | 0 .../managementGroup/version.json | 0 .../policyDefinitions/readme.md | 2 +- .../subscription/deploy.bicep | 0 .../policyDefinitions/subscription/readme.md | 0 .../subscription/version.json | 0 .../policyDefinitions/version.json | 0 .../.parameters/mg.min.parameters.json | 0 .../.parameters/mg.parameters.json | 0 .../.parameters/rg.min.parameters.json | 0 .../.parameters/rg.parameters.json | 0 .../.parameters/sub.min.parameters.json | 0 .../.parameters/sub.parameters.json | 0 .../policyExemptions/deploy.bicep | 0 .../managementGroup/deploy.bicep | 0 .../managementGroup/readme.md | 0 .../managementGroup/version.json | 0 .../policyExemptions/readme.md | 2 +- .../resourceGroup/deploy.bicep | 0 .../policyExemptions/resourceGroup/readme.md | 0 .../resourceGroup/version.json | 0 .../subscription/deploy.bicep | 0 .../policyExemptions/subscription/readme.md | 0 .../subscription/version.json | 0 .../policyExemptions/version.json | 0 .../.parameters/mg.min.parameters.json | 0 .../.parameters/mg.parameters.json | 0 .../.parameters/sub.min.parameters.json | 0 .../.parameters/sub.parameters.json | 0 .../policySetDefinitions/deploy.bicep | 0 .../managementGroup/deploy.bicep | 0 .../managementGroup/readme.md | 0 .../managementGroup/version.json | 0 .../policySetDefinitions/readme.md | 2 +- .../subscription/deploy.bicep | 0 .../subscription/readme.md | 0 .../subscription/version.json | 0 .../policySetDefinitions/version.json | 0 .../.parameters/mg.min.parameters.json | 0 .../.parameters/mg.parameters.json | 0 .../.parameters/rg.min.parameters.json | 0 .../.parameters/rg.parameters.json | 0 .../.parameters/sub.min.parameters.json | 0 .../.parameters/sub.parameters.json | 0 .../roleAssignments/deploy.bicep | 0 .../managementGroup/deploy.bicep | 0 .../roleAssignments/managementGroup/readme.md | 0 .../managementGroup/version.json | 0 .../roleAssignments/readme.md | 2 +- .../resourceGroup/deploy.bicep | 0 .../roleAssignments/resourceGroup/readme.md | 0 .../resourceGroup/version.json | 0 .../roleAssignments/subscription/deploy.bicep | 0 .../roleAssignments/subscription/readme.md | 0 .../roleAssignments/subscription/version.json | 0 .../roleAssignments/version.json | 0 .../.parameters/mg.min.parameters.json | 0 .../.parameters/mg.parameters.json | 0 .../.parameters/rg.min.parameters.json | 0 .../.parameters/rg.parameters.json | 0 .../.parameters/sub.min.parameters.json | 0 .../.parameters/sub.parameters.json | 0 .../roleDefinitions/deploy.bicep | 0 .../managementGroup/deploy.bicep | 0 .../roleDefinitions/managementGroup/readme.md | 0 .../managementGroup/version.json | 0 .../roleDefinitions/readme.md | 2 +- .../resourceGroup/deploy.bicep | 0 .../roleDefinitions/resourceGroup/readme.md | 0 .../resourceGroup/version.json | 0 .../roleDefinitions/subscription/deploy.bicep | 0 .../roleDefinitions/subscription/readme.md | 0 .../roleDefinitions/subscription/version.json | 0 .../roleDefinitions/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/encr.parameters.json | 0 .../.parameters/min.parameters.json | 0 .../.parameters/parameters.json | 0 .../automationAccounts/deploy.bicep | 0 .../jobSchedules/deploy.bicep | 0 .../automationAccounts/jobSchedules/readme.md | 0 .../jobSchedules/version.json | 0 .../automationAccounts/modules/deploy.bicep | 0 .../automationAccounts/modules/readme.md | 0 .../automationAccounts/modules/version.json | 0 .../automationAccounts/readme.md | 0 .../automationAccounts/runbooks/deploy.bicep | 0 .../automationAccounts/runbooks/readme.md | 0 .../automationAccounts/runbooks/version.json | 0 .../automationAccounts/schedules/deploy.bicep | 0 .../automationAccounts/schedules/readme.md | 0 .../automationAccounts/schedules/version.json | 0 .../softwareUpdateConfigurations/deploy.bicep | 0 .../softwareUpdateConfigurations/readme.md | 0 .../softwareUpdateConfigurations/version.json | 0 .../automationAccounts/variables/deploy.bicep | 0 .../automationAccounts/variables/readme.md | 0 .../automationAccounts/variables/version.json | 0 .../automationAccounts/version.json | 0 .../.parameters/min.parameters.json | 0 .../batchAccounts/.parameters/parameters.json | 0 .../batchAccounts/deploy.bicep | 0 .../Microsoft.Batch/batchAccounts/readme.md | 0 .../batchAccounts/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../accounts/.parameters/encr.parameters.json | 0 .../accounts/.parameters/min.parameters.json | 0 .../accounts/.parameters/parameters.json | 0 .../.parameters/speech.parameters.json | 0 .../accounts/deploy.bicep | 0 .../accounts/readme.md | 0 .../accounts/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/min.parameters.json | 0 .../.parameters/parameters.json | 0 .../availabilitySets/deploy.bicep | 0 .../availabilitySets/readme.md | 0 .../availabilitySets/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/parameters.json | 0 .../diskEncryptionSets/deploy.bicep | 0 .../diskEncryptionSets/readme.md | 0 .../diskEncryptionSets/version.json | 0 .../disks/.bicep/nested_roleAssignments.bicep | 0 .../disks/.parameters/image.parameters.json | 0 .../disks/.parameters/import.parameters.json | 0 .../disks/.parameters/min.parameters.json | 0 .../disks/.parameters/parameters.json | 0 .../Microsoft.Compute/disks/deploy.bicep | 0 .../Microsoft.Compute/disks/readme.md | 0 .../Microsoft.Compute/disks/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/images.parameters.json | 0 .../galleries/.parameters/parameters.json | 0 .../Microsoft.Compute/galleries/deploy.bicep | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../galleries/images/deploy.bicep | 0 .../galleries/images/readme.md | 0 .../galleries/images/version.json | 0 .../Microsoft.Compute/galleries/readme.md | 0 .../Microsoft.Compute/galleries/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../images/.parameters/parameters.json | 0 .../Microsoft.Compute/images/deploy.bicep | 0 .../Microsoft.Compute/images/readme.md | 0 .../Microsoft.Compute/images/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/parameters.json | 0 .../proximityPlacementGroups/deploy.bicep | 0 .../proximityPlacementGroups/readme.md | 0 .../proximityPlacementGroups/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/linux.min.parameters.json | 0 .../.parameters/linux.parameters.json | 0 .../.parameters/windows.min.parameters.json | 0 .../.parameters/windows.parameters.json | 0 .../virtualMachineScaleSets/deploy.bicep | 0 .../extensions/deploy.bicep | 0 .../extensions/readme.md | 0 .../extensions/version.json | 0 .../virtualMachineScaleSets/readme.md | 0 .../virtualMachineScaleSets/version.json | 0 .../.bicep/nested_networkInterface.bicep | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/linux.autmg.parameters.json | 0 .../.parameters/linux.min.parameters.json | 0 .../.parameters/linux.parameters.json | 0 .../.parameters/windows.autmg.parameters.json | 0 .../.parameters/windows.min.parameters.json | 0 .../.parameters/windows.parameters.json | 0 .../virtualMachines/deploy.bicep | 0 .../virtualMachines/extensions/deploy.bicep | 0 .../virtualMachines/extensions/readme.md | 0 .../virtualMachines/extensions/version.json | 0 .../virtualMachines/readme.md | 0 .../virtualMachines/version.json | 0 .../budgets/.parameters/parameters.json | 0 .../budgets/deploy.bicep | 0 .../Microsoft.Consumption/budgets/readme.md | 0 .../budgets/version.json | 0 .../.parameters/parameters.json | 0 .../containerGroups/deploy.bicep | 0 .../containerGroups/readme.md | 0 .../containerGroups/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/encr.parameters.json | 0 .../.parameters/min.parameters.json | 0 .../registries/.parameters/parameters.json | 0 .../registries/deploy.bicep | 0 .../registries/readme.md | 0 .../registries/replications/deploy.bicep | 0 .../registries/replications/readme.md | 0 .../registries/replications/version.json | 0 .../registries/version.json | 0 .../registries/webhooks/deploy.bicep | 0 .../registries/webhooks/readme.md | 0 .../registries/webhooks/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/azure.parameters.json | 0 .../.parameters/kubenet.parameters.json | 0 .../managedClusters/agentPools/deploy.bicep | 0 .../managedClusters/agentPools/readme.md | 0 .../managedClusters/agentPools/version.json | 0 .../managedClusters/deploy.bicep | 0 .../managedClusters/readme.md | 0 .../managedClusters/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../factories/.parameters/parameters.json | 0 .../factories/deploy.bicep | 0 .../factories/integrationRuntime/deploy.bicep | 0 .../factories/integrationRuntime/readme.md | 0 .../factories/integrationRuntime/version.json | 0 .../managedVirtualNetwork/deploy.bicep | 0 .../factories/managedVirtualNetwork/readme.md | 0 .../managedVirtualNetwork/version.json | 0 .../Microsoft.DataFactory/factories/readme.md | 0 .../factories/version.json | 0 .../.parameters/min.parameters.json | 0 .../backupVaults/.parameters/parameters.json | 0 .../backupVaults/backupPolicies/deploy.bicep | 0 .../backupVaults/backupPolicies/readme.md | 0 .../backupVaults/backupPolicies/version.json | 0 .../backupVaults/deploy.bicep | 0 .../backupVaults/readme.md | 0 .../backupVaults/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../workspaces/.parameters/parameters.json | 0 .../workspaces/deploy.bicep | 0 .../Microsoft.Databricks/workspaces/readme.md | 0 .../workspaces/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/min.parameters.json | 0 .../.parameters/parameters.json | 0 .../applications/deploy.bicep | 0 .../applicationgroups/applications/readme.md | 0 .../applications/version.json | 0 .../applicationgroups/deploy.bicep | 0 .../applicationgroups/readme.md | 0 .../applicationgroups/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../hostpools/.parameters/parameters.json | 0 .../hostpools/deploy.bicep | 0 .../hostpools/readme.md | 0 .../hostpools/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/min.parameters.json | 0 .../scalingplans/deploy.bicep | 0 .../scalingplans/readme.md | 0 .../scalingplans/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../workspaces/.parameters/parameters.json | 0 .../workspaces/deploy.bicep | 0 .../workspaces/readme.md | 0 .../workspaces/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/mongodb.parameters.json | 0 .../.parameters/plain.parameters.json | 0 .../.parameters/sqldb.parameters.json | 0 .../databaseAccounts/deploy.bicep | 0 .../mongodbDatabases/collections/deploy.bicep | 0 .../mongodbDatabases/collections/readme.md | 0 .../mongodbDatabases/collections/version.json | 0 .../mongodbDatabases/deploy.bicep | 0 .../mongodbDatabases/readme.md | 0 .../mongodbDatabases/version.json | 0 .../databaseAccounts/readme.md | 0 .../sqlDatabases/containers/deploy.bicep | 0 .../sqlDatabases/containers/readme.md | 0 .../sqlDatabases/containers/version.json | 0 .../sqlDatabases/deploy.bicep | 0 .../databaseAccounts/sqlDatabases/readme.md | 0 .../sqlDatabases/version.json | 0 .../databaseAccounts/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/min.parameters.json | 0 .../systemTopics/.parameters/parameters.json | 0 .../systemTopics/deploy.bicep | 0 .../systemTopics/readme.md | 0 .../systemTopics/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../topics/.parameters/parameters.json | 0 .../Microsoft.EventGrid/topics/deploy.bicep | 0 .../Microsoft.EventGrid/topics/readme.md | 0 .../Microsoft.EventGrid/topics/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/min.parameters.json | 0 .../namespaces/.parameters/parameters.json | 0 .../authorizationRules/deploy.bicep | 0 .../namespaces/authorizationRules/readme.md | 0 .../authorizationRules/version.json | 0 .../namespaces/deploy.bicep | 0 .../disasterRecoveryConfigs/deploy.bicep | 0 .../disasterRecoveryConfigs/readme.md | 0 .../disasterRecoveryConfigs/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../eventhubs/authorizationRules/deploy.bicep | 0 .../eventhubs/authorizationRules/readme.md | 0 .../eventhubs/authorizationRules/version.json | 0 .../eventhubs/consumergroups/deploy.bicep | 0 .../eventhubs/consumergroups/readme.md | 0 .../eventhubs/consumergroups/version.json | 0 .../namespaces/eventhubs/deploy.bicep | 0 .../namespaces/eventhubs/readme.md | 0 .../namespaces/eventhubs/version.json | 0 .../namespaces/networkRuleSets/deploy.bicep | 0 .../namespaces/networkRuleSets/readme.md | 0 .../namespaces/networkRuleSets/version.json | 0 .../Microsoft.EventHub/namespaces/readme.md | 0 .../namespaces/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../healthBots/.parameters/parameters.json | 0 .../healthBots/deploy.bicep | 0 .../Microsoft.HealthBot/healthBots/readme.md | 0 .../healthBots/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../actionGroups/.parameters/parameters.json | 0 .../actionGroups/deploy.bicep | 0 .../Microsoft.Insights/actionGroups/readme.md | 0 .../actionGroups/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/parameters.json | 0 .../activityLogAlerts/deploy.bicep | 0 .../activityLogAlerts/readme.md | 0 .../activityLogAlerts/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../components/.parameters/parameters.json | 0 .../components/deploy.bicep | 0 .../Microsoft.Insights/components/readme.md | 0 .../components/version.json | 0 .../.parameters/parameters.json | 0 .../diagnosticSettings/deploy.bicep | 0 .../diagnosticSettings/readme.md | 0 .../diagnosticSettings/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../metricAlerts/.parameters/parameters.json | 0 .../metricAlerts/deploy.bicep | 0 .../Microsoft.Insights/metricAlerts/readme.md | 0 .../metricAlerts/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/parameters.json | 0 .../privateLinkScopes/deploy.bicep | 0 .../privateLinkScopes/readme.md | 0 .../scopedResources/deploy.bicep | 0 .../scopedResources/readme.md | 0 .../scopedResources/version.json | 0 .../privateLinkScopes/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/parameters.json | 0 .../scheduledQueryRules/deploy.bicep | 0 .../scheduledQueryRules/readme.md | 0 .../scheduledQueryRules/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../vaults/.parameters/min.parameters.json | 0 .../vaults/.parameters/parameters.json | 0 .../vaults/accessPolicies/deploy.bicep | 0 .../vaults/accessPolicies/readme.md | 0 .../vaults/accessPolicies/version.json | 0 .../Microsoft.KeyVault/vaults/deploy.bicep | 0 .../keys/.bicep/nested_roleAssignments.bicep | 0 .../vaults/keys/deploy.bicep | 0 .../Microsoft.KeyVault/vaults/keys/readme.md | 0 .../vaults/keys/version.json | 0 .../Microsoft.KeyVault/vaults/readme.md | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../vaults/secrets/deploy.bicep | 0 .../vaults/secrets/readme.md | 0 .../vaults/secrets/version.json | 0 .../Microsoft.KeyVault/vaults/version.json | 0 .../.parameters/min.parameters.json | 0 .../extensions/.parameters/parameters.json | 0 .../extensions/deploy.bicep | 0 .../extensions/readme.md | 0 .../extensions/version.json | 0 .../.parameters/min.parameters.json | 0 .../.parameters/parameters.json | 0 .../fluxConfigurations/deploy.bicep | 0 .../fluxConfigurations/readme.md | 0 .../fluxConfigurations/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../workflows/.parameters/parameters.json | 0 .../Microsoft.Logic/workflows/deploy.bicep | 0 .../Microsoft.Logic/workflows/readme.md | 0 .../Microsoft.Logic/workflows/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/min.parameters.json | 0 .../workspaces/.parameters/parameters.json | 0 .../workspaces/computes/deploy.bicep | 0 .../workspaces/computes/readme.md | 0 .../workspaces/computes/version.json | 0 .../workspaces/deploy.bicep | 0 .../workspaces/readme.md | 0 .../workspaces/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/parameters.json | 0 .../userAssignedIdentities/deploy.bicep | 0 .../userAssignedIdentities/readme.md | 0 .../userAssignedIdentities/version.json | 0 .../nested_registrationAssignment.bicep | 0 .../.parameters/parameters.json | 0 .../.parameters/rg.parameters.json | 0 .../registrationDefinitions/deploy.bicep | 0 .../registrationDefinitions/readme.md | 0 .../registrationDefinitions/version.json | 0 .../.parameters/parameters.json | 0 .../managementGroups/deploy.bicep | 0 .../managementGroups/readme.md | 0 .../managementGroups/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/min.parameters.json | 0 .../.parameters/nfs3.parameters.json | 0 .../.parameters/nfs41.parameters.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../netAppAccounts/capacityPools/deploy.bicep | 0 .../netAppAccounts/capacityPools/readme.md | 0 .../netAppAccounts/capacityPools/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../capacityPools/volumes/deploy.bicep | 0 .../capacityPools/volumes/readme.md | 0 .../capacityPools/volumes/version.json | 0 .../netAppAccounts/deploy.bicep | 0 .../Microsoft.NetApp/netAppAccounts/readme.md | 0 .../netAppAccounts/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/parameters.json | 0 .../applicationGateways/deploy.bicep | 0 .../applicationGateways/readme.md | 0 .../applicationGateways/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/parameters.json | 0 .../applicationSecurityGroups/deploy.bicep | 0 .../applicationSecurityGroups/readme.md | 0 .../applicationSecurityGroups/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/addpip.parameters.json | 0 .../.parameters/custompip.parameters.json | 0 .../.parameters/min.parameters.json | 0 .../.parameters/parameters.json | 0 .../azureFirewalls/deploy.bicep | 0 .../azureFirewalls/readme.md | 0 .../azureFirewalls/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/addpip.parameters.json | 0 .../.parameters/custompip.parameters.json | 0 .../.parameters/min.parameters.json | 0 .../bastionHosts/.parameters/parameters.json | 0 .../bastionHosts/deploy.bicep | 0 .../Microsoft.Network/bastionHosts/readme.md | 0 .../bastionHosts/version.json | 0 .../.parameters/vnet2vnet.parameters.json | 0 .../connections/deploy.bicep | 0 .../Microsoft.Network/connections/readme.md | 0 .../connections/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/parameters.json | 0 .../ddosProtectionPlans/deploy.bicep | 0 .../ddosProtectionPlans/readme.md | 0 .../ddosProtectionPlans/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/parameters.json | 0 .../expressRouteCircuits/deploy.bicep | 0 .../expressRouteCircuits/readme.md | 0 .../expressRouteCircuits/version.json | 0 .../.parameters/min.parameters.json | 0 .../.parameters/parameters.json | 0 .../firewallPolicies/deploy.bicep | 0 .../firewallPolicies/readme.md | 0 .../ruleCollectionGroups/deploy.bicep | 0 .../ruleCollectionGroups/readme.md | 0 .../ruleCollectionGroups/version.json | 0 .../firewallPolicies/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../frontDoors/.parameters/parameters.json | 0 .../Microsoft.Network/frontDoors/deploy.bicep | 0 .../Microsoft.Network/frontDoors/readme.md | 0 .../Microsoft.Network/frontDoors/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../ipGroups/.parameters/parameters.json | 0 .../Microsoft.Network/ipGroups/deploy.bicep | 0 .../Microsoft.Network/ipGroups/readme.md | 0 .../Microsoft.Network/ipGroups/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/internal.parameters.json | 0 .../.parameters/min.parameters.json | 0 .../loadBalancers/.parameters/parameters.json | 0 .../backendAddressPools/deploy.bicep | 0 .../backendAddressPools/readme.md | 0 .../backendAddressPools/version.json | 0 .../loadBalancers/deploy.bicep | 0 .../inboundNatRules/deploy.bicep | 0 .../loadBalancers/inboundNatRules/readme.md | 0 .../inboundNatRules/version.json | 0 .../Microsoft.Network/loadBalancers/readme.md | 0 .../loadBalancers/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/parameters.json | 0 .../localNetworkGateways/deploy.bicep | 0 .../localNetworkGateways/readme.md | 0 .../localNetworkGateways/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../natGateways/.parameters/parameters.json | 0 .../natGateways/deploy.bicep | 0 .../Microsoft.Network/natGateways/readme.md | 0 .../natGateways/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/min.parameters.json | 0 .../.parameters/parameters.json | 0 .../networkInterfaces/deploy.bicep | 0 .../networkInterfaces/readme.md | 0 .../networkInterfaces/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/min.parameters.json | 0 .../.parameters/parameters.json | 0 .../networkSecurityGroups/deploy.bicep | 0 .../networkSecurityGroups/readme.md | 0 .../securityRules/deploy.bicep | 0 .../securityRules/readme.md | 0 .../securityRules/version.json | 0 .../networkSecurityGroups/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/min.parameters.json | 0 .../.parameters/parameters.json | 0 .../connectionMonitors/deploy.bicep | 0 .../connectionMonitors/readme.md | 0 .../connectionMonitors/version.json | 0 .../networkWatchers/deploy.bicep | 0 .../networkWatchers/flowLogs/deploy.bicep | 0 .../networkWatchers/flowLogs/readme.md | 0 .../networkWatchers/flowLogs/version.json | 0 .../networkWatchers/readme.md | 0 .../networkWatchers/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/min.parameters.json | 0 .../.parameters/parameters.json | 0 .../A/.bicep/nested_roleAssignments.bicep | 0 .../privateDnsZones/A/deploy.bicep | 0 .../privateDnsZones/A/readme.md | 0 .../privateDnsZones/A/version.json | 0 .../AAAA/.bicep/nested_roleAssignments.bicep | 0 .../privateDnsZones/AAAA/deploy.bicep | 0 .../privateDnsZones/AAAA/readme.md | 0 .../privateDnsZones/AAAA/version.json | 0 .../CNAME/.bicep/nested_roleAssignments.bicep | 0 .../privateDnsZones/CNAME/deploy.bicep | 0 .../privateDnsZones/CNAME/readme.md | 0 .../privateDnsZones/CNAME/version.json | 0 .../MX/.bicep/nested_roleAssignments.bicep | 0 .../privateDnsZones/MX/deploy.bicep | 0 .../privateDnsZones/MX/readme.md | 0 .../privateDnsZones/MX/version.json | 0 .../PTR/.bicep/nested_roleAssignments.bicep | 0 .../privateDnsZones/PTR/deploy.bicep | 0 .../privateDnsZones/PTR/readme.md | 0 .../privateDnsZones/PTR/version.json | 0 .../SOA/.bicep/nested_roleAssignments.bicep | 0 .../privateDnsZones/SOA/deploy.bicep | 0 .../privateDnsZones/SOA/readme.md | 0 .../privateDnsZones/SOA/version.json | 0 .../SRV/.bicep/nested_roleAssignments.bicep | 0 .../privateDnsZones/SRV/deploy.bicep | 0 .../privateDnsZones/SRV/readme.md | 0 .../privateDnsZones/SRV/version.json | 0 .../TXT/.bicep/nested_roleAssignments.bicep | 0 .../privateDnsZones/TXT/deploy.bicep | 0 .../privateDnsZones/TXT/readme.md | 0 .../privateDnsZones/TXT/version.json | 0 .../privateDnsZones/deploy.bicep | 0 .../privateDnsZones/readme.md | 0 .../privateDnsZones/version.json | 0 .../virtualNetworkLinks/deploy.bicep | 0 .../virtualNetworkLinks/readme.md | 0 .../virtualNetworkLinks/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/min.parameters.json | 0 .../.parameters/parameters.json | 0 .../privateEndpoints/deploy.bicep | 0 .../privateDnsZoneGroups/deploy.bicep | 0 .../privateDnsZoneGroups/readme.md | 0 .../privateDnsZoneGroups/version.json | 0 .../privateEndpoints/readme.md | 0 .../privateEndpoints/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/parameters.json | 0 .../publicIPAddresses/deploy.bicep | 0 .../publicIPAddresses/readme.md | 0 .../publicIPAddresses/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/parameters.json | 0 .../publicIPPrefixes/deploy.bicep | 0 .../publicIPPrefixes/readme.md | 0 .../publicIPPrefixes/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../routeTables/.parameters/parameters.json | 0 .../routeTables/deploy.bicep | 0 .../Microsoft.Network/routeTables/readme.md | 0 .../routeTables/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/parameters.json | 0 .../trafficmanagerprofiles/deploy.bicep | 0 .../trafficmanagerprofiles/readme.md | 0 .../trafficmanagerprofiles/version.json | 0 .../.parameters/min.parameters.json | 0 .../virtualHubs/.parameters/parameters.json | 0 .../virtualHubs/deploy.bicep | 0 .../virtualHubs/hubRouteTables/deploy.bicep | 0 .../virtualHubs/hubRouteTables/readme.md | 0 .../virtualHubs/hubRouteTables/version.json | 0 .../hubVirtualNetworkConnections/deploy.bicep | 0 .../hubVirtualNetworkConnections/readme.md | 0 .../hubVirtualNetworkConnections/version.json | 0 .../Microsoft.Network/virtualHubs/readme.md | 0 .../virtualHubs/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/expressRoute.parameters.json | 0 .../.parameters/vpn.parameters.json | 0 .../virtualNetworkGateways/deploy.bicep | 0 .../virtualNetworkGateways/readme.md | 0 .../virtualNetworkGateways/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/min.parameters.json | 0 .../.parameters/parameters.json | 0 .../.parameters/vnetPeering.parameters.json | 0 .../virtualNetworks/deploy.bicep | 0 .../virtualNetworks/readme.md | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../virtualNetworks/subnets/deploy.bicep | 0 .../virtualNetworks/subnets/readme.md | 0 .../virtualNetworks/subnets/version.json | 0 .../virtualNetworks/version.json | 0 .../virtualNetworkPeerings/deploy.bicep | 0 .../virtualNetworkPeerings/readme.md | 0 .../virtualNetworkPeerings/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/min.parameters.json | 0 .../virtualWans/.parameters/parameters.json | 0 .../virtualWans/deploy.bicep | 0 .../Microsoft.Network/virtualWans/readme.md | 0 .../virtualWans/version.json | 0 .../.parameters/min.parameters.json | 0 .../vpnGateways/.parameters/parameters.json | 0 .../vpnGateways/connections/deploy.bicep | 0 .../vpnGateways/connections/readme.md | 0 .../vpnGateways/connections/version.json | 0 .../vpnGateways/deploy.bicep | 0 .../vpnGateways/natRules/deploy.bicep | 0 .../vpnGateways/natRules/readme.md | 0 .../vpnGateways/natRules/version.json | 0 .../Microsoft.Network/vpnGateways/readme.md | 0 .../vpnGateways/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../vpnSites/.parameters/min.parameters.json | 0 .../vpnSites/.parameters/parameters.json | 0 .../Microsoft.Network/vpnSites/deploy.bicep | 0 .../Microsoft.Network/vpnSites/readme.md | 0 .../Microsoft.Network/vpnSites/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/min.parameters.json | 0 .../workspaces/.parameters/parameters.json | 0 .../workspaces/dataSources/deploy.bicep | 0 .../workspaces/dataSources/readme.md | 0 .../workspaces/dataSources/version.json | 0 .../workspaces/deploy.bicep | 0 .../workspaces/linkedServices/deploy.bicep | 0 .../workspaces/linkedServices/readme.md | 0 .../workspaces/linkedServices/version.json | 0 .../workspaces/readme.md | 0 .../workspaces/savedSearches/deploy.bicep | 0 .../workspaces/savedSearches/readme.md | 0 .../workspaces/savedSearches/version.json | 0 .../storageInsightConfigs/deploy.bicep | 0 .../storageInsightConfigs/readme.md | 0 .../storageInsightConfigs/version.json | 0 .../workspaces/version.json | 0 .../solutions/.parameters/min.parameters.json | 0 .../solutions/.parameters/ms.parameters.json | 0 .../.parameters/nonms.parameters.json | 0 .../solutions/deploy.bicep | 0 .../solutions/readme.md | 0 .../solutions/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../vaults/.parameters/dr.parameters.json | 0 .../vaults/.parameters/min.parameters.json | 0 .../vaults/.parameters/parameters.json | 0 .../vaults/backupConfig/deploy.bicep | 0 .../vaults/backupConfig/readme.md | 0 .../vaults/backupConfig/version.json | 0 .../vaults/backupPolicies/deploy.bicep | 0 .../vaults/backupPolicies/readme.md | 0 .../vaults/backupPolicies/version.json | 0 .../vaults/backupStorageConfig/deploy.bicep | 0 .../vaults/backupStorageConfig/readme.md | 0 .../vaults/backupStorageConfig/version.json | 0 .../vaults/deploy.bicep | 0 .../vaults/protectionContainers/deploy.bicep | 0 .../protectedItems/deploy.bicep | 0 .../protectedItems/readme.md | 0 .../protectedItems/version.json | 0 .../vaults/protectionContainers/readme.md | 0 .../vaults/protectionContainers/version.json | 0 .../vaults/readme.md | 0 .../vaults/replicationFabrics/deploy.bicep | 0 .../vaults/replicationFabrics/readme.md | 0 .../deploy.bicep | 0 .../replicationProtectionContainers/readme.md | 0 .../deploy.bicep | 0 .../readme.md | 0 .../version.json | 0 .../version.json | 0 .../vaults/replicationFabrics/version.json | 0 .../vaults/replicationPolicies/deploy.bicep | 0 .../vaults/replicationPolicies/readme.md | 0 .../vaults/replicationPolicies/version.json | 0 .../vaults/version.json | 0 .../.parameters/cli.parameters.json | 0 .../.parameters/ps.parameters.json | 0 .../deploymentScripts/deploy.bicep | 0 .../deploymentScripts/readme.md | 0 .../deploymentScripts/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/parameters.json | 0 .../resourceGroups/deploy.bicep | 0 .../resourceGroups/readme.md | 0 .../resourceGroups/version.json | 0 .../tags/.parameters/min.parameters.json | 0 .../tags/.parameters/rg.parameters.json | 0 .../tags/.parameters/sub.parameters.json | 0 .../Microsoft.Resources/tags/deploy.bicep | 0 .../Microsoft.Resources/tags/readme.md | 0 .../tags/resourceGroups/.bicep/readTags.bicep | 0 .../tags/resourceGroups/deploy.bicep | 0 .../tags/resourceGroups/readme.md | 0 .../tags/resourceGroups/version.json | 0 .../tags/subscriptions/.bicep/readTags.bicep | 0 .../tags/subscriptions/deploy.bicep | 0 .../tags/subscriptions/readme.md | 0 .../tags/subscriptions/version.json | 0 .../Microsoft.Resources/tags/version.json | 0 .../.bicep/nested_iotSecuritySolutions.bicep | 0 .../.parameters/parameters.json | 0 .../azureSecurityCenter/deploy.bicep | 0 .../azureSecurityCenter/readme.md | 0 .../azureSecurityCenter/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/min.parameters.json | 0 .../namespaces/.parameters/parameters.json | 0 .../authorizationRules/deploy.bicep | 0 .../namespaces/authorizationRules/readme.md | 0 .../authorizationRules/version.json | 0 .../namespaces/deploy.bicep | 0 .../disasterRecoveryConfigs/deploy.bicep | 0 .../disasterRecoveryConfigs/readme.md | 0 .../disasterRecoveryConfigs/version.json | 0 .../namespaces/ipFilterRules/deploy.bicep | 0 .../namespaces/ipFilterRules/readme.md | 0 .../namespaces/ipFilterRules/version.json | 0 .../migrationConfigurations/deploy.bicep | 0 .../migrationConfigurations/readme.md | 0 .../migrationConfigurations/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../queues/authorizationRules/deploy.bicep | 0 .../queues/authorizationRules/readme.md | 0 .../queues/authorizationRules/version.json | 0 .../namespaces/queues/deploy.bicep | 0 .../namespaces/queues/readme.md | 0 .../namespaces/queues/version.json | 0 .../Microsoft.ServiceBus/namespaces/readme.md | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../topics/authorizationRules/deploy.bicep | 0 .../topics/authorizationRules/readme.md | 0 .../topics/authorizationRules/version.json | 0 .../namespaces/topics/deploy.bicep | 0 .../namespaces/topics/readme.md | 0 .../namespaces/topics/version.json | 0 .../namespaces/version.json | 0 .../virtualNetworkRules/deploy.bicep | 0 .../namespaces/virtualNetworkRules/readme.md | 0 .../virtualNetworkRules/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../clusters/.parameters/cert.parameters.json | 0 .../clusters/.parameters/full.parameters.json | 0 .../clusters/.parameters/min.parameters.json | 0 .../clusters/applicationTypes/deploy.bicep | 0 .../clusters/applicationTypes/readme.md | 0 .../clusters/applicationTypes/version.json | 0 .../clusters/deploy.bicep | 0 .../clusters/readme.md | 0 .../clusters/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/parameters.json | 0 .../administrators/deploy.bicep | 0 .../managedInstances/administrators/readme.md | 0 .../administrators/version.json | 0 .../deploy.bicep | 0 .../backupLongTermRetentionPolicies/readme.md | 0 .../version.json | 0 .../deploy.bicep | 0 .../readme.md | 0 .../version.json | 0 .../managedInstances/databases/deploy.bicep | 0 .../managedInstances/databases/readme.md | 0 .../managedInstances/databases/version.json | 0 .../managedInstances/deploy.bicep | 0 .../encryptionProtector/deploy.bicep | 0 .../encryptionProtector/readme.md | 0 .../encryptionProtector/version.json | 0 .../managedInstances/keys/deploy.bicep | 0 .../managedInstances/keys/readme.md | 0 .../managedInstances/keys/version.json | 0 .../Microsoft.Sql/managedInstances/readme.md | 0 .../securityAlertPolicies/deploy.bicep | 0 .../securityAlertPolicies/readme.md | 0 .../securityAlertPolicies/version.json | 0 .../managedInstances/version.json | 0 .../vulnerabilityAssessments/deploy.bicep | 0 .../vulnerabilityAssessments/readme.md | 0 .../vulnerabilityAssessments/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../servers/.parameters/admin.parameters.json | 0 .../servers/.parameters/parameters.json | 0 .../servers/databases/deploy.bicep | 0 .../Microsoft.Sql/servers/databases/readme.md | 0 .../servers/databases/version.json | 0 .../Microsoft.Sql/servers/deploy.bicep | 0 .../servers/firewallRules/deploy.bicep | 0 .../servers/firewallRules/readme.md | 0 .../servers/firewallRules/version.json | 0 .../Microsoft.Sql/servers/readme.md | 0 .../securityAlertPolicies/deploy.bicep | 0 .../servers/securityAlertPolicies/readme.md | 0 .../securityAlertPolicies/version.json | 0 .../Microsoft.Sql/servers/version.json | 0 .../vulnerabilityAssessments/deploy.bicep | 0 .../vulnerabilityAssessments/readme.md | 0 .../vulnerabilityAssessments/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/encr.parameters.json | 0 .../.parameters/min.parameters.json | 0 .../.parameters/nfs.parameters.json | 0 .../.parameters/parameters.json | 0 .../.parameters/v1.parameters.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../blobServices/containers/deploy.bicep | 0 .../immutabilityPolicies/deploy.bicep | 0 .../containers/immutabilityPolicies/readme.md | 0 .../immutabilityPolicies/version.json | 0 .../blobServices/containers/readme.md | 0 .../blobServices/containers/version.json | 0 .../storageAccounts/blobServices/deploy.bicep | 0 .../storageAccounts/blobServices/readme.md | 0 .../storageAccounts/blobServices/version.json | 0 .../storageAccounts/deploy.bicep | 0 .../storageAccounts/fileServices/deploy.bicep | 0 .../storageAccounts/fileServices/readme.md | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../fileServices/shares/deploy.bicep | 0 .../fileServices/shares/readme.md | 0 .../fileServices/shares/version.json | 0 .../storageAccounts/fileServices/version.json | 0 .../managementPolicies/deploy.bicep | 0 .../managementPolicies/readme.md | 0 .../managementPolicies/version.json | 0 .../queueServices/deploy.bicep | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../queueServices/queues/deploy.bicep | 0 .../queueServices/queues/readme.md | 0 .../queueServices/queues/version.json | 0 .../storageAccounts/queueServices/readme.md | 0 .../queueServices/version.json | 0 .../storageAccounts/readme.md | 0 .../tableServices/deploy.bicep | 0 .../storageAccounts/tableServices/readme.md | 0 .../tableServices/tables/deploy.bicep | 0 .../tableServices/tables/readme.md | 0 .../tableServices/tables/version.json | 0 .../tableServices/version.json | 0 .../storageAccounts/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/min.parameters.json | 0 .../.parameters/parameters.json | 0 .../privateLinkHubs/deploy.bicep | 0 .../privateLinkHubs/readme.md | 0 .../privateLinkHubs/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/parameters.json | 0 .../imageTemplates/deploy.bicep | 0 .../imageTemplates/readme.md | 0 .../imageTemplates/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../connections/.parameters/parameters.json | 0 .../Microsoft.Web/connections/deploy.bicep | 0 .../Microsoft.Web/connections/readme.md | 0 .../Microsoft.Web/connections/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/asev2.parameters.json | 0 .../.parameters/asev3.parameters.json | 0 .../hostingEnvironments/deploy.bicep | 0 .../hostingEnvironments/readme.md | 0 .../hostingEnvironments/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../serverfarms/.parameters/parameters.json | 0 .../Microsoft.Web/serverfarms/deploy.bicep | 0 .../Microsoft.Web/serverfarms/readme.md | 0 .../Microsoft.Web/serverfarms/version.json | 0 .../sites/.bicep/nested_roleAssignments.bicep | 0 .../sites/.parameters/fa.min.parameters.json | 0 .../sites/.parameters/fa.parameters.json | 0 .../sites/.parameters/wa.min.parameters.json | 0 .../sites/.parameters/wa.parameters.json | 0 .../sites/config-appsettings/deploy.bicep | 0 .../sites/config-appsettings/readme.md | 0 .../sites/config-appsettings/version.json | 0 .../sites/config-authsettingsv2/deploy.bicep | 0 .../sites/config-authsettingsv2/readme.md | 0 .../sites/config-authsettingsv2/version.json | 0 .../Microsoft.Web/sites/deploy.bicep | 0 .../Microsoft.Web/sites/readme.md | 0 .../Microsoft.Web/sites/version.json | 0 .../.bicep/nested_roleAssignments.bicep | 0 .../.parameters/min.parameters.json | 0 .../staticSites/.parameters/parameters.json | 0 .../Microsoft.Web/staticSites/deploy.bicep | 0 .../Microsoft.Web/staticSites/readme.md | 0 .../Microsoft.Web/staticSites/version.json | 0 modules/README.md | 107 ++++++++++ .../resourcePublish/Get-ModulesToPublish.ps1 | 34 +-- .../Publish-ModuleToPrivateBicepRegistry.ps1 | 8 +- .../Publish-ModuleToTemplateSpec.ps1 | 6 +- .../Publish-ModuleToUniversalArtifactFeed.ps1 | 8 +- .../Initialize-DeploymentRemoval.ps1 | 4 +- .../Get-ModuleParameterFiles.ps1 | 2 +- utilities/tools/ConvertTo-ARMTemplate.ps1 | 24 +-- utilities/tools/Get-LinkedLocalModuleList.ps1 | 8 +- utilities/tools/Get-LinkedModuleList.ps1 | 4 +- utilities/tools/Set-ModuleReadMe.ps1 | 6 +- utilities/tools/Set-ReadMeModuleTable.ps1 | 2 +- utilities/tools/Test-ModuleLocally.ps1 | 2 +- .../helper/Get-ModulesAsMarkdownTable.ps1 | 18 +- .../tests/ConvertTo-ARMTemplate.Tests.ps1 | 28 +-- 1270 files changed, 1106 insertions(+), 1143 deletions(-) delete mode 100644 arm/Microsoft.DataProtection/backupVaults/.bicep/nested_roleAssignments.bicep delete mode 100644 arm/README.md rename {arm => modules}/.global/global.module.tests.ps1 (98%) rename {arm => modules}/.global/shared/helper.psm1 (100%) rename {arm => modules}/Microsoft.AAD/DomainServices/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.AAD/DomainServices/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.AAD/DomainServices/deploy.bicep (100%) rename {arm => modules}/Microsoft.AAD/DomainServices/readme.md (100%) rename {arm => modules}/Microsoft.AAD/DomainServices/version.json (100%) rename {arm => modules}/Microsoft.AnalysisServices/servers/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.AnalysisServices/servers/.parameters/max.parameters.json (100%) rename {arm => modules}/Microsoft.AnalysisServices/servers/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.AnalysisServices/servers/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.AnalysisServices/servers/deploy.bicep (100%) rename {arm => modules}/Microsoft.AnalysisServices/servers/readme.md (100%) rename {arm => modules}/Microsoft.AnalysisServices/servers/version.json (100%) rename {arm => modules}/Microsoft.ApiManagement/service/.bicep/nested_authorizationServers.bicep (100%) rename {arm => modules}/Microsoft.ApiManagement/service/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.ApiManagement/service/.parameters/max.parameters.json (100%) rename {arm => modules}/Microsoft.ApiManagement/service/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.ApiManagement/service/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.ApiManagement/service/apiVersionSets/deploy.bicep (100%) rename {arm => modules}/Microsoft.ApiManagement/service/apiVersionSets/readme.md (100%) rename {arm => modules}/Microsoft.ApiManagement/service/apiVersionSets/version.json (100%) rename {arm => modules}/Microsoft.ApiManagement/service/apis/deploy.bicep (100%) rename {arm => modules}/Microsoft.ApiManagement/service/apis/policies/deploy.bicep (100%) rename {arm => modules}/Microsoft.ApiManagement/service/apis/policies/readme.md (100%) rename {arm => modules}/Microsoft.ApiManagement/service/apis/policies/version.json (100%) rename {arm => modules}/Microsoft.ApiManagement/service/apis/readme.md (100%) rename {arm => modules}/Microsoft.ApiManagement/service/apis/version.json (100%) rename {arm => modules}/Microsoft.ApiManagement/service/authorizationServers/deploy.bicep (100%) rename {arm => modules}/Microsoft.ApiManagement/service/authorizationServers/readme.md (100%) rename {arm => modules}/Microsoft.ApiManagement/service/authorizationServers/version.json (100%) rename {arm => modules}/Microsoft.ApiManagement/service/backends/deploy.bicep (100%) rename {arm => modules}/Microsoft.ApiManagement/service/backends/readme.md (100%) rename {arm => modules}/Microsoft.ApiManagement/service/backends/version.json (100%) rename {arm => modules}/Microsoft.ApiManagement/service/caches/deploy.bicep (100%) rename {arm => modules}/Microsoft.ApiManagement/service/caches/readme.md (100%) rename {arm => modules}/Microsoft.ApiManagement/service/caches/version.json (100%) rename {arm => modules}/Microsoft.ApiManagement/service/deploy.bicep (100%) rename {arm => modules}/Microsoft.ApiManagement/service/identityProviders/deploy.bicep (100%) rename {arm => modules}/Microsoft.ApiManagement/service/identityProviders/readme.md (100%) rename {arm => modules}/Microsoft.ApiManagement/service/identityProviders/version.json (100%) rename {arm => modules}/Microsoft.ApiManagement/service/namedValues/deploy.bicep (100%) rename {arm => modules}/Microsoft.ApiManagement/service/namedValues/readme.md (100%) rename {arm => modules}/Microsoft.ApiManagement/service/namedValues/version.json (100%) rename {arm => modules}/Microsoft.ApiManagement/service/policies/deploy.bicep (100%) rename {arm => modules}/Microsoft.ApiManagement/service/policies/readme.md (100%) rename {arm => modules}/Microsoft.ApiManagement/service/policies/version.json (100%) rename {arm => modules}/Microsoft.ApiManagement/service/portalsettings/deploy.bicep (100%) rename {arm => modules}/Microsoft.ApiManagement/service/portalsettings/readme.md (100%) rename {arm => modules}/Microsoft.ApiManagement/service/portalsettings/version.json (100%) rename {arm => modules}/Microsoft.ApiManagement/service/products/apis/deploy.bicep (100%) rename {arm => modules}/Microsoft.ApiManagement/service/products/apis/readme.md (100%) rename {arm => modules}/Microsoft.ApiManagement/service/products/apis/version.json (100%) rename {arm => modules}/Microsoft.ApiManagement/service/products/deploy.bicep (100%) rename {arm => modules}/Microsoft.ApiManagement/service/products/groups/deploy.bicep (100%) rename {arm => modules}/Microsoft.ApiManagement/service/products/groups/readme.md (100%) rename {arm => modules}/Microsoft.ApiManagement/service/products/groups/version.json (100%) rename {arm => modules}/Microsoft.ApiManagement/service/products/readme.md (100%) rename {arm => modules}/Microsoft.ApiManagement/service/products/version.json (100%) rename {arm => modules}/Microsoft.ApiManagement/service/readme.md (100%) rename {arm => modules}/Microsoft.ApiManagement/service/subscriptions/deploy.bicep (100%) rename {arm => modules}/Microsoft.ApiManagement/service/subscriptions/readme.md (100%) rename {arm => modules}/Microsoft.ApiManagement/service/subscriptions/version.json (100%) rename {arm => modules}/Microsoft.ApiManagement/service/version.json (100%) rename {arm => modules}/Microsoft.AppConfiguration/configurationStores/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.AppConfiguration/configurationStores/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.AppConfiguration/configurationStores/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.AppConfiguration/configurationStores/deploy.bicep (100%) rename {arm => modules}/Microsoft.AppConfiguration/configurationStores/keyValues/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.AppConfiguration/configurationStores/keyValues/deploy.bicep (100%) rename {arm => modules}/Microsoft.AppConfiguration/configurationStores/keyValues/readme.md (100%) rename {arm => modules}/Microsoft.AppConfiguration/configurationStores/keyValues/version.json (100%) rename {arm => modules}/Microsoft.AppConfiguration/configurationStores/readme.md (100%) rename {arm => modules}/Microsoft.AppConfiguration/configurationStores/version.json (100%) rename {arm => modules}/Microsoft.Authorization/locks/.parameters/rg.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/locks/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/locks/readme.md (100%) rename {arm => modules}/Microsoft.Authorization/locks/resourceGroup/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/locks/resourceGroup/readme.md (100%) rename {arm => modules}/Microsoft.Authorization/locks/resourceGroup/version.json (100%) rename {arm => modules}/Microsoft.Authorization/locks/subscription/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/locks/subscription/readme.md (100%) rename {arm => modules}/Microsoft.Authorization/locks/subscription/version.json (100%) rename {arm => modules}/Microsoft.Authorization/locks/version.json (100%) rename {arm => modules}/Microsoft.Authorization/policyAssignments/.parameters/mg.min.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/policyAssignments/.parameters/mg.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/policyAssignments/.parameters/rg.min.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/policyAssignments/.parameters/rg.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/policyAssignments/.parameters/sub.min.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/policyAssignments/.parameters/sub.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/policyAssignments/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/policyAssignments/managementGroup/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/policyAssignments/managementGroup/readme.md (100%) rename {arm => modules}/Microsoft.Authorization/policyAssignments/managementGroup/version.json (100%) rename {arm => modules}/Microsoft.Authorization/policyAssignments/readme.md (99%) rename {arm => modules}/Microsoft.Authorization/policyAssignments/resourceGroup/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/policyAssignments/resourceGroup/readme.md (100%) rename {arm => modules}/Microsoft.Authorization/policyAssignments/resourceGroup/version.json (100%) rename {arm => modules}/Microsoft.Authorization/policyAssignments/subscription/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/policyAssignments/subscription/readme.md (100%) rename {arm => modules}/Microsoft.Authorization/policyAssignments/subscription/version.json (100%) rename {arm => modules}/Microsoft.Authorization/policyAssignments/version.json (100%) rename {arm => modules}/Microsoft.Authorization/policyDefinitions/.parameters/mg.min.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/policyDefinitions/.parameters/mg.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/policyDefinitions/.parameters/sub.min.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/policyDefinitions/.parameters/sub.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/policyDefinitions/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/policyDefinitions/managementGroup/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/policyDefinitions/managementGroup/readme.md (100%) rename {arm => modules}/Microsoft.Authorization/policyDefinitions/managementGroup/version.json (100%) rename {arm => modules}/Microsoft.Authorization/policyDefinitions/readme.md (99%) rename {arm => modules}/Microsoft.Authorization/policyDefinitions/subscription/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/policyDefinitions/subscription/readme.md (100%) rename {arm => modules}/Microsoft.Authorization/policyDefinitions/subscription/version.json (100%) rename {arm => modules}/Microsoft.Authorization/policyDefinitions/version.json (100%) rename {arm => modules}/Microsoft.Authorization/policyExemptions/.parameters/mg.min.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/policyExemptions/.parameters/mg.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/policyExemptions/.parameters/rg.min.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/policyExemptions/.parameters/rg.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/policyExemptions/.parameters/sub.min.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/policyExemptions/.parameters/sub.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/policyExemptions/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/policyExemptions/managementGroup/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/policyExemptions/managementGroup/readme.md (100%) rename {arm => modules}/Microsoft.Authorization/policyExemptions/managementGroup/version.json (100%) rename {arm => modules}/Microsoft.Authorization/policyExemptions/readme.md (99%) rename {arm => modules}/Microsoft.Authorization/policyExemptions/resourceGroup/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/policyExemptions/resourceGroup/readme.md (100%) rename {arm => modules}/Microsoft.Authorization/policyExemptions/resourceGroup/version.json (100%) rename {arm => modules}/Microsoft.Authorization/policyExemptions/subscription/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/policyExemptions/subscription/readme.md (100%) rename {arm => modules}/Microsoft.Authorization/policyExemptions/subscription/version.json (100%) rename {arm => modules}/Microsoft.Authorization/policyExemptions/version.json (100%) rename {arm => modules}/Microsoft.Authorization/policySetDefinitions/.parameters/mg.min.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/policySetDefinitions/.parameters/mg.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/policySetDefinitions/.parameters/sub.min.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/policySetDefinitions/.parameters/sub.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/policySetDefinitions/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/policySetDefinitions/managementGroup/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/policySetDefinitions/managementGroup/readme.md (100%) rename {arm => modules}/Microsoft.Authorization/policySetDefinitions/managementGroup/version.json (100%) rename {arm => modules}/Microsoft.Authorization/policySetDefinitions/readme.md (99%) rename {arm => modules}/Microsoft.Authorization/policySetDefinitions/subscription/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/policySetDefinitions/subscription/readme.md (100%) rename {arm => modules}/Microsoft.Authorization/policySetDefinitions/subscription/version.json (100%) rename {arm => modules}/Microsoft.Authorization/policySetDefinitions/version.json (100%) rename {arm => modules}/Microsoft.Authorization/roleAssignments/.parameters/mg.min.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/roleAssignments/.parameters/mg.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/roleAssignments/.parameters/rg.min.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/roleAssignments/.parameters/rg.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/roleAssignments/.parameters/sub.min.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/roleAssignments/.parameters/sub.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/roleAssignments/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/roleAssignments/managementGroup/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/roleAssignments/managementGroup/readme.md (100%) rename {arm => modules}/Microsoft.Authorization/roleAssignments/managementGroup/version.json (100%) rename {arm => modules}/Microsoft.Authorization/roleAssignments/readme.md (99%) rename {arm => modules}/Microsoft.Authorization/roleAssignments/resourceGroup/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/roleAssignments/resourceGroup/readme.md (100%) rename {arm => modules}/Microsoft.Authorization/roleAssignments/resourceGroup/version.json (100%) rename {arm => modules}/Microsoft.Authorization/roleAssignments/subscription/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/roleAssignments/subscription/readme.md (100%) rename {arm => modules}/Microsoft.Authorization/roleAssignments/subscription/version.json (100%) rename {arm => modules}/Microsoft.Authorization/roleAssignments/version.json (100%) rename {arm => modules}/Microsoft.Authorization/roleDefinitions/.parameters/mg.min.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/roleDefinitions/.parameters/mg.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/roleDefinitions/.parameters/rg.min.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/roleDefinitions/.parameters/rg.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/roleDefinitions/.parameters/sub.min.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/roleDefinitions/.parameters/sub.parameters.json (100%) rename {arm => modules}/Microsoft.Authorization/roleDefinitions/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/roleDefinitions/managementGroup/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/roleDefinitions/managementGroup/readme.md (100%) rename {arm => modules}/Microsoft.Authorization/roleDefinitions/managementGroup/version.json (100%) rename {arm => modules}/Microsoft.Authorization/roleDefinitions/readme.md (99%) rename {arm => modules}/Microsoft.Authorization/roleDefinitions/resourceGroup/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/roleDefinitions/resourceGroup/readme.md (100%) rename {arm => modules}/Microsoft.Authorization/roleDefinitions/resourceGroup/version.json (100%) rename {arm => modules}/Microsoft.Authorization/roleDefinitions/subscription/deploy.bicep (100%) rename {arm => modules}/Microsoft.Authorization/roleDefinitions/subscription/readme.md (100%) rename {arm => modules}/Microsoft.Authorization/roleDefinitions/subscription/version.json (100%) rename {arm => modules}/Microsoft.Authorization/roleDefinitions/version.json (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/.parameters/encr.parameters.json (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/deploy.bicep (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/jobSchedules/deploy.bicep (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/jobSchedules/readme.md (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/jobSchedules/version.json (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/modules/deploy.bicep (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/modules/readme.md (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/modules/version.json (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/readme.md (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/runbooks/deploy.bicep (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/runbooks/readme.md (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/runbooks/version.json (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/schedules/deploy.bicep (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/schedules/readme.md (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/schedules/version.json (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/softwareUpdateConfigurations/deploy.bicep (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/softwareUpdateConfigurations/readme.md (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/softwareUpdateConfigurations/version.json (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/variables/deploy.bicep (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/variables/readme.md (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/variables/version.json (100%) rename {arm => modules}/Microsoft.Automation/automationAccounts/version.json (100%) rename {arm => modules}/Microsoft.Batch/batchAccounts/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.Batch/batchAccounts/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Batch/batchAccounts/deploy.bicep (100%) rename {arm => modules}/Microsoft.Batch/batchAccounts/readme.md (100%) rename {arm => modules}/Microsoft.Batch/batchAccounts/version.json (100%) rename {arm => modules}/Microsoft.CognitiveServices/accounts/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.CognitiveServices/accounts/.parameters/encr.parameters.json (100%) rename {arm => modules}/Microsoft.CognitiveServices/accounts/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.CognitiveServices/accounts/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.CognitiveServices/accounts/.parameters/speech.parameters.json (100%) rename {arm => modules}/Microsoft.CognitiveServices/accounts/deploy.bicep (100%) rename {arm => modules}/Microsoft.CognitiveServices/accounts/readme.md (100%) rename {arm => modules}/Microsoft.CognitiveServices/accounts/version.json (100%) rename {arm => modules}/Microsoft.Compute/availabilitySets/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Compute/availabilitySets/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.Compute/availabilitySets/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Compute/availabilitySets/deploy.bicep (100%) rename {arm => modules}/Microsoft.Compute/availabilitySets/readme.md (100%) rename {arm => modules}/Microsoft.Compute/availabilitySets/version.json (100%) rename {arm => modules}/Microsoft.Compute/diskEncryptionSets/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Compute/diskEncryptionSets/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Compute/diskEncryptionSets/deploy.bicep (100%) rename {arm => modules}/Microsoft.Compute/diskEncryptionSets/readme.md (100%) rename {arm => modules}/Microsoft.Compute/diskEncryptionSets/version.json (100%) rename {arm => modules}/Microsoft.Compute/disks/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Compute/disks/.parameters/image.parameters.json (100%) rename {arm => modules}/Microsoft.Compute/disks/.parameters/import.parameters.json (100%) rename {arm => modules}/Microsoft.Compute/disks/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.Compute/disks/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Compute/disks/deploy.bicep (100%) rename {arm => modules}/Microsoft.Compute/disks/readme.md (100%) rename {arm => modules}/Microsoft.Compute/disks/version.json (100%) rename {arm => modules}/Microsoft.Compute/galleries/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Compute/galleries/.parameters/images.parameters.json (100%) rename {arm => modules}/Microsoft.Compute/galleries/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Compute/galleries/deploy.bicep (100%) rename {arm => modules}/Microsoft.Compute/galleries/images/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Compute/galleries/images/deploy.bicep (100%) rename {arm => modules}/Microsoft.Compute/galleries/images/readme.md (100%) rename {arm => modules}/Microsoft.Compute/galleries/images/version.json (100%) rename {arm => modules}/Microsoft.Compute/galleries/readme.md (100%) rename {arm => modules}/Microsoft.Compute/galleries/version.json (100%) rename {arm => modules}/Microsoft.Compute/images/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Compute/images/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Compute/images/deploy.bicep (100%) rename {arm => modules}/Microsoft.Compute/images/readme.md (100%) rename {arm => modules}/Microsoft.Compute/images/version.json (100%) rename {arm => modules}/Microsoft.Compute/proximityPlacementGroups/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Compute/proximityPlacementGroups/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Compute/proximityPlacementGroups/deploy.bicep (100%) rename {arm => modules}/Microsoft.Compute/proximityPlacementGroups/readme.md (100%) rename {arm => modules}/Microsoft.Compute/proximityPlacementGroups/version.json (100%) rename {arm => modules}/Microsoft.Compute/virtualMachineScaleSets/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.min.parameters.json (100%) rename {arm => modules}/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.parameters.json (100%) rename {arm => modules}/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.min.parameters.json (100%) rename {arm => modules}/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.parameters.json (100%) rename {arm => modules}/Microsoft.Compute/virtualMachineScaleSets/deploy.bicep (100%) rename {arm => modules}/Microsoft.Compute/virtualMachineScaleSets/extensions/deploy.bicep (100%) rename {arm => modules}/Microsoft.Compute/virtualMachineScaleSets/extensions/readme.md (100%) rename {arm => modules}/Microsoft.Compute/virtualMachineScaleSets/extensions/version.json (100%) rename {arm => modules}/Microsoft.Compute/virtualMachineScaleSets/readme.md (100%) rename {arm => modules}/Microsoft.Compute/virtualMachineScaleSets/version.json (100%) rename {arm => modules}/Microsoft.Compute/virtualMachines/.bicep/nested_networkInterface.bicep (100%) rename {arm => modules}/Microsoft.Compute/virtualMachines/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Compute/virtualMachines/.parameters/linux.autmg.parameters.json (100%) rename {arm => modules}/Microsoft.Compute/virtualMachines/.parameters/linux.min.parameters.json (100%) rename {arm => modules}/Microsoft.Compute/virtualMachines/.parameters/linux.parameters.json (100%) rename {arm => modules}/Microsoft.Compute/virtualMachines/.parameters/windows.autmg.parameters.json (100%) rename {arm => modules}/Microsoft.Compute/virtualMachines/.parameters/windows.min.parameters.json (100%) rename {arm => modules}/Microsoft.Compute/virtualMachines/.parameters/windows.parameters.json (100%) rename {arm => modules}/Microsoft.Compute/virtualMachines/deploy.bicep (100%) rename {arm => modules}/Microsoft.Compute/virtualMachines/extensions/deploy.bicep (100%) rename {arm => modules}/Microsoft.Compute/virtualMachines/extensions/readme.md (100%) rename {arm => modules}/Microsoft.Compute/virtualMachines/extensions/version.json (100%) rename {arm => modules}/Microsoft.Compute/virtualMachines/readme.md (100%) rename {arm => modules}/Microsoft.Compute/virtualMachines/version.json (100%) rename {arm => modules}/Microsoft.Consumption/budgets/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Consumption/budgets/deploy.bicep (100%) rename {arm => modules}/Microsoft.Consumption/budgets/readme.md (100%) rename {arm => modules}/Microsoft.Consumption/budgets/version.json (100%) rename {arm => modules}/Microsoft.ContainerInstance/containerGroups/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.ContainerInstance/containerGroups/deploy.bicep (100%) rename {arm => modules}/Microsoft.ContainerInstance/containerGroups/readme.md (100%) rename {arm => modules}/Microsoft.ContainerInstance/containerGroups/version.json (100%) rename {arm => modules}/Microsoft.ContainerRegistry/registries/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.ContainerRegistry/registries/.parameters/encr.parameters.json (100%) rename {arm => modules}/Microsoft.ContainerRegistry/registries/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.ContainerRegistry/registries/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.ContainerRegistry/registries/deploy.bicep (100%) rename {arm => modules}/Microsoft.ContainerRegistry/registries/readme.md (100%) rename {arm => modules}/Microsoft.ContainerRegistry/registries/replications/deploy.bicep (100%) rename {arm => modules}/Microsoft.ContainerRegistry/registries/replications/readme.md (100%) rename {arm => modules}/Microsoft.ContainerRegistry/registries/replications/version.json (100%) rename {arm => modules}/Microsoft.ContainerRegistry/registries/version.json (100%) rename {arm => modules}/Microsoft.ContainerRegistry/registries/webhooks/deploy.bicep (100%) rename {arm => modules}/Microsoft.ContainerRegistry/registries/webhooks/readme.md (100%) rename {arm => modules}/Microsoft.ContainerRegistry/registries/webhooks/version.json (100%) rename {arm => modules}/Microsoft.ContainerService/managedClusters/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.ContainerService/managedClusters/.parameters/azure.parameters.json (100%) rename {arm => modules}/Microsoft.ContainerService/managedClusters/.parameters/kubenet.parameters.json (100%) rename {arm => modules}/Microsoft.ContainerService/managedClusters/agentPools/deploy.bicep (100%) rename {arm => modules}/Microsoft.ContainerService/managedClusters/agentPools/readme.md (100%) rename {arm => modules}/Microsoft.ContainerService/managedClusters/agentPools/version.json (100%) rename {arm => modules}/Microsoft.ContainerService/managedClusters/deploy.bicep (100%) rename {arm => modules}/Microsoft.ContainerService/managedClusters/readme.md (100%) rename {arm => modules}/Microsoft.ContainerService/managedClusters/version.json (100%) rename {arm => modules}/Microsoft.DataFactory/factories/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.DataFactory/factories/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.DataFactory/factories/deploy.bicep (100%) rename {arm => modules}/Microsoft.DataFactory/factories/integrationRuntime/deploy.bicep (100%) rename {arm => modules}/Microsoft.DataFactory/factories/integrationRuntime/readme.md (100%) rename {arm => modules}/Microsoft.DataFactory/factories/integrationRuntime/version.json (100%) rename {arm => modules}/Microsoft.DataFactory/factories/managedVirtualNetwork/deploy.bicep (100%) rename {arm => modules}/Microsoft.DataFactory/factories/managedVirtualNetwork/readme.md (100%) rename {arm => modules}/Microsoft.DataFactory/factories/managedVirtualNetwork/version.json (100%) rename {arm => modules}/Microsoft.DataFactory/factories/readme.md (100%) rename {arm => modules}/Microsoft.DataFactory/factories/version.json (100%) rename {arm => modules}/Microsoft.DataProtection/backupVaults/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.DataProtection/backupVaults/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.DataProtection/backupVaults/backupPolicies/deploy.bicep (100%) rename {arm => modules}/Microsoft.DataProtection/backupVaults/backupPolicies/readme.md (100%) rename {arm => modules}/Microsoft.DataProtection/backupVaults/backupPolicies/version.json (100%) rename {arm => modules}/Microsoft.DataProtection/backupVaults/deploy.bicep (100%) rename {arm => modules}/Microsoft.DataProtection/backupVaults/readme.md (100%) rename {arm => modules}/Microsoft.DataProtection/backupVaults/version.json (100%) rename {arm => modules}/Microsoft.Databricks/workspaces/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Databricks/workspaces/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Databricks/workspaces/deploy.bicep (100%) rename {arm => modules}/Microsoft.Databricks/workspaces/readme.md (100%) rename {arm => modules}/Microsoft.Databricks/workspaces/version.json (100%) rename {arm => modules}/Microsoft.DesktopVirtualization/applicationgroups/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.DesktopVirtualization/applicationgroups/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.DesktopVirtualization/applicationgroups/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.DesktopVirtualization/applicationgroups/applications/deploy.bicep (100%) rename {arm => modules}/Microsoft.DesktopVirtualization/applicationgroups/applications/readme.md (100%) rename {arm => modules}/Microsoft.DesktopVirtualization/applicationgroups/applications/version.json (100%) rename {arm => modules}/Microsoft.DesktopVirtualization/applicationgroups/deploy.bicep (100%) rename {arm => modules}/Microsoft.DesktopVirtualization/applicationgroups/readme.md (100%) rename {arm => modules}/Microsoft.DesktopVirtualization/applicationgroups/version.json (100%) rename {arm => modules}/Microsoft.DesktopVirtualization/hostpools/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.DesktopVirtualization/hostpools/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.DesktopVirtualization/hostpools/deploy.bicep (100%) rename {arm => modules}/Microsoft.DesktopVirtualization/hostpools/readme.md (100%) rename {arm => modules}/Microsoft.DesktopVirtualization/hostpools/version.json (100%) rename {arm => modules}/Microsoft.DesktopVirtualization/scalingplans/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.DesktopVirtualization/scalingplans/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.DesktopVirtualization/scalingplans/deploy.bicep (100%) rename {arm => modules}/Microsoft.DesktopVirtualization/scalingplans/readme.md (100%) rename {arm => modules}/Microsoft.DesktopVirtualization/scalingplans/version.json (100%) rename {arm => modules}/Microsoft.DesktopVirtualization/workspaces/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.DesktopVirtualization/workspaces/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.DesktopVirtualization/workspaces/deploy.bicep (100%) rename {arm => modules}/Microsoft.DesktopVirtualization/workspaces/readme.md (100%) rename {arm => modules}/Microsoft.DesktopVirtualization/workspaces/version.json (100%) rename {arm => modules}/Microsoft.DocumentDB/databaseAccounts/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.DocumentDB/databaseAccounts/.parameters/mongodb.parameters.json (100%) rename {arm => modules}/Microsoft.DocumentDB/databaseAccounts/.parameters/plain.parameters.json (100%) rename {arm => modules}/Microsoft.DocumentDB/databaseAccounts/.parameters/sqldb.parameters.json (100%) rename {arm => modules}/Microsoft.DocumentDB/databaseAccounts/deploy.bicep (100%) rename {arm => modules}/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/deploy.bicep (100%) rename {arm => modules}/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/readme.md (100%) rename {arm => modules}/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/version.json (100%) rename {arm => modules}/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/deploy.bicep (100%) rename {arm => modules}/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/readme.md (100%) rename {arm => modules}/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/version.json (100%) rename {arm => modules}/Microsoft.DocumentDB/databaseAccounts/readme.md (100%) rename {arm => modules}/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/deploy.bicep (100%) rename {arm => modules}/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readme.md (100%) rename {arm => modules}/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/version.json (100%) rename {arm => modules}/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/deploy.bicep (100%) rename {arm => modules}/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/readme.md (100%) rename {arm => modules}/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/version.json (100%) rename {arm => modules}/Microsoft.DocumentDB/databaseAccounts/version.json (100%) rename {arm => modules}/Microsoft.EventGrid/systemTopics/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.EventGrid/systemTopics/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.EventGrid/systemTopics/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.EventGrid/systemTopics/deploy.bicep (100%) rename {arm => modules}/Microsoft.EventGrid/systemTopics/readme.md (100%) rename {arm => modules}/Microsoft.EventGrid/systemTopics/version.json (100%) rename {arm => modules}/Microsoft.EventGrid/topics/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.EventGrid/topics/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.EventGrid/topics/deploy.bicep (100%) rename {arm => modules}/Microsoft.EventGrid/topics/readme.md (100%) rename {arm => modules}/Microsoft.EventGrid/topics/version.json (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/authorizationRules/deploy.bicep (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/authorizationRules/readme.md (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/authorizationRules/version.json (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/deploy.bicep (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/disasterRecoveryConfigs/deploy.bicep (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/disasterRecoveryConfigs/readme.md (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/disasterRecoveryConfigs/version.json (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/eventhubs/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/eventhubs/authorizationRules/deploy.bicep (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/eventhubs/authorizationRules/readme.md (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/eventhubs/authorizationRules/version.json (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/eventhubs/consumergroups/deploy.bicep (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/eventhubs/consumergroups/readme.md (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/eventhubs/consumergroups/version.json (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/eventhubs/deploy.bicep (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/eventhubs/readme.md (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/eventhubs/version.json (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/networkRuleSets/deploy.bicep (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/networkRuleSets/readme.md (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/networkRuleSets/version.json (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/readme.md (100%) rename {arm => modules}/Microsoft.EventHub/namespaces/version.json (100%) rename {arm => modules}/Microsoft.HealthBot/healthBots/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.HealthBot/healthBots/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.HealthBot/healthBots/deploy.bicep (100%) rename {arm => modules}/Microsoft.HealthBot/healthBots/readme.md (100%) rename {arm => modules}/Microsoft.HealthBot/healthBots/version.json (100%) rename {arm => modules}/Microsoft.Insights/actionGroups/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Insights/actionGroups/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Insights/actionGroups/deploy.bicep (100%) rename {arm => modules}/Microsoft.Insights/actionGroups/readme.md (100%) rename {arm => modules}/Microsoft.Insights/actionGroups/version.json (100%) rename {arm => modules}/Microsoft.Insights/activityLogAlerts/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Insights/activityLogAlerts/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Insights/activityLogAlerts/deploy.bicep (100%) rename {arm => modules}/Microsoft.Insights/activityLogAlerts/readme.md (100%) rename {arm => modules}/Microsoft.Insights/activityLogAlerts/version.json (100%) rename {arm => modules}/Microsoft.Insights/components/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Insights/components/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Insights/components/deploy.bicep (100%) rename {arm => modules}/Microsoft.Insights/components/readme.md (100%) rename {arm => modules}/Microsoft.Insights/components/version.json (100%) rename {arm => modules}/Microsoft.Insights/diagnosticSettings/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Insights/diagnosticSettings/deploy.bicep (100%) rename {arm => modules}/Microsoft.Insights/diagnosticSettings/readme.md (100%) rename {arm => modules}/Microsoft.Insights/diagnosticSettings/version.json (100%) rename {arm => modules}/Microsoft.Insights/metricAlerts/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Insights/metricAlerts/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Insights/metricAlerts/deploy.bicep (100%) rename {arm => modules}/Microsoft.Insights/metricAlerts/readme.md (100%) rename {arm => modules}/Microsoft.Insights/metricAlerts/version.json (100%) rename {arm => modules}/Microsoft.Insights/privateLinkScopes/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Insights/privateLinkScopes/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Insights/privateLinkScopes/deploy.bicep (100%) rename {arm => modules}/Microsoft.Insights/privateLinkScopes/readme.md (100%) rename {arm => modules}/Microsoft.Insights/privateLinkScopes/scopedResources/deploy.bicep (100%) rename {arm => modules}/Microsoft.Insights/privateLinkScopes/scopedResources/readme.md (100%) rename {arm => modules}/Microsoft.Insights/privateLinkScopes/scopedResources/version.json (100%) rename {arm => modules}/Microsoft.Insights/privateLinkScopes/version.json (100%) rename {arm => modules}/Microsoft.Insights/scheduledQueryRules/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Insights/scheduledQueryRules/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Insights/scheduledQueryRules/deploy.bicep (100%) rename {arm => modules}/Microsoft.Insights/scheduledQueryRules/readme.md (100%) rename {arm => modules}/Microsoft.Insights/scheduledQueryRules/version.json (100%) rename {arm => modules}/Microsoft.KeyVault/vaults/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.KeyVault/vaults/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.KeyVault/vaults/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.KeyVault/vaults/accessPolicies/deploy.bicep (100%) rename {arm => modules}/Microsoft.KeyVault/vaults/accessPolicies/readme.md (100%) rename {arm => modules}/Microsoft.KeyVault/vaults/accessPolicies/version.json (100%) rename {arm => modules}/Microsoft.KeyVault/vaults/deploy.bicep (100%) rename {arm => modules}/Microsoft.KeyVault/vaults/keys/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.KeyVault/vaults/keys/deploy.bicep (100%) rename {arm => modules}/Microsoft.KeyVault/vaults/keys/readme.md (100%) rename {arm => modules}/Microsoft.KeyVault/vaults/keys/version.json (100%) rename {arm => modules}/Microsoft.KeyVault/vaults/readme.md (100%) rename {arm => modules}/Microsoft.KeyVault/vaults/secrets/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.KeyVault/vaults/secrets/deploy.bicep (100%) rename {arm => modules}/Microsoft.KeyVault/vaults/secrets/readme.md (100%) rename {arm => modules}/Microsoft.KeyVault/vaults/secrets/version.json (100%) rename {arm => modules}/Microsoft.KeyVault/vaults/version.json (100%) rename {arm => modules}/Microsoft.KubernetesConfiguration/extensions/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.KubernetesConfiguration/extensions/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.KubernetesConfiguration/extensions/deploy.bicep (100%) rename {arm => modules}/Microsoft.KubernetesConfiguration/extensions/readme.md (100%) rename {arm => modules}/Microsoft.KubernetesConfiguration/extensions/version.json (100%) rename {arm => modules}/Microsoft.KubernetesConfiguration/fluxConfigurations/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.KubernetesConfiguration/fluxConfigurations/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.KubernetesConfiguration/fluxConfigurations/deploy.bicep (100%) rename {arm => modules}/Microsoft.KubernetesConfiguration/fluxConfigurations/readme.md (100%) rename {arm => modules}/Microsoft.KubernetesConfiguration/fluxConfigurations/version.json (100%) rename {arm => modules}/Microsoft.Logic/workflows/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Logic/workflows/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Logic/workflows/deploy.bicep (100%) rename {arm => modules}/Microsoft.Logic/workflows/readme.md (100%) rename {arm => modules}/Microsoft.Logic/workflows/version.json (100%) rename {arm => modules}/Microsoft.MachineLearningServices/workspaces/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.MachineLearningServices/workspaces/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.MachineLearningServices/workspaces/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.MachineLearningServices/workspaces/computes/deploy.bicep (100%) rename {arm => modules}/Microsoft.MachineLearningServices/workspaces/computes/readme.md (100%) rename {arm => modules}/Microsoft.MachineLearningServices/workspaces/computes/version.json (100%) rename {arm => modules}/Microsoft.MachineLearningServices/workspaces/deploy.bicep (100%) rename {arm => modules}/Microsoft.MachineLearningServices/workspaces/readme.md (100%) rename {arm => modules}/Microsoft.MachineLearningServices/workspaces/version.json (100%) rename {arm => modules}/Microsoft.ManagedIdentity/userAssignedIdentities/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.ManagedIdentity/userAssignedIdentities/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.ManagedIdentity/userAssignedIdentities/deploy.bicep (100%) rename {arm => modules}/Microsoft.ManagedIdentity/userAssignedIdentities/readme.md (100%) rename {arm => modules}/Microsoft.ManagedIdentity/userAssignedIdentities/version.json (100%) rename {arm => modules}/Microsoft.ManagedServices/registrationDefinitions/.bicep/nested_registrationAssignment.bicep (100%) rename {arm => modules}/Microsoft.ManagedServices/registrationDefinitions/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.ManagedServices/registrationDefinitions/.parameters/rg.parameters.json (100%) rename {arm => modules}/Microsoft.ManagedServices/registrationDefinitions/deploy.bicep (100%) rename {arm => modules}/Microsoft.ManagedServices/registrationDefinitions/readme.md (100%) rename {arm => modules}/Microsoft.ManagedServices/registrationDefinitions/version.json (100%) rename {arm => modules}/Microsoft.Management/managementGroups/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Management/managementGroups/deploy.bicep (100%) rename {arm => modules}/Microsoft.Management/managementGroups/readme.md (100%) rename {arm => modules}/Microsoft.Management/managementGroups/version.json (100%) rename {arm => modules}/Microsoft.NetApp/netAppAccounts/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.NetApp/netAppAccounts/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.NetApp/netAppAccounts/.parameters/nfs3.parameters.json (100%) rename {arm => modules}/Microsoft.NetApp/netAppAccounts/.parameters/nfs41.parameters.json (100%) rename {arm => modules}/Microsoft.NetApp/netAppAccounts/capacityPools/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.NetApp/netAppAccounts/capacityPools/deploy.bicep (100%) rename {arm => modules}/Microsoft.NetApp/netAppAccounts/capacityPools/readme.md (100%) rename {arm => modules}/Microsoft.NetApp/netAppAccounts/capacityPools/version.json (100%) rename {arm => modules}/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/deploy.bicep (100%) rename {arm => modules}/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/readme.md (100%) rename {arm => modules}/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/version.json (100%) rename {arm => modules}/Microsoft.NetApp/netAppAccounts/deploy.bicep (100%) rename {arm => modules}/Microsoft.NetApp/netAppAccounts/readme.md (100%) rename {arm => modules}/Microsoft.NetApp/netAppAccounts/version.json (100%) rename {arm => modules}/Microsoft.Network/applicationGateways/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/applicationGateways/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/applicationGateways/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/applicationGateways/readme.md (100%) rename {arm => modules}/Microsoft.Network/applicationGateways/version.json (100%) rename {arm => modules}/Microsoft.Network/applicationSecurityGroups/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/applicationSecurityGroups/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/applicationSecurityGroups/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/applicationSecurityGroups/readme.md (100%) rename {arm => modules}/Microsoft.Network/applicationSecurityGroups/version.json (100%) rename {arm => modules}/Microsoft.Network/azureFirewalls/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/azureFirewalls/.parameters/addpip.parameters.json (100%) rename {arm => modules}/Microsoft.Network/azureFirewalls/.parameters/custompip.parameters.json (100%) rename {arm => modules}/Microsoft.Network/azureFirewalls/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.Network/azureFirewalls/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/azureFirewalls/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/azureFirewalls/readme.md (100%) rename {arm => modules}/Microsoft.Network/azureFirewalls/version.json (100%) rename {arm => modules}/Microsoft.Network/bastionHosts/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/bastionHosts/.parameters/addpip.parameters.json (100%) rename {arm => modules}/Microsoft.Network/bastionHosts/.parameters/custompip.parameters.json (100%) rename {arm => modules}/Microsoft.Network/bastionHosts/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.Network/bastionHosts/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/bastionHosts/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/bastionHosts/readme.md (100%) rename {arm => modules}/Microsoft.Network/bastionHosts/version.json (100%) rename {arm => modules}/Microsoft.Network/connections/.parameters/vnet2vnet.parameters.json (100%) rename {arm => modules}/Microsoft.Network/connections/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/connections/readme.md (100%) rename {arm => modules}/Microsoft.Network/connections/version.json (100%) rename {arm => modules}/Microsoft.Network/ddosProtectionPlans/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/ddosProtectionPlans/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/ddosProtectionPlans/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/ddosProtectionPlans/readme.md (100%) rename {arm => modules}/Microsoft.Network/ddosProtectionPlans/version.json (100%) rename {arm => modules}/Microsoft.Network/expressRouteCircuits/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/expressRouteCircuits/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/expressRouteCircuits/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/expressRouteCircuits/readme.md (100%) rename {arm => modules}/Microsoft.Network/expressRouteCircuits/version.json (100%) rename {arm => modules}/Microsoft.Network/firewallPolicies/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.Network/firewallPolicies/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/firewallPolicies/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/firewallPolicies/readme.md (100%) rename {arm => modules}/Microsoft.Network/firewallPolicies/ruleCollectionGroups/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/firewallPolicies/ruleCollectionGroups/readme.md (100%) rename {arm => modules}/Microsoft.Network/firewallPolicies/ruleCollectionGroups/version.json (100%) rename {arm => modules}/Microsoft.Network/firewallPolicies/version.json (100%) rename {arm => modules}/Microsoft.Network/frontDoors/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/frontDoors/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/frontDoors/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/frontDoors/readme.md (100%) rename {arm => modules}/Microsoft.Network/frontDoors/version.json (100%) rename {arm => modules}/Microsoft.Network/ipGroups/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/ipGroups/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/ipGroups/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/ipGroups/readme.md (100%) rename {arm => modules}/Microsoft.Network/ipGroups/version.json (100%) rename {arm => modules}/Microsoft.Network/loadBalancers/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/loadBalancers/.parameters/internal.parameters.json (100%) rename {arm => modules}/Microsoft.Network/loadBalancers/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.Network/loadBalancers/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/loadBalancers/backendAddressPools/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/loadBalancers/backendAddressPools/readme.md (100%) rename {arm => modules}/Microsoft.Network/loadBalancers/backendAddressPools/version.json (100%) rename {arm => modules}/Microsoft.Network/loadBalancers/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/loadBalancers/inboundNatRules/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/loadBalancers/inboundNatRules/readme.md (100%) rename {arm => modules}/Microsoft.Network/loadBalancers/inboundNatRules/version.json (100%) rename {arm => modules}/Microsoft.Network/loadBalancers/readme.md (100%) rename {arm => modules}/Microsoft.Network/loadBalancers/version.json (100%) rename {arm => modules}/Microsoft.Network/localNetworkGateways/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/localNetworkGateways/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/localNetworkGateways/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/localNetworkGateways/readme.md (100%) rename {arm => modules}/Microsoft.Network/localNetworkGateways/version.json (100%) rename {arm => modules}/Microsoft.Network/natGateways/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/natGateways/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/natGateways/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/natGateways/readme.md (100%) rename {arm => modules}/Microsoft.Network/natGateways/version.json (100%) rename {arm => modules}/Microsoft.Network/networkInterfaces/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/networkInterfaces/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.Network/networkInterfaces/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/networkInterfaces/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/networkInterfaces/readme.md (100%) rename {arm => modules}/Microsoft.Network/networkInterfaces/version.json (100%) rename {arm => modules}/Microsoft.Network/networkSecurityGroups/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/networkSecurityGroups/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.Network/networkSecurityGroups/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/networkSecurityGroups/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/networkSecurityGroups/readme.md (100%) rename {arm => modules}/Microsoft.Network/networkSecurityGroups/securityRules/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/networkSecurityGroups/securityRules/readme.md (100%) rename {arm => modules}/Microsoft.Network/networkSecurityGroups/securityRules/version.json (100%) rename {arm => modules}/Microsoft.Network/networkSecurityGroups/version.json (100%) rename {arm => modules}/Microsoft.Network/networkWatchers/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/networkWatchers/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.Network/networkWatchers/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/networkWatchers/connectionMonitors/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/networkWatchers/connectionMonitors/readme.md (100%) rename {arm => modules}/Microsoft.Network/networkWatchers/connectionMonitors/version.json (100%) rename {arm => modules}/Microsoft.Network/networkWatchers/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/networkWatchers/flowLogs/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/networkWatchers/flowLogs/readme.md (100%) rename {arm => modules}/Microsoft.Network/networkWatchers/flowLogs/version.json (100%) rename {arm => modules}/Microsoft.Network/networkWatchers/readme.md (100%) rename {arm => modules}/Microsoft.Network/networkWatchers/version.json (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/A/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/A/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/A/readme.md (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/A/version.json (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/AAAA/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/AAAA/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/AAAA/readme.md (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/AAAA/version.json (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/CNAME/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/CNAME/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/CNAME/readme.md (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/CNAME/version.json (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/MX/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/MX/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/MX/readme.md (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/MX/version.json (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/PTR/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/PTR/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/PTR/readme.md (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/PTR/version.json (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/SOA/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/SOA/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/SOA/readme.md (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/SOA/version.json (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/SRV/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/SRV/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/SRV/readme.md (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/SRV/version.json (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/TXT/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/TXT/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/TXT/readme.md (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/TXT/version.json (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/readme.md (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/version.json (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/virtualNetworkLinks/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/virtualNetworkLinks/readme.md (100%) rename {arm => modules}/Microsoft.Network/privateDnsZones/virtualNetworkLinks/version.json (100%) rename {arm => modules}/Microsoft.Network/privateEndpoints/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/privateEndpoints/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.Network/privateEndpoints/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/privateEndpoints/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/privateEndpoints/privateDnsZoneGroups/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/privateEndpoints/privateDnsZoneGroups/readme.md (100%) rename {arm => modules}/Microsoft.Network/privateEndpoints/privateDnsZoneGroups/version.json (100%) rename {arm => modules}/Microsoft.Network/privateEndpoints/readme.md (100%) rename {arm => modules}/Microsoft.Network/privateEndpoints/version.json (100%) rename {arm => modules}/Microsoft.Network/publicIPAddresses/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/publicIPAddresses/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/publicIPAddresses/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/publicIPAddresses/readme.md (100%) rename {arm => modules}/Microsoft.Network/publicIPAddresses/version.json (100%) rename {arm => modules}/Microsoft.Network/publicIPPrefixes/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/publicIPPrefixes/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/publicIPPrefixes/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/publicIPPrefixes/readme.md (100%) rename {arm => modules}/Microsoft.Network/publicIPPrefixes/version.json (100%) rename {arm => modules}/Microsoft.Network/routeTables/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/routeTables/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/routeTables/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/routeTables/readme.md (100%) rename {arm => modules}/Microsoft.Network/routeTables/version.json (100%) rename {arm => modules}/Microsoft.Network/trafficmanagerprofiles/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/trafficmanagerprofiles/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/trafficmanagerprofiles/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/trafficmanagerprofiles/readme.md (100%) rename {arm => modules}/Microsoft.Network/trafficmanagerprofiles/version.json (100%) rename {arm => modules}/Microsoft.Network/virtualHubs/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.Network/virtualHubs/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/virtualHubs/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/virtualHubs/hubRouteTables/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/virtualHubs/hubRouteTables/readme.md (100%) rename {arm => modules}/Microsoft.Network/virtualHubs/hubRouteTables/version.json (100%) rename {arm => modules}/Microsoft.Network/virtualHubs/hubVirtualNetworkConnections/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/virtualHubs/hubVirtualNetworkConnections/readme.md (100%) rename {arm => modules}/Microsoft.Network/virtualHubs/hubVirtualNetworkConnections/version.json (100%) rename {arm => modules}/Microsoft.Network/virtualHubs/readme.md (100%) rename {arm => modules}/Microsoft.Network/virtualHubs/version.json (100%) rename {arm => modules}/Microsoft.Network/virtualNetworkGateways/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/virtualNetworkGateways/.parameters/expressRoute.parameters.json (100%) rename {arm => modules}/Microsoft.Network/virtualNetworkGateways/.parameters/vpn.parameters.json (100%) rename {arm => modules}/Microsoft.Network/virtualNetworkGateways/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/virtualNetworkGateways/readme.md (100%) rename {arm => modules}/Microsoft.Network/virtualNetworkGateways/version.json (100%) rename {arm => modules}/Microsoft.Network/virtualNetworks/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/virtualNetworks/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.Network/virtualNetworks/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/virtualNetworks/.parameters/vnetPeering.parameters.json (100%) rename {arm => modules}/Microsoft.Network/virtualNetworks/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/virtualNetworks/readme.md (100%) rename {arm => modules}/Microsoft.Network/virtualNetworks/subnets/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/virtualNetworks/subnets/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/virtualNetworks/subnets/readme.md (100%) rename {arm => modules}/Microsoft.Network/virtualNetworks/subnets/version.json (100%) rename {arm => modules}/Microsoft.Network/virtualNetworks/version.json (100%) rename {arm => modules}/Microsoft.Network/virtualNetworks/virtualNetworkPeerings/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/virtualNetworks/virtualNetworkPeerings/readme.md (100%) rename {arm => modules}/Microsoft.Network/virtualNetworks/virtualNetworkPeerings/version.json (100%) rename {arm => modules}/Microsoft.Network/virtualWans/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/virtualWans/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.Network/virtualWans/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/virtualWans/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/virtualWans/readme.md (100%) rename {arm => modules}/Microsoft.Network/virtualWans/version.json (100%) rename {arm => modules}/Microsoft.Network/vpnGateways/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.Network/vpnGateways/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/vpnGateways/connections/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/vpnGateways/connections/readme.md (100%) rename {arm => modules}/Microsoft.Network/vpnGateways/connections/version.json (100%) rename {arm => modules}/Microsoft.Network/vpnGateways/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/vpnGateways/natRules/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/vpnGateways/natRules/readme.md (100%) rename {arm => modules}/Microsoft.Network/vpnGateways/natRules/version.json (100%) rename {arm => modules}/Microsoft.Network/vpnGateways/readme.md (100%) rename {arm => modules}/Microsoft.Network/vpnGateways/version.json (100%) rename {arm => modules}/Microsoft.Network/vpnSites/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Network/vpnSites/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.Network/vpnSites/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Network/vpnSites/deploy.bicep (100%) rename {arm => modules}/Microsoft.Network/vpnSites/readme.md (100%) rename {arm => modules}/Microsoft.Network/vpnSites/version.json (100%) rename {arm => modules}/Microsoft.OperationalInsights/workspaces/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.OperationalInsights/workspaces/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.OperationalInsights/workspaces/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.OperationalInsights/workspaces/dataSources/deploy.bicep (100%) rename {arm => modules}/Microsoft.OperationalInsights/workspaces/dataSources/readme.md (100%) rename {arm => modules}/Microsoft.OperationalInsights/workspaces/dataSources/version.json (100%) rename {arm => modules}/Microsoft.OperationalInsights/workspaces/deploy.bicep (100%) rename {arm => modules}/Microsoft.OperationalInsights/workspaces/linkedServices/deploy.bicep (100%) rename {arm => modules}/Microsoft.OperationalInsights/workspaces/linkedServices/readme.md (100%) rename {arm => modules}/Microsoft.OperationalInsights/workspaces/linkedServices/version.json (100%) rename {arm => modules}/Microsoft.OperationalInsights/workspaces/readme.md (100%) rename {arm => modules}/Microsoft.OperationalInsights/workspaces/savedSearches/deploy.bicep (100%) rename {arm => modules}/Microsoft.OperationalInsights/workspaces/savedSearches/readme.md (100%) rename {arm => modules}/Microsoft.OperationalInsights/workspaces/savedSearches/version.json (100%) rename {arm => modules}/Microsoft.OperationalInsights/workspaces/storageInsightConfigs/deploy.bicep (100%) rename {arm => modules}/Microsoft.OperationalInsights/workspaces/storageInsightConfigs/readme.md (100%) rename {arm => modules}/Microsoft.OperationalInsights/workspaces/storageInsightConfigs/version.json (100%) rename {arm => modules}/Microsoft.OperationalInsights/workspaces/version.json (100%) rename {arm => modules}/Microsoft.OperationsManagement/solutions/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.OperationsManagement/solutions/.parameters/ms.parameters.json (100%) rename {arm => modules}/Microsoft.OperationsManagement/solutions/.parameters/nonms.parameters.json (100%) rename {arm => modules}/Microsoft.OperationsManagement/solutions/deploy.bicep (100%) rename {arm => modules}/Microsoft.OperationsManagement/solutions/readme.md (100%) rename {arm => modules}/Microsoft.OperationsManagement/solutions/version.json (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/.parameters/dr.parameters.json (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/backupConfig/deploy.bicep (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/backupConfig/readme.md (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/backupConfig/version.json (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/backupPolicies/deploy.bicep (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/backupPolicies/readme.md (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/backupPolicies/version.json (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/backupStorageConfig/deploy.bicep (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/backupStorageConfig/readme.md (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/backupStorageConfig/version.json (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/deploy.bicep (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/protectionContainers/deploy.bicep (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/protectionContainers/protectedItems/deploy.bicep (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/protectionContainers/protectedItems/readme.md (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/protectionContainers/protectedItems/version.json (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/protectionContainers/readme.md (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/protectionContainers/version.json (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/readme.md (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/replicationFabrics/deploy.bicep (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/replicationFabrics/readme.md (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/deploy.bicep (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/readme.md (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/deploy.bicep (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/readme.md (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/version.json (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/version.json (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/replicationFabrics/version.json (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/replicationPolicies/deploy.bicep (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/replicationPolicies/readme.md (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/replicationPolicies/version.json (100%) rename {arm => modules}/Microsoft.RecoveryServices/vaults/version.json (100%) rename {arm => modules}/Microsoft.Resources/deploymentScripts/.parameters/cli.parameters.json (100%) rename {arm => modules}/Microsoft.Resources/deploymentScripts/.parameters/ps.parameters.json (100%) rename {arm => modules}/Microsoft.Resources/deploymentScripts/deploy.bicep (100%) rename {arm => modules}/Microsoft.Resources/deploymentScripts/readme.md (100%) rename {arm => modules}/Microsoft.Resources/deploymentScripts/version.json (100%) rename {arm => modules}/Microsoft.Resources/resourceGroups/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Resources/resourceGroups/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Resources/resourceGroups/deploy.bicep (100%) rename {arm => modules}/Microsoft.Resources/resourceGroups/readme.md (100%) rename {arm => modules}/Microsoft.Resources/resourceGroups/version.json (100%) rename {arm => modules}/Microsoft.Resources/tags/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.Resources/tags/.parameters/rg.parameters.json (100%) rename {arm => modules}/Microsoft.Resources/tags/.parameters/sub.parameters.json (100%) rename {arm => modules}/Microsoft.Resources/tags/deploy.bicep (100%) rename {arm => modules}/Microsoft.Resources/tags/readme.md (100%) rename {arm => modules}/Microsoft.Resources/tags/resourceGroups/.bicep/readTags.bicep (100%) rename {arm => modules}/Microsoft.Resources/tags/resourceGroups/deploy.bicep (100%) rename {arm => modules}/Microsoft.Resources/tags/resourceGroups/readme.md (100%) rename {arm => modules}/Microsoft.Resources/tags/resourceGroups/version.json (100%) rename {arm => modules}/Microsoft.Resources/tags/subscriptions/.bicep/readTags.bicep (100%) rename {arm => modules}/Microsoft.Resources/tags/subscriptions/deploy.bicep (100%) rename {arm => modules}/Microsoft.Resources/tags/subscriptions/readme.md (100%) rename {arm => modules}/Microsoft.Resources/tags/subscriptions/version.json (100%) rename {arm => modules}/Microsoft.Resources/tags/version.json (100%) rename {arm => modules}/Microsoft.Security/azureSecurityCenter/.bicep/nested_iotSecuritySolutions.bicep (100%) rename {arm => modules}/Microsoft.Security/azureSecurityCenter/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Security/azureSecurityCenter/deploy.bicep (100%) rename {arm => modules}/Microsoft.Security/azureSecurityCenter/readme.md (100%) rename {arm => modules}/Microsoft.Security/azureSecurityCenter/version.json (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/authorizationRules/deploy.bicep (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/authorizationRules/readme.md (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/authorizationRules/version.json (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/deploy.bicep (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/disasterRecoveryConfigs/deploy.bicep (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/disasterRecoveryConfigs/readme.md (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/disasterRecoveryConfigs/version.json (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/ipFilterRules/deploy.bicep (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/ipFilterRules/readme.md (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/ipFilterRules/version.json (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/migrationConfigurations/deploy.bicep (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/migrationConfigurations/readme.md (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/migrationConfigurations/version.json (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/queues/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/queues/authorizationRules/deploy.bicep (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/queues/authorizationRules/readme.md (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/queues/authorizationRules/version.json (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/queues/deploy.bicep (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/queues/readme.md (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/queues/version.json (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/readme.md (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/topics/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/topics/authorizationRules/deploy.bicep (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/topics/authorizationRules/readme.md (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/topics/authorizationRules/version.json (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/topics/deploy.bicep (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/topics/readme.md (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/topics/version.json (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/version.json (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/virtualNetworkRules/deploy.bicep (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/virtualNetworkRules/readme.md (100%) rename {arm => modules}/Microsoft.ServiceBus/namespaces/virtualNetworkRules/version.json (100%) rename {arm => modules}/Microsoft.ServiceFabric/clusters/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.ServiceFabric/clusters/.parameters/cert.parameters.json (100%) rename {arm => modules}/Microsoft.ServiceFabric/clusters/.parameters/full.parameters.json (100%) rename {arm => modules}/Microsoft.ServiceFabric/clusters/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.ServiceFabric/clusters/applicationTypes/deploy.bicep (100%) rename {arm => modules}/Microsoft.ServiceFabric/clusters/applicationTypes/readme.md (100%) rename {arm => modules}/Microsoft.ServiceFabric/clusters/applicationTypes/version.json (100%) rename {arm => modules}/Microsoft.ServiceFabric/clusters/deploy.bicep (100%) rename {arm => modules}/Microsoft.ServiceFabric/clusters/readme.md (100%) rename {arm => modules}/Microsoft.ServiceFabric/clusters/version.json (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/administrators/deploy.bicep (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/administrators/readme.md (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/administrators/version.json (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/databases/backupLongTermRetentionPolicies/deploy.bicep (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/databases/backupLongTermRetentionPolicies/readme.md (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/databases/backupLongTermRetentionPolicies/version.json (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/databases/backupShortTermRetentionPolicies/deploy.bicep (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/databases/backupShortTermRetentionPolicies/readme.md (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/databases/backupShortTermRetentionPolicies/version.json (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/databases/deploy.bicep (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/databases/readme.md (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/databases/version.json (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/deploy.bicep (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/encryptionProtector/deploy.bicep (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/encryptionProtector/readme.md (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/encryptionProtector/version.json (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/keys/deploy.bicep (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/keys/readme.md (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/keys/version.json (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/readme.md (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/securityAlertPolicies/deploy.bicep (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/securityAlertPolicies/readme.md (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/securityAlertPolicies/version.json (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/version.json (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/vulnerabilityAssessments/deploy.bicep (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/vulnerabilityAssessments/readme.md (100%) rename {arm => modules}/Microsoft.Sql/managedInstances/vulnerabilityAssessments/version.json (100%) rename {arm => modules}/Microsoft.Sql/servers/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Sql/servers/.parameters/admin.parameters.json (100%) rename {arm => modules}/Microsoft.Sql/servers/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Sql/servers/databases/deploy.bicep (100%) rename {arm => modules}/Microsoft.Sql/servers/databases/readme.md (100%) rename {arm => modules}/Microsoft.Sql/servers/databases/version.json (100%) rename {arm => modules}/Microsoft.Sql/servers/deploy.bicep (100%) rename {arm => modules}/Microsoft.Sql/servers/firewallRules/deploy.bicep (100%) rename {arm => modules}/Microsoft.Sql/servers/firewallRules/readme.md (100%) rename {arm => modules}/Microsoft.Sql/servers/firewallRules/version.json (100%) rename {arm => modules}/Microsoft.Sql/servers/readme.md (100%) rename {arm => modules}/Microsoft.Sql/servers/securityAlertPolicies/deploy.bicep (100%) rename {arm => modules}/Microsoft.Sql/servers/securityAlertPolicies/readme.md (100%) rename {arm => modules}/Microsoft.Sql/servers/securityAlertPolicies/version.json (100%) rename {arm => modules}/Microsoft.Sql/servers/version.json (100%) rename {arm => modules}/Microsoft.Sql/servers/vulnerabilityAssessments/deploy.bicep (100%) rename {arm => modules}/Microsoft.Sql/servers/vulnerabilityAssessments/readme.md (100%) rename {arm => modules}/Microsoft.Sql/servers/vulnerabilityAssessments/version.json (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/.parameters/encr.parameters.json (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/.parameters/nfs.parameters.json (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/.parameters/v1.parameters.json (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/blobServices/containers/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/blobServices/containers/deploy.bicep (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/deploy.bicep (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/readme.md (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/version.json (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/blobServices/containers/readme.md (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/blobServices/containers/version.json (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/blobServices/deploy.bicep (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/blobServices/readme.md (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/blobServices/version.json (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/deploy.bicep (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/fileServices/deploy.bicep (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/fileServices/readme.md (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/fileServices/shares/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/fileServices/shares/deploy.bicep (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/fileServices/shares/readme.md (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/fileServices/shares/version.json (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/fileServices/version.json (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/managementPolicies/deploy.bicep (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/managementPolicies/readme.md (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/managementPolicies/version.json (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/queueServices/deploy.bicep (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/queueServices/queues/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/queueServices/queues/deploy.bicep (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/queueServices/queues/readme.md (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/queueServices/queues/version.json (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/queueServices/readme.md (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/queueServices/version.json (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/readme.md (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/tableServices/deploy.bicep (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/tableServices/readme.md (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/tableServices/tables/deploy.bicep (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/tableServices/tables/readme.md (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/tableServices/tables/version.json (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/tableServices/version.json (100%) rename {arm => modules}/Microsoft.Storage/storageAccounts/version.json (100%) rename {arm => modules}/Microsoft.Synapse/privateLinkHubs/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Synapse/privateLinkHubs/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.Synapse/privateLinkHubs/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Synapse/privateLinkHubs/deploy.bicep (100%) rename {arm => modules}/Microsoft.Synapse/privateLinkHubs/readme.md (100%) rename {arm => modules}/Microsoft.Synapse/privateLinkHubs/version.json (100%) rename {arm => modules}/Microsoft.VirtualMachineImages/imageTemplates/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.VirtualMachineImages/imageTemplates/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.VirtualMachineImages/imageTemplates/deploy.bicep (100%) rename {arm => modules}/Microsoft.VirtualMachineImages/imageTemplates/readme.md (100%) rename {arm => modules}/Microsoft.VirtualMachineImages/imageTemplates/version.json (100%) rename {arm => modules}/Microsoft.Web/connections/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Web/connections/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Web/connections/deploy.bicep (100%) rename {arm => modules}/Microsoft.Web/connections/readme.md (100%) rename {arm => modules}/Microsoft.Web/connections/version.json (100%) rename {arm => modules}/Microsoft.Web/hostingEnvironments/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Web/hostingEnvironments/.parameters/asev2.parameters.json (100%) rename {arm => modules}/Microsoft.Web/hostingEnvironments/.parameters/asev3.parameters.json (100%) rename {arm => modules}/Microsoft.Web/hostingEnvironments/deploy.bicep (100%) rename {arm => modules}/Microsoft.Web/hostingEnvironments/readme.md (100%) rename {arm => modules}/Microsoft.Web/hostingEnvironments/version.json (100%) rename {arm => modules}/Microsoft.Web/serverfarms/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Web/serverfarms/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Web/serverfarms/deploy.bicep (100%) rename {arm => modules}/Microsoft.Web/serverfarms/readme.md (100%) rename {arm => modules}/Microsoft.Web/serverfarms/version.json (100%) rename {arm => modules}/Microsoft.Web/sites/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Web/sites/.parameters/fa.min.parameters.json (100%) rename {arm => modules}/Microsoft.Web/sites/.parameters/fa.parameters.json (100%) rename {arm => modules}/Microsoft.Web/sites/.parameters/wa.min.parameters.json (100%) rename {arm => modules}/Microsoft.Web/sites/.parameters/wa.parameters.json (100%) rename {arm => modules}/Microsoft.Web/sites/config-appsettings/deploy.bicep (100%) rename {arm => modules}/Microsoft.Web/sites/config-appsettings/readme.md (100%) rename {arm => modules}/Microsoft.Web/sites/config-appsettings/version.json (100%) rename {arm => modules}/Microsoft.Web/sites/config-authsettingsv2/deploy.bicep (100%) rename {arm => modules}/Microsoft.Web/sites/config-authsettingsv2/readme.md (100%) rename {arm => modules}/Microsoft.Web/sites/config-authsettingsv2/version.json (100%) rename {arm => modules}/Microsoft.Web/sites/deploy.bicep (100%) rename {arm => modules}/Microsoft.Web/sites/readme.md (100%) rename {arm => modules}/Microsoft.Web/sites/version.json (100%) rename {arm => modules}/Microsoft.Web/staticSites/.bicep/nested_roleAssignments.bicep (100%) rename {arm => modules}/Microsoft.Web/staticSites/.parameters/min.parameters.json (100%) rename {arm => modules}/Microsoft.Web/staticSites/.parameters/parameters.json (100%) rename {arm => modules}/Microsoft.Web/staticSites/deploy.bicep (100%) rename {arm => modules}/Microsoft.Web/staticSites/readme.md (100%) rename {arm => modules}/Microsoft.Web/staticSites/version.json (100%) create mode 100644 modules/README.md diff --git a/.azuredevops/modulePipelines/ms.aad.domainservices.yml b/.azuredevops/modulePipelines/ms.aad.domainservices.yml index a11e9a9940..5d5aae952c 100644 --- a/.azuredevops/modulePipelines/ms.aad.domainservices.yml +++ b/.azuredevops/modulePipelines/ms.aad.domainservices.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.aad.domainservices.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.AAD/DomainServices/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.AAD/DomainServices/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.AAD/DomainServices' + value: '/modules/Microsoft.AAD/DomainServices' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.analysisservices.servers.yml b/.azuredevops/modulePipelines/ms.analysisservices.servers.yml index 61c1cf2529..e2352cfa4f 100644 --- a/.azuredevops/modulePipelines/ms.analysisservices.servers.yml +++ b/.azuredevops/modulePipelines/ms.analysisservices.servers.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.analysisservices.servers.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.AnalysisServices/servers/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.AnalysisServices/servers/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.AnalysisServices/servers' + value: '/modules/Microsoft.AnalysisServices/servers' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.apimanagement.service.yml b/.azuredevops/modulePipelines/ms.apimanagement.service.yml index c9ce3c1ec4..eb9597d02c 100644 --- a/.azuredevops/modulePipelines/ms.apimanagement.service.yml +++ b/.azuredevops/modulePipelines/ms.apimanagement.service.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.apimanagement.service.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.ApiManagement/service/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.ApiManagement/service/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.ApiManagement/service' + value: '/modules/Microsoft.ApiManagement/service' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml b/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml index 71b9c1aaea..0feb981ff2 100644 --- a/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml +++ b/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.AppConfiguration/configurationStores/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.AppConfiguration/configurationStores/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.AppConfiguration/configurationStores' + value: '/modules/Microsoft.AppConfiguration/configurationStores' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.authorization.locks.yml b/.azuredevops/modulePipelines/ms.authorization.locks.yml index 796262ea91..1422b4a4c6 100644 --- a/.azuredevops/modulePipelines/ms.authorization.locks.yml +++ b/.azuredevops/modulePipelines/ms.authorization.locks.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.authorization.locks.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Authorization/locks/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Authorization/locks/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Authorization/locks' + value: '/modules/Microsoft.Authorization/locks' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml b/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml index 58909f70ec..c58331ead5 100644 --- a/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml +++ b/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Authorization/policyAssignments/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Authorization/policyAssignments/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Authorization/policyAssignments' + value: '/modules/Microsoft.Authorization/policyAssignments' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml b/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml index d72e85726e..93fd0f469f 100644 --- a/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml +++ b/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Authorization/policyDefinitions/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Authorization/policyDefinitions/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Authorization/policyDefinitions' + value: '/modules/Microsoft.Authorization/policyDefinitions' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml b/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml index bf0ba49d1d..50b00a7f08 100644 --- a/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml +++ b/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Authorization/policyExemptions/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Authorization/policyExemptions/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Authorization/policyExemptions' + value: '/modules/Microsoft.Authorization/policyExemptions' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml b/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml index 075a7d1e98..e4c77a27b4 100644 --- a/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml +++ b/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Authorization/policySetDefinitions/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Authorization/policySetDefinitions/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Authorization/policySetDefinitions' + value: '/modules/Microsoft.Authorization/policySetDefinitions' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml b/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml index eaf576d22e..fb6bba1d74 100644 --- a/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml +++ b/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Authorization/roleAssignments/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Authorization/roleAssignments/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Authorization/roleAssignments' + value: '/modules/Microsoft.Authorization/roleAssignments' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml b/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml index 7d17acf846..3129650057 100644 --- a/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml +++ b/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Authorization/roleDefinitions/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Authorization/roleDefinitions/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Authorization/roleDefinitions' + value: '/modules/Microsoft.Authorization/roleDefinitions' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml b/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml index 712302abd9..f4bc5e919f 100644 --- a/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml +++ b/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Automation/automationAccounts/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Automation/automationAccounts/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Automation/automationAccounts' + value: '/modules/Microsoft.Automation/automationAccounts' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml b/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml index 281f7c72c2..4013ce3b44 100644 --- a/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml +++ b/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Batch/batchAccounts/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Batch/batchAccounts/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Batch/batchAccounts' + value: '/modules/Microsoft.Batch/batchAccounts' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml b/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml index 2630458041..f14fc92495 100644 --- a/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml +++ b/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.CognitiveServices/accounts/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.CognitiveServices/accounts/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.CognitiveServices/accounts' + value: '/modules/Microsoft.CognitiveServices/accounts' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml b/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml index c824e8c9be..edd9663f84 100644 --- a/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml +++ b/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Compute/availabilitySets/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Compute/availabilitySets/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Compute/availabilitySets' + value: '/modules/Microsoft.Compute/availabilitySets' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml b/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml index 7f75460410..414b010e09 100644 --- a/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml +++ b/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Compute/diskEncryptionSets/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Compute/diskEncryptionSets/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Compute/diskEncryptionSets' + value: '/modules/Microsoft.Compute/diskEncryptionSets' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.compute.disks.yml b/.azuredevops/modulePipelines/ms.compute.disks.yml index 3f9cae557f..0aec061792 100644 --- a/.azuredevops/modulePipelines/ms.compute.disks.yml +++ b/.azuredevops/modulePipelines/ms.compute.disks.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.compute.disks.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Compute/disks/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Compute/disks/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Compute/disks' + value: '/modules/Microsoft.Compute/disks' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.compute.galleries.yml b/.azuredevops/modulePipelines/ms.compute.galleries.yml index cf84e0fbef..a20b15290c 100644 --- a/.azuredevops/modulePipelines/ms.compute.galleries.yml +++ b/.azuredevops/modulePipelines/ms.compute.galleries.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.compute.galleries.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Compute/galleries/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Compute/galleries/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Compute/galleries' + value: '/modules/Microsoft.Compute/galleries' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.compute.images.yml b/.azuredevops/modulePipelines/ms.compute.images.yml index 834db0a5d7..6209ee2c2c 100644 --- a/.azuredevops/modulePipelines/ms.compute.images.yml +++ b/.azuredevops/modulePipelines/ms.compute.images.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.compute.images.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Compute/images/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Compute/images/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Compute/images' + value: '/modules/Microsoft.Compute/images' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml b/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml index c14f444ee2..d1371bccb5 100644 --- a/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml +++ b/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Compute/proximityPlacementGroups/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Compute/proximityPlacementGroups/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Compute/proximityPlacementGroups' + value: '/modules/Microsoft.Compute/proximityPlacementGroups' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml b/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml index 2fc6340f98..4358c822fc 100644 --- a/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml +++ b/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Compute/virtualMachines/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Compute/virtualMachines/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Compute/virtualMachines' + value: '/modules/Microsoft.Compute/virtualMachines' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml b/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml index 70b43e3cc6..22028b3495 100644 --- a/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml +++ b/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Compute/virtualMachineScaleSets/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Compute/virtualMachineScaleSets/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Compute/virtualMachineScaleSets' + value: '/modules/Microsoft.Compute/virtualMachineScaleSets' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.consumption.budgets.yml b/.azuredevops/modulePipelines/ms.consumption.budgets.yml index ba9e462fa4..1c6a664daf 100644 --- a/.azuredevops/modulePipelines/ms.consumption.budgets.yml +++ b/.azuredevops/modulePipelines/ms.consumption.budgets.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.consumption.budgets.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Consumption/budgets/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Consumption/budgets/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Consumption/budgets' + value: '/modules/Microsoft.Consumption/budgets' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml b/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml index 694b57b52b..855d7dd391 100644 --- a/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml +++ b/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.ContainerInstance/containerGroups/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.ContainerInstance/containerGroups/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.ContainerInstance/containerGroups' + value: '/modules/Microsoft.ContainerInstance/containerGroups' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.containerregistry.registries.yml b/.azuredevops/modulePipelines/ms.containerregistry.registries.yml index aca706eb23..7995ba5e46 100644 --- a/.azuredevops/modulePipelines/ms.containerregistry.registries.yml +++ b/.azuredevops/modulePipelines/ms.containerregistry.registries.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.containerregistry.registries.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.ContainerRegistry/registries/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.ContainerRegistry/registries/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.ContainerRegistry/registries' + value: '/modules/Microsoft.ContainerRegistry/registries' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml b/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml index 68d4bc63d7..963ee36755 100644 --- a/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml +++ b/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.ContainerService/managedClusters/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.ContainerService/managedClusters/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.ContainerService/managedClusters' + value: '/modules/Microsoft.ContainerService/managedClusters' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.databricks.workspaces.yml b/.azuredevops/modulePipelines/ms.databricks.workspaces.yml index 7ec75b0a9b..5f4c9bf50c 100644 --- a/.azuredevops/modulePipelines/ms.databricks.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.databricks.workspaces.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.databricks.workspaces.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Databricks/workspaces/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Databricks/workspaces/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Databricks/workspaces' + value: '/modules/Microsoft.Databricks/workspaces' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.datafactory.factories.yml b/.azuredevops/modulePipelines/ms.datafactory.factories.yml index ccfabaf55b..97d4f2f0a6 100644 --- a/.azuredevops/modulePipelines/ms.datafactory.factories.yml +++ b/.azuredevops/modulePipelines/ms.datafactory.factories.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.datafactory.factories.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.DataFactory/factories/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.DataFactory/factories/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.DataFactory/factories' + value: '/modules/Microsoft.DataFactory/factories' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml b/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml index 55ba9a7eea..82f6aa3685 100644 --- a/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml +++ b/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.DataProtection/vaults/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.DataProtection/vaults/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.DataProtection/backupVaults' + value: '/modules/Microsoft.DataProtection/backupVaults' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml b/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml index 51d36df82c..7f866f9e57 100644 --- a/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml +++ b/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.DesktopVirtualization/applicationgroups/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.DesktopVirtualization/applicationgroups/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.DesktopVirtualization/applicationgroups' + value: '/modules/Microsoft.DesktopVirtualization/applicationgroups' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml b/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml index 1d1c49a4d2..937f2f72b4 100644 --- a/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml +++ b/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.DesktopVirtualization/hostpools/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.DesktopVirtualization/hostpools/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.DesktopVirtualization/hostpools' + value: '/modules/Microsoft.DesktopVirtualization/hostpools' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml b/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml index d17711a4bc..312bb14859 100644 --- a/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml +++ b/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.DesktopVirtualization/scalingplans/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.DesktopVirtualization/scalingplans/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.DesktopVirtualization/scalingplans' + value: '/modules/Microsoft.DesktopVirtualization/scalingplans' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml b/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml index cfad4bfdc2..36306e9943 100644 --- a/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.DesktopVirtualization/workspaces/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.DesktopVirtualization/workspaces/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.DesktopVirtualization/workspaces' + value: '/modules/Microsoft.DesktopVirtualization/workspaces' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml b/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml index 4966965b0b..07d69002ee 100644 --- a/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml +++ b/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.DocumentDB/databaseAccounts/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.DocumentDB/databaseAccounts/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.DocumentDB/databaseAccounts' + value: '/modules/Microsoft.DocumentDB/databaseAccounts' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml b/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml index 71a74153cf..a5b5e4c51b 100644 --- a/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml +++ b/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.EventGrid/systemTopics/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.EventGrid/systemTopics/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.EventGrid/systemTopics' + value: '/modules/Microsoft.EventGrid/systemTopics' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.eventgrid.topics.yml b/.azuredevops/modulePipelines/ms.eventgrid.topics.yml index 76fbff905a..bce5557c01 100644 --- a/.azuredevops/modulePipelines/ms.eventgrid.topics.yml +++ b/.azuredevops/modulePipelines/ms.eventgrid.topics.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.eventgrid.topics.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.EventGrid/topics/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.EventGrid/topics/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.EventGrid/topics' + value: '/modules/Microsoft.EventGrid/topics' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml b/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml index b3d86604f3..35755a6eab 100644 --- a/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml +++ b/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.EventHub/namespaces/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.EventHub/namespaces/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.EventHub/namespaces' + value: '/modules/Microsoft.EventHub/namespaces' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml b/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml index 8e5078a82a..86e2587c59 100644 --- a/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml +++ b/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.HealthBot/healthBots/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.HealthBot/healthBots/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.HealthBot/healthBots' + value: '/modules/Microsoft.HealthBot/healthBots' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.insights.actiongroups.yml b/.azuredevops/modulePipelines/ms.insights.actiongroups.yml index dcecbc2b6a..1d6b367fee 100644 --- a/.azuredevops/modulePipelines/ms.insights.actiongroups.yml +++ b/.azuredevops/modulePipelines/ms.insights.actiongroups.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.insights.actiongroups.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Insights/actionGroups/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Insights/actionGroups/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Insights/actionGroups' + value: '/modules/Microsoft.Insights/actionGroups' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml b/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml index e5de0671d3..0290432eeb 100644 --- a/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml +++ b/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Insights/activityLogAlerts/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Insights/activityLogAlerts/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Insights/activityLogAlerts' + value: '/modules/Microsoft.Insights/activityLogAlerts' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.insights.components.yml b/.azuredevops/modulePipelines/ms.insights.components.yml index 129e5301e2..2ebf16d0f5 100644 --- a/.azuredevops/modulePipelines/ms.insights.components.yml +++ b/.azuredevops/modulePipelines/ms.insights.components.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.insights.components.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Insights/components/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Insights/components/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Insights/components' + value: '/modules/Microsoft.Insights/components' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml b/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml index d1407b082c..68cbcd7a8b 100644 --- a/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml +++ b/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Insights/diagnosticSettings/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Insights/diagnosticSettings/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Insights/diagnosticSettings' + value: '/modules/Microsoft.Insights/diagnosticSettings' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.insights.metricalerts.yml b/.azuredevops/modulePipelines/ms.insights.metricalerts.yml index a92a0c44aa..e2c559ed99 100644 --- a/.azuredevops/modulePipelines/ms.insights.metricalerts.yml +++ b/.azuredevops/modulePipelines/ms.insights.metricalerts.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.insights.metricalerts.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Insights/metricAlerts/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Insights/metricAlerts/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Insights/metricAlerts' + value: '/modules/Microsoft.Insights/metricAlerts' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml b/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml index f2f22672c9..15d793c90a 100644 --- a/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml +++ b/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Insights/privateLinkScopes/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Insights/privateLinkScopes/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Insights/privateLinkScopes' + value: '/modules/Microsoft.Insights/privateLinkScopes' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml b/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml index cf0a3e7e2c..3ec1537e46 100644 --- a/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml +++ b/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Insights/scheduledQueryRules/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Insights/scheduledQueryRules/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Insights/scheduledQueryRules' + value: '/modules/Microsoft.Insights/scheduledQueryRules' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.keyvault.vaults.yml b/.azuredevops/modulePipelines/ms.keyvault.vaults.yml index dd9f52090d..39f0e155c1 100644 --- a/.azuredevops/modulePipelines/ms.keyvault.vaults.yml +++ b/.azuredevops/modulePipelines/ms.keyvault.vaults.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.keyvault.vaults.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.KeyVault/vaults/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.KeyVault/vaults/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.KeyVault/vaults' + value: '/modules/Microsoft.KeyVault/vaults' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml index 6e4a9957b8..7f53c0e67f 100644 --- a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml +++ b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.KubernetesConfiguration/extensions/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.KubernetesConfiguration/extensions/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.KubernetesConfiguration/extensions' + value: '/modules/Microsoft.KubernetesConfiguration/extensions' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml index cc43f6e135..75b300c5b6 100644 --- a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml +++ b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.KubernetesConfiguration/fluxConfigurations/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.KubernetesConfiguration/fluxConfigurations/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.KubernetesConfiguration/fluxConfigurations' + value: '/modules/Microsoft.KubernetesConfiguration/fluxConfigurations' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.logic.workflows.yml b/.azuredevops/modulePipelines/ms.logic.workflows.yml index 661b4d355c..0935dfc17e 100644 --- a/.azuredevops/modulePipelines/ms.logic.workflows.yml +++ b/.azuredevops/modulePipelines/ms.logic.workflows.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.logic.workflows.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Logic/workflows/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Logic/workflows/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Logic/workflows' + value: '/modules/Microsoft.Logic/workflows' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml b/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml index d309cdb975..25d3dff698 100644 --- a/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.MachineLearningServices/workspaces/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.MachineLearningServices/workspaces/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.MachineLearningServices/workspaces' + value: '/modules/Microsoft.MachineLearningServices/workspaces' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml b/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml index 80121f67e5..1f00c7cfc7 100644 --- a/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml +++ b/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.ManagedIdentity/userAssignedIdentities/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.ManagedIdentity/userAssignedIdentities/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.ManagedIdentity/userAssignedIdentities' + value: '/modules/Microsoft.ManagedIdentity/userAssignedIdentities' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml b/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml index 62fee30f9b..f32c9014d9 100644 --- a/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml +++ b/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.ManagedServices/registrationDefinitions/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.ManagedServices/registrationDefinitions/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.ManagedServices/registrationDefinitions' + value: '/modules/Microsoft.ManagedServices/registrationDefinitions' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.management.managementgroups.yml b/.azuredevops/modulePipelines/ms.management.managementgroups.yml index 308ff44dc5..2b6835ee2b 100644 --- a/.azuredevops/modulePipelines/ms.management.managementgroups.yml +++ b/.azuredevops/modulePipelines/ms.management.managementgroups.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.management.managementgroups.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Management/managementGroups/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Management/managementGroups/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Management/managementGroups' + value: '/modules/Microsoft.Management/managementGroups' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml b/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml index 2b161f504d..51301ce92e 100644 --- a/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml +++ b/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.NetApp/netAppAccounts/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.NetApp/netAppAccounts/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.NetApp/netAppAccounts' + value: '/modules/Microsoft.NetApp/netAppAccounts' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.applicationgateways.yml b/.azuredevops/modulePipelines/ms.network.applicationgateways.yml index 6225a4f68c..94f69382f6 100644 --- a/.azuredevops/modulePipelines/ms.network.applicationgateways.yml +++ b/.azuredevops/modulePipelines/ms.network.applicationgateways.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.applicationgateways.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/applicationGateways/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/applicationGateways/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/applicationGateways' + value: '/modules/Microsoft.Network/applicationGateways' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml b/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml index f4e3156552..acd62eae47 100644 --- a/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml +++ b/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/applicationSecurityGroups/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/applicationSecurityGroups/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/applicationSecurityGroups' + value: '/modules/Microsoft.Network/applicationSecurityGroups' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml b/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml index 4a55274d85..2f54d10839 100644 --- a/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml +++ b/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/azureFirewalls/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/azureFirewalls/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/azureFirewalls' + value: '/modules/Microsoft.Network/azureFirewalls' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.bastionhosts.yml b/.azuredevops/modulePipelines/ms.network.bastionhosts.yml index a456581930..ffdb3bcbd4 100644 --- a/.azuredevops/modulePipelines/ms.network.bastionhosts.yml +++ b/.azuredevops/modulePipelines/ms.network.bastionhosts.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.bastionhosts.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/bastionHosts/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/bastionHosts/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/bastionHosts' + value: '/modules/Microsoft.Network/bastionHosts' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.connections.yml b/.azuredevops/modulePipelines/ms.network.connections.yml index 2111b74e77..fb94033d50 100644 --- a/.azuredevops/modulePipelines/ms.network.connections.yml +++ b/.azuredevops/modulePipelines/ms.network.connections.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.connections.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/connections/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/connections/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/connections' + value: '/modules/Microsoft.Network/connections' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml b/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml index 0f63e495bc..0e31c7a082 100644 --- a/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml +++ b/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/ddosProtectionPlans/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/ddosProtectionPlans/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/ddosProtectionPlans' + value: '/modules/Microsoft.Network/ddosProtectionPlans' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml b/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml index 1fc686d50f..8cf0e657b8 100644 --- a/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml +++ b/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/expressRouteCircuits/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/expressRouteCircuits/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/expressRouteCircuits' + value: '/modules/Microsoft.Network/expressRouteCircuits' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml b/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml index 69a52d6e60..d0628548a1 100644 --- a/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml +++ b/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/firewallpolicies/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/firewallpolicies/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/firewallpolicies' + value: '/modules/Microsoft.Network/firewallpolicies' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.frontdoors.yml b/.azuredevops/modulePipelines/ms.network.frontdoors.yml index 6ef0c447e5..60ec3ae34b 100644 --- a/.azuredevops/modulePipelines/ms.network.frontdoors.yml +++ b/.azuredevops/modulePipelines/ms.network.frontdoors.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.frontdoors.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/frontDoors/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/frontDoors/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/frontDoors' + value: '/modules/Microsoft.Network/frontDoors' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.ipgroups.yml b/.azuredevops/modulePipelines/ms.network.ipgroups.yml index 2cebe6016a..68741237c9 100644 --- a/.azuredevops/modulePipelines/ms.network.ipgroups.yml +++ b/.azuredevops/modulePipelines/ms.network.ipgroups.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.ipgroups.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/ipGroups/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/ipGroups/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/ipGroups' + value: '/modules/Microsoft.Network/ipGroups' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.loadbalancers.yml b/.azuredevops/modulePipelines/ms.network.loadbalancers.yml index 1ab86396d9..79a642a9a2 100644 --- a/.azuredevops/modulePipelines/ms.network.loadbalancers.yml +++ b/.azuredevops/modulePipelines/ms.network.loadbalancers.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.loadbalancers.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/loadBalancers/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/loadBalancers/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/loadBalancers' + value: '/modules/Microsoft.Network/loadBalancers' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml b/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml index 74c7f3f7bd..0ee1e4d5dc 100644 --- a/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml +++ b/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/localNetworkGateways/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/localNetworkGateways/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/localNetworkGateways' + value: '/modules/Microsoft.Network/localNetworkGateways' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.natgateways.yml b/.azuredevops/modulePipelines/ms.network.natgateways.yml index 036aebbf69..c8c54a6b23 100644 --- a/.azuredevops/modulePipelines/ms.network.natgateways.yml +++ b/.azuredevops/modulePipelines/ms.network.natgateways.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.natgateways.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/natGateways/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/natGateways/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/natGateways' + value: '/modules/Microsoft.Network/natGateways' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml b/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml index ce5051d2f2..774230b786 100644 --- a/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml +++ b/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/networkInterfaces/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/networkInterfaces/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/networkInterfaces' + value: '/modules/Microsoft.Network/networkInterfaces' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml b/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml index 97508a03c9..508abc9800 100644 --- a/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml +++ b/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/networkSecurityGroups/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/networkSecurityGroups/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/networkSecurityGroups' + value: '/modules/Microsoft.Network/networkSecurityGroups' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.networkwatchers.yml b/.azuredevops/modulePipelines/ms.network.networkwatchers.yml index e18f04f34c..70dbbd7165 100644 --- a/.azuredevops/modulePipelines/ms.network.networkwatchers.yml +++ b/.azuredevops/modulePipelines/ms.network.networkwatchers.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.networkwatchers.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/networkWatchers/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/networkWatchers/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/networkWatchers' + value: '/modules/Microsoft.Network/networkWatchers' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.privatednszones.yml b/.azuredevops/modulePipelines/ms.network.privatednszones.yml index 9b152568fb..fbdae8dbbe 100644 --- a/.azuredevops/modulePipelines/ms.network.privatednszones.yml +++ b/.azuredevops/modulePipelines/ms.network.privatednszones.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.privatednszones.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/privateDnsZones/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/privateDnsZones/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/privateDnsZones' + value: '/modules/Microsoft.Network/privateDnsZones' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.privateendpoints.yml b/.azuredevops/modulePipelines/ms.network.privateendpoints.yml index fd9b955ead..08c0110f53 100644 --- a/.azuredevops/modulePipelines/ms.network.privateendpoints.yml +++ b/.azuredevops/modulePipelines/ms.network.privateendpoints.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.privateendpoints.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/privateEndpoints/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/privateEndpoints/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/privateEndpoints' + value: '/modules/Microsoft.Network/privateEndpoints' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml b/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml index 2bf7ddc62e..8162834d2c 100644 --- a/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml +++ b/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/publicIPAddresses/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/publicIPAddresses/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/publicIPAddresses' + value: '/modules/Microsoft.Network/publicIPAddresses' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml b/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml index 4b779ece81..0f4ac763e0 100644 --- a/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml +++ b/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/publicIPPrefixes/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/publicIPPrefixes/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/publicIPPrefixes' + value: '/modules/Microsoft.Network/publicIPPrefixes' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.routetables.yml b/.azuredevops/modulePipelines/ms.network.routetables.yml index 1aac7ed90d..3e7285e19b 100644 --- a/.azuredevops/modulePipelines/ms.network.routetables.yml +++ b/.azuredevops/modulePipelines/ms.network.routetables.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.routetables.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/routeTables/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/routeTables/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/routeTables' + value: '/modules/Microsoft.Network/routeTables' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml b/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml index 45d8db3d5a..e3d4a02456 100644 --- a/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml +++ b/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/trafficmanagerprofiles/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/trafficmanagerprofiles/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/trafficmanagerprofiles' + value: '/modules/Microsoft.Network/trafficmanagerprofiles' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.virtualhubs.yml b/.azuredevops/modulePipelines/ms.network.virtualhubs.yml index c117fae374..ff44ffc9cb 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualhubs.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualhubs.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.virtualhubs.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/virtualHubs/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/virtualHubs/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/virtualHubs' + value: '/modules/Microsoft.Network/virtualHubs' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml b/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml index 51a9c6a5a6..f83662a85b 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/virtualNetworkGateways/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/virtualNetworkGateways/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/virtualNetworkGateways' + value: '/modules/Microsoft.Network/virtualNetworkGateways' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml b/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml index 8d1ae7e5dc..3afcc78e93 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/virtualNetworks/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/virtualNetworks/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/virtualNetworks' + value: '/modules/Microsoft.Network/virtualNetworks' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.virtualwans.yml b/.azuredevops/modulePipelines/ms.network.virtualwans.yml index b507e19983..2f2aa5d2ab 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualwans.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualwans.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.virtualwans.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/virtualWans/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/virtualWans/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/virtualWans' + value: '/modules/Microsoft.Network/virtualWans' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.vpngateways.yml b/.azuredevops/modulePipelines/ms.network.vpngateways.yml index cc2d3f9c8b..5375efbf13 100644 --- a/.azuredevops/modulePipelines/ms.network.vpngateways.yml +++ b/.azuredevops/modulePipelines/ms.network.vpngateways.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.vpngateways.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/vpnGateways/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/vpnGateways/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/vpnGateways' + value: '/modules/Microsoft.Network/vpnGateways' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.network.vpnsites.yml b/.azuredevops/modulePipelines/ms.network.vpnsites.yml index 2c9be39166..1671947a58 100644 --- a/.azuredevops/modulePipelines/ms.network.vpnsites.yml +++ b/.azuredevops/modulePipelines/ms.network.vpnsites.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.vpnsites.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Network/vpnSites/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Network/vpnSites/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Network/vpnSites' + value: '/modules/Microsoft.Network/vpnSites' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml b/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml index daf7fc3728..8b4b67de7d 100644 --- a/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.OperationalInsights/workspaces/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.OperationalInsights/workspaces/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.OperationalInsights/workspaces' + value: '/modules/Microsoft.OperationalInsights/workspaces' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml b/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml index 483f0184d5..ba8cdae0b1 100644 --- a/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml +++ b/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.OperationsManagement/solutions/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.OperationsManagement/solutions/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.OperationsManagement/solutions' + value: '/modules/Microsoft.OperationsManagement/solutions' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml b/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml index bc65e9622b..cba2c234be 100644 --- a/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml +++ b/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.RecoveryServices/vaults/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.RecoveryServices/vaults/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.RecoveryServices/vaults' + value: '/modules/Microsoft.RecoveryServices/vaults' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml b/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml index cd826e0c27..d22921db65 100644 --- a/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml +++ b/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Resources/deploymentScripts/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Resources/deploymentScripts/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Resources/deploymentScripts' + value: '/modules/Microsoft.Resources/deploymentScripts' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml b/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml index 9bde0ab4fc..d9dda35a3c 100644 --- a/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml +++ b/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Resources/resourceGroups/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Resources/resourceGroups/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Resources/resourceGroups' + value: '/modules/Microsoft.Resources/resourceGroups' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.resources.tags.yml b/.azuredevops/modulePipelines/ms.resources.tags.yml index d0fe3f9404..2a63417b98 100644 --- a/.azuredevops/modulePipelines/ms.resources.tags.yml +++ b/.azuredevops/modulePipelines/ms.resources.tags.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.resources.tags.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Resources/tags/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Resources/tags/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Resources/tags' + value: '/modules/Microsoft.Resources/tags' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml b/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml index a08f557ef1..ab25a3a0d5 100644 --- a/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml +++ b/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Security/azureSecurityCenter/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Security/azureSecurityCenter/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Security/azureSecurityCenter' + value: '/modules/Microsoft.Security/azureSecurityCenter' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml b/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml index d555a10dde..8f7a938e6b 100644 --- a/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml +++ b/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.ServiceBus/namespaces/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.ServiceBus/namespaces/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.ServiceBus/namespaces' + value: '/modules/Microsoft.ServiceBus/namespaces' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml b/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml index 34031c7247..45f197e830 100644 --- a/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml +++ b/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/Microsoft.ServiceFabric/clusters/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.ServiceFabric/clusters/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.ServiceFabric/clusters' + value: '/modules/Microsoft.ServiceFabric/clusters' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.sql.managedinstances.yml b/.azuredevops/modulePipelines/ms.sql.managedinstances.yml index 2a063183c0..8d238daff1 100644 --- a/.azuredevops/modulePipelines/ms.sql.managedinstances.yml +++ b/.azuredevops/modulePipelines/ms.sql.managedinstances.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.sql.managedinstances.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Sql/managedInstances/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Sql/managedInstances/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Sql/managedInstances' + value: '/modules/Microsoft.Sql/managedInstances' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.sql.servers.yml b/.azuredevops/modulePipelines/ms.sql.servers.yml index c644d3a1df..ed0125f637 100644 --- a/.azuredevops/modulePipelines/ms.sql.servers.yml +++ b/.azuredevops/modulePipelines/ms.sql.servers.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.sql.servers.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Sql/servers/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Sql/servers/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Sql/servers' + value: '/modules/Microsoft.Sql/servers' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml b/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml index 51f381d312..5b4e07ed3b 100644 --- a/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml +++ b/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Storage/storageAccounts/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Storage/storageAccounts/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Storage/storageAccounts' + value: '/modules/Microsoft.Storage/storageAccounts' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml b/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml index e34d190ed5..246865319c 100644 --- a/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml +++ b/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Synapse/privateLinkHubs/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Synapse/privateLinkHubs/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Synapse/privateLinkHubs' + value: '/modules/Microsoft.Synapse/privateLinkHubs' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml b/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml index 525c02e6fb..818ab369d5 100644 --- a/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml +++ b/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.VirtualMachineImages/imageTemplates/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.VirtualMachineImages/imageTemplates/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.VirtualMachineImages/imageTemplates' + value: '/modules/Microsoft.VirtualMachineImages/imageTemplates' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.web.connections.yml b/.azuredevops/modulePipelines/ms.web.connections.yml index 9abaa4136d..ffba362d13 100644 --- a/.azuredevops/modulePipelines/ms.web.connections.yml +++ b/.azuredevops/modulePipelines/ms.web.connections.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.web.connections.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Web/connections/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Web/connections/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Web/connections' + value: '/modules/Microsoft.Web/connections' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml b/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml index fc2abe59b5..1cdbca5b71 100644 --- a/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml +++ b/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Web/hostingEnvironments/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Web/hostingEnvironments/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Web/hostingEnvironments' + value: '/modules/Microsoft.Web/hostingEnvironments' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.web.serverfarms.yml b/.azuredevops/modulePipelines/ms.web.serverfarms.yml index 285b2ce94b..4288d2a1e3 100644 --- a/.azuredevops/modulePipelines/ms.web.serverfarms.yml +++ b/.azuredevops/modulePipelines/ms.web.serverfarms.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.web.serverfarms.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Web/serverfarms/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Web/serverfarms/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Web/serverfarms' + value: '/modules/Microsoft.Web/serverfarms' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.web.sites.yml b/.azuredevops/modulePipelines/ms.web.sites.yml index 2c7584cd63..28173a7c34 100644 --- a/.azuredevops/modulePipelines/ms.web.sites.yml +++ b/.azuredevops/modulePipelines/ms.web.sites.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.web.sites.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Web/sites/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Web/sites/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Web/sites' + value: '/modules/Microsoft.Web/sites' stages: - stage: Validation diff --git a/.azuredevops/modulePipelines/ms.web.staticsites.yml b/.azuredevops/modulePipelines/ms.web.staticsites.yml index 7784a2ce12..23fed47790 100644 --- a/.azuredevops/modulePipelines/ms.web.staticsites.yml +++ b/.azuredevops/modulePipelines/ms.web.staticsites.yml @@ -21,8 +21,8 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.web.staticsites.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/arm/Microsoft.Web/staticSites/*' - - '/arm/.global/global.module.tests.ps1' + - '/modules/Microsoft.Web/staticSites/*' + - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/arm/Microsoft.Web/staticSites' + value: '/modules/Microsoft.Web/staticSites' stages: - stage: Validation diff --git a/.azuredevops/pipelineTemplates/jobs.publishModule.yml b/.azuredevops/pipelineTemplates/jobs.publishModule.yml index 622e05a8e5..f22e1761c3 100644 --- a/.azuredevops/pipelineTemplates/jobs.publishModule.yml +++ b/.azuredevops/pipelineTemplates/jobs.publishModule.yml @@ -176,7 +176,7 @@ jobs: # Publish the modified child resources foreach ($ModuleToPublish in $ModulesToPublish) { - $RelPath = (($ModuleToPublish.TemplateFilePath).Split('/arm/')[-1]).Split('/deploy.')[0] + $RelPath = (($ModuleToPublish.TemplateFilePath).Split('/modules/')[-1]).Split('/deploy.')[0] Write-Host "##[group]$(' - [{0}] [{1}]' -f $RelPath, $ModuleToPublish.Version)" $functionInput = @{ @@ -235,7 +235,7 @@ jobs: # Publish the modified child resources foreach ($ModuleToPublish in $ModulesToPublish) { - $RelPath = (($ModuleToPublish.TemplateFilePath).Split('/arm/')[-1]).Split('/deploy.')[0] + $RelPath = (($ModuleToPublish.TemplateFilePath).Split('/modules/')[-1]).Split('/deploy.')[0] Write-Host "##[group]$(' - [{0}] [{1}]' -f $RelPath, $ModuleToPublish.Version)" $functionInput = @{ @@ -295,7 +295,7 @@ jobs: # Publish the modified child resources foreach ($ModuleToPublish in $ModulesToPublish) { - $RelPath = (($ModuleToPublish.TemplateFilePath).Split('/arm/')[-1]).Split('/deploy.')[0] + $RelPath = (($ModuleToPublish.TemplateFilePath).Split('/modules/')[-1]).Split('/deploy.')[0] Write-Host "##[group]$(' - [{0}] [{1}]' -f $RelPath, $ModuleToPublish.Version)" $functionInput = @{ diff --git a/.azuredevops/pipelineTemplates/jobs.validateModulePester.yml b/.azuredevops/pipelineTemplates/jobs.validateModulePester.yml index 9e2870a142..8e36f369d8 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModulePester.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModulePester.yml @@ -2,7 +2,7 @@ ## VALIDATION PIPELINE ## ######################################################### ## -## This pipeline template contains the logic to validate a given module's ARM template using the provided parameter file(s) +## This pipeline template contains the logic to validate a given module using the provided parameter file(s) ## ## Enabled levels of validation ## - Resource-Group-Level @@ -30,8 +30,8 @@ ## | defaultJobTimeoutInMinutes | 120 | The timeout for the job in this pipeline | 120 | ## | checkoutRepositories | '' | An optional list of repositories to check out at the beginning of this job in addition to the source | 'Components' | ## | modulePath | '$(modulePath)' | The path to the module to deploy. E.g. [c:/KeyVault] | 'c:/KeyVault' | -## | location | '$(location)' | The location to validate with | 'France Central' | -## | resourceGroupName | '$(resourceGroupName)' | The resourcegroup to validate into. Required only for Resource-Group-Level validations | 'validation-rg' | +## | location | '$(location)' | The location to validate with | 'France Central' | +## | resourceGroupName | '$(resourceGroupName)' | The resourcegroup to validate into. Required only for Resource-Group-Level validations | 'validation-rg' | ## | subscriptionId | '$(ARM_SUBSCRIPTION_ID)' | The id of the subscription to validate with when using a Management group service connection | 'aed7c000-6387-412e-bed0-24dfddf4bbc6' | ## | managementGroupId | '$(ARM_MGMTGROUP_ID)' | The id of the management group to validate with. Required only for Management-Group-Level validations | '477c9620-cb01-454f-9ebc-fc6b1df48c14' | ## | parametersRepository | '$(Build.Repository.Name)' | The respository with the parameter files. Defaults to the triggering repository | 'Solutions' | @@ -164,14 +164,14 @@ jobs: # --------------------- # Invoke-Pester -Configuration @{ Run = @{ - Container = New-PesterContainer -Path (Join-Path '$(moduleRepoRoot)' 'arm' '.global' 'global.module.tests.ps1') -Data @{ + Container = New-PesterContainer -Path (Join-Path '$(moduleRepoRoot)' 'modules' '.global' 'global.module.tests.ps1') -Data @{ moduleFolderPaths = $moduleFolderPaths enforcedTokenList = $enforcedTokenList } } TestResult = @{ TestSuiteName = 'Global Module Tests' - OutputPath = 'arm/.global/global-testResults.xml' + OutputPath = 'modules/.global/global-testResults.xml' OutputFormat = 'NUnitXml' Enabled = $true } @@ -188,6 +188,6 @@ jobs: testResultsFormat: NUnit testResultsFiles: global-testResults.xml failTaskOnFailedTests: true - searchFolder: 'arm/.global' + searchFolder: 'modules/.global' continueOnError: false condition: succeededOrFailed() diff --git a/.azuredevops/platformPipelines/platform.dependencies.yml b/.azuredevops/platformPipelines/platform.dependencies.yml index 33013e95ea..dc97836ddc 100644 --- a/.azuredevops/platformPipelines/platform.dependencies.yml +++ b/.azuredevops/platformPipelines/platform.dependencies.yml @@ -30,7 +30,7 @@ variables: - name: dependencyPath value: 'utilities/pipelines/dependencies' - name: modulesPath - value: 'arm' + value: 'modules' - name: defaultResourceGroupName value: 'validation-rg' diff --git a/.azuredevops/platformPipelines/platform.updateReadMe.yml b/.azuredevops/platformPipelines/platform.updateReadMe.yml index d2eb068bf0..928e74bbd2 100644 --- a/.azuredevops/platformPipelines/platform.updateReadMe.yml +++ b/.azuredevops/platformPipelines/platform.updateReadMe.yml @@ -9,8 +9,8 @@ trigger: - main paths: include: - - 'arm/**/deploy.bicep' - - 'arm/**/deploy.json' + - 'modules/**/deploy.bicep' + - 'modules/**/deploy.json' variables: - template: '../../global.variables.yml' @@ -39,7 +39,7 @@ jobs: . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'tools' 'Set-ReadMeModuleTable.ps1') $functionInput = @{ - ModulesPath = Join-Path '$(System.DefaultWorkingDirectory)' 'arm' + ModulesPath = Join-Path '$(System.DefaultWorkingDirectory)' 'modules' FilePath = Join-Path '$(System.DefaultWorkingDirectory)' 'README.md' Organization = '$(System.CollectionUri)'.Split('/')[3] RepositoryName = '$(Build.Repository.Name)' @@ -63,8 +63,8 @@ jobs: . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'tools' 'Set-ReadMeModuleTable.ps1') $functionInput = @{ - ModulesPath = Join-Path '$(System.DefaultWorkingDirectory)' 'arm' - FilePath = Join-Path '$(System.DefaultWorkingDirectory)' 'arm/README.md' + ModulesPath = Join-Path '$(System.DefaultWorkingDirectory)' 'modules' + FilePath = Join-Path '$(System.DefaultWorkingDirectory)' 'modules/README.md' Organization = '$(System.CollectionUri)'.Split('/')[3] RepositoryName = '$(Build.Repository.Name)' ColumnsInOrder = @('Name', 'ProviderNamespace','ResourceType') diff --git a/.github/actions/templates/publishModule/action.yml b/.github/actions/templates/publishModule/action.yml index cb3a327922..c88cdfcd03 100644 --- a/.github/actions/templates/publishModule/action.yml +++ b/.github/actions/templates/publishModule/action.yml @@ -12,19 +12,19 @@ ## ACTION PARAMETERS ## ##-------------------------------------------## ## -## |=======================================================================================================================================================================================================| -## | Parameter | Required | Default | Description | Example | -## |--------------------------|----------|---------|--------------------------------------------------------------------------------------------------|----------------------------------------------------| -## | templateFilePath | true | '' | The path to the template file to publish | 'arm/Microsoft.ApiManagement/service/deploy.bicep' | -## | templateSpecsRgName | false | '' | Required to publish to template spec. ResourceGroup of the template spec to publish to | 'artifacts-rg' | -## | templateSpecsRgLocation | false | '' | Required to publish to template spec. Location of the template spec resource group | 'WestEurope' | -## | templateSpecsDescription | false | '' | Required to publish to template spec. Description of the template spec to publish to | 'This is an API-Management service template' | -## | templateSpecsDoPublish | false | 'false' | Flag to indicate whether or not to publish to template specs | 'true' | -## | bicepRegistryName | false | '' | Required to publish to private bicep registry. Name of the container registry to publish to | 'myacr' | -## | bicepRegistryRgName | false | '' | Required to publish to private bicep registry. Name of the container registry resource group | 'artifacts-rg' | -## | bicepRegistryRgLocation | false | '' | Required to publish to private bicep registry. Location of the container registry resource group | 'WestEurope' | -## | bicepRegistryDoPublish | false | 'false' | Flag to indicate whether or not to publish to the private bicep registry | 'true' | -## |=======================================================================================================================================================================================================| +## |===========================================================================================================================================================================================================| +## | Parameter | Required | Default | Description | Example | +## |--------------------------|----------|---------|--------------------------------------------------------------------------------------------------|--------------------------------------------------------| +## | templateFilePath | true | '' | The path to the template file to publish | 'modules/Microsoft.ApiManagement/service/deploy.bicep' | +## | templateSpecsRgName | false | '' | Required to publish to template spec. ResourceGroup of the template spec to publish to | 'artifacts-rg' | +## | templateSpecsRgLocation | false | '' | Required to publish to template spec. Location of the template spec resource group | 'WestEurope' | +## | templateSpecsDescription | false | '' | Required to publish to template spec. Description of the template spec to publish to | 'This is an API-Management service template' | +## | templateSpecsDoPublish | false | 'false' | Flag to indicate whether or not to publish to template specs | 'true' | +## | bicepRegistryName | false | '' | Required to publish to private bicep registry. Name of the container registry to publish to | 'myacr' | +## | bicepRegistryRgName | false | '' | Required to publish to private bicep registry. Name of the container registry resource group | 'artifacts-rg' | +## | bicepRegistryRgLocation | false | '' | Required to publish to private bicep registry. Location of the container registry resource group | 'WestEurope' | +## | bicepRegistryDoPublish | false | 'false' | Flag to indicate whether or not to publish to the private bicep registry | 'true' | +## |===========================================================================================================================================================================================================| ## ##---------------------------------------------## name: 'Publishing' @@ -116,7 +116,7 @@ runs: # Publish the modified child resources foreach ($ModuleToPublish in $ModulesToPublish) { - $RelPath = (($ModuleToPublish.TemplateFilePath).Split('/arm/')[-1]).Split('/deploy.')[0] + $RelPath = (($ModuleToPublish.TemplateFilePath).Split('/modules/')[-1]).Split('/deploy.')[0] Write-Output "::group::$(' - [{0}] [{1}]' -f $RelPath, $ModuleToPublish.Version)" $functionInput = @{ @@ -160,7 +160,7 @@ runs: # Publish the modified child resources foreach ($ModuleToPublish in $ModulesToPublish) { - $RelPath = (($ModuleToPublish.TemplateFilePath).Split('/arm/')[-1]).Split('/deploy.')[0] + $RelPath = (($ModuleToPublish.TemplateFilePath).Split('/modules/')[-1]).Split('/deploy.')[0] Write-Output "::group::$(' - [{0}] [{1}]' -f $RelPath, $ModuleToPublish.Version)" $functionInput = @{ diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 7d23efa771..9addde2a80 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -11,18 +11,18 @@ ## ACTION PARAMETERS ## ##-------------------------------------------## ## -## |============================================================================================================================================================================| -## | Parameter | Required | Default | Description | Example | -## |---------------------------|----------|---------|-------------------------------------------------------|-------------------------------------------------------------------| -## | templateFilePath | true | '' | The path to the template file to use for deployment | 'arm/Microsoft.ApiManagement/service/deploy.bicep' | -## | parameterFilePath | true | '' | The path to the parameter file to use for deployment | 'arm/Microsoft.ApiManagement/service/.parameters/parameters.json' | -## | location | true | '' | The location to use for deployment | 'WestEurope' | -## | resourceGroupName | false | '' | The resource group to deploy to | 'validation-rg' | -## | subscriptionId | false | '' | The subscriptionId to deploy to | '1a97b80a-4dda-4f50-ab53-349e29344654' | -## | managementGroupId | false | '' | The managementGroupId to deploy to | '1a97b80a-4dda-4f50-ab53-349e29344654' | -## | customParameterFileTokens | false | '' | Additional parameter file token pairs in json format. | '{"tokenName":"tokenValue"}' | -## | removeDeployment | false | 'true' | Set "true" to set module up for removal | 'true' | -## |============================================================================================================================================================================| +## |================================================================================================================================================================================| +## | Parameter | Required | Default | Description | Example | +## |---------------------------|----------|---------|-------------------------------------------------------|-----------------------------------------------------------------------| +## | templateFilePath | true | '' | The path to the template file to use for deployment | 'modules/Microsoft.ApiManagement/service/deploy.bicep' | +## | parameterFilePath | true | '' | The path to the parameter file to use for deployment | 'modules/Microsoft.ApiManagement/service/.parameters/parameters.json' | +## | location | true | '' | The location to use for deployment | 'WestEurope' | +## | resourceGroupName | false | '' | The resource group to deploy to | 'validation-rg' | +## | subscriptionId | false | '' | The subscriptionId to deploy to | '1a97b80a-4dda-4f50-ab53-349e29344654' | +## | managementGroupId | false | '' | The managementGroupId to deploy to | '1a97b80a-4dda-4f50-ab53-349e29344654' | +## | customParameterFileTokens | false | '' | Additional parameter file token pairs in json format. | '{"tokenName":"tokenValue"}' | +## | removeDeployment | false | 'true' | Set "true" to set module up for removal | 'true' | +## |================================================================================================================================================================================| ## ######################################################### ## diff --git a/.github/actions/templates/validateModulePester/action.yml b/.github/actions/templates/validateModulePester/action.yml index 2585707067..957b94643d 100644 --- a/.github/actions/templates/validateModulePester/action.yml +++ b/.github/actions/templates/validateModulePester/action.yml @@ -3,7 +3,7 @@ ######################################################### ## ## This composite action contains the logic to validate a module using a set of Pester tests -## The tests are implemented in file 'arm/.global/global.module.tests.ps1' +## The tests are implemented in file 'modules/.global/global.module.tests.ps1' ## ######################################################### ## @@ -11,11 +11,11 @@ ## ACTION PARAMETERS ## ##-------------------------------------------## ## -## |===========================================================================================================| -## | Parameter | Required | Default | Description | Example | -## |------------|----------|---------|---------------------------------|---------------------------------------| -## | modulePath | true | '' | The path to the module's folder | 'arm/Microsoft.ApiManagement/service' | -## |===========================================================================================================| +## |===============================================================================================================| +## | Parameter | Required | Default | Description | Example | +## |------------|----------|---------|---------------------------------|-------------------------------------------| +## | modulePath | true | '' | The path to the module's folder | 'modules/Microsoft.ApiManagement/service' | +## |===============================================================================================================| ## ##---------------------------------------------## @@ -95,14 +95,14 @@ runs: # --------------------- # Invoke-Pester -Configuration @{ Run = @{ - Container = New-PesterContainer -Path 'arm/.global/global.module.tests.ps1' -Data @{ + Container = New-PesterContainer -Path 'modules/.global/global.module.tests.ps1' -Data @{ moduleFolderPaths = $moduleFolderPaths enforcedTokenList = $enforcedTokenList } } TestResult = @{ TestSuiteName = 'Global Module Tests' - OutputPath = 'arm/.global/global-testResults.xml' + OutputPath = 'modules/.global/global-testResults.xml' OutputFormat = 'JUnitXml' Enabled = $true } @@ -115,4 +115,4 @@ runs: uses: EnricoMi/publish-unit-test-result-action@v1 if: always() with: - files: 'arm/.global/*-testResults.xml' + files: 'modules/.global/*-testResults.xml' diff --git a/.github/workflows/ms.aad.domainservices.yml b/.github/workflows/ms.aad.domainservices.yml index 229590b5e4..9c7dc030c4 100644 --- a/.github/workflows/ms.aad.domainservices.yml +++ b/.github/workflows/ms.aad.domainservices.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.aad.domainservices.yml' - - 'arm/Microsoft.AAD/DomainServices/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.AAD/DomainServices/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.AAD/DomainServices' + modulePath: 'modules/Microsoft.AAD/DomainServices' workflowPath: '.github/workflows/ms.aad.domainservices.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.analysisservices.servers.yml b/.github/workflows/ms.analysisservices.servers.yml index 4330ec663a..d89e4b0956 100644 --- a/.github/workflows/ms.analysisservices.servers.yml +++ b/.github/workflows/ms.analysisservices.servers.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.analysisservices.servers.yml' - - 'arm/Microsoft.AnalysisServices/servers/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.AnalysisServices/servers/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.AnalysisServices/servers' + modulePath: 'modules/Microsoft.AnalysisServices/servers' workflowPath: '.github/workflows/ms.analysisservices.servers.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.apimanagement.service.yml b/.github/workflows/ms.apimanagement.service.yml index b3078cda39..b04a8a7374 100644 --- a/.github/workflows/ms.apimanagement.service.yml +++ b/.github/workflows/ms.apimanagement.service.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.apimanagement.service.yml' - - 'arm/Microsoft.ApiManagement/service/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.ApiManagement/service/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.ApiManagement/service' + modulePath: 'modules/Microsoft.ApiManagement/service' workflowPath: '.github/workflows/ms.apimanagement.service.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.appconfiguration.configurationstores.yml b/.github/workflows/ms.appconfiguration.configurationstores.yml index 2a6e3997f9..73bc29e477 100644 --- a/.github/workflows/ms.appconfiguration.configurationstores.yml +++ b/.github/workflows/ms.appconfiguration.configurationstores.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.appconfiguration.configurationstores.yml' - - 'arm/Microsoft.AppConfiguration/configurationStores/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.AppConfiguration/configurationStores/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.AppConfiguration/configurationStores' + modulePath: 'modules/Microsoft.AppConfiguration/configurationStores' workflowPath: '.github/workflows/ms.appconfiguration.configurationstores.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.authorization.locks.yml b/.github/workflows/ms.authorization.locks.yml index 49c6070b64..53ae10acd3 100644 --- a/.github/workflows/ms.authorization.locks.yml +++ b/.github/workflows/ms.authorization.locks.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.authorization.locks.yml' - - 'arm/Microsoft.Authorization/locks/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Authorization/locks/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Authorization/locks' + modulePath: 'modules/Microsoft.Authorization/locks' workflowPath: '.github/workflows/ms.authorization.locks.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.authorization.policyassignments.yml b/.github/workflows/ms.authorization.policyassignments.yml index ebb21af4a3..e1710d9ae2 100644 --- a/.github/workflows/ms.authorization.policyassignments.yml +++ b/.github/workflows/ms.authorization.policyassignments.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.authorization.policyassignments.yml' - - 'arm/Microsoft.Authorization/policyAssignments/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Authorization/policyAssignments/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Authorization/policyAssignments' + modulePath: 'modules/Microsoft.Authorization/policyAssignments' workflowPath: '.github/workflows/ms.authorization.policyassignments.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.authorization.policydefinitions.yml b/.github/workflows/ms.authorization.policydefinitions.yml index e02a09c206..f3f6b3eee5 100644 --- a/.github/workflows/ms.authorization.policydefinitions.yml +++ b/.github/workflows/ms.authorization.policydefinitions.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.authorization.policydefinitions.yml' - - 'arm/Microsoft.Authorization/policyDefinitions/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Authorization/policyDefinitions/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Authorization/policyDefinitions' + modulePath: 'modules/Microsoft.Authorization/policyDefinitions' workflowPath: '.github/workflows/ms.authorization.policydefinitions.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.authorization.policyexemptions.yml b/.github/workflows/ms.authorization.policyexemptions.yml index cbacdd34c7..64d0f4c63e 100644 --- a/.github/workflows/ms.authorization.policyexemptions.yml +++ b/.github/workflows/ms.authorization.policyexemptions.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.authorization.policyexemptions.yml' - - 'arm/Microsoft.Authorization/policyExemptions/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Authorization/policyExemptions/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Authorization/policyExemptions' + modulePath: 'modules/Microsoft.Authorization/policyExemptions' workflowPath: '.github/workflows/ms.authorization.policyexemptions.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.authorization.policysetdefinitions.yml b/.github/workflows/ms.authorization.policysetdefinitions.yml index 5fee8e7ebf..38a3a40b79 100644 --- a/.github/workflows/ms.authorization.policysetdefinitions.yml +++ b/.github/workflows/ms.authorization.policysetdefinitions.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.authorization.policysetdefinitions.yml' - - 'arm/Microsoft.Authorization/policySetDefinitions/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Authorization/policySetDefinitions/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Authorization/policySetDefinitions' + modulePath: 'modules/Microsoft.Authorization/policySetDefinitions' workflowPath: '.github/workflows/ms.authorization.policysetdefinitions.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.authorization.roleassignments.yml b/.github/workflows/ms.authorization.roleassignments.yml index e7e8c53828..8d0f8a65c9 100644 --- a/.github/workflows/ms.authorization.roleassignments.yml +++ b/.github/workflows/ms.authorization.roleassignments.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.authorization.roleassignments.yml' - - 'arm/Microsoft.Authorization/roleAssignments/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Authorization/roleAssignments/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Authorization/roleAssignments' + modulePath: 'modules/Microsoft.Authorization/roleAssignments' workflowPath: '.github/workflows/ms.authorization.roleassignments.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.authorization.roledefinitions.yml b/.github/workflows/ms.authorization.roledefinitions.yml index 95a3a5cc1d..dfc4ff4114 100644 --- a/.github/workflows/ms.authorization.roledefinitions.yml +++ b/.github/workflows/ms.authorization.roledefinitions.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.authorization.roledefinitions.yml' - - 'arm/Microsoft.Authorization/roleDefinitions/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Authorization/roleDefinitions/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Authorization/roleDefinitions' + modulePath: 'modules/Microsoft.Authorization/roleDefinitions' workflowPath: '.github/workflows/ms.authorization.roledefinitions.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.automation.automationaccounts.yml b/.github/workflows/ms.automation.automationaccounts.yml index e2a3cc2bc9..223913b69a 100644 --- a/.github/workflows/ms.automation.automationaccounts.yml +++ b/.github/workflows/ms.automation.automationaccounts.yml @@ -20,15 +20,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.automation.automationaccounts.yml' - - 'arm/Microsoft.Automation/automationAccounts/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Automation/automationAccounts/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Automation/automationAccounts' + modulePath: 'modules/Microsoft.Automation/automationAccounts' workflowPath: '.github/workflows/ms.automation.automationaccounts.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: ${{ secrets.ARM_SUBSCRIPTION_ID }} diff --git a/.github/workflows/ms.batch.batchaccounts.yml b/.github/workflows/ms.batch.batchaccounts.yml index bdab22a0fb..99438c8f5e 100644 --- a/.github/workflows/ms.batch.batchaccounts.yml +++ b/.github/workflows/ms.batch.batchaccounts.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.batch.batchaccounts.yml' - - 'arm/Microsoft.Batch/batchAccounts/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Batch/batchAccounts/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Batch/batchAccounts' + modulePath: 'modules/Microsoft.Batch/batchAccounts' workflowPath: '.github/workflows/ms.batch.batchaccounts.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.cognitiveservices.accounts.yml b/.github/workflows/ms.cognitiveservices.accounts.yml index f320fd876d..5ea5e69477 100644 --- a/.github/workflows/ms.cognitiveservices.accounts.yml +++ b/.github/workflows/ms.cognitiveservices.accounts.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.cognitiveservices.accounts.yml' - - 'arm/Microsoft.CognitiveServices/accounts/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.CognitiveServices/accounts/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.CognitiveServices/accounts' + modulePath: 'modules/Microsoft.CognitiveServices/accounts' workflowPath: '.github/workflows/ms.cognitiveservices.accounts.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.compute.availabilitysets.yml b/.github/workflows/ms.compute.availabilitysets.yml index a873271346..24ee9e6810 100644 --- a/.github/workflows/ms.compute.availabilitysets.yml +++ b/.github/workflows/ms.compute.availabilitysets.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.compute.availabilitysets.yml' - - 'arm/Microsoft.Compute/availabilitySets/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Compute/availabilitySets/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Compute/availabilitySets' + modulePath: 'modules/Microsoft.Compute/availabilitySets' workflowPath: '.github/workflows/ms.compute.availabilitysets.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.compute.diskencryptionsets.yml b/.github/workflows/ms.compute.diskencryptionsets.yml index 4249bc2d92..2ec3d0070a 100644 --- a/.github/workflows/ms.compute.diskencryptionsets.yml +++ b/.github/workflows/ms.compute.diskencryptionsets.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.compute.diskencryptionsets.yml' - - 'arm/Microsoft.Compute/diskEncryptionSets/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Compute/diskEncryptionSets/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Compute/diskEncryptionSets' + modulePath: 'modules/Microsoft.Compute/diskEncryptionSets' workflowPath: '.github/workflows/ms.compute.diskencryptionsets.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.compute.disks.yml b/.github/workflows/ms.compute.disks.yml index 8495ead6ae..b7e448c3f8 100644 --- a/.github/workflows/ms.compute.disks.yml +++ b/.github/workflows/ms.compute.disks.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.compute.disks.yml' - - 'arm/Microsoft.Compute/disks/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Compute/disks/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Compute/disks' + modulePath: 'modules/Microsoft.Compute/disks' workflowPath: '.github/workflows/ms.compute.disks.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.compute.galleries.yml b/.github/workflows/ms.compute.galleries.yml index 3e341e0474..d1253419b2 100644 --- a/.github/workflows/ms.compute.galleries.yml +++ b/.github/workflows/ms.compute.galleries.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.compute.galleries.yml' - - 'arm/Microsoft.Compute/galleries/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Compute/galleries/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Compute/galleries' + modulePath: 'modules/Microsoft.Compute/galleries' workflowPath: '.github/workflows/ms.compute.galleries.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.compute.images.yml b/.github/workflows/ms.compute.images.yml index 1e6aefa800..429badf603 100644 --- a/.github/workflows/ms.compute.images.yml +++ b/.github/workflows/ms.compute.images.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.compute.images.yml' - - 'arm/Microsoft.Compute/images/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Compute/images/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Compute/images' + modulePath: 'modules/Microsoft.Compute/images' workflowPath: '.github/workflows/ms.compute.images.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.compute.proximityplacementgroups.yml b/.github/workflows/ms.compute.proximityplacementgroups.yml index 8dd426e6f6..039369a56c 100644 --- a/.github/workflows/ms.compute.proximityplacementgroups.yml +++ b/.github/workflows/ms.compute.proximityplacementgroups.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.compute.proximityplacementgroups.yml' - - 'arm/Microsoft.Compute/proximityPlacementGroups/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Compute/proximityPlacementGroups/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Compute/proximityPlacementGroups' + modulePath: 'modules/Microsoft.Compute/proximityPlacementGroups' workflowPath: '.github/workflows/ms.compute.proximityplacementgroups.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.compute.virtualmachines.yml b/.github/workflows/ms.compute.virtualmachines.yml index bb336d8917..607ff5ae93 100644 --- a/.github/workflows/ms.compute.virtualmachines.yml +++ b/.github/workflows/ms.compute.virtualmachines.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.compute.virtualmachines.yml' - - 'arm/Microsoft.Compute/virtualMachines/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Compute/virtualMachines/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Compute/virtualMachines' + modulePath: 'modules/Microsoft.Compute/virtualMachines' workflowPath: '.github/workflows/ms.compute.virtualmachines.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.compute.virtualmachinescalesets.yml b/.github/workflows/ms.compute.virtualmachinescalesets.yml index 3cc180a270..7a5bfa94cd 100644 --- a/.github/workflows/ms.compute.virtualmachinescalesets.yml +++ b/.github/workflows/ms.compute.virtualmachinescalesets.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.compute.virtualmachinescalesets.yml' - - 'arm/Microsoft.Compute/virtualMachineScaleSets/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Compute/virtualMachineScaleSets/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Compute/virtualMachineScaleSets' + modulePath: 'modules/Microsoft.Compute/virtualMachineScaleSets' workflowPath: '.github/workflows/ms.compute.virtualmachinescalesets.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.consumption.budgets.yml b/.github/workflows/ms.consumption.budgets.yml index 1050a427d8..0dcc0234b2 100644 --- a/.github/workflows/ms.consumption.budgets.yml +++ b/.github/workflows/ms.consumption.budgets.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.consumption.budgets.yml' - - 'arm/Microsoft.Consumption/budgets/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Consumption/budgets/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Consumption/budgets' + modulePath: 'modules/Microsoft.Consumption/budgets' workflowPath: '.github/workflows/ms.consumption.budgets.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.containerinstance.containergroups.yml b/.github/workflows/ms.containerinstance.containergroups.yml index b742a184d5..ca09181a94 100644 --- a/.github/workflows/ms.containerinstance.containergroups.yml +++ b/.github/workflows/ms.containerinstance.containergroups.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.containerinstance.containergroups.yml' - - 'arm/Microsoft.ContainerInstance/containerGroups/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.ContainerInstance/containerGroups/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.ContainerInstance/containerGroups' + modulePath: 'modules/Microsoft.ContainerInstance/containerGroups' workflowPath: '.github/workflows/ms.containerinstance.containergroups.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.containerregistry.registries.yml b/.github/workflows/ms.containerregistry.registries.yml index afbf8879e1..85bc59ab19 100644 --- a/.github/workflows/ms.containerregistry.registries.yml +++ b/.github/workflows/ms.containerregistry.registries.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.containerregistry.registries.yml' - - 'arm/Microsoft.ContainerRegistry/registries/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.ContainerRegistry/registries/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.ContainerRegistry/registries' + modulePath: 'modules/Microsoft.ContainerRegistry/registries' workflowPath: '.github/workflows/ms.containerregistry.registries.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.containerservice.managedclusters.yml b/.github/workflows/ms.containerservice.managedclusters.yml index 2198f54e26..a8ecaa5331 100644 --- a/.github/workflows/ms.containerservice.managedclusters.yml +++ b/.github/workflows/ms.containerservice.managedclusters.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.containerservice.managedclusters.yml' - - 'arm/Microsoft.ContainerService/managedClusters/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.ContainerService/managedClusters/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.ContainerService/managedClusters' + modulePath: 'modules/Microsoft.ContainerService/managedClusters' workflowPath: '.github/workflows/ms.containerservice.managedclusters.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.databricks.workspaces.yml b/.github/workflows/ms.databricks.workspaces.yml index b8cbfab40b..74cabd195b 100644 --- a/.github/workflows/ms.databricks.workspaces.yml +++ b/.github/workflows/ms.databricks.workspaces.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.databricks.workspaces.yml' - - 'arm/Microsoft.Databricks/workspaces/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Databricks/workspaces/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Databricks/workspaces' + modulePath: 'modules/Microsoft.Databricks/workspaces' workflowPath: '.github/workflows/ms.databricks.workspaces.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.datafactory.factories.yml b/.github/workflows/ms.datafactory.factories.yml index 5c29c4ee5d..1ae1fbb5ee 100644 --- a/.github/workflows/ms.datafactory.factories.yml +++ b/.github/workflows/ms.datafactory.factories.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.datafactory.factories.yml' - - 'arm/Microsoft.DataFactory/factories/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.DataFactory/factories/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.DataFactory/factories' + modulePath: 'modules/Microsoft.DataFactory/factories' workflowPath: '.github/workflows/ms.datafactory.factories.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.dataprotection.backupvaults.yml b/.github/workflows/ms.dataprotection.backupvaults.yml index 58e5749b5e..c56adbc3f1 100644 --- a/.github/workflows/ms.dataprotection.backupvaults.yml +++ b/.github/workflows/ms.dataprotection.backupvaults.yml @@ -1,39 +1,39 @@ -name: "DataProtection: BackupVaults" +name: 'DataProtection: BackupVaults' on: workflow_dispatch: inputs: removeDeployment: type: boolean - description: "Remove deployed module" + description: 'Remove deployed module' required: false default: true prerelease: type: boolean - description: "Publish prerelease module" + description: 'Publish prerelease module' required: false default: false push: branches: - main paths: - - ".github/actions/templates/**" - - ".github/workflows/ms.dataprotection.backupvaults.yml" - - "arm/Microsoft.DataProtection/backupVaults/**" - - "arm/.global/global.module.tests.ps1" - - "!*/**/readme.md" - - "utilities/pipelines/**" - - "!utilities/pipelines/dependencies/**" + - '.github/actions/templates/**' + - '.github/workflows/ms.dataprotection.backupvaults.yml' + - 'modules/Microsoft.DataProtection/backupVaults/**' + - 'modules/.global/global.module.tests.ps1' + - '!*/**/readme.md' + - 'utilities/pipelines/**' + - '!utilities/pipelines/dependencies/**' env: - variablesPath: "global.variables.yml" - modulePath: "arm/Microsoft.DataProtection/backupVaults" - workflowPath: ".github/workflows/ms.dataprotection.backupvaults.yml" + variablesPath: 'global.variables.yml' + modulePath: 'modules/Microsoft.DataProtection/backupVaults' + workflowPath: '.github/workflows/ms.dataprotection.backupvaults.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} - ARM_SUBSCRIPTION_ID: "${{ secrets.ARM_SUBSCRIPTION_ID }}" - ARM_MGMTGROUP_ID: "${{ secrets.ARM_MGMTGROUP_ID }}" - ARM_TENANT_ID: "${{ secrets.ARM_TENANT_ID }}" - DEPLOYMENT_SP_ID: "${{ secrets.DEPLOYMENT_SP_ID }}" + ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' + ARM_MGMTGROUP_ID: '${{ secrets.ARM_MGMTGROUP_ID }}' + ARM_TENANT_ID: '${{ secrets.ARM_TENANT_ID }}' + DEPLOYMENT_SP_ID: '${{ secrets.DEPLOYMENT_SP_ID }}' jobs: ########################### @@ -41,22 +41,22 @@ jobs: ########################### job_initialize_pipeline: runs-on: ubuntu-20.04 - name: "Initialize pipeline" + name: 'Initialize pipeline' steps: - - name: "Checkout" + - name: 'Checkout' uses: actions/checkout@v2 with: fetch-depth: 0 - - name: "Set input parameters to output variables" + - name: 'Set input parameters to output variables' id: get-workflow-param uses: ./.github/actions/templates/getWorkflowInput with: - workflowPath: "${{ env.workflowPath}}" - - name: "Get parameter file paths" + workflowPath: '${{ env.workflowPath}}' + - name: 'Get parameter file paths' id: get-parameter-file-paths uses: ./.github/actions/templates/getParameterFiles with: - modulePath: "${{ env.modulePath }}" + modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} @@ -66,23 +66,23 @@ jobs: ######################### job_module_pester_validation: runs-on: ubuntu-20.04 - name: "Static validation" + name: 'Static validation' steps: - - name: "Checkout" + - name: 'Checkout' uses: actions/checkout@v2 with: fetch-depth: 0 - - name: "Run tests" + - name: 'Run tests' uses: ./.github/actions/templates/validateModulePester with: - modulePath: "${{ env.modulePath }}" + modulePath: '${{ env.modulePath }}' ############################# # Deployment validation # ############################# job_module_deploy_validation: runs-on: ubuntu-20.04 - name: "Deployment validation" + name: 'Deployment validation' needs: - job_initialize_pipeline - job_module_pester_validation @@ -91,7 +91,7 @@ jobs: matrix: parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} steps: - - name: "Checkout" + - name: 'Checkout' uses: actions/checkout@v2 with: fetch-depth: 0 @@ -99,28 +99,28 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: "Using parameter file [${{ matrix.parameterFilePaths }}]" + - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: "${{ env.modulePath }}/deploy.bicep" - parameterFilePath: "${{ env.modulePath }}/${{ matrix.parameterFilePaths }}" - location: "${{ env.location }}" - resourceGroupName: "${{ env.resourceGroupName }}" - subscriptionId: "${{ secrets.ARM_SUBSCRIPTION_ID }}" - managementGroupId: "${{ secrets.ARM_MGMTGROUP_ID }}" - removeDeployment: "${{ needs.job_initialize_pipeline.outputs.removeDeployment }}" + templateFilePath: '${{ env.modulePath }}/deploy.bicep' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + location: '${{ env.location }}' + resourceGroupName: '${{ env.resourceGroupName }}' + subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' + managementGroupId: '${{ secrets.ARM_MGMTGROUP_ID }}' + removeDeployment: '${{ needs.job_initialize_pipeline.outputs.removeDeployment }}' ################## # Publishing # ################## job_publish_module: - name: "Publishing" + name: 'Publishing' if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master' || github.event.inputs.prerelease == 'true' runs-on: ubuntu-20.04 needs: - job_module_deploy_validation steps: - - name: "Checkout" + - name: 'Checkout' uses: actions/checkout@v2 with: fetch-depth: 0 @@ -128,15 +128,15 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: "Publishing" + - name: 'Publishing' uses: ./.github/actions/templates/publishModule with: - templateFilePath: "${{ env.modulePath }}/deploy.bicep" - templateSpecsRGName: "${{ env.templateSpecsRGName }}" - templateSpecsRGLocation: "${{ env.templateSpecsRGLocation }}" - templateSpecsDescription: "${{ env.templateSpecsDescription }}" - templateSpecsDoPublish: "${{ env.templateSpecsDoPublish }}" - bicepRegistryName: "${{ env.bicepRegistryName }}" - bicepRegistryRGName: "${{ env.bicepRegistryRGName }}" - bicepRegistryRgLocation: "${{ env.bicepRegistryRgLocation }}" - bicepRegistryDoPublish: "${{ env.bicepRegistryDoPublish }}" \ No newline at end of file + templateFilePath: '${{ env.modulePath }}/deploy.bicep' + templateSpecsRGName: '${{ env.templateSpecsRGName }}' + templateSpecsRGLocation: '${{ env.templateSpecsRGLocation }}' + templateSpecsDescription: '${{ env.templateSpecsDescription }}' + templateSpecsDoPublish: '${{ env.templateSpecsDoPublish }}' + bicepRegistryName: '${{ env.bicepRegistryName }}' + bicepRegistryRGName: '${{ env.bicepRegistryRGName }}' + bicepRegistryRgLocation: '${{ env.bicepRegistryRgLocation }}' + bicepRegistryDoPublish: '${{ env.bicepRegistryDoPublish }}' diff --git a/.github/workflows/ms.desktopvirtualization.applicationgroups.yml b/.github/workflows/ms.desktopvirtualization.applicationgroups.yml index 33ce312ca1..08233297a9 100644 --- a/.github/workflows/ms.desktopvirtualization.applicationgroups.yml +++ b/.github/workflows/ms.desktopvirtualization.applicationgroups.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.desktopvirtualization.applicationgroups.yml' - - 'arm/Microsoft.DesktopVirtualization/applicationgroups/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.DesktopVirtualization/applicationgroups/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.DesktopVirtualization/applicationgroups' + modulePath: 'modules/Microsoft.DesktopVirtualization/applicationgroups' workflowPath: '.github/workflows/ms.desktopvirtualization.applicationgroups.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.desktopvirtualization.hostpools.yml b/.github/workflows/ms.desktopvirtualization.hostpools.yml index 32848ee2b7..e9467fc5f2 100644 --- a/.github/workflows/ms.desktopvirtualization.hostpools.yml +++ b/.github/workflows/ms.desktopvirtualization.hostpools.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.desktopvirtualization.hostpools.yml' - - 'arm/Microsoft.DesktopVirtualization/hostpools/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.DesktopVirtualization/hostpools/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.DesktopVirtualization/hostpools' + modulePath: 'modules/Microsoft.DesktopVirtualization/hostpools' workflowPath: '.github/workflows/ms.desktopvirtualization.hostpools.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.desktopvirtualization.scalingplans.yml b/.github/workflows/ms.desktopvirtualization.scalingplans.yml index fab5ecae6b..2be99b6d5c 100644 --- a/.github/workflows/ms.desktopvirtualization.scalingplans.yml +++ b/.github/workflows/ms.desktopvirtualization.scalingplans.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.desktopvirtualization.scalingplans.yml' - - 'arm/Microsoft.DesktopVirtualization/scalingplans/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.DesktopVirtualization/scalingplans/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.DesktopVirtualization/scalingplans' + modulePath: 'modules/Microsoft.DesktopVirtualization/scalingplans' workflowPath: '.github/workflows/ms.desktopvirtualization.scalingplans.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.desktopvirtualization.workspaces.yml b/.github/workflows/ms.desktopvirtualization.workspaces.yml index 7cfaa3e7be..c5598aa7af 100644 --- a/.github/workflows/ms.desktopvirtualization.workspaces.yml +++ b/.github/workflows/ms.desktopvirtualization.workspaces.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.desktopvirtualization.workspaces.yml' - - 'arm/Microsoft.DesktopVirtualization/workspaces/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.DesktopVirtualization/workspaces/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.DesktopVirtualization/workspaces' + modulePath: 'modules/Microsoft.DesktopVirtualization/workspaces' workflowPath: '.github/workflows/ms.desktopvirtualization.workspaces.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.documentdb.databaseaccounts.yml b/.github/workflows/ms.documentdb.databaseaccounts.yml index c61a97e61d..bf98c479d8 100644 --- a/.github/workflows/ms.documentdb.databaseaccounts.yml +++ b/.github/workflows/ms.documentdb.databaseaccounts.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.documentdb.databaseaccounts.yml' - - 'arm/Microsoft.DocumentDB/databaseAccounts/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.DocumentDB/databaseAccounts/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.DocumentDB/databaseAccounts' + modulePath: 'modules/Microsoft.DocumentDB/databaseAccounts' workflowPath: '.github/workflows/ms.documentdb.databaseaccounts.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.eventgrid.systemtopics.yml b/.github/workflows/ms.eventgrid.systemtopics.yml index 27a694db1f..f4f5ab3a06 100644 --- a/.github/workflows/ms.eventgrid.systemtopics.yml +++ b/.github/workflows/ms.eventgrid.systemtopics.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.eventgrid.systemtopics.yml' - - 'arm/Microsoft.EventGrid/systemTopics/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.EventGrid/systemTopics/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.EventGrid/systemTopics' + modulePath: 'modules/Microsoft.EventGrid/systemTopics' workflowPath: '.github/workflows/ms.eventgrid.systemtopics.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.eventgrid.topics.yml b/.github/workflows/ms.eventgrid.topics.yml index 84cc1e4c19..16a7384c71 100644 --- a/.github/workflows/ms.eventgrid.topics.yml +++ b/.github/workflows/ms.eventgrid.topics.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.eventgrid.topics.yml' - - 'arm/Microsoft.EventGrid/topics/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.EventGrid/topics/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.EventGrid/topics' + modulePath: 'modules/Microsoft.EventGrid/topics' workflowPath: '.github/workflows/ms.eventgrid.topics.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.eventhub.namespaces.yml b/.github/workflows/ms.eventhub.namespaces.yml index a7582951bc..1a75f805fe 100644 --- a/.github/workflows/ms.eventhub.namespaces.yml +++ b/.github/workflows/ms.eventhub.namespaces.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.eventhub.namespaces.yml' - - 'arm/Microsoft.EventHub/namespaces/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.EventHub/namespaces/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.EventHub/namespaces' + modulePath: 'modules/Microsoft.EventHub/namespaces' workflowPath: '.github/workflows/ms.eventhub.namespaces.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.healthbot.healthbots.yml b/.github/workflows/ms.healthbot.healthbots.yml index 59e4f32200..43530361a9 100644 --- a/.github/workflows/ms.healthbot.healthbots.yml +++ b/.github/workflows/ms.healthbot.healthbots.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.healthbot.healthbots.yml' - - 'arm/Microsoft.HealthBot/healthBots/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.HealthBot/healthBots/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.HealthBot/healthBots' + modulePath: 'modules/Microsoft.HealthBot/healthBots' workflowPath: '.github/workflows/ms.healthbot.healthbots.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.insights.actiongroups.yml b/.github/workflows/ms.insights.actiongroups.yml index b9758fd8aa..d388901c80 100644 --- a/.github/workflows/ms.insights.actiongroups.yml +++ b/.github/workflows/ms.insights.actiongroups.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.insights.actiongroups.yml' - - 'arm/Microsoft.Insights/actionGroups/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Insights/actionGroups/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Insights/actionGroups' + modulePath: 'modules/Microsoft.Insights/actionGroups' workflowPath: '.github/workflows/ms.insights.actiongroups.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.insights.activitylogalerts.yml b/.github/workflows/ms.insights.activitylogalerts.yml index 3f1f01f514..97e287c8fd 100644 --- a/.github/workflows/ms.insights.activitylogalerts.yml +++ b/.github/workflows/ms.insights.activitylogalerts.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.insights.activitylogalerts.yml' - - 'arm/Microsoft.Insights/activityLogAlerts/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Insights/activityLogAlerts/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Insights/activityLogAlerts' + modulePath: 'modules/Microsoft.Insights/activityLogAlerts' workflowPath: '.github/workflows/ms.insights.activitylogalerts.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.insights.components.yml b/.github/workflows/ms.insights.components.yml index ed559d1c8e..ad8569778e 100644 --- a/.github/workflows/ms.insights.components.yml +++ b/.github/workflows/ms.insights.components.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.insights.components.yml' - - 'arm/Microsoft.Insights/components/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Insights/components/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Insights/components' + modulePath: 'modules/Microsoft.Insights/components' workflowPath: '.github/workflows/ms.insights.components.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.insights.diagnosticsettings.yml b/.github/workflows/ms.insights.diagnosticsettings.yml index b49863642c..556e6d95af 100644 --- a/.github/workflows/ms.insights.diagnosticsettings.yml +++ b/.github/workflows/ms.insights.diagnosticsettings.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.insights.diagnosticsettings.yml' - - 'arm/Microsoft.Insights/diagnosticsettings/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Insights/diagnosticsettings/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Insights/diagnosticSettings' + modulePath: 'modules/Microsoft.Insights/diagnosticSettings' workflowPath: '.github/workflows/ms.insights.diagnosticsettings.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.insights.metricalerts.yml b/.github/workflows/ms.insights.metricalerts.yml index 7f4e64a2b7..c238711b06 100644 --- a/.github/workflows/ms.insights.metricalerts.yml +++ b/.github/workflows/ms.insights.metricalerts.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.insights.metricalerts.yml' - - 'arm/Microsoft.Insights/metricAlerts/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Insights/metricAlerts/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Insights/metricAlerts' + modulePath: 'modules/Microsoft.Insights/metricAlerts' workflowPath: '.github/workflows/ms.insights.metricalerts.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.insights.privatelinkscopes.yml b/.github/workflows/ms.insights.privatelinkscopes.yml index 35e362059b..c342b41a94 100644 --- a/.github/workflows/ms.insights.privatelinkscopes.yml +++ b/.github/workflows/ms.insights.privatelinkscopes.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.insights.privatelinkscopes.yml' - - 'arm/Microsoft.Insights/privateLinkScopes/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Insights/privateLinkScopes/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Insights/privateLinkScopes' + modulePath: 'modules/Microsoft.Insights/privateLinkScopes' workflowPath: '.github/workflows/ms.insights.privatelinkscopes.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.insights.scheduledqueryrules.yml b/.github/workflows/ms.insights.scheduledqueryrules.yml index 3ac293149b..f94d3e3fe9 100644 --- a/.github/workflows/ms.insights.scheduledqueryrules.yml +++ b/.github/workflows/ms.insights.scheduledqueryrules.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.insights.scheduledqueryrules.yml' - - 'arm/Microsoft.Insights/scheduledQueryRules/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Insights/scheduledQueryRules/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Insights/scheduledQueryRules' + modulePath: 'modules/Microsoft.Insights/scheduledQueryRules' workflowPath: '.github/workflows/ms.insights.scheduledqueryrules.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.keyvault.vaults.yml b/.github/workflows/ms.keyvault.vaults.yml index a428a0e48a..1067ceab94 100644 --- a/.github/workflows/ms.keyvault.vaults.yml +++ b/.github/workflows/ms.keyvault.vaults.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.keyvault.vaults.yml' - - 'arm/Microsoft.KeyVault/vaults/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.KeyVault/vaults/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.KeyVault/vaults' + modulePath: 'modules/Microsoft.KeyVault/vaults' workflowPath: '.github/workflows/ms.keyvault.vaults.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.kubernetesconfiguration.extensions.yml b/.github/workflows/ms.kubernetesconfiguration.extensions.yml index cb6c3b7664..03163a781c 100644 --- a/.github/workflows/ms.kubernetesconfiguration.extensions.yml +++ b/.github/workflows/ms.kubernetesconfiguration.extensions.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.kubernetesconfiguration.extensions.yml' - - 'arm/Microsoft.KubernetesConfiguration/extensions/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.KubernetesConfiguration/extensions/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.KubernetesConfiguration/extensions' + modulePath: 'modules/Microsoft.KubernetesConfiguration/extensions' workflowPath: '.github/workflows/ms.kubernetesconfiguration.extensions.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.kubernetesconfiguration.fluxconfigurations.yml b/.github/workflows/ms.kubernetesconfiguration.fluxconfigurations.yml index 47ec3b2fc6..9d6e7ae21c 100644 --- a/.github/workflows/ms.kubernetesconfiguration.fluxconfigurations.yml +++ b/.github/workflows/ms.kubernetesconfiguration.fluxconfigurations.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.kubernetesconfiguration.fluxconfigurations.yml' - - 'arm/Microsoft.KubernetesConfiguration/fluxConfigurations/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.KubernetesConfiguration/fluxConfigurations/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.KubernetesConfiguration/fluxConfigurations' + modulePath: 'modules/Microsoft.KubernetesConfiguration/fluxConfigurations' workflowPath: '.github/workflows/ms.kubernetesconfiguration.fluxconfigurations.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.logic.workflows.yml b/.github/workflows/ms.logic.workflows.yml index 03e09b6410..19a4d65ea3 100644 --- a/.github/workflows/ms.logic.workflows.yml +++ b/.github/workflows/ms.logic.workflows.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.logic.workflows.yml' - - 'arm/Microsoft.Logic/workflows/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Logic/workflows/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Logic/workflows' + modulePath: 'modules/Microsoft.Logic/workflows' workflowPath: '.github/workflows/ms.logic.workflows.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.machinelearningservices.workspaces.yml b/.github/workflows/ms.machinelearningservices.workspaces.yml index aab2efcaeb..5df607c47b 100644 --- a/.github/workflows/ms.machinelearningservices.workspaces.yml +++ b/.github/workflows/ms.machinelearningservices.workspaces.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.machinelearningservices.workspaces.yml' - - 'arm/Microsoft.MachineLearningServices/workspaces/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.MachineLearningServices/workspaces/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.MachineLearningServices/workspaces' + modulePath: 'modules/Microsoft.MachineLearningServices/workspaces' workflowPath: '.github/workflows/ms.machinelearningservices.workspaces.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.managedidentity.userassignedidentities.yml b/.github/workflows/ms.managedidentity.userassignedidentities.yml index e85f71f65a..d0c233a4c4 100644 --- a/.github/workflows/ms.managedidentity.userassignedidentities.yml +++ b/.github/workflows/ms.managedidentity.userassignedidentities.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.managedidentity.userassignedidentities.yml' - - 'arm/Microsoft.ManagedIdentity/userAssignedIdentities/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.ManagedIdentity/userAssignedIdentities/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.ManagedIdentity/userAssignedIdentities' + modulePath: 'modules/Microsoft.ManagedIdentity/userAssignedIdentities' workflowPath: '.github/workflows/ms.managedidentity.userassignedidentities.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.managedservices.registrationdefinitions.yml b/.github/workflows/ms.managedservices.registrationdefinitions.yml index 174cdf5a4d..9825845d2a 100644 --- a/.github/workflows/ms.managedservices.registrationdefinitions.yml +++ b/.github/workflows/ms.managedservices.registrationdefinitions.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.managedservices.registrationdefinitions.yml' - - 'arm/Microsoft.ManagedServices/registrationDefinitions/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.ManagedServices/registrationDefinitions/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.ManagedServices/registrationDefinitions' + modulePath: 'modules/Microsoft.ManagedServices/registrationDefinitions' workflowPath: '.github/workflows/ms.managedservices.registrationdefinitions.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.management.managementgroups.yml b/.github/workflows/ms.management.managementgroups.yml index 00860c6205..ff7edf7a55 100644 --- a/.github/workflows/ms.management.managementgroups.yml +++ b/.github/workflows/ms.management.managementgroups.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.management.managementgroups.yml' - - 'arm/Microsoft.Management/managementGroups/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Management/managementGroups/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Management/managementGroups' + modulePath: 'modules/Microsoft.Management/managementGroups' workflowPath: '.github/workflows/ms.management.managementgroups.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.netapp.netappaccounts.yml b/.github/workflows/ms.netapp.netappaccounts.yml index 0aa8dc46b1..0c1aa8555b 100644 --- a/.github/workflows/ms.netapp.netappaccounts.yml +++ b/.github/workflows/ms.netapp.netappaccounts.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.netapp.netappaccounts.yml' - - 'arm/Microsoft.NetApp/netAppAccounts/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.NetApp/netAppAccounts/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.NetApp/netAppAccounts' + modulePath: 'modules/Microsoft.NetApp/netAppAccounts' workflowPath: '.github/workflows/ms.netapp.netappaccounts.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.applicationgateways.yml b/.github/workflows/ms.network.applicationgateways.yml index 4e8aa732e5..930f387bce 100644 --- a/.github/workflows/ms.network.applicationgateways.yml +++ b/.github/workflows/ms.network.applicationgateways.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.applicationgateways.yml' - - 'arm/Microsoft.Network/applicationGateways/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/applicationGateways/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/applicationGateways' + modulePath: 'modules/Microsoft.Network/applicationGateways' workflowPath: '.github/workflows/ms.network.applicationgateways.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.applicationsecuritygroups.yml b/.github/workflows/ms.network.applicationsecuritygroups.yml index a4f3df798d..49f9bb3071 100644 --- a/.github/workflows/ms.network.applicationsecuritygroups.yml +++ b/.github/workflows/ms.network.applicationsecuritygroups.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.applicationsecuritygroups.yml' - - 'arm/Microsoft.Network/applicationSecurityGroups/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/applicationSecurityGroups/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/applicationSecurityGroups' + modulePath: 'modules/Microsoft.Network/applicationSecurityGroups' workflowPath: '.github/workflows/ms.network.applicationsecuritygroups.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.azurefirewalls.yml b/.github/workflows/ms.network.azurefirewalls.yml index 93bffd1e5b..2de448b7af 100644 --- a/.github/workflows/ms.network.azurefirewalls.yml +++ b/.github/workflows/ms.network.azurefirewalls.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.azurefirewalls.yml' - - 'arm/Microsoft.Network/azureFirewalls/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/azureFirewalls/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/azureFirewalls' + modulePath: 'modules/Microsoft.Network/azureFirewalls' workflowPath: '.github/workflows/ms.network.azurefirewalls.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.bastionhosts.yml b/.github/workflows/ms.network.bastionhosts.yml index 4737fe021a..7bb3d48b6a 100644 --- a/.github/workflows/ms.network.bastionhosts.yml +++ b/.github/workflows/ms.network.bastionhosts.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.bastionhosts.yml' - - 'arm/Microsoft.Network/bastionHosts/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/bastionHosts/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/bastionHosts' + modulePath: 'modules/Microsoft.Network/bastionHosts' workflowPath: '.github/workflows/ms.network.bastionhosts.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.connections.yml b/.github/workflows/ms.network.connections.yml index e37af7123d..76bb4cd9bd 100644 --- a/.github/workflows/ms.network.connections.yml +++ b/.github/workflows/ms.network.connections.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.connections.yml' - - 'arm/Microsoft.Network/connections/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/connections/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/connections' + modulePath: 'modules/Microsoft.Network/connections' workflowPath: '.github/workflows/ms.network.connections.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.ddosprotectionplans.yml b/.github/workflows/ms.network.ddosprotectionplans.yml index 0f83af3940..4582c415a7 100644 --- a/.github/workflows/ms.network.ddosprotectionplans.yml +++ b/.github/workflows/ms.network.ddosprotectionplans.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.ddosprotectionplans.yml' - - 'arm/Microsoft.Network/ddosProtectionPlans/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/ddosProtectionPlans/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/ddosProtectionPlans' + modulePath: 'modules/Microsoft.Network/ddosProtectionPlans' workflowPath: '.github/workflows/ms.network.ddosprotectionplans.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.expressroutecircuits.yml b/.github/workflows/ms.network.expressroutecircuits.yml index a8bc58510a..4f1d1c87f1 100644 --- a/.github/workflows/ms.network.expressroutecircuits.yml +++ b/.github/workflows/ms.network.expressroutecircuits.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.expressroutecircuits.yml' - - 'arm/Microsoft.Network/expressRouteCircuits/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/expressRouteCircuits/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/expressRouteCircuits' + modulePath: 'modules/Microsoft.Network/expressRouteCircuits' workflowPath: '.github/workflows/ms.network.expressroutecircuits.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.firewallpolicies.yml b/.github/workflows/ms.network.firewallpolicies.yml index 6137b0212f..fab9e32a34 100644 --- a/.github/workflows/ms.network.firewallpolicies.yml +++ b/.github/workflows/ms.network.firewallpolicies.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.firewallpolicies.yml' - - 'arm/Microsoft.Network/firewallPolicies/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/firewallPolicies/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/firewallPolicies' + modulePath: 'modules/Microsoft.Network/firewallPolicies' workflowPath: '.github/workflows/ms.network.firewallpolicies.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.frontdoors.yml b/.github/workflows/ms.network.frontdoors.yml index 5e511cae0b..65d1960ddc 100644 --- a/.github/workflows/ms.network.frontdoors.yml +++ b/.github/workflows/ms.network.frontdoors.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.frontdoors.yml' - - 'arm/Microsoft.Network/frontDoors/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/frontDoors/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/frontDoors' + modulePath: 'modules/Microsoft.Network/frontDoors' workflowPath: '.github/workflows/ms.network.frontdoors.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.ipgroups.yml b/.github/workflows/ms.network.ipgroups.yml index 3a13b6d30b..c2e71a6c59 100644 --- a/.github/workflows/ms.network.ipgroups.yml +++ b/.github/workflows/ms.network.ipgroups.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.ipgroups.yml' - - 'arm/Microsoft.Network/ipGroups/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/ipGroups/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/ipGroups' + modulePath: 'modules/Microsoft.Network/ipGroups' workflowPath: '.github/workflows/ms.network.ipgroups.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.loadbalancers.yml b/.github/workflows/ms.network.loadbalancers.yml index 3d23e74394..6eb3b3acf4 100644 --- a/.github/workflows/ms.network.loadbalancers.yml +++ b/.github/workflows/ms.network.loadbalancers.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.loadbalancers.yml' - - 'arm/Microsoft.Network/loadBalancers/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/loadBalancers/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/loadBalancers' + modulePath: 'modules/Microsoft.Network/loadBalancers' workflowPath: '.github/workflows/ms.network.loadbalancers.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.localnetworkgateways.yml b/.github/workflows/ms.network.localnetworkgateways.yml index be05683a4b..704d6dc29c 100644 --- a/.github/workflows/ms.network.localnetworkgateways.yml +++ b/.github/workflows/ms.network.localnetworkgateways.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.localnetworkgateways.yml' - - 'arm/Microsoft.Network/localNetworkGateways/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/localNetworkGateways/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/localNetworkGateways' + modulePath: 'modules/Microsoft.Network/localNetworkGateways' workflowPath: '.github/workflows/ms.network.localnetworkgateways.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.natgateways.yml b/.github/workflows/ms.network.natgateways.yml index ebdd539815..fd3b0b0f4c 100644 --- a/.github/workflows/ms.network.natgateways.yml +++ b/.github/workflows/ms.network.natgateways.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.natgateways.yml' - - 'arm/Microsoft.Network/natGateways/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/natGateways/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/natGateways' + modulePath: 'modules/Microsoft.Network/natGateways' workflowPath: '.github/workflows/ms.network.natgateways.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.networkinterfaces.yml b/.github/workflows/ms.network.networkinterfaces.yml index feda3575e3..3351651662 100644 --- a/.github/workflows/ms.network.networkinterfaces.yml +++ b/.github/workflows/ms.network.networkinterfaces.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.networkinterfaces.yml' - - 'arm/Microsoft.Network/networkInterfaces/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/networkInterfaces/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/networkInterfaces' + modulePath: 'modules/Microsoft.Network/networkInterfaces' workflowPath: '.github/workflows/ms.network.networkinterfaces.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.networksecuritygroups.yml b/.github/workflows/ms.network.networksecuritygroups.yml index 186a49f9c6..ec4143097d 100644 --- a/.github/workflows/ms.network.networksecuritygroups.yml +++ b/.github/workflows/ms.network.networksecuritygroups.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.networksecuritygroups.yml' - - 'arm/Microsoft.Network/networkSecurityGroups/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/networkSecurityGroups/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/networkSecurityGroups' + modulePath: 'modules/Microsoft.Network/networkSecurityGroups' workflowPath: '.github/workflows/ms.network.networksecuritygroups.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.networkwatchers.yml b/.github/workflows/ms.network.networkwatchers.yml index 3728a63e58..1f1773ba2e 100644 --- a/.github/workflows/ms.network.networkwatchers.yml +++ b/.github/workflows/ms.network.networkwatchers.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.networkwatchers.yml' - - 'arm/Microsoft.Network/networkWatchers/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/networkWatchers/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/networkWatchers' + modulePath: 'modules/Microsoft.Network/networkWatchers' workflowPath: '.github/workflows/ms.network.networkwatchers.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.privatednszones.yml b/.github/workflows/ms.network.privatednszones.yml index 3afa12980f..5186987b00 100644 --- a/.github/workflows/ms.network.privatednszones.yml +++ b/.github/workflows/ms.network.privatednszones.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.privatednszones.yml' - - 'arm/Microsoft.Network/privateDnsZones/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/privateDnsZones/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/privateDnsZones' + modulePath: 'modules/Microsoft.Network/privateDnsZones' workflowPath: '.github/workflows/ms.network.privatednszones.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.privateendpoints.yml b/.github/workflows/ms.network.privateendpoints.yml index 06132ed4a2..b7fed464dd 100644 --- a/.github/workflows/ms.network.privateendpoints.yml +++ b/.github/workflows/ms.network.privateendpoints.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.privateendpoints.yml' - - 'arm/Microsoft.Network/privateEndpoints/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/privateEndpoints/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/privateEndpoints' + modulePath: 'modules/Microsoft.Network/privateEndpoints' workflowPath: '.github/workflows/ms.network.privateendpoints.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.publicipaddresses.yml b/.github/workflows/ms.network.publicipaddresses.yml index ff2e212f7b..b1e9fbcc11 100644 --- a/.github/workflows/ms.network.publicipaddresses.yml +++ b/.github/workflows/ms.network.publicipaddresses.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.publicipaddresses.yml' - - 'arm/Microsoft.Network/publicIPAddresses/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/publicIPAddresses/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/publicIPAddresses' + modulePath: 'modules/Microsoft.Network/publicIPAddresses' workflowPath: '.github/workflows/ms.network.publicipaddresses.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.publicipprefixes.yml b/.github/workflows/ms.network.publicipprefixes.yml index 7ee726e778..714bc5bdb2 100644 --- a/.github/workflows/ms.network.publicipprefixes.yml +++ b/.github/workflows/ms.network.publicipprefixes.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.publicipprefixes.yml' - - 'arm/Microsoft.Network/publicIPPrefixes/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/publicIPPrefixes/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/publicIPPrefixes' + modulePath: 'modules/Microsoft.Network/publicIPPrefixes' workflowPath: '.github/workflows/ms.network.publicipprefixes.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.routetables.yml b/.github/workflows/ms.network.routetables.yml index c64d0c4b61..9f4bb512c4 100644 --- a/.github/workflows/ms.network.routetables.yml +++ b/.github/workflows/ms.network.routetables.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.routetables.yml' - - 'arm/Microsoft.Network/routeTables/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/routeTables/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/routeTables' + modulePath: 'modules/Microsoft.Network/routeTables' workflowPath: '.github/workflows/ms.network.routetables.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.trafficmanagerprofiles.yml b/.github/workflows/ms.network.trafficmanagerprofiles.yml index 38e8f66a8c..d1a0a6b561 100644 --- a/.github/workflows/ms.network.trafficmanagerprofiles.yml +++ b/.github/workflows/ms.network.trafficmanagerprofiles.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.trafficmanagerprofiles.yml' - - 'arm/Microsoft.Network/trafficmanagerprofiles/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/trafficmanagerprofiles/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/trafficmanagerprofiles' + modulePath: 'modules/Microsoft.Network/trafficmanagerprofiles' workflowPath: '.github/workflows/ms.network.trafficmanagerprofiles.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.virtualhubs.yml b/.github/workflows/ms.network.virtualhubs.yml index cf5d3d8db7..9e2221dff4 100644 --- a/.github/workflows/ms.network.virtualhubs.yml +++ b/.github/workflows/ms.network.virtualhubs.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.virtualhubs.yml' - - 'arm/Microsoft.Network/virtualHubs/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/virtualHubs/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/virtualHubs' + modulePath: 'modules/Microsoft.Network/virtualHubs' workflowPath: '.github/workflows/ms.network.virtualhubs.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.virtualnetworkgateways.yml b/.github/workflows/ms.network.virtualnetworkgateways.yml index d0ad36a1fa..a96f19b58f 100644 --- a/.github/workflows/ms.network.virtualnetworkgateways.yml +++ b/.github/workflows/ms.network.virtualnetworkgateways.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.virtualnetworkgateways.yml' - - 'arm/Microsoft.Network/virtualNetworkGateways/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/virtualNetworkGateways/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/virtualNetworkGateways' + modulePath: 'modules/Microsoft.Network/virtualNetworkGateways' workflowPath: '.github/workflows/ms.network.virtualnetworkgateways.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.virtualnetworks.yml b/.github/workflows/ms.network.virtualnetworks.yml index b1445fc3ce..8ffde5c19e 100644 --- a/.github/workflows/ms.network.virtualnetworks.yml +++ b/.github/workflows/ms.network.virtualnetworks.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.virtualnetworks.yml' - - 'arm/Microsoft.Network/virtualNetworks/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/virtualNetworks/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/virtualNetworks' + modulePath: 'modules/Microsoft.Network/virtualNetworks' workflowPath: '.github/workflows/ms.network.virtualnetworks.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.virtualwans.yml b/.github/workflows/ms.network.virtualwans.yml index af84aa61d6..911e6fe50a 100644 --- a/.github/workflows/ms.network.virtualwans.yml +++ b/.github/workflows/ms.network.virtualwans.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.virtualwans.yml' - - 'arm/Microsoft.Network/virtualWans/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/virtualWans/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/virtualWans' + modulePath: 'modules/Microsoft.Network/virtualWans' workflowPath: '.github/workflows/ms.network.virtualwans.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.vpngateways.yml b/.github/workflows/ms.network.vpngateways.yml index a478903089..2fb8cc1797 100644 --- a/.github/workflows/ms.network.vpngateways.yml +++ b/.github/workflows/ms.network.vpngateways.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.vpngateways.yml' - - 'arm/Microsoft.Network/vpnGateways/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/vpnGateways/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/vpnGateways' + modulePath: 'modules/Microsoft.Network/vpnGateways' workflowPath: '.github/workflows/ms.network.vpngateways.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.vpnsites.yml b/.github/workflows/ms.network.vpnsites.yml index fb0f8c8d3f..b72ddae6e1 100644 --- a/.github/workflows/ms.network.vpnsites.yml +++ b/.github/workflows/ms.network.vpnsites.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.network.vpnsites.yml' - - 'arm/Microsoft.Network/vpnSites/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Network/vpnSites/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Network/vpnSites' + modulePath: 'modules/Microsoft.Network/vpnSites' workflowPath: '.github/workflows/ms.network.vpnsites.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.operationalinsights.workspaces.yml b/.github/workflows/ms.operationalinsights.workspaces.yml index 9ddfc177f5..fd0c3c685a 100644 --- a/.github/workflows/ms.operationalinsights.workspaces.yml +++ b/.github/workflows/ms.operationalinsights.workspaces.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.operationalinsights.workspaces.yml' - - 'arm/Microsoft.OperationalInsights/workspaces/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.OperationalInsights/workspaces/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.OperationalInsights/workspaces' + modulePath: 'modules/Microsoft.OperationalInsights/workspaces' workflowPath: '.github/workflows/ms.operationalinsights.workspaces.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.operationsmanagement.solutions.yml b/.github/workflows/ms.operationsmanagement.solutions.yml index db74fec086..da92a74b21 100644 --- a/.github/workflows/ms.operationsmanagement.solutions.yml +++ b/.github/workflows/ms.operationsmanagement.solutions.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.operationsmanagement.solutions.yml' - - 'arm/Microsoft.OperationsManagement/solutions/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.OperationsManagement/solutions/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.OperationsManagement/solutions' + modulePath: 'modules/Microsoft.OperationsManagement/solutions' workflowPath: '.github/workflows/ms.operationsmanagement.solutions.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.recoveryservices.vaults.yml b/.github/workflows/ms.recoveryservices.vaults.yml index 15e09441c3..275e0498de 100644 --- a/.github/workflows/ms.recoveryservices.vaults.yml +++ b/.github/workflows/ms.recoveryservices.vaults.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.recoveryservices.vaults.yml' - - 'arm/Microsoft.RecoveryServices/vaults/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.RecoveryServices/vaults/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.RecoveryServices/vaults' + modulePath: 'modules/Microsoft.RecoveryServices/vaults' workflowPath: '.github/workflows/ms.recoveryservices.vaults.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.resources.deploymentscripts.yml b/.github/workflows/ms.resources.deploymentscripts.yml index 967b05e4b9..32b6b0f767 100644 --- a/.github/workflows/ms.resources.deploymentscripts.yml +++ b/.github/workflows/ms.resources.deploymentscripts.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.resources.deploymentscripts.yml' - - 'arm/Microsoft.Resources/deploymentScripts/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Resources/deploymentScripts/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Resources/deploymentScripts' + modulePath: 'modules/Microsoft.Resources/deploymentScripts' workflowPath: '.github/workflows/ms.resources.deploymentscripts.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.resources.resourcegroups.yml b/.github/workflows/ms.resources.resourcegroups.yml index 392cd5740b..60de42f8b8 100644 --- a/.github/workflows/ms.resources.resourcegroups.yml +++ b/.github/workflows/ms.resources.resourcegroups.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.resources.resourcegroups.yml' - - 'arm/Microsoft.Resources/resourceGroups/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Resources/resourceGroups/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Resources/resourceGroups' + modulePath: 'modules/Microsoft.Resources/resourceGroups' workflowPath: '.github/workflows/ms.resources.resourcegroups.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.resources.tags.yml b/.github/workflows/ms.resources.tags.yml index c35776cb2d..fb54367126 100644 --- a/.github/workflows/ms.resources.tags.yml +++ b/.github/workflows/ms.resources.tags.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.resources.tags.yml' - - 'arm/Microsoft.Resources/tags/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Resources/tags/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Resources/tags' + modulePath: 'modules/Microsoft.Resources/tags' workflowPath: '.github/workflows/ms.resources.tags.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.security.azuresecuritycenter.yml b/.github/workflows/ms.security.azuresecuritycenter.yml index 0eab54dc73..bca0ebedff 100644 --- a/.github/workflows/ms.security.azuresecuritycenter.yml +++ b/.github/workflows/ms.security.azuresecuritycenter.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.security.azuresecuritycenter.yml' - - 'arm/Microsoft.Security/azureSecurityCenter/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Security/azureSecurityCenter/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Security/azureSecurityCenter' + modulePath: 'modules/Microsoft.Security/azureSecurityCenter' workflowPath: '.github/workflows/ms.security.azuresecuritycenter.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.servicebus.namespaces.yml b/.github/workflows/ms.servicebus.namespaces.yml index e290a78302..fb84ab7ccd 100644 --- a/.github/workflows/ms.servicebus.namespaces.yml +++ b/.github/workflows/ms.servicebus.namespaces.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.servicebus.namespaces.yml' - - 'arm/Microsoft.ServiceBus/namespaces/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.ServiceBus/namespaces/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.ServiceBus/namespaces' + modulePath: 'modules/Microsoft.ServiceBus/namespaces' workflowPath: '.github/workflows/ms.servicebus.namespaces.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.servicefabric.clusters.yml b/.github/workflows/ms.servicefabric.clusters.yml index d53258695c..9895c4f192 100644 --- a/.github/workflows/ms.servicefabric.clusters.yml +++ b/.github/workflows/ms.servicefabric.clusters.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.servicefabric.clusters.yml' - - 'arm/Microsoft.ServiceFabric/clusters/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.ServiceFabric/clusters/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.ServiceFabric/clusters' + modulePath: 'modules/Microsoft.ServiceFabric/clusters' workflowPath: '.github/workflows/ms.servicefabric.clusters.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.sql.managedinstances.yml b/.github/workflows/ms.sql.managedinstances.yml index 70cacaaaaf..e3c6df7041 100644 --- a/.github/workflows/ms.sql.managedinstances.yml +++ b/.github/workflows/ms.sql.managedinstances.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.sql.managedinstances.yml' - - 'arm/Microsoft.Sql/managedInstances/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Sql/managedInstances/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Sql/managedInstances' + modulePath: 'modules/Microsoft.Sql/managedInstances' workflowPath: '.github/workflows/ms.sql.managedinstances.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.sql.servers.yml b/.github/workflows/ms.sql.servers.yml index c2b15642ee..61623e9bfb 100644 --- a/.github/workflows/ms.sql.servers.yml +++ b/.github/workflows/ms.sql.servers.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.sql.servers.yml' - - 'arm/Microsoft.Sql/servers/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Sql/servers/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Sql/servers' + modulePath: 'modules/Microsoft.Sql/servers' workflowPath: '.github/workflows/ms.sql.servers.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.storage.storageaccounts.yml b/.github/workflows/ms.storage.storageaccounts.yml index 25ca93d427..dfd7c811fc 100644 --- a/.github/workflows/ms.storage.storageaccounts.yml +++ b/.github/workflows/ms.storage.storageaccounts.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.storage.storageaccounts.yml' - - 'arm/Microsoft.Storage/storageAccounts/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Storage/storageAccounts/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Storage/storageAccounts' + modulePath: 'modules/Microsoft.Storage/storageAccounts' workflowPath: '.github/workflows/ms.storage.storageaccounts.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.synapse.privatelinkhubs.yml b/.github/workflows/ms.synapse.privatelinkhubs.yml index 7c70983ae5..d0287ac8d3 100644 --- a/.github/workflows/ms.synapse.privatelinkhubs.yml +++ b/.github/workflows/ms.synapse.privatelinkhubs.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.synapse.privatelinkhubs.yml' - - 'arm/Microsoft.Synapse/privateLinkHubs/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Synapse/privateLinkHubs/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Synapse/privateLinkHubs' + modulePath: 'modules/Microsoft.Synapse/privateLinkHubs' workflowPath: '.github/workflows/ms.synapse.privatelinkhubs.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.virtualmachineimages.imagetemplates.yml b/.github/workflows/ms.virtualmachineimages.imagetemplates.yml index 1a586bcf64..7d1c122891 100644 --- a/.github/workflows/ms.virtualmachineimages.imagetemplates.yml +++ b/.github/workflows/ms.virtualmachineimages.imagetemplates.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.virtualmachineimages.imagetemplates.yml' - - 'arm/Microsoft.VirtualMachineImages/imageTemplates/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.VirtualMachineImages/imageTemplates/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.VirtualMachineImages/imageTemplates' + modulePath: 'modules/Microsoft.VirtualMachineImages/imageTemplates' workflowPath: '.github/workflows/ms.virtualmachineimages.imagetemplates.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.web.connections.yml b/.github/workflows/ms.web.connections.yml index e32df8e3c9..24a5452946 100644 --- a/.github/workflows/ms.web.connections.yml +++ b/.github/workflows/ms.web.connections.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.web.connections.yml' - - 'arm/Microsoft.Web/connections/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Web/connections/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Web/connections' + modulePath: 'modules/Microsoft.Web/connections' workflowPath: '.github/workflows/ms.web.connections.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.web.hostingenvironments.yml b/.github/workflows/ms.web.hostingenvironments.yml index 0d926983ec..cc7f884c27 100644 --- a/.github/workflows/ms.web.hostingenvironments.yml +++ b/.github/workflows/ms.web.hostingenvironments.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.web.hostingenvironments.yml' - - 'arm/Microsoft.Web/hostingEnvironments/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Web/hostingEnvironments/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Web/hostingEnvironments' + modulePath: 'modules/Microsoft.Web/hostingEnvironments' workflowPath: '.github/workflows/ms.web.hostingenvironments.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.web.serverfarms.yml b/.github/workflows/ms.web.serverfarms.yml index 1ba700cf21..d0d6a3a41d 100644 --- a/.github/workflows/ms.web.serverfarms.yml +++ b/.github/workflows/ms.web.serverfarms.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.web.serverfarms.yml' - - 'arm/Microsoft.Web/serverfarms/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Web/serverfarms/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Web/serverfarms' + modulePath: 'modules/Microsoft.Web/serverfarms' workflowPath: '.github/workflows/ms.web.serverfarms.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.web.sites.yml b/.github/workflows/ms.web.sites.yml index a83b5659d2..5f69a15df6 100644 --- a/.github/workflows/ms.web.sites.yml +++ b/.github/workflows/ms.web.sites.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.web.sites.yml' - - 'arm/Microsoft.Web/sites/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Web/sites/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Web/sites' + modulePath: 'modules/Microsoft.Web/sites' workflowPath: '.github/workflows/ms.web.sites.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.web.staticsites.yml b/.github/workflows/ms.web.staticsites.yml index bc0920919b..b387de58ae 100644 --- a/.github/workflows/ms.web.staticsites.yml +++ b/.github/workflows/ms.web.staticsites.yml @@ -19,15 +19,15 @@ on: paths: - '.github/actions/templates/**' - '.github/workflows/ms.web.staticsites.yml' - - 'arm/Microsoft.Web/staticSites/**' - - 'arm/.global/global.module.tests.ps1' + - 'modules/Microsoft.Web/staticSites/**' + - 'modules/.global/global.module.tests.ps1' - '!*/**/readme.md' - 'utilities/pipelines/**' - '!utilities/pipelines/dependencies/**' env: variablesPath: 'global.variables.yml' - modulePath: 'arm/Microsoft.Web/staticSites' + modulePath: 'modules/Microsoft.Web/staticSites' workflowPath: '.github/workflows/ms.web.staticsites.yml' AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/platform.dependencies.yml b/.github/workflows/platform.dependencies.yml index 1754c3c32c..a1addb1653 100644 --- a/.github/workflows/platform.dependencies.yml +++ b/.github/workflows/platform.dependencies.yml @@ -43,7 +43,8 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ['validation.parameters.json', 'locks.parameters.json'] + parameterFilePaths: + ['validation.parameters.json', 'locks.parameters.json'] steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -52,7 +53,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -80,7 +81,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -111,7 +112,7 @@ jobs: id: deploy_msi uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -150,7 +151,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -178,7 +179,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -206,7 +207,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -234,7 +235,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -253,7 +254,12 @@ jobs: fail-fast: false matrix: parameterFilePaths: - ['appi.parameters.json', 'aut.parameters.json', 'sol.parameters.json', 'parameters.json'] + [ + 'appi.parameters.json', + 'aut.parameters.json', + 'sol.parameters.json', + 'parameters.json', + ] steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -263,7 +269,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -292,7 +298,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -400,7 +406,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -434,7 +440,7 @@ jobs: id: deploy_imgt uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -597,7 +603,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -625,7 +631,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -653,7 +659,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -682,7 +688,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -719,7 +725,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -750,7 +756,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -778,7 +784,7 @@ jobs: 'lb.parameters.json', 'lb.min.parameters.json', 'fw.parameters.json', - 'fw.additional.parameters.json' + 'fw.additional.parameters.json', ] steps: - name: 'Checkout' @@ -789,7 +795,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -819,7 +825,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -849,7 +855,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -879,7 +885,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -910,7 +916,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -943,7 +949,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -1123,7 +1129,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -1245,7 +1251,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -1273,7 +1279,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/subscription/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/subscription/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -1306,7 +1312,7 @@ jobs: '11.azfw.parameters.json', '12.bastion.parameters.json', '13.bastion.parameters.json', - 'parameters.json' + 'parameters.json', ] steps: - name: 'Checkout' @@ -1317,7 +1323,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -1347,7 +1353,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -1375,7 +1381,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -1405,7 +1411,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' @@ -1433,7 +1439,7 @@ jobs: - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: 'arm/${{ env.namespace }}/deploy.bicep' + templateFilePath: 'modules/${{ env.namespace }}/deploy.bicep' parameterFilePath: '${{ env.dependencyPath }}/${{ env.namespace }}/parameters/${{ matrix.parameterFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.defaultResourceGroupName }}' diff --git a/.github/workflows/platform.updateReadMe.yml b/.github/workflows/platform.updateReadMe.yml index 829dd17ae6..9e3d0dfcf2 100644 --- a/.github/workflows/platform.updateReadMe.yml +++ b/.github/workflows/platform.updateReadMe.yml @@ -10,8 +10,8 @@ on: branches: - main paths: - - 'arm/**/deploy.bicep' - - 'arm/**/deploy.json' + - 'modules/**/deploy.bicep' + - 'modules/**/deploy.json' env: pipelinePrincipalGitUserName: 'CARMLPipelinePrincipal' @@ -34,7 +34,7 @@ jobs: . "$env:GITHUB_WORKSPACE/utilities/tools/Set-ReadMeModuleTable.ps1" $functionInput = @{ - ModulesPath = Join-Path $env:GITHUB_WORKSPACE 'arm' + ModulesPath = Join-Path $env:GITHUB_WORKSPACE 'modules' FilePath = Join-Path $env:GITHUB_WORKSPACE 'README.md' Organization = ($env:GITHUB_REPOSITORY).split('/')[0] RepositoryName = ($env:GITHUB_REPOSITORY).split('/')[1] @@ -55,8 +55,8 @@ jobs: . "$env:GITHUB_WORKSPACE/utilities/tools/Set-ReadMeModuleTable.ps1" $functionInput = @{ - ModulesPath = Join-Path $env:GITHUB_WORKSPACE 'arm' - FilePath = Join-Path $env:GITHUB_WORKSPACE 'arm/README.md' + ModulesPath = Join-Path $env:GITHUB_WORKSPACE 'modules' + FilePath = Join-Path $env:GITHUB_WORKSPACE 'modules/README.md' Organization = ($env:GITHUB_REPOSITORY).split('/')[0] RepositoryName = ($env:GITHUB_REPOSITORY).split('/')[1] ColumnsInOrder = @('Name', 'ProviderNamespace','ResourceType') diff --git a/README.md b/README.md index 7d4e4a6241..2f4ae8107d 100644 --- a/README.md +++ b/README.md @@ -29,107 +29,107 @@ The CI environment supports both ARM and Bicep and can be leveraged using GitHub | Name | Status | | - | - | -| [Action Groups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Insights/actionGroups) | [!['Insights: ActionGroups'](https://github.com/Azure/ResourceModules/workflows/Insights:%20ActionGroups/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.insights.actiongroups.yml) | -| [Activity Log Alerts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Insights/activityLogAlerts) | [!['Insights: ActivityLogAlerts'](https://github.com/Azure/ResourceModules/workflows/Insights:%20ActivityLogAlerts/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.insights.activitylogalerts.yml) | -| [Activity Logs](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Insights/diagnosticSettings) | [!['Insights: DiagnosticSettings'](https://github.com/Azure/ResourceModules/workflows/Insights:%20DiagnosticSettings/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.insights.diagnosticsettings.yml) | -| [Analysis Services Servers](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.AnalysisServices/servers) | [!['AnalysisServices: Servers'](https://github.com/Azure/ResourceModules/workflows/AnalysisServices:%20Servers/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.analysisservices.servers.yml) | -| [API Connections](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Web/connections) | [!['Web: Connections'](https://github.com/Azure/ResourceModules/workflows/Web:%20Connections/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.web.connections.yml) | -| [API Management Services](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ApiManagement/service) | [!['ApiManagement: Service'](https://github.com/Azure/ResourceModules/workflows/ApiManagement:%20Service/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.apimanagement.service.yml) | -| [App Configuration](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.AppConfiguration/configurationStores) | [!['AppConfiguration: ConfigurationStores'](https://github.com/Azure/ResourceModules/workflows/AppConfiguration:%20ConfigurationStores/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.appconfiguration.configurationstores.yml) | -| [App Service Environments](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Web/hostingEnvironments) | [!['Web: HostingEnvironments'](https://github.com/Azure/ResourceModules/workflows/Web:%20HostingEnvironments/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.web.hostingenvironments.yml) | -| [App Service Plans](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Web/serverfarms) | [!['Web: Serverfarms'](https://github.com/Azure/ResourceModules/workflows/Web:%20Serverfarms/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.web.serverfarms.yml) | -| [Application Insights](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Insights/components) | [!['Insights: Components'](https://github.com/Azure/ResourceModules/workflows/Insights:%20Components/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.insights.components.yml) | -| [Application Security Groups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/applicationSecurityGroups) | [!['Network: ApplicationSecurityGroups'](https://github.com/Azure/ResourceModules/workflows/Network:%20ApplicationSecurityGroups/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.applicationsecuritygroups.yml) | -| [Authorization Locks](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/locks) | [!['Authorization: Locks'](https://github.com/Azure/ResourceModules/workflows/Authorization:%20Locks/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.authorization.locks.yml) | -| [Automation Accounts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Automation/automationAccounts) | [!['Automation: AutomationAccounts'](https://github.com/Azure/ResourceModules/workflows/Automation:%20AutomationAccounts/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.automation.automationaccounts.yml) | -| [Availability Sets](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/availabilitySets) | [!['Compute: AvailabilitySets'](https://github.com/Azure/ResourceModules/workflows/Compute:%20AvailabilitySets/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.compute.availabilitysets.yml) | -| [AVD Application Groups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DesktopVirtualization/applicationgroups) | [!['DesktopVirtualization: ApplicationGroups'](https://github.com/Azure/ResourceModules/workflows/DesktopVirtualization:%20ApplicationGroups/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.desktopvirtualization.applicationgroups.yml) | -| [AVD Host Pools](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DesktopVirtualization/hostpools) | [!['DesktopVirtualization: HostPools'](https://github.com/Azure/ResourceModules/workflows/DesktopVirtualization:%20HostPools/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.desktopvirtualization.hostpools.yml) | -| [AVD Scaling Plans](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DesktopVirtualization/scalingplans) | [!['DesktopVirtualization: Scalingplans'](https://github.com/Azure/ResourceModules/workflows/DesktopVirtualization:%20Scalingplans/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.desktopvirtualization.scalingplans.yml) | -| [AVD Workspaces](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DesktopVirtualization/workspaces) | [!['DesktopVirtualization: Workspaces'](https://github.com/Azure/ResourceModules/workflows/DesktopVirtualization:%20Workspaces/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.desktopvirtualization.workspaces.yml) | -| [Azure Active Directory Domain Services](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.AAD/DomainServices) | [!['AAD: DomainServices'](https://github.com/Azure/ResourceModules/workflows/AAD:%20DomainServices/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.aad.domainservices.yml) | -| [Azure Compute Galleries](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/galleries) | [!['Compute: Galleries'](https://github.com/Azure/ResourceModules/workflows/Compute:%20Galleries/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.compute.galleries.yml) | -| [Azure Databricks](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Databricks/workspaces) | [!['Databricks: Workspaces'](https://github.com/Azure/ResourceModules/workflows/Databricks:%20Workspaces/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.databricks.workspaces.yml) | -| [Azure Firewalls](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/azureFirewalls) | [!['Network: AzureFirewalls'](https://github.com/Azure/ResourceModules/workflows/Network:%20AzureFirewalls/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.azurefirewalls.yml) | -| [Azure Health Bots](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.HealthBot/healthBots) | [!['HealthBot: HealthBots'](https://github.com/Azure/ResourceModules/workflows/HealthBot:%20HealthBots/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.healthbot.healthbots.yml) | -| [Azure Kubernetes Services](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ContainerService/managedClusters) | [!['ContainerService: ManagedClusters'](https://github.com/Azure/ResourceModules/workflows/ContainerService:%20ManagedClusters/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.containerservice.managedclusters.yml) | -| [Azure Monitor Private Link Scopes](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Insights/privateLinkScopes) | [!['Insights: PrivateLinkScopes'](https://github.com/Azure/ResourceModules/workflows/Insights:%20PrivateLinkScopes/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.insights.privatelinkscopes.yml) | -| [Azure NetApp Files](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.NetApp/netAppAccounts) | [!['NetApp: NetAppAccounts'](https://github.com/Azure/ResourceModules/workflows/NetApp:%20NetAppAccounts/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.netapp.netappaccounts.yml) | -| [Azure Security Center](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Security/azureSecurityCenter) | [!['Security: AzureSecurityCenter'](https://github.com/Azure/ResourceModules/workflows/Security:%20AzureSecurityCenter/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.security.azuresecuritycenter.yml) | -| [Azure Synapse Analytics](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Synapse/privateLinkHubs) | [!['Synapse: PrivateLinkHubs'](https://github.com/Azure/ResourceModules/workflows/Synapse:%20PrivateLinkHubs/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.synapse.privatelinkhubs.yml) | -| [Bastion Hosts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/bastionHosts) | [!['Network: BastionHosts'](https://github.com/Azure/ResourceModules/workflows/Network:%20BastionHosts/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.bastionhosts.yml) | -| [Batch Accounts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Batch/batchAccounts) | [!['Batch: BatchAccounts'](https://github.com/Azure/ResourceModules/workflows/Batch:%20BatchAccounts/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.batch.batchaccounts.yml) | -| [Budgets](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Consumption/budgets) | [!['Consumption: Budgets'](https://github.com/Azure/ResourceModules/workflows/Consumption:%20Budgets/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.consumption.budgets.yml) | -| [Cognitive Services](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.CognitiveServices/accounts) | [!['CognitiveServices: Accounts'](https://github.com/Azure/ResourceModules/workflows/CognitiveServices:%20Accounts/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.cognitiveservices.accounts.yml) | -| [Compute Disks](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/disks) | [!['Compute: Disks'](https://github.com/Azure/ResourceModules/workflows/Compute:%20Disks/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.compute.disks.yml) | -| [Container Instances](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ContainerInstance/containerGroups) | [!['ContainerInstance: ContainerGroups'](https://github.com/Azure/ResourceModules/workflows/ContainerInstance:%20ContainerGroups/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.containerinstance.containergroups.yml) | -| [Container Registries](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ContainerRegistry/registries) | [!['ContainerRegistry: Registries'](https://github.com/Azure/ResourceModules/workflows/ContainerRegistry:%20Registries/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.containerregistry.registries.yml) | -| [Data Factories](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DataFactory/factories) | [!['DataFactory: Factories'](https://github.com/Azure/ResourceModules/workflows/DataFactory:%20Factories/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.datafactory.factories.yml) | -| [DataProtection BackupVaults](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DataProtection/backupVaults) | [![DataProtection: BackupVaults](https://github.com/Azure/ResourceModules/workflows/DataProtection:%20BackupVaults/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.dataprotection.backupvaults.yml) | -| [DDoS Protection Plans](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/ddosProtectionPlans) | [!['Network: DdosProtectionPlans'](https://github.com/Azure/ResourceModules/workflows/Network:%20DdosProtectionPlans/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.ddosprotectionplans.yml) | -| [Deployment Scripts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Resources/deploymentScripts) | [!['Resources: DeploymentScripts'](https://github.com/Azure/ResourceModules/workflows/Resources:%20DeploymentScripts/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.resources.deploymentscripts.yml) | -| [Disk Encryption Sets](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/diskEncryptionSets) | [!['Compute: DiskEncryptionSets'](https://github.com/Azure/ResourceModules/workflows/Compute:%20DiskEncryptionSets/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.compute.diskencryptionsets.yml) | -| [DocumentDB Database Accounts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DocumentDB/databaseAccounts) | [!['DocumentDB: DatabaseAccounts'](https://github.com/Azure/ResourceModules/workflows/DocumentDB:%20DatabaseAccounts/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.documentdb.databaseaccounts.yml) | -| [Event Grid System Topics](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.EventGrid/systemTopics) | [!['EventGrid: System Topics'](https://github.com/Azure/ResourceModules/workflows/EventGrid:%20System%20Topics/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.eventgrid.systemtopics.yml) | -| [Event Grid Topics](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.EventGrid/topics) | [!['EventGrid: Topics'](https://github.com/Azure/ResourceModules/workflows/EventGrid:%20Topics/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.eventgrid.topics.yml) | -| [Event Hub Namespaces](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.EventHub/namespaces) | [!['EventHub: Namespaces'](https://github.com/Azure/ResourceModules/workflows/EventHub:%20Namespaces/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.eventhub.namespaces.yml) | -| [ExpressRoute Circuits](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/expressRouteCircuits) | [!['Network: ExpressRouteCircuits'](https://github.com/Azure/ResourceModules/workflows/Network:%20ExpressRouteCircuits/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.expressroutecircuits.yml) | -| [Firewall Policies](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/firewallPolicies) | [!['Network: FirewallPolicies'](https://github.com/Azure/ResourceModules/workflows/Network:%20FirewallPolicies/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.firewallpolicies.yml) | -| [Front Doors](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/frontDoors) | [!['Network: Frontdoors'](https://github.com/Azure/ResourceModules/workflows/Network:%20Frontdoors/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.frontdoors.yml) | -| [Image Templates](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.VirtualMachineImages/imageTemplates) | [!['VirtualMachineImages: ImageTemplates'](https://github.com/Azure/ResourceModules/workflows/VirtualMachineImages:%20ImageTemplates/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.virtualmachineimages.imagetemplates.yml) | -| [Images](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/images) | [!['Compute: Images'](https://github.com/Azure/ResourceModules/workflows/Compute:%20Images/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.compute.images.yml) | -| [IP Groups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/ipGroups) | [!['Network: IpGroups'](https://github.com/Azure/ResourceModules/workflows/Network:%20IpGroups/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.ipgroups.yml) | -| [Key Vaults](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.KeyVault/vaults) | [!['KeyVault: Vaults'](https://github.com/Azure/ResourceModules/workflows/KeyVault:%20Vaults/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.keyvault.vaults.yml) | -| [Kubernetes Configuration Extensions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.KubernetesConfiguration/extensions) | [!['KubernetesConfiguration: Extensions'](https://github.com/Azure/ResourceModules/workflows/KubernetesConfiguration:%20Extensions/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.kubernetesconfiguration.extensions.yml) | -| [Kubernetes Configuration Flux Configurations](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.KubernetesConfiguration/fluxConfigurations) | [!['KubernetesConfiguration: FluxConfigurations'](https://github.com/Azure/ResourceModules/workflows/KubernetesConfiguration:%20FluxConfigurations/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.kubernetesconfiguration.fluxconfigurations.yml) | -| [Load Balancers](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/loadBalancers) | [!['Network: LoadBalancers'](https://github.com/Azure/ResourceModules/workflows/Network:%20LoadBalancers/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.loadbalancers.yml) | -| [Local Network Gateways](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/localNetworkGateways) | [!['Network: LocalNetworkGateways'](https://github.com/Azure/ResourceModules/workflows/Network:%20LocalNetworkGateways/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.localnetworkgateways.yml) | -| [Log Analytics Workspaces](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.OperationalInsights/workspaces) | [!['OperationalInsights: Workspaces'](https://github.com/Azure/ResourceModules/workflows/OperationalInsights:%20Workspaces/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.operationalinsights.workspaces.yml) | -| [Logic Apps](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Logic/workflows) | [!['Logic: Workflows'](https://github.com/Azure/ResourceModules/workflows/Logic:%20Workflows/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.logic.workflows.yml) | -| [Machine Learning Workspaces](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.MachineLearningServices/workspaces) | [!['MachineLearningServices: Workspaces'](https://github.com/Azure/ResourceModules/workflows/MachineLearningServices:%20Workspaces/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.machinelearningservices.workspaces.yml) | -| [Management Groups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Management/managementGroups) | [!['Management: ManagementGroups'](https://github.com/Azure/ResourceModules/workflows/Management:%20ManagementGroups/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.management.managementgroups.yml) | -| [Metric Alerts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Insights/metricAlerts) | [!['Insights: MetricAlerts'](https://github.com/Azure/ResourceModules/workflows/Insights:%20MetricAlerts/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.insights.metricalerts.yml) | -| [NAT Gateways](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/natGateways) | [!['Network: NatGateways'](https://github.com/Azure/ResourceModules/workflows/Network:%20NatGateways/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.natgateways.yml) | -| [Network Application Gateways](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/applicationGateways) | [!['Network: ApplicationGateways'](https://github.com/Azure/ResourceModules/workflows/Network:%20ApplicationGateways/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.applicationgateways.yml) | -| [Network Interface](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/networkInterfaces) | [!['Network: NetworkInterfaces'](https://github.com/Azure/ResourceModules/workflows/Network:%20NetworkInterfaces/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.networkinterfaces.yml) | -| [Network Security Groups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/networkSecurityGroups) | [!['Network: NetworkSecurityGroups'](https://github.com/Azure/ResourceModules/workflows/Network:%20NetworkSecurityGroups/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.networksecuritygroups.yml) | -| [Network Watchers](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/networkWatchers) | [!['Network: NetworkWatchers'](https://github.com/Azure/ResourceModules/workflows/Network:%20NetworkWatchers/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.networkwatchers.yml) | -| [OperationsManagement Solutions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.OperationsManagement/solutions) | [!['OperationsManagement: Solutions'](https://github.com/Azure/ResourceModules/workflows/OperationsManagement:%20Solutions/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.operationsmanagement.solutions.yml) | -| [Policy Assignments](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policyAssignments) | [!['Authorization: PolicyAssignments'](https://github.com/Azure/ResourceModules/workflows/Authorization:%20PolicyAssignments/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.authorization.policyassignments.yml) | -| [Policy Definitions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policyDefinitions) | [!['Authorization: PolicyDefinitions'](https://github.com/Azure/ResourceModules/workflows/Authorization:%20PolicyDefinitions/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.authorization.policydefinitions.yml) | -| [Policy Exemptions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policyExemptions) | [!['Authorization: PolicyExemptions'](https://github.com/Azure/ResourceModules/workflows/Authorization:%20PolicyExemptions/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.authorization.policyexemptions.yml) | -| [Policy Set Definitions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policySetDefinitions) | [!['Authorization: PolicySetDefinitions'](https://github.com/Azure/ResourceModules/workflows/Authorization:%20PolicySetDefinitions/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.authorization.policysetdefinitions.yml) | -| [Private DNS Zones](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/privateDnsZones) | [!['Network: PrivateDnsZones'](https://github.com/Azure/ResourceModules/workflows/Network:%20PrivateDnsZones/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.privatednszones.yml) | -| [Private Endpoints](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/privateEndpoints) | [!['Network: PrivateEndpoints'](https://github.com/Azure/ResourceModules/workflows/Network:%20PrivateEndpoints/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.privateendpoints.yml) | -| [Proximity Placement Groups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/proximityPlacementGroups) | [!['Compute: ProximityPlacementGroups'](https://github.com/Azure/ResourceModules/workflows/Compute:%20ProximityPlacementGroups/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.compute.proximityplacementgroups.yml) | -| [Public IP Addresses](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/publicIPAddresses) | [!['Network: PublicIpAddresses'](https://github.com/Azure/ResourceModules/workflows/Network:%20PublicIpAddresses/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.publicipaddresses.yml) | -| [Public IP Prefixes](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/publicIPPrefixes) | [!['Network: PublicIpPrefixes'](https://github.com/Azure/ResourceModules/workflows/Network:%20PublicIpPrefixes/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.publicipprefixes.yml) | -| [Recovery Services Vaults](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.RecoveryServices/vaults) | [!['RecoveryServices: Vaults'](https://github.com/Azure/ResourceModules/workflows/RecoveryServices:%20Vaults/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.recoveryservices.vaults.yml) | -| [Registration Definitions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ManagedServices/registrationDefinitions) | [!['ManagedServices: RegistrationDefinitions'](https://github.com/Azure/ResourceModules/workflows/ManagedServices:%20RegistrationDefinitions/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.managedservices.registrationdefinitions.yml) | -| [Resource Groups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Resources/resourceGroups) | [!['Resources: ResourceGroups'](https://github.com/Azure/ResourceModules/workflows/Resources:%20ResourceGroups/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.resources.resourcegroups.yml) | -| [Resources Tags](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Resources/tags) | [!['Resources: Tags'](https://github.com/Azure/ResourceModules/workflows/Resources:%20Tags/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.resources.tags.yml) | -| [Role Assignments](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/roleAssignments) | [!['Authorization: RoleAssignments'](https://github.com/Azure/ResourceModules/workflows/Authorization:%20RoleAssignments/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.authorization.roleassignments.yml) | -| [Role Definitions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/roleDefinitions) | [!['Authorization: RoleDefinitions'](https://github.com/Azure/ResourceModules/workflows/Authorization:%20RoleDefinitions/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.authorization.roledefinitions.yml) | -| [Route Tables](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/routeTables) | [!['Network: RouteTables'](https://github.com/Azure/ResourceModules/workflows/Network:%20RouteTables/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.routetables.yml) | -| [Scheduled Query Rules](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Insights/scheduledQueryRules) | [!['Insights: ScheduledQueryRules'](https://github.com/Azure/ResourceModules/workflows/Insights:%20ScheduledQueryRules/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.insights.scheduledqueryrules.yml) | -| [Service Bus Namespaces](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ServiceBus/namespaces) | [!['ServiceBus: Namespaces'](https://github.com/Azure/ResourceModules/workflows/ServiceBus:%20Namespaces/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.servicebus.namespaces.yml) | -| [Service Fabric Clusters](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ServiceFabric/clusters) | [!['Service Fabric: Clusters'](https://github.com/Azure/ResourceModules/workflows/Service%20Fabric:%20Clusters/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.servicefabric.clusters.yml) | -| [SQL Managed Instances](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Sql/managedInstances) | [!['Sql: ManagedInstances'](https://github.com/Azure/ResourceModules/workflows/Sql:%20ManagedInstances/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.sql.managedinstances.yml) | -| [SQL Servers](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Sql/servers) | [!['Sql: Servers'](https://github.com/Azure/ResourceModules/workflows/Sql:%20Servers/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.sql.servers.yml) | -| [Static Web Sites](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Web/staticSites) | [!['Web: StaticSites'](https://github.com/Azure/ResourceModules/workflows/Web:%20StaticSites/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.web.staticsites.yml) | -| [Storage Accounts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Storage/storageAccounts) | [!['Storage: StorageAccounts'](https://github.com/Azure/ResourceModules/workflows/Storage:%20StorageAccounts/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.storage.storageaccounts.yml) | -| [Traffic Manager Profiles](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/trafficmanagerprofiles) | [!['Network: TrafficManagerProfiles'](https://github.com/Azure/ResourceModules/workflows/Network:%20TrafficManagerProfiles/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.trafficmanagerprofiles.yml) | -| [User Assigned Identities](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ManagedIdentity/userAssignedIdentities) | [!['ManagedIdentity: UserAssignedIdentities'](https://github.com/Azure/ResourceModules/workflows/ManagedIdentity:%20UserAssignedIdentities/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.managedidentity.userassignedidentities.yml) | -| [Virtual Hubs](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/virtualHubs) | [!['Network: VirtualHubs'](https://github.com/Azure/ResourceModules/workflows/Network:%20VirtualHubs/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.virtualhubs.yml) | -| [Virtual Machine Scale Sets](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/virtualMachineScaleSets) | [!['Compute: VirtualMachineScaleSets'](https://github.com/Azure/ResourceModules/workflows/Compute:%20VirtualMachineScaleSets/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.compute.virtualmachinescalesets.yml) | -| [Virtual Machines](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/virtualMachines) | [!['Compute: VirtualMachines'](https://github.com/Azure/ResourceModules/workflows/Compute:%20VirtualMachines/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.compute.virtualmachines.yml) | -| [Virtual Network Gateway Connections](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/connections) | [!['Network: Connections'](https://github.com/Azure/ResourceModules/workflows/Network:%20Connections/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.connections.yml) | -| [Virtual Network Gateways](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/virtualNetworkGateways) | [!['Network: VirtualNetworkGateways'](https://github.com/Azure/ResourceModules/workflows/Network:%20VirtualNetworkGateways/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.virtualnetworkgateways.yml) | -| [Virtual Networks](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/virtualNetworks) | [!['Network: VirtualNetworks'](https://github.com/Azure/ResourceModules/workflows/Network:%20VirtualNetworks/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.virtualnetworks.yml) | -| [Virtual WANs](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/virtualWans) | [!['Network: VirtualWans'](https://github.com/Azure/ResourceModules/workflows/Network:%20VirtualWans/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.virtualwans.yml) | -| [VPN Gateways](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/vpnGateways) | [!['Network: VPNGateways'](https://github.com/Azure/ResourceModules/workflows/Network:%20VPNGateways/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.vpngateways.yml) | -| [VPN Sites](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/vpnSites) | [!['Network: VPN Sites'](https://github.com/Azure/ResourceModules/workflows/Network:%20VPN%20Sites/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.vpnsites.yml) | -| [Web/Function Apps](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Web/sites) | [!['Web: Sites'](https://github.com/Azure/ResourceModules/workflows/Web:%20Sites/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.web.sites.yml) | +| [Action Groups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/actionGroups) | [!['Insights: ActionGroups'](https://github.com/Azure/ResourceModules/workflows/Insights:%20ActionGroups/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.insights.actiongroups.yml) | +| [Activity Log Alerts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/activityLogAlerts) | [!['Insights: ActivityLogAlerts'](https://github.com/Azure/ResourceModules/workflows/Insights:%20ActivityLogAlerts/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.insights.activitylogalerts.yml) | +| [Activity Logs](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/diagnosticSettings) | [!['Insights: DiagnosticSettings'](https://github.com/Azure/ResourceModules/workflows/Insights:%20DiagnosticSettings/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.insights.diagnosticsettings.yml) | +| [Analysis Services Servers](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.AnalysisServices/servers) | [!['AnalysisServices: Servers'](https://github.com/Azure/ResourceModules/workflows/AnalysisServices:%20Servers/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.analysisservices.servers.yml) | +| [API Connections](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Web/connections) | [!['Web: Connections'](https://github.com/Azure/ResourceModules/workflows/Web:%20Connections/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.web.connections.yml) | +| [API Management Services](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ApiManagement/service) | [!['ApiManagement: Service'](https://github.com/Azure/ResourceModules/workflows/ApiManagement:%20Service/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.apimanagement.service.yml) | +| [App Configuration](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.AppConfiguration/configurationStores) | [!['AppConfiguration: ConfigurationStores'](https://github.com/Azure/ResourceModules/workflows/AppConfiguration:%20ConfigurationStores/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.appconfiguration.configurationstores.yml) | +| [App Service Environments](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Web/hostingEnvironments) | [!['Web: HostingEnvironments'](https://github.com/Azure/ResourceModules/workflows/Web:%20HostingEnvironments/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.web.hostingenvironments.yml) | +| [App Service Plans](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Web/serverfarms) | [!['Web: Serverfarms'](https://github.com/Azure/ResourceModules/workflows/Web:%20Serverfarms/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.web.serverfarms.yml) | +| [Application Insights](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/components) | [!['Insights: Components'](https://github.com/Azure/ResourceModules/workflows/Insights:%20Components/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.insights.components.yml) | +| [Application Security Groups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/applicationSecurityGroups) | [!['Network: ApplicationSecurityGroups'](https://github.com/Azure/ResourceModules/workflows/Network:%20ApplicationSecurityGroups/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.applicationsecuritygroups.yml) | +| [Authorization Locks](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/locks) | [!['Authorization: Locks'](https://github.com/Azure/ResourceModules/workflows/Authorization:%20Locks/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.authorization.locks.yml) | +| [Automation Accounts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Automation/automationAccounts) | [!['Automation: AutomationAccounts'](https://github.com/Azure/ResourceModules/workflows/Automation:%20AutomationAccounts/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.automation.automationaccounts.yml) | +| [Availability Sets](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/availabilitySets) | [!['Compute: AvailabilitySets'](https://github.com/Azure/ResourceModules/workflows/Compute:%20AvailabilitySets/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.compute.availabilitysets.yml) | +| [AVD Application Groups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/applicationgroups) | [!['DesktopVirtualization: ApplicationGroups'](https://github.com/Azure/ResourceModules/workflows/DesktopVirtualization:%20ApplicationGroups/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.desktopvirtualization.applicationgroups.yml) | +| [AVD Host Pools](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/hostpools) | [!['DesktopVirtualization: HostPools'](https://github.com/Azure/ResourceModules/workflows/DesktopVirtualization:%20HostPools/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.desktopvirtualization.hostpools.yml) | +| [AVD Scaling Plans](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/scalingplans) | [!['DesktopVirtualization: Scalingplans'](https://github.com/Azure/ResourceModules/workflows/DesktopVirtualization:%20Scalingplans/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.desktopvirtualization.scalingplans.yml) | +| [AVD Workspaces](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/workspaces) | [!['DesktopVirtualization: Workspaces'](https://github.com/Azure/ResourceModules/workflows/DesktopVirtualization:%20Workspaces/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.desktopvirtualization.workspaces.yml) | +| [Azure Active Directory Domain Services](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.AAD/DomainServices) | [!['AAD: DomainServices'](https://github.com/Azure/ResourceModules/workflows/AAD:%20DomainServices/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.aad.domainservices.yml) | +| [Azure Compute Galleries](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/galleries) | [!['Compute: Galleries'](https://github.com/Azure/ResourceModules/workflows/Compute:%20Galleries/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.compute.galleries.yml) | +| [Azure Databricks](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Databricks/workspaces) | [!['Databricks: Workspaces'](https://github.com/Azure/ResourceModules/workflows/Databricks:%20Workspaces/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.databricks.workspaces.yml) | +| [Azure Firewalls](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/azureFirewalls) | [!['Network: AzureFirewalls'](https://github.com/Azure/ResourceModules/workflows/Network:%20AzureFirewalls/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.azurefirewalls.yml) | +| [Azure Health Bots](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.HealthBot/healthBots) | [!['HealthBot: HealthBots'](https://github.com/Azure/ResourceModules/workflows/HealthBot:%20HealthBots/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.healthbot.healthbots.yml) | +| [Azure Kubernetes Services](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ContainerService/managedClusters) | [!['ContainerService: ManagedClusters'](https://github.com/Azure/ResourceModules/workflows/ContainerService:%20ManagedClusters/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.containerservice.managedclusters.yml) | +| [Azure Monitor Private Link Scopes](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/privateLinkScopes) | [!['Insights: PrivateLinkScopes'](https://github.com/Azure/ResourceModules/workflows/Insights:%20PrivateLinkScopes/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.insights.privatelinkscopes.yml) | +| [Azure NetApp Files](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.NetApp/netAppAccounts) | [!['NetApp: NetAppAccounts'](https://github.com/Azure/ResourceModules/workflows/NetApp:%20NetAppAccounts/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.netapp.netappaccounts.yml) | +| [Azure Security Center](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Security/azureSecurityCenter) | [!['Security: AzureSecurityCenter'](https://github.com/Azure/ResourceModules/workflows/Security:%20AzureSecurityCenter/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.security.azuresecuritycenter.yml) | +| [Azure Synapse Analytics](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Synapse/privateLinkHubs) | [!['Synapse: PrivateLinkHubs'](https://github.com/Azure/ResourceModules/workflows/Synapse:%20PrivateLinkHubs/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.synapse.privatelinkhubs.yml) | +| [Bastion Hosts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/bastionHosts) | [!['Network: BastionHosts'](https://github.com/Azure/ResourceModules/workflows/Network:%20BastionHosts/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.bastionhosts.yml) | +| [Batch Accounts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Batch/batchAccounts) | [!['Batch: BatchAccounts'](https://github.com/Azure/ResourceModules/workflows/Batch:%20BatchAccounts/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.batch.batchaccounts.yml) | +| [Budgets](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Consumption/budgets) | [!['Consumption: Budgets'](https://github.com/Azure/ResourceModules/workflows/Consumption:%20Budgets/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.consumption.budgets.yml) | +| [Cognitive Services](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.CognitiveServices/accounts) | [!['CognitiveServices: Accounts'](https://github.com/Azure/ResourceModules/workflows/CognitiveServices:%20Accounts/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.cognitiveservices.accounts.yml) | +| [Compute Disks](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/disks) | [!['Compute: Disks'](https://github.com/Azure/ResourceModules/workflows/Compute:%20Disks/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.compute.disks.yml) | +| [Container Instances](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ContainerInstance/containerGroups) | [!['ContainerInstance: ContainerGroups'](https://github.com/Azure/ResourceModules/workflows/ContainerInstance:%20ContainerGroups/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.containerinstance.containergroups.yml) | +| [Container Registries](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ContainerRegistry/registries) | [!['ContainerRegistry: Registries'](https://github.com/Azure/ResourceModules/workflows/ContainerRegistry:%20Registries/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.containerregistry.registries.yml) | +| [Data Factories](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DataFactory/factories) | [!['DataFactory: Factories'](https://github.com/Azure/ResourceModules/workflows/DataFactory:%20Factories/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.datafactory.factories.yml) | +| [DataProtection BackupVaults](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DataProtection/backupVaults) | [![DataProtection: BackupVaults](https://github.com/Azure/ResourceModules/workflows/DataProtection:%20BackupVaults/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.dataprotection.backupvaults.yml) | +| [DDoS Protection Plans](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/ddosProtectionPlans) | [!['Network: DdosProtectionPlans'](https://github.com/Azure/ResourceModules/workflows/Network:%20DdosProtectionPlans/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.ddosprotectionplans.yml) | +| [Deployment Scripts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Resources/deploymentScripts) | [!['Resources: DeploymentScripts'](https://github.com/Azure/ResourceModules/workflows/Resources:%20DeploymentScripts/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.resources.deploymentscripts.yml) | +| [Disk Encryption Sets](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/diskEncryptionSets) | [!['Compute: DiskEncryptionSets'](https://github.com/Azure/ResourceModules/workflows/Compute:%20DiskEncryptionSets/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.compute.diskencryptionsets.yml) | +| [DocumentDB Database Accounts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DocumentDB/databaseAccounts) | [!['DocumentDB: DatabaseAccounts'](https://github.com/Azure/ResourceModules/workflows/DocumentDB:%20DatabaseAccounts/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.documentdb.databaseaccounts.yml) | +| [Event Grid System Topics](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.EventGrid/systemTopics) | [!['EventGrid: System Topics'](https://github.com/Azure/ResourceModules/workflows/EventGrid:%20System%20Topics/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.eventgrid.systemtopics.yml) | +| [Event Grid Topics](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.EventGrid/topics) | [!['EventGrid: Topics'](https://github.com/Azure/ResourceModules/workflows/EventGrid:%20Topics/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.eventgrid.topics.yml) | +| [Event Hub Namespaces](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.EventHub/namespaces) | [!['EventHub: Namespaces'](https://github.com/Azure/ResourceModules/workflows/EventHub:%20Namespaces/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.eventhub.namespaces.yml) | +| [ExpressRoute Circuits](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/expressRouteCircuits) | [!['Network: ExpressRouteCircuits'](https://github.com/Azure/ResourceModules/workflows/Network:%20ExpressRouteCircuits/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.expressroutecircuits.yml) | +| [Firewall Policies](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/firewallPolicies) | [!['Network: FirewallPolicies'](https://github.com/Azure/ResourceModules/workflows/Network:%20FirewallPolicies/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.firewallpolicies.yml) | +| [Front Doors](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/frontDoors) | [!['Network: Frontdoors'](https://github.com/Azure/ResourceModules/workflows/Network:%20Frontdoors/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.frontdoors.yml) | +| [Image Templates](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.VirtualMachineImages/imageTemplates) | [!['VirtualMachineImages: ImageTemplates'](https://github.com/Azure/ResourceModules/workflows/VirtualMachineImages:%20ImageTemplates/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.virtualmachineimages.imagetemplates.yml) | +| [Images](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/images) | [!['Compute: Images'](https://github.com/Azure/ResourceModules/workflows/Compute:%20Images/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.compute.images.yml) | +| [IP Groups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/ipGroups) | [!['Network: IpGroups'](https://github.com/Azure/ResourceModules/workflows/Network:%20IpGroups/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.ipgroups.yml) | +| [Key Vaults](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.KeyVault/vaults) | [!['KeyVault: Vaults'](https://github.com/Azure/ResourceModules/workflows/KeyVault:%20Vaults/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.keyvault.vaults.yml) | +| [Kubernetes Configuration Extensions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.KubernetesConfiguration/extensions) | [!['KubernetesConfiguration: Extensions'](https://github.com/Azure/ResourceModules/workflows/KubernetesConfiguration:%20Extensions/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.kubernetesconfiguration.extensions.yml) | +| [Kubernetes Configuration Flux Configurations](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.KubernetesConfiguration/fluxConfigurations) | [!['KubernetesConfiguration: FluxConfigurations'](https://github.com/Azure/ResourceModules/workflows/KubernetesConfiguration:%20FluxConfigurations/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.kubernetesconfiguration.fluxconfigurations.yml) | +| [Load Balancers](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/loadBalancers) | [!['Network: LoadBalancers'](https://github.com/Azure/ResourceModules/workflows/Network:%20LoadBalancers/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.loadbalancers.yml) | +| [Local Network Gateways](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/localNetworkGateways) | [!['Network: LocalNetworkGateways'](https://github.com/Azure/ResourceModules/workflows/Network:%20LocalNetworkGateways/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.localnetworkgateways.yml) | +| [Log Analytics Workspaces](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.OperationalInsights/workspaces) | [!['OperationalInsights: Workspaces'](https://github.com/Azure/ResourceModules/workflows/OperationalInsights:%20Workspaces/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.operationalinsights.workspaces.yml) | +| [Logic Apps](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Logic/workflows) | [!['Logic: Workflows'](https://github.com/Azure/ResourceModules/workflows/Logic:%20Workflows/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.logic.workflows.yml) | +| [Machine Learning Workspaces](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.MachineLearningServices/workspaces) | [!['MachineLearningServices: Workspaces'](https://github.com/Azure/ResourceModules/workflows/MachineLearningServices:%20Workspaces/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.machinelearningservices.workspaces.yml) | +| [Management Groups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Management/managementGroups) | [!['Management: ManagementGroups'](https://github.com/Azure/ResourceModules/workflows/Management:%20ManagementGroups/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.management.managementgroups.yml) | +| [Metric Alerts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/metricAlerts) | [!['Insights: MetricAlerts'](https://github.com/Azure/ResourceModules/workflows/Insights:%20MetricAlerts/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.insights.metricalerts.yml) | +| [NAT Gateways](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/natGateways) | [!['Network: NatGateways'](https://github.com/Azure/ResourceModules/workflows/Network:%20NatGateways/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.natgateways.yml) | +| [Network Application Gateways](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/applicationGateways) | [!['Network: ApplicationGateways'](https://github.com/Azure/ResourceModules/workflows/Network:%20ApplicationGateways/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.applicationgateways.yml) | +| [Network Interface](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/networkInterfaces) | [!['Network: NetworkInterfaces'](https://github.com/Azure/ResourceModules/workflows/Network:%20NetworkInterfaces/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.networkinterfaces.yml) | +| [Network Security Groups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/networkSecurityGroups) | [!['Network: NetworkSecurityGroups'](https://github.com/Azure/ResourceModules/workflows/Network:%20NetworkSecurityGroups/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.networksecuritygroups.yml) | +| [Network Watchers](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/networkWatchers) | [!['Network: NetworkWatchers'](https://github.com/Azure/ResourceModules/workflows/Network:%20NetworkWatchers/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.networkwatchers.yml) | +| [OperationsManagement Solutions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.OperationsManagement/solutions) | [!['OperationsManagement: Solutions'](https://github.com/Azure/ResourceModules/workflows/OperationsManagement:%20Solutions/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.operationsmanagement.solutions.yml) | +| [Policy Assignments](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/policyAssignments) | [!['Authorization: PolicyAssignments'](https://github.com/Azure/ResourceModules/workflows/Authorization:%20PolicyAssignments/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.authorization.policyassignments.yml) | +| [Policy Definitions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/policyDefinitions) | [!['Authorization: PolicyDefinitions'](https://github.com/Azure/ResourceModules/workflows/Authorization:%20PolicyDefinitions/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.authorization.policydefinitions.yml) | +| [Policy Exemptions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/policyExemptions) | [!['Authorization: PolicyExemptions'](https://github.com/Azure/ResourceModules/workflows/Authorization:%20PolicyExemptions/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.authorization.policyexemptions.yml) | +| [Policy Set Definitions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/policySetDefinitions) | [!['Authorization: PolicySetDefinitions'](https://github.com/Azure/ResourceModules/workflows/Authorization:%20PolicySetDefinitions/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.authorization.policysetdefinitions.yml) | +| [Private DNS Zones](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/privateDnsZones) | [!['Network: PrivateDnsZones'](https://github.com/Azure/ResourceModules/workflows/Network:%20PrivateDnsZones/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.privatednszones.yml) | +| [Private Endpoints](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/privateEndpoints) | [!['Network: PrivateEndpoints'](https://github.com/Azure/ResourceModules/workflows/Network:%20PrivateEndpoints/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.privateendpoints.yml) | +| [Proximity Placement Groups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/proximityPlacementGroups) | [!['Compute: ProximityPlacementGroups'](https://github.com/Azure/ResourceModules/workflows/Compute:%20ProximityPlacementGroups/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.compute.proximityplacementgroups.yml) | +| [Public IP Addresses](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/publicIPAddresses) | [!['Network: PublicIpAddresses'](https://github.com/Azure/ResourceModules/workflows/Network:%20PublicIpAddresses/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.publicipaddresses.yml) | +| [Public IP Prefixes](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/publicIPPrefixes) | [!['Network: PublicIpPrefixes'](https://github.com/Azure/ResourceModules/workflows/Network:%20PublicIpPrefixes/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.publicipprefixes.yml) | +| [Recovery Services Vaults](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.RecoveryServices/vaults) | [!['RecoveryServices: Vaults'](https://github.com/Azure/ResourceModules/workflows/RecoveryServices:%20Vaults/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.recoveryservices.vaults.yml) | +| [Registration Definitions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ManagedServices/registrationDefinitions) | [!['ManagedServices: RegistrationDefinitions'](https://github.com/Azure/ResourceModules/workflows/ManagedServices:%20RegistrationDefinitions/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.managedservices.registrationdefinitions.yml) | +| [Resource Groups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Resources/resourceGroups) | [!['Resources: ResourceGroups'](https://github.com/Azure/ResourceModules/workflows/Resources:%20ResourceGroups/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.resources.resourcegroups.yml) | +| [Resources Tags](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Resources/tags) | [!['Resources: Tags'](https://github.com/Azure/ResourceModules/workflows/Resources:%20Tags/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.resources.tags.yml) | +| [Role Assignments](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/roleAssignments) | [!['Authorization: RoleAssignments'](https://github.com/Azure/ResourceModules/workflows/Authorization:%20RoleAssignments/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.authorization.roleassignments.yml) | +| [Role Definitions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/roleDefinitions) | [!['Authorization: RoleDefinitions'](https://github.com/Azure/ResourceModules/workflows/Authorization:%20RoleDefinitions/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.authorization.roledefinitions.yml) | +| [Route Tables](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/routeTables) | [!['Network: RouteTables'](https://github.com/Azure/ResourceModules/workflows/Network:%20RouteTables/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.routetables.yml) | +| [Scheduled Query Rules](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/scheduledQueryRules) | [!['Insights: ScheduledQueryRules'](https://github.com/Azure/ResourceModules/workflows/Insights:%20ScheduledQueryRules/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.insights.scheduledqueryrules.yml) | +| [Service Bus Namespaces](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ServiceBus/namespaces) | [!['ServiceBus: Namespaces'](https://github.com/Azure/ResourceModules/workflows/ServiceBus:%20Namespaces/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.servicebus.namespaces.yml) | +| [Service Fabric Clusters](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ServiceFabric/clusters) | [!['Service Fabric: Clusters'](https://github.com/Azure/ResourceModules/workflows/Service%20Fabric:%20Clusters/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.servicefabric.clusters.yml) | +| [SQL Managed Instances](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Sql/managedInstances) | [!['Sql: ManagedInstances'](https://github.com/Azure/ResourceModules/workflows/Sql:%20ManagedInstances/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.sql.managedinstances.yml) | +| [SQL Servers](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Sql/servers) | [!['Sql: Servers'](https://github.com/Azure/ResourceModules/workflows/Sql:%20Servers/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.sql.servers.yml) | +| [Static Web Sites](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Web/staticSites) | [!['Web: StaticSites'](https://github.com/Azure/ResourceModules/workflows/Web:%20StaticSites/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.web.staticsites.yml) | +| [Storage Accounts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Storage/storageAccounts) | [!['Storage: StorageAccounts'](https://github.com/Azure/ResourceModules/workflows/Storage:%20StorageAccounts/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.storage.storageaccounts.yml) | +| [Traffic Manager Profiles](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/trafficmanagerprofiles) | [!['Network: TrafficManagerProfiles'](https://github.com/Azure/ResourceModules/workflows/Network:%20TrafficManagerProfiles/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.trafficmanagerprofiles.yml) | +| [User Assigned Identities](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ManagedIdentity/userAssignedIdentities) | [!['ManagedIdentity: UserAssignedIdentities'](https://github.com/Azure/ResourceModules/workflows/ManagedIdentity:%20UserAssignedIdentities/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.managedidentity.userassignedidentities.yml) | +| [Virtual Hubs](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/virtualHubs) | [!['Network: VirtualHubs'](https://github.com/Azure/ResourceModules/workflows/Network:%20VirtualHubs/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.virtualhubs.yml) | +| [Virtual Machine Scale Sets](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/virtualMachineScaleSets) | [!['Compute: VirtualMachineScaleSets'](https://github.com/Azure/ResourceModules/workflows/Compute:%20VirtualMachineScaleSets/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.compute.virtualmachinescalesets.yml) | +| [Virtual Machines](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/virtualMachines) | [!['Compute: VirtualMachines'](https://github.com/Azure/ResourceModules/workflows/Compute:%20VirtualMachines/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.compute.virtualmachines.yml) | +| [Virtual Network Gateway Connections](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/connections) | [!['Network: Connections'](https://github.com/Azure/ResourceModules/workflows/Network:%20Connections/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.connections.yml) | +| [Virtual Network Gateways](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/virtualNetworkGateways) | [!['Network: VirtualNetworkGateways'](https://github.com/Azure/ResourceModules/workflows/Network:%20VirtualNetworkGateways/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.virtualnetworkgateways.yml) | +| [Virtual Networks](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/virtualNetworks) | [!['Network: VirtualNetworks'](https://github.com/Azure/ResourceModules/workflows/Network:%20VirtualNetworks/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.virtualnetworks.yml) | +| [Virtual WANs](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/virtualWans) | [!['Network: VirtualWans'](https://github.com/Azure/ResourceModules/workflows/Network:%20VirtualWans/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.virtualwans.yml) | +| [VPN Gateways](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/vpnGateways) | [!['Network: VPNGateways'](https://github.com/Azure/ResourceModules/workflows/Network:%20VPNGateways/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.vpngateways.yml) | +| [VPN Sites](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/vpnSites) | [!['Network: VPN Sites'](https://github.com/Azure/ResourceModules/workflows/Network:%20VPN%20Sites/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.vpnsites.yml) | +| [Web/Function Apps](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Web/sites) | [!['Web: Sites'](https://github.com/Azure/ResourceModules/workflows/Web:%20Sites/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.web.sites.yml) | ## Tooling diff --git a/arm/Microsoft.DataProtection/backupVaults/.bicep/nested_roleAssignments.bicep b/arm/Microsoft.DataProtection/backupVaults/.bicep/nested_roleAssignments.bicep deleted file mode 100644 index 2f52129333..0000000000 --- a/arm/Microsoft.DataProtection/backupVaults/.bicep/nested_roleAssignments.bicep +++ /dev/null @@ -1,43 +0,0 @@ -@sys.description('Required. The IDs of the principals to assign the role to.') -param principalIds array - -@sys.description('Required. The name of the role to assign. If it cannot be found you can specify the role definition ID instead.') -param roleDefinitionIdOrName string - -@sys.description('Required. The resource ID of the resource to apply the role assignment to.') -param resourceId string - -@sys.description('Optional. The principal type of the assigned principal ID.') -@allowed([ - 'ServicePrincipal' - 'Group' - 'User' - 'ForeignGroup' - 'Device' - '' -]) -param principalType string = '' - -@sys.description('Optional. The description of the role assignment.') -param description string = '' - -var builtInRoleNames = { - 'Owner': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '8e3af657-a8ff-443c-a75c-2fe8c4bcb635') - 'Contributor': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b24988ac-6180-42a0-ab88-20f7382dd24c') - 'Reader': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'acdd72a7-3385-48ef-bd42-f606fba81ae7') -} - -resource bv 'Microsoft.DataProtection/backupVaults@2022-03-01' existing = { - name: last(split(resourceId, '/')) -} - -resource roleAssignment 'Microsoft.Authorization/roleAssignments@2020-10-01-preview' = [for principalId in principalIds: { - name: guid(bv.id, principalId, roleDefinitionIdOrName) - properties: { - description: description - roleDefinitionId: contains(builtInRoleNames, roleDefinitionIdOrName) ? builtInRoleNames[roleDefinitionIdOrName] : roleDefinitionIdOrName - principalId: principalId - principalType: !empty(principalType) ? any(principalType) : null - } - scope: bv -}] diff --git a/arm/README.md b/arm/README.md deleted file mode 100644 index cf3cb3aa21..0000000000 --- a/arm/README.md +++ /dev/null @@ -1,107 +0,0 @@ -In this section you can find useful information regarding the Modules that are contained in this repository. - -## Available Resource Modules - -| Name | Provider namespace | Resource Type | -| - | - | - | -| [Azure Active Directory Domain Services](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.AAD/DomainServices) | `MS.AAD` | [DomainServices](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.AAD/DomainServices) | -| [Analysis Services Servers](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.AnalysisServices/servers) | `MS.AnalysisServices` | [servers](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.AnalysisServices/servers) | -| [API Management Services](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ApiManagement/service) | `MS.ApiManagement` | [service](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ApiManagement/service) | -| [App Configuration](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.AppConfiguration/configurationStores) | `MS.AppConfiguration` | [configurationStores](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.AppConfiguration/configurationStores) | -| [Authorization Locks](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/locks) | `MS.Authorization` | [locks](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/locks) | -| [Policy Assignments](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policyAssignments) | | [policyAssignments](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policyAssignments) | -| [Policy Definitions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policyDefinitions) | | [policyDefinitions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policyDefinitions) | -| [Policy Exemptions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policyExemptions) | | [policyExemptions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policyExemptions) | -| [Policy Set Definitions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policySetDefinitions) | | [policySetDefinitions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policySetDefinitions) | -| [Role Assignments](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/roleAssignments) | | [roleAssignments](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/roleAssignments) | -| [Role Definitions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/roleDefinitions) | | [roleDefinitions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/roleDefinitions) | -| [Automation Accounts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Automation/automationAccounts) | `MS.Automation` | [automationAccounts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Automation/automationAccounts) | -| [Batch Accounts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Batch/batchAccounts) | `MS.Batch` | [batchAccounts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Batch/batchAccounts) | -| [Cognitive Services](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.CognitiveServices/accounts) | `MS.CognitiveServices` | [accounts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.CognitiveServices/accounts) | -| [Availability Sets](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/availabilitySets) | `MS.Compute` | [availabilitySets](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/availabilitySets) | -| [Disk Encryption Sets](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/diskEncryptionSets) | | [diskEncryptionSets](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/diskEncryptionSets) | -| [Compute Disks](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/disks) | | [disks](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/disks) | -| [Azure Compute Galleries](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/galleries) | | [galleries](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/galleries) | -| [Images](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/images) | | [images](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/images) | -| [Proximity Placement Groups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/proximityPlacementGroups) | | [proximityPlacementGroups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/proximityPlacementGroups) | -| [Virtual Machines](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/virtualMachines) | | [virtualMachines](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/virtualMachines) | -| [Virtual Machine Scale Sets](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/virtualMachineScaleSets) | | [virtualMachineScaleSets](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/virtualMachineScaleSets) | -| [Budgets](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Consumption/budgets) | `MS.Consumption` | [budgets](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Consumption/budgets) | -| [Container Instances](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ContainerInstance/containerGroups) | `MS.ContainerInstance` | [containerGroups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ContainerInstance/containerGroups) | -| [Container Registries](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ContainerRegistry/registries) | `MS.ContainerRegistry` | [registries](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ContainerRegistry/registries) | -| [Azure Kubernetes Services](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ContainerService/managedClusters) | `MS.ContainerService` | [managedClusters](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ContainerService/managedClusters) | -| [Azure Databricks](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Databricks/workspaces) | `MS.Databricks` | [workspaces](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Databricks/workspaces) | -| [Data Factories](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DataFactory/factories) | `MS.DataFactory` | [factories](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DataFactory/factories) | -| [DataProtection BackupVaults](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DataProtection/backupVaults) | `MS.DataProtection` | [backupVaults](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DataProtection/backupVaults) | -| [AVD Application Groups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DesktopVirtualization/applicationgroups) | `MS.DesktopVirtualization` | [applicationgroups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DesktopVirtualization/applicationgroups) | -| [AVD Host Pools](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DesktopVirtualization/hostpools) | | [hostpools](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DesktopVirtualization/hostpools) | -| [AVD Scaling Plans](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DesktopVirtualization/scalingplans) | | [scalingplans](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DesktopVirtualization/scalingplans) | -| [AVD Workspaces](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DesktopVirtualization/workspaces) | | [workspaces](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DesktopVirtualization/workspaces) | -| [DocumentDB Database Accounts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DocumentDB/databaseAccounts) | `MS.DocumentDB` | [databaseAccounts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DocumentDB/databaseAccounts) | -| [Event Grid System Topics](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.EventGrid/systemTopics) | `MS.EventGrid` | [systemTopics](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.EventGrid/systemTopics) | -| [Event Grid Topics](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.EventGrid/topics) | | [topics](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.EventGrid/topics) | -| [Event Hub Namespaces](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.EventHub/namespaces) | `MS.EventHub` | [namespaces](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.EventHub/namespaces) | -| [Azure Health Bots](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.HealthBot/healthBots) | `MS.HealthBot` | [healthBots](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.HealthBot/healthBots) | -| [Action Groups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Insights/actionGroups) | `MS.Insights` | [actionGroups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Insights/actionGroups) | -| [Activity Log Alerts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Insights/activityLogAlerts) | | [activityLogAlerts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Insights/activityLogAlerts) | -| [Application Insights](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Insights/components) | | [components](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Insights/components) | -| [Activity Logs](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Insights/diagnosticSettings) | | [diagnosticSettings](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Insights/diagnosticSettings) | -| [Metric Alerts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Insights/metricAlerts) | | [metricAlerts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Insights/metricAlerts) | -| [Azure Monitor Private Link Scopes](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Insights/privateLinkScopes) | | [privateLinkScopes](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Insights/privateLinkScopes) | -| [Scheduled Query Rules](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Insights/scheduledQueryRules) | | [scheduledQueryRules](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Insights/scheduledQueryRules) | -| [Key Vaults](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.KeyVault/vaults) | `MS.KeyVault` | [vaults](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.KeyVault/vaults) | -| [Kubernetes Configuration Extensions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.KubernetesConfiguration/extensions) | `MS.KubernetesConfiguration` | [extensions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.KubernetesConfiguration/extensions) | -| [Kubernetes Configuration Flux Configurations](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.KubernetesConfiguration/fluxConfigurations) | | [fluxConfigurations](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.KubernetesConfiguration/fluxConfigurations) | -| [Logic Apps](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Logic/workflows) | `MS.Logic` | [workflows](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Logic/workflows) | -| [Machine Learning Workspaces](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.MachineLearningServices/workspaces) | `MS.achineLearningServices` | [workspaces](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.MachineLearningServices/workspaces) | -| [User Assigned Identities](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ManagedIdentity/userAssignedIdentities) | `MS.anagedIdentity` | [userAssignedIdentities](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ManagedIdentity/userAssignedIdentities) | -| [Registration Definitions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ManagedServices/registrationDefinitions) | `MS.anagedServices` | [registrationDefinitions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ManagedServices/registrationDefinitions) | -| [Management Groups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Management/managementGroups) | `MS.anagement` | [managementGroups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Management/managementGroups) | -| [Azure NetApp Files](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.NetApp/netAppAccounts) | `MS.NetApp` | [netAppAccounts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.NetApp/netAppAccounts) | -| [Network Application Gateways](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/applicationGateways) | `MS.Network` | [applicationGateways](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/applicationGateways) | -| [Application Security Groups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/applicationSecurityGroups) | | [applicationSecurityGroups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/applicationSecurityGroups) | -| [Azure Firewalls](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/azureFirewalls) | | [azureFirewalls](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/azureFirewalls) | -| [Bastion Hosts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/bastionHosts) | | [bastionHosts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/bastionHosts) | -| [Virtual Network Gateway Connections](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/connections) | | [connections](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/connections) | -| [DDoS Protection Plans](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/ddosProtectionPlans) | | [ddosProtectionPlans](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/ddosProtectionPlans) | -| [ExpressRoute Circuits](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/expressRouteCircuits) | | [expressRouteCircuits](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/expressRouteCircuits) | -| [Firewall Policies](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/firewallPolicies) | | [firewallPolicies](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/firewallPolicies) | -| [Front Doors](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/frontDoors) | | [frontDoors](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/frontDoors) | -| [IP Groups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/ipGroups) | | [ipGroups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/ipGroups) | -| [Load Balancers](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/loadBalancers) | | [loadBalancers](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/loadBalancers) | -| [Local Network Gateways](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/localNetworkGateways) | | [localNetworkGateways](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/localNetworkGateways) | -| [NAT Gateways](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/natGateways) | | [natGateways](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/natGateways) | -| [Network Interface](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/networkInterfaces) | | [networkInterfaces](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/networkInterfaces) | -| [Network Security Groups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/networkSecurityGroups) | | [networkSecurityGroups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/networkSecurityGroups) | -| [Network Watchers](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/networkWatchers) | | [networkWatchers](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/networkWatchers) | -| [Private DNS Zones](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/privateDnsZones) | | [privateDnsZones](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/privateDnsZones) | -| [Private Endpoints](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/privateEndpoints) | | [privateEndpoints](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/privateEndpoints) | -| [Public IP Addresses](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/publicIPAddresses) | | [publicIPAddresses](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/publicIPAddresses) | -| [Public IP Prefixes](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/publicIPPrefixes) | | [publicIPPrefixes](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/publicIPPrefixes) | -| [Route Tables](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/routeTables) | | [routeTables](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/routeTables) | -| [Traffic Manager Profiles](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/trafficmanagerprofiles) | | [trafficmanagerprofiles](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/trafficmanagerprofiles) | -| [Virtual Hubs](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/virtualHubs) | | [virtualHubs](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/virtualHubs) | -| [Virtual Network Gateways](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/virtualNetworkGateways) | | [virtualNetworkGateways](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/virtualNetworkGateways) | -| [Virtual Networks](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/virtualNetworks) | | [virtualNetworks](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/virtualNetworks) | -| [Virtual WANs](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/virtualWans) | | [virtualWans](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/virtualWans) | -| [VPN Gateways](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/vpnGateways) | | [vpnGateways](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/vpnGateways) | -| [VPN Sites](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/vpnSites) | | [vpnSites](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/vpnSites) | -| [Log Analytics Workspaces](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.OperationalInsights/workspaces) | `MS.OperationalInsights` | [workspaces](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.OperationalInsights/workspaces) | -| [OperationsManagement Solutions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.OperationsManagement/solutions) | `MS.OperationsManagement` | [solutions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.OperationsManagement/solutions) | -| [Recovery Services Vaults](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.RecoveryServices/vaults) | `MS.RecoveryServices` | [vaults](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.RecoveryServices/vaults) | -| [Deployment Scripts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Resources/deploymentScripts) | `MS.Resources` | [deploymentScripts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Resources/deploymentScripts) | -| [Resource Groups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Resources/resourceGroups) | | [resourceGroups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Resources/resourceGroups) | -| [Resources Tags](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Resources/tags) | | [tags](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Resources/tags) | -| [Azure Security Center](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Security/azureSecurityCenter) | `MS.Security` | [azureSecurityCenter](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Security/azureSecurityCenter) | -| [Service Bus Namespaces](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ServiceBus/namespaces) | `MS.ServiceBus` | [namespaces](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ServiceBus/namespaces) | -| [Service Fabric Clusters](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ServiceFabric/clusters) | `MS.ServiceFabric` | [clusters](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ServiceFabric/clusters) | -| [SQL Managed Instances](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Sql/managedInstances) | `MS.Sql` | [managedInstances](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Sql/managedInstances) | -| [SQL Servers](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Sql/servers) | | [servers](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Sql/servers) | -| [Storage Accounts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Storage/storageAccounts) | `MS.Storage` | [storageAccounts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Storage/storageAccounts) | -| [Azure Synapse Analytics](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Synapse/privateLinkHubs) | `MS.Synapse` | [privateLinkHubs](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Synapse/privateLinkHubs) | -| [Image Templates](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.VirtualMachineImages/imageTemplates) | `MS.VirtualMachineImages` | [imageTemplates](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.VirtualMachineImages/imageTemplates) | -| [API Connections](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Web/connections) | `MS.Web` | [connections](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Web/connections) | -| [App Service Environments](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Web/hostingEnvironments) | | [hostingEnvironments](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Web/hostingEnvironments) | -| [App Service Plans](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Web/serverfarms) | | [serverfarms](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Web/serverfarms) | -| [Web/Function Apps](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Web/sites) | | [sites](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Web/sites) | -| [Static Web Sites](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Web/staticSites) | | [staticSites](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Web/staticSites) | diff --git a/constructs/Microsoft.Authorization/roleAssignments-multiRolesMultiPrincipals/.bicep/nested_roleAssignments.bicep b/constructs/Microsoft.Authorization/roleAssignments-multiRolesMultiPrincipals/.bicep/nested_roleAssignments.bicep index e9139f12a1..eab4087e91 100644 --- a/constructs/Microsoft.Authorization/roleAssignments-multiRolesMultiPrincipals/.bicep/nested_roleAssignments.bicep +++ b/constructs/Microsoft.Authorization/roleAssignments-multiRolesMultiPrincipals/.bicep/nested_roleAssignments.bicep @@ -291,7 +291,7 @@ var builtInRoleNames = { 'Azure Maps Contributor': '/providers/Microsoft.Authorization/roleDefinitions/dba33070-676a-4fb0-87fa-064dc56ff7fb' } -module roleAssignments_mg '../../../../arm/Microsoft.Authorization/roleAssignments/managementGroup/deploy.bicep' = [for principalId in principalIds: if (!empty(managementGroupId) && empty(subscriptionId) && empty(resourceGroupName)) { +module roleAssignments_mg '../../../../modules/Microsoft.Authorization/roleAssignments/managementGroup/deploy.bicep' = [for principalId in principalIds: if (!empty(managementGroupId) && empty(subscriptionId) && empty(resourceGroupName)) { name: 'roleAssignments_mg-${guid(deployment().name, location, principalId)}' scope: managementGroup(managementGroupId) params: { @@ -301,7 +301,7 @@ module roleAssignments_mg '../../../../arm/Microsoft.Authorization/roleAssignmen } }] -module roleAssignments_sub '../../../../arm/Microsoft.Authorization/roleAssignments/subscription/deploy.bicep' = [for principalId in principalIds: if (empty(managementGroupId) && !empty(subscriptionId) && empty(resourceGroupName)) { +module roleAssignments_sub '../../../../modules/Microsoft.Authorization/roleAssignments/subscription/deploy.bicep' = [for principalId in principalIds: if (empty(managementGroupId) && !empty(subscriptionId) && empty(resourceGroupName)) { name: 'roleAssignments_sub-${guid(deployment().name, location, principalId)}' scope: subscription(subscriptionId) params: { @@ -311,7 +311,7 @@ module roleAssignments_sub '../../../../arm/Microsoft.Authorization/roleAssignme } }] -module roleAssignments_rg '../../../../arm/Microsoft.Authorization/roleAssignments/resourceGroup/deploy.bicep' = [for principalId in principalIds: if (empty(managementGroupId) && !empty(resourceGroupName) && !empty(subscriptionId)) { +module roleAssignments_rg '../../../../modules/Microsoft.Authorization/roleAssignments/resourceGroup/deploy.bicep' = [for principalId in principalIds: if (empty(managementGroupId) && !empty(resourceGroupName) && !empty(subscriptionId)) { name: 'roleAssignments_rg-${guid(deployment().name, location, principalId)}' scope: resourceGroup(subscriptionId, resourceGroupName) params: { diff --git a/constructs/Microsoft.Compute/virtualMachinesMultiple/deploy.bicep b/constructs/Microsoft.Compute/virtualMachinesMultiple/deploy.bicep index f35a53e0c0..5e79b624eb 100644 --- a/constructs/Microsoft.Compute/virtualMachinesMultiple/deploy.bicep +++ b/constructs/Microsoft.Compute/virtualMachinesMultiple/deploy.bicep @@ -300,7 +300,7 @@ var vmNamesToApply = !empty(vmNames) ? vmNames : vmGeneratedNames var enableReferencedModulesTelemetry = false -module virtualMachine '../../../arm/Microsoft.Compute/virtualMachines/deploy.bicep' = [for (vmName, index) in vmNamesToApply: { +module virtualMachine '../../../modules/Microsoft.Compute/virtualMachines/deploy.bicep' = [for (vmName, index) in vmNamesToApply: { name: '${deployment().name}-vm-${index}' params: { name: vmName diff --git a/constructs/Microsoft.Network/virtualNetwork/virtualNetworkPeerings-multiRemoteVnets/deploy.bicep b/constructs/Microsoft.Network/virtualNetwork/virtualNetworkPeerings-multiRemoteVnets/deploy.bicep index 80971b71eb..353f473ba7 100644 --- a/constructs/Microsoft.Network/virtualNetwork/virtualNetworkPeerings-multiRemoteVnets/deploy.bicep +++ b/constructs/Microsoft.Network/virtualNetwork/virtualNetworkPeerings-multiRemoteVnets/deploy.bicep @@ -19,7 +19,7 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } } -module virtualNetworkPeering '../../../../arm/Microsoft.Network/virtualNetworks/virtualNetworkPeerings/deploy.bicep' = [for peeringConfiguration in peeringConfigurations: { +module virtualNetworkPeering '../../../../modules/Microsoft.Network/virtualNetworks/virtualNetworkPeerings/deploy.bicep' = [for peeringConfiguration in peeringConfigurations: { name: 'virtualNetworkPeering-${last(split(peeringConfiguration.remoteVirtualNetworkId, '/'))}' params: { name: contains(peeringConfiguration, 'peeringName') ? '${peeringConfiguration.peeringName}' : '${localVnetName}-${last(split(peeringConfiguration.remoteVirtualNetworkId, '/'))}' diff --git a/docs/wiki/Getting started - Get module cross-references.md b/docs/wiki/Getting started - Get module cross-references.md index abe10e5097..a81d551dd4 100644 --- a/docs/wiki/Getting started - Get module cross-references.md +++ b/docs/wiki/Getting started - Get module cross-references.md @@ -32,7 +32,7 @@ For details on how to use the function, please refer to the script's local docum ## Example output ```PowerShell -VERBOSE: The modules in path [ResourceModules\arm] have the following local folder dependencies: +VERBOSE: The modules in path [ResourceModules\modules] have the following local folder dependencies: VERBOSE: VERBOSE: Resource: Microsoft.ApiManagement/service VERBOSE: - Microsoft.ApiManagement/authorizationServers diff --git a/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md b/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md index 15c4437991..52a5377a93 100644 --- a/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md +++ b/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md @@ -88,7 +88,7 @@ To configure the CI environment you have to perform several steps: To lower the barrier to entry and allow users to easily define their own naming conventions, we introduced a default `'name prefix'` for all deployed resources. -> **Note:** This prefix is only used by the CI environment you validate your modules in, and doesn't affect the naming of any resources you deploy as part of any multi-module solutions (applications/workloads) based on the modules. +> **Note:** This prefix is only used by the CI environment you validate your modules in, and doesn't affect the naming of any resources you deploy as part of any multi-module solutions (applications/workloads) based on the modules. Each pipeline in CARML deploying resources uses a logic that automatically replaces "tokens" (i.e., placeholders) in any parameter file. Tokens are stored in only a few central locations to facilitate maintenance (e.g., local `settings.json`, repository secrets or variable groups). @@ -231,7 +231,7 @@ To let the worflow engine publish their results into your repository, you have t 1. Make sure to enable `Read and write permissions` Workflow Permissions - +

@@ -379,16 +379,16 @@ For this reason, make sure to update the references in the following modules onc | File | Parameter | Notes | | - | - | - | -| `arm\Microsoft.Compute\diskEncryptionSets\.parameters\parameters.json` |`keyUrl.value` | | -| `arm\Microsoft.Compute\virtualMachines\.parameters\linux.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | -| `arm\Microsoft.Compute\virtualMachines\.parameters\windows.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | -| `arm\Microsoft.Compute\virtualMachineScaleSets\.parameters\linux.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | -| `arm\Microsoft.Compute\virtualMachineScaleSets\.parameters\windows.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | -| `arm\Microsoft.Sql\managedInstances\.parameters\parameters.json` | `keys.value.uri` | | -| `arm\Microsoft.Network\applicationGateways\.parameters\parameters.json` | `sslCertificates.value.properties.keyVaultSecretId` | | -| `arm\Microsoft.Web\sites\.parameters\fa.parameters.json` | `appSettingsKeyValuePairs.value.EASYAUTH_SECRET` | Key Vault secret URI without version | -| `arm\Microsoft.Web\sites\.parameters\fa.parameters.json` | `authSettingV2Configuration.value.identityProviders.azureActiveDirectory.registration.clientId` | App ID from the Azure Active Directory App | -| `arm\Microsoft.Web\sites\.parameters\fa.parameters.json` | `authSettingV2Configuration.value.identityProviders.azureActiveDirectory.validation.allowedAudiences` | API endpoint from the Azure Active Directory app | +| `modules\Microsoft.Compute\diskEncryptionSets\.parameters\parameters.json` |`keyUrl.value` | | +| `modules\Microsoft.Compute\virtualMachines\.parameters\linux.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | +| `modules\Microsoft.Compute\virtualMachines\.parameters\windows.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | +| `modules\Microsoft.Compute\virtualMachineScaleSets\.parameters\linux.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | +| `modules\Microsoft.Compute\virtualMachineScaleSets\.parameters\windows.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | +| `modules\Microsoft.Sql\managedInstances\.parameters\parameters.json` | `keys.value.uri` | | +| `modules\Microsoft.Network\applicationGateways\.parameters\parameters.json` | `sslCertificates.value.properties.keyVaultSecretId` | | +| `modules\Microsoft.Web\sites\.parameters\fa.parameters.json` | `appSettingsKeyValuePairs.value.EASYAUTH_SECRET` | Key Vault secret URI without version | +| `modules\Microsoft.Web\sites\.parameters\fa.parameters.json` | `authSettingV2Configuration.value.identityProviders.azureActiveDirectory.registration.clientId` | App ID from the Azure Active Directory App | +| `modules\Microsoft.Web\sites\.parameters\fa.parameters.json` | `authSettingV2Configuration.value.identityProviders.azureActiveDirectory.validation.allowedAudiences` | API endpoint from the Azure Active Directory app | diff --git a/docs/wiki/Solution creation.md b/docs/wiki/Solution creation.md index 8d3a037343..21437dd74f 100644 --- a/docs/wiki/Solution creation.md +++ b/docs/wiki/Solution creation.md @@ -57,8 +57,8 @@ Once you start building a solution using this library, you may wonder how best t - Use the [VS-Code extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-bicep) for Bicep to enable DSL-native features such as auto-complete. Metadata implemented in the modules are automatically loaded through the extension. - Use the readme - - If you don't know how to use an object/array parameter, you can check if the module's ReadMe file specifies any 'Parameter Usage' block for the given parameter ([example](https://github.com/Azure/ResourceModules/blob/main/arm/Microsoft.AnalysisServices/servers/readme.md#parameter-usage-tags)) - or - check the module's `Deployment Examples` ([example](https://github.com/Azure/ResourceModules/blob/main/arm/Microsoft.AnalysisServices/servers/readme.md#deployment-examples)). - - In general, take note of the `Deployment Examples` specified in each module's ReadMe file, as they provide you with rich & tested examples of how a given module can be deployed ([example](https://github.com/Azure/ResourceModules/blob/main/arm/Microsoft.AnalysisServices/servers/readme.md#deployment-examples)). An easy way to get started is to copy one of the examples and then adjust it to your needs. + - If you don't know how to use an object/array parameter you can check if the module's ReadMe file specifies any 'Parameter Usage' block for set parameter ([example](https://github.com/Azure/ResourceModules/blob/main/modules/Microsoft.AnalysisServices/servers/readme.md#parameter-usage-tags)) - or - check the module's `Deployment Examples` ([example](https://github.com/Azure/ResourceModules/blob/main/modules/Microsoft.AnalysisServices/servers/readme.md#deployment-examples)). + - In general, take note of the `Deployment Examples` specified in each module's ReadMe file as they provide you with rich & tested examples of how set module can be deployed ([example](https://github.com/Azure/ResourceModules/blob/main/modules/Microsoft.AnalysisServices/servers/readme.md#deployment-examples)). An easy way to get started is to copy one of the examples and then adjust to it your needs. - Note the outputs that are returned by each module. - If an output you need isn't available, you have 2 choices: 1. Add the missing output to the module @@ -117,7 +117,7 @@ param subnets array = [ // =========== // // Resource Group -module rg '../arm/Microsoft.Resources/resourceGroups/deploy.bicep' = { +module rg '../modules/Microsoft.Resources/resourceGroups/deploy.bicep' = { name: 'registry-rg' params: { name: resourceGroupName @@ -126,7 +126,7 @@ module rg '../arm/Microsoft.Resources/resourceGroups/deploy.bicep' = { } // Network Security Group -module nsg '../arm/Microsoft.Network/networkSecurityGroups/deploy.bicep' = { +module nsg '../modules/Microsoft.Network/networkSecurityGroups/deploy.bicep' = { name: 'registry-nsg' scope: resourceGroup(resourceGroupName) params: { @@ -138,7 +138,7 @@ module nsg '../arm/Microsoft.Network/networkSecurityGroups/deploy.bicep' = { } // Virtual Network -module vnet '../arm/Microsoft.Network/virtualNetworks/deploy.bicep' = { +module vnet '../modules/Microsoft.Network/virtualNetworks/deploy.bicep' = { name: 'registry-vnet' scope: resourceGroup(resourceGroupName) params: { @@ -436,7 +436,7 @@ jobs: - name: 'Deploy resource group' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: './arm/Microsoft.Resources/resourceGroups/deploy.bicep' + templateFilePath: './modules/Microsoft.Resources/resourceGroups/deploy.bicep' parameterFilePath: './MultiRepoTestParentFolder/network-hub-rg/Parameters/ResourceGroup/parameters.json' location: '${{ env.defaultLocation }}' resourceGroupName: '${{ env.resourceGroupName }}' @@ -447,7 +447,7 @@ jobs: - name: 'Deploy network security group' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: './arm/Microsoft.Network/networkSecurityGroups/deploy.bicep' + templateFilePath: './modules/Microsoft.Network/networkSecurityGroups/deploy.bicep' parameterFilePath: './MultiRepoTestParentFolder/network-hub-rg/Parameters/NetworkSecurityGroups/parameters.json' location: '${{ env.defaultLocation }}' resourceGroupName: '${{ env.resourceGroupName }}' @@ -458,7 +458,7 @@ jobs: - name: 'Deploy virtual network A' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: './arm/Microsoft.Network/virtualNetworks/deploy.bicep' + templateFilePath: './modules/Microsoft.Network/virtualNetworks/deploy.bicep' parameterFilePath: './MultiRepoTestParentFolder/network-hub-rg/Parameters/VirtualNetwork/vnet-A.parameters.json' location: '${{ env.defaultLocation }}' resourceGroupName: '${{ env.resourceGroupName }}' diff --git a/docs/wiki/The CI environment - GitHub ReadMe module table update.md b/docs/wiki/The CI environment - GitHub ReadMe module table update.md index e7540f6ae3..a280f5bbd8 100644 --- a/docs/wiki/The CI environment - GitHub ReadMe module table update.md +++ b/docs/wiki/The CI environment - GitHub ReadMe module table update.md @@ -1,5 +1,5 @@ Use this script to update a given ReadMe's module table in its 'Available Resource Modules' section. -In the platform's pipeline `platform.updateReadMe.yml`, this script is invoked each time anything in the `arm` path changes to keep the table in sync. It updates both the root ReadMe ([`/readme.md`](https://github.com/Azure/ResourceModules/blob/main/README)) and `arm` folder ReadMe ([`/arm/readme.md`](https://github.com/Azure/ResourceModules/blob/main/arm/readme)) with a different set of required columns +In the platform's pipeline `platform.updateReadMe.yml`, this script is invoked each time anything in the `modules` path changes to keep the table in sync. It updates both the root ReadMe (`/readme.md`) and `modules` folder ReadMe (`/modules/readme.md`) with a different set of required columns --- diff --git a/docs/wiki/The CI environment - Pipeline design.md b/docs/wiki/The CI environment - Pipeline design.md index e48f49b75a..baa6bd150c 100644 --- a/docs/wiki/The CI environment - Pipeline design.md +++ b/docs/wiki/The CI environment - Pipeline design.md @@ -256,9 +256,9 @@ In addition to the above resources, the following secrets, keys and certificates The repository includes two major ReadMe files that should stay in sync with the available modules. -The first can be found in the repository root (`README.md`) and the second in the modules folder (`arm/README.md`). +The first can be found in the repository root (`README.md`) and the second in the modules folder (`modules/README.md`). -The ReadMe pipeline is triggered each time changes are pushed to the `main` branch and only if a template in the `arm` folder is being altered. The pipeline leverages the script documented on the [GitHub ReadMe module table update](./The%20CI%20environment%20-%20GitHub%20ReadMe%20module%20table%20update) page. +The ReadMe pipeline is triggered each time changes are pushed to the `main` branch and only if a template in the `modules` folder is being altered. The pipeline leverages the script documented in the [GitHub ReadMe module table update](./The%20CI%20environment%20-%20GitHub%20ReadMe%20module%20table%20update) page. Once triggered, the pipeline crawls through the library and updates the tables in each corresponding ReadMe file, creating links to the corresponding pipeline runs and updating the list of entries. diff --git a/docs/wiki/The CI environment - Static validation.md b/docs/wiki/The CI environment - Static validation.md index 0396ce7f4c..b4595ccabc 100644 --- a/docs/wiki/The CI environment - Static validation.md +++ b/docs/wiki/The CI environment - Static validation.md @@ -14,7 +14,7 @@ This section provides an overview of the principles the static validation is bui All module Unit tests are performed with the help of [Pester](https://github.com/pester/Pester) to ensure that the modules are configured correctly, documentation is up to date, and modules don't turn stale. -The following activities are performed by the [`arm/.global/global.module.tests.ps1`](https://github.com/Azure/ResourceModules/blob/main/arm/.global/global.module.tests.ps1) script. +The following activities are performed by the [`modules/.global/global.module.tests.ps1`](https://github.com/Azure/ResourceModules/blob/main/modules/.global/global.module.tests.ps1) script. - **File & folder tests** validate that the module folder structure is set up in the intended way, e.g.: - readme.md file exists @@ -50,7 +50,7 @@ In this phase, Pester analyzes the API version of each resource type deployed by In particular, each resource's API version is compared with those currently available on Azure. This test has a certain level of tolerance (does not enforce the latest version): the API version in use should be one of the 5 latest versions available (including preview versions) or one of the the 5 latest non-preview versions. -This test also leverages the [`arm/.global/global.module.tests.ps1`](https://github.com/Azure/ResourceModules/blob/main/arm/.global/global.module.tests.ps1) script. +This test also leverages the [`modules/.global/global.module.tests.ps1`](https://github.com/Azure/ResourceModules/blob/main/modules/.global/global.module.tests.ps1) script. # Verify the static validation of your module locally @@ -65,7 +65,7 @@ $pathToRepository = '' # REQUIRED INPUT FOR TESTING $TestModuleLocallyInput = @{ - templateFilePath = "$pathToRepository\arm\Microsoft.Authorization\roleDefinitions\deploy.bicep" + templateFilePath = "$pathToRepository\modules\Microsoft.Authorization\roleDefinitions\deploy.bicep" PesterTest = $true DeploymentTest = $false ValidationTest = $false diff --git a/docs/wiki/The library - Module design.md b/docs/wiki/The library - Module design.md index 4871057553..714282abff 100644 --- a/docs/wiki/The library - Module design.md +++ b/docs/wiki/The library - Module design.md @@ -38,9 +38,9 @@ They can be deployed in different configurations just by changing the input para # General guidelines -- All resource modules in the 'arm' folder should not allow deployment loops on the top-level resource but may optionally allow deployment loops on their child resources. +- All resource modules in the 'modules' folder should not allow deployment loops on the top-level resource but may optionally allow deployment loops on their child resources. > **Example:** The storage account module allows the deployment of a single storage account with, optionally, multiple blob containers, multiple file shares, multiple queues and/or multiple tables. -- The 'constructs' folder contains examples of deployment logic built on top of resource modules included in the 'arm' folder, allowing for example, deployment loops on top-level resources. +- The 'constructs' folder contains examples of deployment logic built on top of resource modules included in the 'modules' folder, allowing for example, deployment loops on top-level resources. > **Example:** The VirtualNetworkPeering construct leverages the VirtualNetworkPeering module to deploy multiple virtual network peering connections at once. - Where the resource type in question supports it, the module should have support for: 1. **Diagnostic logs** and **metrics** (you can have them sent to one ore more of the following destination types: storage account, log analytics and event hub). @@ -63,7 +63,7 @@ A **CARML module** consists of - One or multiple template parameters files (`*parameters.json`) that will be used for testing, located in the `.parameters` subfolder. - A `readme.md` file which describes the module itself. -A module usually represents a single resource or a set of closely related resources. For example, a storage account and the associated lock or virtual machine and network interfaces. Modules are located in the `arm` folder. +A module usually represents a single resource or a set of closely related resources. For example, a storage account and the associated lock or virtual machine and network interfaces. Modules are located in the `modules` folder. Also, each module should be implemented with all capabilities it and its children support. This includes - `Locks` diff --git a/docs/wiki/The library - Module usage.md b/docs/wiki/The library - Module usage.md index d6e6c423d8..ed03ba247d 100644 --- a/docs/wiki/The library - Module usage.md +++ b/docs/wiki/The library - Module usage.md @@ -33,9 +33,9 @@ $inputObject = @{ ResourceGroupName = 'ExampleGroup' TemplateParameterFile = 'parameters.json' # Using a local reference - TemplateFile = "$home\ResourceModules\arm\Microsoft.KeyVault\vault\deploy.bicep" + TemplateFile = "$home\ResourceModules\modules\Microsoft.KeyVault\vault\deploy.bicep" # Using a remote reference - # TemplateUri = 'https://raw.githubusercontent.com/Azure/ResourceModules/main/arm/Microsoft.KeyVault/vaults/deploy.bicep' + # TemplateUri = 'https://raw.githubusercontent.com/Azure/ResourceModules/main/modules/Microsoft.KeyVault/vaults/deploy.bicep' } New-AzResourceGroupDeployment @inputObject ``` @@ -57,9 +57,9 @@ $inputObject = @{ TemplateParameterFile = 'parameters.json' Location = 'EastUS2' # Using a local reference - TemplateFile = "$home\ResourceModules\arm\Microsoft.Resources\resourceGroups\deploy.bicep" + TemplateFile = "$home\ResourceModules\modules\Microsoft.Resources\resourceGroups\deploy.bicep" # Using a remote reference - # TemplateUri = 'https://raw.githubusercontent.com/Azure/ResourceModules/main/arm/Microsoft.Resources/resourceGroups/deploy.bicep' + # TemplateUri = 'https://raw.githubusercontent.com/Azure/ResourceModules/main/modules/Microsoft.Resources/resourceGroups/deploy.bicep' } New-AzDeployment @inputObject ``` @@ -82,9 +82,9 @@ $inputObject = @{ Location = 'EastUS2' TemplateParameterFile = 'parameters.json' # Using a local reference - TemplateFile = "$home\ResourceModules\arm\Microsoft.Authorization\policyAssignments\managementGroup\deploy.bicep" + TemplateFile = "$home\ResourceModules\modules\Microsoft.Authorization\policyAssignments\managementGroup\deploy.bicep" # Using a remote reference - # TemplateUri = 'https://raw.githubusercontent.com/Azure/ResourceModules/main/arm/Microsoft.Authorization/policyAssignments/managementGroup/deploy.bicep' + # TemplateUri = 'https://raw.githubusercontent.com/Azure/ResourceModules/main/modules/Microsoft.Authorization/policyAssignments/managementGroup/deploy.bicep' } New-AzManagementGroupDeployment @inputObject ``` @@ -106,9 +106,9 @@ $inputObject = @{ TemplateParameterFile = 'parameters.json' Location = 'EastUS2' # Using a local reference - TemplateFile = "$home\ResourceModules\arm\Microsoft.Subscription\aliases\deploy.bicep" + TemplateFile = "$home\ResourceModules\modules\Microsoft.Subscription\aliases\deploy.bicep" # Using a remote reference - # TemplateUri = 'https://raw.githubusercontent.com/Azure/ResourceModules/main/arm/Microsoft.Subscription/aliases/deploy.bicep' + # TemplateUri = 'https://raw.githubusercontent.com/Azure/ResourceModules/main/modules/Microsoft.Subscription/aliases/deploy.bicep' } New-AzTenantDeployment @inputObject ``` @@ -133,9 +133,9 @@ $inputObject = @( '--resource-group', 'ExampleGroup', '--parameters', '@parameters.json', # Using a local reference - '--template-file', "$home\ResourceModules\arm\Microsoft.Storage\storageAccounts\deploy.bicep", + '--template-file', "$home\ResourceModules\modules\Microsoft.Storage\storageAccounts\deploy.bicep", # Using a remote reference - # '--template-uri', 'https://raw.githubusercontent.com/Azure/ResourceModules/main/arm/Microsoft.Storage/storageAccounts/deploy.bicep' + # '--template-uri', 'https://raw.githubusercontent.com/Azure/ResourceModules/main/modules/Microsoft.Storage/storageAccounts/deploy.bicep' ) az deployment group create @inputObject ``` @@ -157,9 +157,9 @@ $inputObject = @( '--parameters', '@parameters.json', '--location', 'EastUS2', # Using a local reference - '--template-file', "$home\ResourceModules\arm\Microsoft.Resources\resourceGroups\deploy.bicep" + '--template-file', "$home\ResourceModules\modules\Microsoft.Resources\resourceGroups\deploy.bicep" # Using a remote reference - # '--template-uri', 'https://raw.githubusercontent.com/Azure/ResourceModules/main/arm/Microsoft.Resources/resourceGroups/deploy.bicep' + # '--template-uri', 'https://raw.githubusercontent.com/Azure/ResourceModules/main/modules/Microsoft.Resources/resourceGroups/deploy.bicep' ) az deployment sub create @inputObject ``` @@ -182,9 +182,9 @@ $inputObject = @( '--location', 'EastUS2', '--management-group-id', 'myManagementGroup', # Using a local reference - '--template-file', "$home\ResourceModules\arm\Microsoft.Authorization\policyAssignments\managementGroup\deploy.bicep" + '--template-file', "$home\ResourceModules\modules\Microsoft.Authorization\policyAssignments\managementGroup\deploy.bicep" # Using a remote reference - # '--template-uri', 'https://raw.githubusercontent.com/Azure/ResourceModules/main/arm/Microsoft.Authorization/policyAssignments/managementGroup/deploy.bicep' + # '--template-uri', 'https://raw.githubusercontent.com/Azure/ResourceModules/main/modules/Microsoft.Authorization/policyAssignments/managementGroup/deploy.bicep' ) az deployment mg create @inputObject ``` @@ -206,9 +206,9 @@ $inputObject = @( '--parameters', '@parameters.json', '--location', 'EastUS2', # Using a local reference - '--template-file', "$home\ResourceModules\arm\Microsoft.Subscription\aliases\deploy.bicep" + '--template-file', "$home\ResourceModules\modules\Microsoft.Subscription\aliases\deploy.bicep" # Using a remote reference - # '--template-uri', 'https://raw.githubusercontent.com/Azure/ResourceModules/main/arm/Microsoft.Subscription/aliases/deploy.bicep' + # '--template-uri', 'https://raw.githubusercontent.com/Azure/ResourceModules/main/modules/Microsoft.Subscription/aliases/deploy.bicep' ) az deployment tenant create @inputObject ``` diff --git a/arm/.global/global.module.tests.ps1 b/modules/.global/global.module.tests.ps1 similarity index 98% rename from arm/.global/global.module.tests.ps1 rename to modules/.global/global.module.tests.ps1 index 049c61f1fa..3233d33690 100644 --- a/arm/.global/global.module.tests.ps1 +++ b/modules/.global/global.module.tests.ps1 @@ -38,9 +38,9 @@ Describe 'File/folder tests' -Tag Modules { $moduleFolderTestCases = [System.Collections.ArrayList] @() foreach ($moduleFolderPath in $moduleFolderPaths) { $moduleFolderTestCases += @{ - moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/arm/')[1] + moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1] moduleFolderPath = $moduleFolderPath - isTopLevelModule = $moduleFolderPath.Replace('\', '/').Split('/arm/')[1].Split('/').Count -eq 2 # / + isTopLevelModule = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1].Split('/').Count -eq 2 # / } } @@ -108,7 +108,7 @@ Describe 'File/folder tests' -Tag Modules { foreach ($moduleFolderPath in $moduleFolderPaths) { if (Test-Path (Join-Path $moduleFolderPath '.parameters')) { $folderTestCases += @{ - moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/arm/')[1] + moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1] moduleFolderPath = $moduleFolderPath } } @@ -130,7 +130,7 @@ Describe 'File/folder tests' -Tag Modules { if (Test-Path $parameterFolderPath) { foreach ($parameterFile in (Get-ChildItem $parameterFolderPath -Filter '*parameters.json' -Force)) { $parameterFolderFilesTestCases += @{ - moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/arm/')[1] + moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1] parameterFilePath = $parameterFile.FullName } } @@ -156,7 +156,7 @@ Describe 'Readme tests' -Tag Readme { foreach ($moduleFolderPath in $moduleFolderPaths) { # For runtime purposes, we cache the compiled template in a hashtable that uses a formatted relative module path as a key - $moduleFolderPathKey = $moduleFolderPath.Split('arm')[1].Replace('\', '/').Trim('/').Replace('/', '-') + $moduleFolderPathKey = $moduleFolderPath.Split('modules')[1].Replace('\', '/').Trim('/').Replace('/', '-') if (-not ($convertedTemplates.Keys -contains $moduleFolderPathKey)) { if (Test-Path (Join-Path $moduleFolderPath 'deploy.bicep')) { $templateFilePath = Join-Path $moduleFolderPath 'deploy.bicep' @@ -185,13 +185,13 @@ Describe 'Readme tests' -Tag Readme { } $readmeFolderTestCases += @{ - moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/arm/')[1] + moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1] moduleFolderPath = $moduleFolderPath templateContent = $templateContent templateFilePath = $templateFilePath readMeFilePath = Join-Path -Path $moduleFolderPath 'readme.md' readMeContent = Get-Content (Join-Path -Path $moduleFolderPath 'readme.md') - isTopLevelModule = $moduleFolderPath.Replace('\', '/').Split('/arm/')[1].Split('/').Count -eq 2 # / + isTopLevelModule = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1].Split('/').Count -eq 2 # / } } @@ -471,7 +471,7 @@ Describe 'Deployment template tests' -Tag Template { foreach ($moduleFolderPath in $moduleFolderPaths) { # For runtime purposes, we cache the compiled template in a hashtable that uses a formatted relative module path as a key - $moduleFolderPathKey = $moduleFolderPath.Split('arm')[1].Replace('\', '/').Trim('/').Replace('/', '-') + $moduleFolderPathKey = $moduleFolderPath.Split('modules')[1].Replace('\', '/').Trim('/').Replace('/', '-') if (-not ($convertedTemplates.Keys -contains $moduleFolderPathKey)) { if (Test-Path (Join-Path $moduleFolderPath 'deploy.bicep')) { $templateFilePath = Join-Path $moduleFolderPath 'deploy.bicep' @@ -522,7 +522,7 @@ Describe 'Deployment template tests' -Tag Template { # Test file setup $deploymentFolderTestCases += @{ - moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/arm/')[1] + moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1] templateContent = $templateContent templateFilePath = $templateFilePath parameterFileTestCases = $parameterFileTestCases @@ -740,7 +740,7 @@ Describe 'Deployment template tests' -Tag Template { $outputs = $templateContent.outputs - $primaryResourceType = (Split-Path $TemplateFilePath -Parent).Replace('\', '/').split('/arm/')[1] + $primaryResourceType = (Split-Path $TemplateFilePath -Parent).Replace('\', '/').split('/modules/')[1] $primaryResourceTypeResource = $templateContent.resources | Where-Object { $_.type -eq $primaryResourceType } if ($primaryResourceTypeResource.keys -contains 'location' -and $primaryResourceTypeResource.location -ne 'global') { @@ -777,7 +777,7 @@ Describe 'Deployment template tests' -Tag Template { ) # check if module contains a 'primary' resource we could draw a name from - $moduleResourceType = (Split-Path (($templateFilePath -replace '\\', '/') -split '/arm/')[1] -Parent) -replace '\\', '/' + $moduleResourceType = (Split-Path (($templateFilePath -replace '\\', '/') -split '/modules/')[1] -Parent) -replace '\\', '/' if ($templateContent.resources.type -notcontains $moduleResourceType) { Set-ItResult -Skipped -Because 'the module template has no primary resource to fetch a name from.' return @@ -797,7 +797,7 @@ Describe 'Deployment template tests' -Tag Template { ) # check if module contains a 'primary' resource we could draw a name from - $moduleResourceType = (Split-Path (($templateFilePath -replace '\\', '/') -split '/arm/')[1] -Parent) -replace '\\', '/' + $moduleResourceType = (Split-Path (($templateFilePath -replace '\\', '/') -split '/modules/')[1] -Parent) -replace '\\', '/' if ($templateContent.resources.type -notcontains $moduleResourceType) { Set-ItResult -Skipped -Because 'the module template has no primary resource to fetch a resource ID from.' return @@ -927,7 +927,7 @@ Describe 'Deployment template tests' -Tag Template { tokenSettings = $Settings.parameterFileTokens tokenName = $token tokenValue = $enforcedTokenList[$token] - moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/arm/')[1] + moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1] } } } @@ -960,10 +960,10 @@ Describe "API version tests [All apiVersions in the template should be 'recent'] $ApiVersions = Get-AzResourceProvider -ListAvailable foreach ($moduleFolderPath in $moduleFolderPaths) { - $moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/arm/')[1] + $moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1] # For runtime purposes, we cache the compiled template in a hashtable that uses a formatted relative module path as a key - $moduleFolderPathKey = $moduleFolderPath.Split('arm')[1].Replace('\', '/').Trim('/').Replace('/', '-') + $moduleFolderPathKey = $moduleFolderPath.Split('modules')[1].Replace('\', '/').Trim('/').Replace('/', '-') if (-not ($convertedTemplates.Keys -contains $moduleFolderPathKey)) { if (Test-Path (Join-Path $moduleFolderPath 'deploy.bicep')) { $templateFilePath = Join-Path $moduleFolderPath 'deploy.bicep' diff --git a/arm/.global/shared/helper.psm1 b/modules/.global/shared/helper.psm1 similarity index 100% rename from arm/.global/shared/helper.psm1 rename to modules/.global/shared/helper.psm1 diff --git a/arm/Microsoft.AAD/DomainServices/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.AAD/DomainServices/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.AAD/DomainServices/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.AAD/DomainServices/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.AAD/DomainServices/.parameters/parameters.json b/modules/Microsoft.AAD/DomainServices/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.AAD/DomainServices/.parameters/parameters.json rename to modules/Microsoft.AAD/DomainServices/.parameters/parameters.json diff --git a/arm/Microsoft.AAD/DomainServices/deploy.bicep b/modules/Microsoft.AAD/DomainServices/deploy.bicep similarity index 100% rename from arm/Microsoft.AAD/DomainServices/deploy.bicep rename to modules/Microsoft.AAD/DomainServices/deploy.bicep diff --git a/arm/Microsoft.AAD/DomainServices/readme.md b/modules/Microsoft.AAD/DomainServices/readme.md similarity index 100% rename from arm/Microsoft.AAD/DomainServices/readme.md rename to modules/Microsoft.AAD/DomainServices/readme.md diff --git a/arm/Microsoft.AAD/DomainServices/version.json b/modules/Microsoft.AAD/DomainServices/version.json similarity index 100% rename from arm/Microsoft.AAD/DomainServices/version.json rename to modules/Microsoft.AAD/DomainServices/version.json diff --git a/arm/Microsoft.AnalysisServices/servers/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.AnalysisServices/servers/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.AnalysisServices/servers/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.AnalysisServices/servers/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.AnalysisServices/servers/.parameters/max.parameters.json b/modules/Microsoft.AnalysisServices/servers/.parameters/max.parameters.json similarity index 100% rename from arm/Microsoft.AnalysisServices/servers/.parameters/max.parameters.json rename to modules/Microsoft.AnalysisServices/servers/.parameters/max.parameters.json diff --git a/arm/Microsoft.AnalysisServices/servers/.parameters/min.parameters.json b/modules/Microsoft.AnalysisServices/servers/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.AnalysisServices/servers/.parameters/min.parameters.json rename to modules/Microsoft.AnalysisServices/servers/.parameters/min.parameters.json diff --git a/arm/Microsoft.AnalysisServices/servers/.parameters/parameters.json b/modules/Microsoft.AnalysisServices/servers/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.AnalysisServices/servers/.parameters/parameters.json rename to modules/Microsoft.AnalysisServices/servers/.parameters/parameters.json diff --git a/arm/Microsoft.AnalysisServices/servers/deploy.bicep b/modules/Microsoft.AnalysisServices/servers/deploy.bicep similarity index 100% rename from arm/Microsoft.AnalysisServices/servers/deploy.bicep rename to modules/Microsoft.AnalysisServices/servers/deploy.bicep diff --git a/arm/Microsoft.AnalysisServices/servers/readme.md b/modules/Microsoft.AnalysisServices/servers/readme.md similarity index 100% rename from arm/Microsoft.AnalysisServices/servers/readme.md rename to modules/Microsoft.AnalysisServices/servers/readme.md diff --git a/arm/Microsoft.AnalysisServices/servers/version.json b/modules/Microsoft.AnalysisServices/servers/version.json similarity index 100% rename from arm/Microsoft.AnalysisServices/servers/version.json rename to modules/Microsoft.AnalysisServices/servers/version.json diff --git a/arm/Microsoft.ApiManagement/service/.bicep/nested_authorizationServers.bicep b/modules/Microsoft.ApiManagement/service/.bicep/nested_authorizationServers.bicep similarity index 100% rename from arm/Microsoft.ApiManagement/service/.bicep/nested_authorizationServers.bicep rename to modules/Microsoft.ApiManagement/service/.bicep/nested_authorizationServers.bicep diff --git a/arm/Microsoft.ApiManagement/service/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.ApiManagement/service/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.ApiManagement/service/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.ApiManagement/service/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.ApiManagement/service/.parameters/max.parameters.json b/modules/Microsoft.ApiManagement/service/.parameters/max.parameters.json similarity index 100% rename from arm/Microsoft.ApiManagement/service/.parameters/max.parameters.json rename to modules/Microsoft.ApiManagement/service/.parameters/max.parameters.json diff --git a/arm/Microsoft.ApiManagement/service/.parameters/min.parameters.json b/modules/Microsoft.ApiManagement/service/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.ApiManagement/service/.parameters/min.parameters.json rename to modules/Microsoft.ApiManagement/service/.parameters/min.parameters.json diff --git a/arm/Microsoft.ApiManagement/service/.parameters/parameters.json b/modules/Microsoft.ApiManagement/service/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.ApiManagement/service/.parameters/parameters.json rename to modules/Microsoft.ApiManagement/service/.parameters/parameters.json diff --git a/arm/Microsoft.ApiManagement/service/apiVersionSets/deploy.bicep b/modules/Microsoft.ApiManagement/service/apiVersionSets/deploy.bicep similarity index 100% rename from arm/Microsoft.ApiManagement/service/apiVersionSets/deploy.bicep rename to modules/Microsoft.ApiManagement/service/apiVersionSets/deploy.bicep diff --git a/arm/Microsoft.ApiManagement/service/apiVersionSets/readme.md b/modules/Microsoft.ApiManagement/service/apiVersionSets/readme.md similarity index 100% rename from arm/Microsoft.ApiManagement/service/apiVersionSets/readme.md rename to modules/Microsoft.ApiManagement/service/apiVersionSets/readme.md diff --git a/arm/Microsoft.ApiManagement/service/apiVersionSets/version.json b/modules/Microsoft.ApiManagement/service/apiVersionSets/version.json similarity index 100% rename from arm/Microsoft.ApiManagement/service/apiVersionSets/version.json rename to modules/Microsoft.ApiManagement/service/apiVersionSets/version.json diff --git a/arm/Microsoft.ApiManagement/service/apis/deploy.bicep b/modules/Microsoft.ApiManagement/service/apis/deploy.bicep similarity index 100% rename from arm/Microsoft.ApiManagement/service/apis/deploy.bicep rename to modules/Microsoft.ApiManagement/service/apis/deploy.bicep diff --git a/arm/Microsoft.ApiManagement/service/apis/policies/deploy.bicep b/modules/Microsoft.ApiManagement/service/apis/policies/deploy.bicep similarity index 100% rename from arm/Microsoft.ApiManagement/service/apis/policies/deploy.bicep rename to modules/Microsoft.ApiManagement/service/apis/policies/deploy.bicep diff --git a/arm/Microsoft.ApiManagement/service/apis/policies/readme.md b/modules/Microsoft.ApiManagement/service/apis/policies/readme.md similarity index 100% rename from arm/Microsoft.ApiManagement/service/apis/policies/readme.md rename to modules/Microsoft.ApiManagement/service/apis/policies/readme.md diff --git a/arm/Microsoft.ApiManagement/service/apis/policies/version.json b/modules/Microsoft.ApiManagement/service/apis/policies/version.json similarity index 100% rename from arm/Microsoft.ApiManagement/service/apis/policies/version.json rename to modules/Microsoft.ApiManagement/service/apis/policies/version.json diff --git a/arm/Microsoft.ApiManagement/service/apis/readme.md b/modules/Microsoft.ApiManagement/service/apis/readme.md similarity index 100% rename from arm/Microsoft.ApiManagement/service/apis/readme.md rename to modules/Microsoft.ApiManagement/service/apis/readme.md diff --git a/arm/Microsoft.ApiManagement/service/apis/version.json b/modules/Microsoft.ApiManagement/service/apis/version.json similarity index 100% rename from arm/Microsoft.ApiManagement/service/apis/version.json rename to modules/Microsoft.ApiManagement/service/apis/version.json diff --git a/arm/Microsoft.ApiManagement/service/authorizationServers/deploy.bicep b/modules/Microsoft.ApiManagement/service/authorizationServers/deploy.bicep similarity index 100% rename from arm/Microsoft.ApiManagement/service/authorizationServers/deploy.bicep rename to modules/Microsoft.ApiManagement/service/authorizationServers/deploy.bicep diff --git a/arm/Microsoft.ApiManagement/service/authorizationServers/readme.md b/modules/Microsoft.ApiManagement/service/authorizationServers/readme.md similarity index 100% rename from arm/Microsoft.ApiManagement/service/authorizationServers/readme.md rename to modules/Microsoft.ApiManagement/service/authorizationServers/readme.md diff --git a/arm/Microsoft.ApiManagement/service/authorizationServers/version.json b/modules/Microsoft.ApiManagement/service/authorizationServers/version.json similarity index 100% rename from arm/Microsoft.ApiManagement/service/authorizationServers/version.json rename to modules/Microsoft.ApiManagement/service/authorizationServers/version.json diff --git a/arm/Microsoft.ApiManagement/service/backends/deploy.bicep b/modules/Microsoft.ApiManagement/service/backends/deploy.bicep similarity index 100% rename from arm/Microsoft.ApiManagement/service/backends/deploy.bicep rename to modules/Microsoft.ApiManagement/service/backends/deploy.bicep diff --git a/arm/Microsoft.ApiManagement/service/backends/readme.md b/modules/Microsoft.ApiManagement/service/backends/readme.md similarity index 100% rename from arm/Microsoft.ApiManagement/service/backends/readme.md rename to modules/Microsoft.ApiManagement/service/backends/readme.md diff --git a/arm/Microsoft.ApiManagement/service/backends/version.json b/modules/Microsoft.ApiManagement/service/backends/version.json similarity index 100% rename from arm/Microsoft.ApiManagement/service/backends/version.json rename to modules/Microsoft.ApiManagement/service/backends/version.json diff --git a/arm/Microsoft.ApiManagement/service/caches/deploy.bicep b/modules/Microsoft.ApiManagement/service/caches/deploy.bicep similarity index 100% rename from arm/Microsoft.ApiManagement/service/caches/deploy.bicep rename to modules/Microsoft.ApiManagement/service/caches/deploy.bicep diff --git a/arm/Microsoft.ApiManagement/service/caches/readme.md b/modules/Microsoft.ApiManagement/service/caches/readme.md similarity index 100% rename from arm/Microsoft.ApiManagement/service/caches/readme.md rename to modules/Microsoft.ApiManagement/service/caches/readme.md diff --git a/arm/Microsoft.ApiManagement/service/caches/version.json b/modules/Microsoft.ApiManagement/service/caches/version.json similarity index 100% rename from arm/Microsoft.ApiManagement/service/caches/version.json rename to modules/Microsoft.ApiManagement/service/caches/version.json diff --git a/arm/Microsoft.ApiManagement/service/deploy.bicep b/modules/Microsoft.ApiManagement/service/deploy.bicep similarity index 100% rename from arm/Microsoft.ApiManagement/service/deploy.bicep rename to modules/Microsoft.ApiManagement/service/deploy.bicep diff --git a/arm/Microsoft.ApiManagement/service/identityProviders/deploy.bicep b/modules/Microsoft.ApiManagement/service/identityProviders/deploy.bicep similarity index 100% rename from arm/Microsoft.ApiManagement/service/identityProviders/deploy.bicep rename to modules/Microsoft.ApiManagement/service/identityProviders/deploy.bicep diff --git a/arm/Microsoft.ApiManagement/service/identityProviders/readme.md b/modules/Microsoft.ApiManagement/service/identityProviders/readme.md similarity index 100% rename from arm/Microsoft.ApiManagement/service/identityProviders/readme.md rename to modules/Microsoft.ApiManagement/service/identityProviders/readme.md diff --git a/arm/Microsoft.ApiManagement/service/identityProviders/version.json b/modules/Microsoft.ApiManagement/service/identityProviders/version.json similarity index 100% rename from arm/Microsoft.ApiManagement/service/identityProviders/version.json rename to modules/Microsoft.ApiManagement/service/identityProviders/version.json diff --git a/arm/Microsoft.ApiManagement/service/namedValues/deploy.bicep b/modules/Microsoft.ApiManagement/service/namedValues/deploy.bicep similarity index 100% rename from arm/Microsoft.ApiManagement/service/namedValues/deploy.bicep rename to modules/Microsoft.ApiManagement/service/namedValues/deploy.bicep diff --git a/arm/Microsoft.ApiManagement/service/namedValues/readme.md b/modules/Microsoft.ApiManagement/service/namedValues/readme.md similarity index 100% rename from arm/Microsoft.ApiManagement/service/namedValues/readme.md rename to modules/Microsoft.ApiManagement/service/namedValues/readme.md diff --git a/arm/Microsoft.ApiManagement/service/namedValues/version.json b/modules/Microsoft.ApiManagement/service/namedValues/version.json similarity index 100% rename from arm/Microsoft.ApiManagement/service/namedValues/version.json rename to modules/Microsoft.ApiManagement/service/namedValues/version.json diff --git a/arm/Microsoft.ApiManagement/service/policies/deploy.bicep b/modules/Microsoft.ApiManagement/service/policies/deploy.bicep similarity index 100% rename from arm/Microsoft.ApiManagement/service/policies/deploy.bicep rename to modules/Microsoft.ApiManagement/service/policies/deploy.bicep diff --git a/arm/Microsoft.ApiManagement/service/policies/readme.md b/modules/Microsoft.ApiManagement/service/policies/readme.md similarity index 100% rename from arm/Microsoft.ApiManagement/service/policies/readme.md rename to modules/Microsoft.ApiManagement/service/policies/readme.md diff --git a/arm/Microsoft.ApiManagement/service/policies/version.json b/modules/Microsoft.ApiManagement/service/policies/version.json similarity index 100% rename from arm/Microsoft.ApiManagement/service/policies/version.json rename to modules/Microsoft.ApiManagement/service/policies/version.json diff --git a/arm/Microsoft.ApiManagement/service/portalsettings/deploy.bicep b/modules/Microsoft.ApiManagement/service/portalsettings/deploy.bicep similarity index 100% rename from arm/Microsoft.ApiManagement/service/portalsettings/deploy.bicep rename to modules/Microsoft.ApiManagement/service/portalsettings/deploy.bicep diff --git a/arm/Microsoft.ApiManagement/service/portalsettings/readme.md b/modules/Microsoft.ApiManagement/service/portalsettings/readme.md similarity index 100% rename from arm/Microsoft.ApiManagement/service/portalsettings/readme.md rename to modules/Microsoft.ApiManagement/service/portalsettings/readme.md diff --git a/arm/Microsoft.ApiManagement/service/portalsettings/version.json b/modules/Microsoft.ApiManagement/service/portalsettings/version.json similarity index 100% rename from arm/Microsoft.ApiManagement/service/portalsettings/version.json rename to modules/Microsoft.ApiManagement/service/portalsettings/version.json diff --git a/arm/Microsoft.ApiManagement/service/products/apis/deploy.bicep b/modules/Microsoft.ApiManagement/service/products/apis/deploy.bicep similarity index 100% rename from arm/Microsoft.ApiManagement/service/products/apis/deploy.bicep rename to modules/Microsoft.ApiManagement/service/products/apis/deploy.bicep diff --git a/arm/Microsoft.ApiManagement/service/products/apis/readme.md b/modules/Microsoft.ApiManagement/service/products/apis/readme.md similarity index 100% rename from arm/Microsoft.ApiManagement/service/products/apis/readme.md rename to modules/Microsoft.ApiManagement/service/products/apis/readme.md diff --git a/arm/Microsoft.ApiManagement/service/products/apis/version.json b/modules/Microsoft.ApiManagement/service/products/apis/version.json similarity index 100% rename from arm/Microsoft.ApiManagement/service/products/apis/version.json rename to modules/Microsoft.ApiManagement/service/products/apis/version.json diff --git a/arm/Microsoft.ApiManagement/service/products/deploy.bicep b/modules/Microsoft.ApiManagement/service/products/deploy.bicep similarity index 100% rename from arm/Microsoft.ApiManagement/service/products/deploy.bicep rename to modules/Microsoft.ApiManagement/service/products/deploy.bicep diff --git a/arm/Microsoft.ApiManagement/service/products/groups/deploy.bicep b/modules/Microsoft.ApiManagement/service/products/groups/deploy.bicep similarity index 100% rename from arm/Microsoft.ApiManagement/service/products/groups/deploy.bicep rename to modules/Microsoft.ApiManagement/service/products/groups/deploy.bicep diff --git a/arm/Microsoft.ApiManagement/service/products/groups/readme.md b/modules/Microsoft.ApiManagement/service/products/groups/readme.md similarity index 100% rename from arm/Microsoft.ApiManagement/service/products/groups/readme.md rename to modules/Microsoft.ApiManagement/service/products/groups/readme.md diff --git a/arm/Microsoft.ApiManagement/service/products/groups/version.json b/modules/Microsoft.ApiManagement/service/products/groups/version.json similarity index 100% rename from arm/Microsoft.ApiManagement/service/products/groups/version.json rename to modules/Microsoft.ApiManagement/service/products/groups/version.json diff --git a/arm/Microsoft.ApiManagement/service/products/readme.md b/modules/Microsoft.ApiManagement/service/products/readme.md similarity index 100% rename from arm/Microsoft.ApiManagement/service/products/readme.md rename to modules/Microsoft.ApiManagement/service/products/readme.md diff --git a/arm/Microsoft.ApiManagement/service/products/version.json b/modules/Microsoft.ApiManagement/service/products/version.json similarity index 100% rename from arm/Microsoft.ApiManagement/service/products/version.json rename to modules/Microsoft.ApiManagement/service/products/version.json diff --git a/arm/Microsoft.ApiManagement/service/readme.md b/modules/Microsoft.ApiManagement/service/readme.md similarity index 100% rename from arm/Microsoft.ApiManagement/service/readme.md rename to modules/Microsoft.ApiManagement/service/readme.md diff --git a/arm/Microsoft.ApiManagement/service/subscriptions/deploy.bicep b/modules/Microsoft.ApiManagement/service/subscriptions/deploy.bicep similarity index 100% rename from arm/Microsoft.ApiManagement/service/subscriptions/deploy.bicep rename to modules/Microsoft.ApiManagement/service/subscriptions/deploy.bicep diff --git a/arm/Microsoft.ApiManagement/service/subscriptions/readme.md b/modules/Microsoft.ApiManagement/service/subscriptions/readme.md similarity index 100% rename from arm/Microsoft.ApiManagement/service/subscriptions/readme.md rename to modules/Microsoft.ApiManagement/service/subscriptions/readme.md diff --git a/arm/Microsoft.ApiManagement/service/subscriptions/version.json b/modules/Microsoft.ApiManagement/service/subscriptions/version.json similarity index 100% rename from arm/Microsoft.ApiManagement/service/subscriptions/version.json rename to modules/Microsoft.ApiManagement/service/subscriptions/version.json diff --git a/arm/Microsoft.ApiManagement/service/version.json b/modules/Microsoft.ApiManagement/service/version.json similarity index 100% rename from arm/Microsoft.ApiManagement/service/version.json rename to modules/Microsoft.ApiManagement/service/version.json diff --git a/arm/Microsoft.AppConfiguration/configurationStores/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.AppConfiguration/configurationStores/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.AppConfiguration/configurationStores/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.AppConfiguration/configurationStores/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.AppConfiguration/configurationStores/.parameters/min.parameters.json b/modules/Microsoft.AppConfiguration/configurationStores/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.AppConfiguration/configurationStores/.parameters/min.parameters.json rename to modules/Microsoft.AppConfiguration/configurationStores/.parameters/min.parameters.json diff --git a/arm/Microsoft.AppConfiguration/configurationStores/.parameters/parameters.json b/modules/Microsoft.AppConfiguration/configurationStores/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.AppConfiguration/configurationStores/.parameters/parameters.json rename to modules/Microsoft.AppConfiguration/configurationStores/.parameters/parameters.json diff --git a/arm/Microsoft.AppConfiguration/configurationStores/deploy.bicep b/modules/Microsoft.AppConfiguration/configurationStores/deploy.bicep similarity index 100% rename from arm/Microsoft.AppConfiguration/configurationStores/deploy.bicep rename to modules/Microsoft.AppConfiguration/configurationStores/deploy.bicep diff --git a/arm/Microsoft.AppConfiguration/configurationStores/keyValues/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.AppConfiguration/configurationStores/keyValues/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.AppConfiguration/configurationStores/keyValues/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.AppConfiguration/configurationStores/keyValues/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.AppConfiguration/configurationStores/keyValues/deploy.bicep b/modules/Microsoft.AppConfiguration/configurationStores/keyValues/deploy.bicep similarity index 100% rename from arm/Microsoft.AppConfiguration/configurationStores/keyValues/deploy.bicep rename to modules/Microsoft.AppConfiguration/configurationStores/keyValues/deploy.bicep diff --git a/arm/Microsoft.AppConfiguration/configurationStores/keyValues/readme.md b/modules/Microsoft.AppConfiguration/configurationStores/keyValues/readme.md similarity index 100% rename from arm/Microsoft.AppConfiguration/configurationStores/keyValues/readme.md rename to modules/Microsoft.AppConfiguration/configurationStores/keyValues/readme.md diff --git a/arm/Microsoft.AppConfiguration/configurationStores/keyValues/version.json b/modules/Microsoft.AppConfiguration/configurationStores/keyValues/version.json similarity index 100% rename from arm/Microsoft.AppConfiguration/configurationStores/keyValues/version.json rename to modules/Microsoft.AppConfiguration/configurationStores/keyValues/version.json diff --git a/arm/Microsoft.AppConfiguration/configurationStores/readme.md b/modules/Microsoft.AppConfiguration/configurationStores/readme.md similarity index 100% rename from arm/Microsoft.AppConfiguration/configurationStores/readme.md rename to modules/Microsoft.AppConfiguration/configurationStores/readme.md diff --git a/arm/Microsoft.AppConfiguration/configurationStores/version.json b/modules/Microsoft.AppConfiguration/configurationStores/version.json similarity index 100% rename from arm/Microsoft.AppConfiguration/configurationStores/version.json rename to modules/Microsoft.AppConfiguration/configurationStores/version.json diff --git a/arm/Microsoft.Authorization/locks/.parameters/rg.parameters.json b/modules/Microsoft.Authorization/locks/.parameters/rg.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/locks/.parameters/rg.parameters.json rename to modules/Microsoft.Authorization/locks/.parameters/rg.parameters.json diff --git a/arm/Microsoft.Authorization/locks/deploy.bicep b/modules/Microsoft.Authorization/locks/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/locks/deploy.bicep rename to modules/Microsoft.Authorization/locks/deploy.bicep diff --git a/arm/Microsoft.Authorization/locks/readme.md b/modules/Microsoft.Authorization/locks/readme.md similarity index 100% rename from arm/Microsoft.Authorization/locks/readme.md rename to modules/Microsoft.Authorization/locks/readme.md diff --git a/arm/Microsoft.Authorization/locks/resourceGroup/deploy.bicep b/modules/Microsoft.Authorization/locks/resourceGroup/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/locks/resourceGroup/deploy.bicep rename to modules/Microsoft.Authorization/locks/resourceGroup/deploy.bicep diff --git a/arm/Microsoft.Authorization/locks/resourceGroup/readme.md b/modules/Microsoft.Authorization/locks/resourceGroup/readme.md similarity index 100% rename from arm/Microsoft.Authorization/locks/resourceGroup/readme.md rename to modules/Microsoft.Authorization/locks/resourceGroup/readme.md diff --git a/arm/Microsoft.Authorization/locks/resourceGroup/version.json b/modules/Microsoft.Authorization/locks/resourceGroup/version.json similarity index 100% rename from arm/Microsoft.Authorization/locks/resourceGroup/version.json rename to modules/Microsoft.Authorization/locks/resourceGroup/version.json diff --git a/arm/Microsoft.Authorization/locks/subscription/deploy.bicep b/modules/Microsoft.Authorization/locks/subscription/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/locks/subscription/deploy.bicep rename to modules/Microsoft.Authorization/locks/subscription/deploy.bicep diff --git a/arm/Microsoft.Authorization/locks/subscription/readme.md b/modules/Microsoft.Authorization/locks/subscription/readme.md similarity index 100% rename from arm/Microsoft.Authorization/locks/subscription/readme.md rename to modules/Microsoft.Authorization/locks/subscription/readme.md diff --git a/arm/Microsoft.Authorization/locks/subscription/version.json b/modules/Microsoft.Authorization/locks/subscription/version.json similarity index 100% rename from arm/Microsoft.Authorization/locks/subscription/version.json rename to modules/Microsoft.Authorization/locks/subscription/version.json diff --git a/arm/Microsoft.Authorization/locks/version.json b/modules/Microsoft.Authorization/locks/version.json similarity index 100% rename from arm/Microsoft.Authorization/locks/version.json rename to modules/Microsoft.Authorization/locks/version.json diff --git a/arm/Microsoft.Authorization/policyAssignments/.parameters/mg.min.parameters.json b/modules/Microsoft.Authorization/policyAssignments/.parameters/mg.min.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/policyAssignments/.parameters/mg.min.parameters.json rename to modules/Microsoft.Authorization/policyAssignments/.parameters/mg.min.parameters.json diff --git a/arm/Microsoft.Authorization/policyAssignments/.parameters/mg.parameters.json b/modules/Microsoft.Authorization/policyAssignments/.parameters/mg.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/policyAssignments/.parameters/mg.parameters.json rename to modules/Microsoft.Authorization/policyAssignments/.parameters/mg.parameters.json diff --git a/arm/Microsoft.Authorization/policyAssignments/.parameters/rg.min.parameters.json b/modules/Microsoft.Authorization/policyAssignments/.parameters/rg.min.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/policyAssignments/.parameters/rg.min.parameters.json rename to modules/Microsoft.Authorization/policyAssignments/.parameters/rg.min.parameters.json diff --git a/arm/Microsoft.Authorization/policyAssignments/.parameters/rg.parameters.json b/modules/Microsoft.Authorization/policyAssignments/.parameters/rg.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/policyAssignments/.parameters/rg.parameters.json rename to modules/Microsoft.Authorization/policyAssignments/.parameters/rg.parameters.json diff --git a/arm/Microsoft.Authorization/policyAssignments/.parameters/sub.min.parameters.json b/modules/Microsoft.Authorization/policyAssignments/.parameters/sub.min.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/policyAssignments/.parameters/sub.min.parameters.json rename to modules/Microsoft.Authorization/policyAssignments/.parameters/sub.min.parameters.json diff --git a/arm/Microsoft.Authorization/policyAssignments/.parameters/sub.parameters.json b/modules/Microsoft.Authorization/policyAssignments/.parameters/sub.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/policyAssignments/.parameters/sub.parameters.json rename to modules/Microsoft.Authorization/policyAssignments/.parameters/sub.parameters.json diff --git a/arm/Microsoft.Authorization/policyAssignments/deploy.bicep b/modules/Microsoft.Authorization/policyAssignments/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/policyAssignments/deploy.bicep rename to modules/Microsoft.Authorization/policyAssignments/deploy.bicep diff --git a/arm/Microsoft.Authorization/policyAssignments/managementGroup/deploy.bicep b/modules/Microsoft.Authorization/policyAssignments/managementGroup/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/policyAssignments/managementGroup/deploy.bicep rename to modules/Microsoft.Authorization/policyAssignments/managementGroup/deploy.bicep diff --git a/arm/Microsoft.Authorization/policyAssignments/managementGroup/readme.md b/modules/Microsoft.Authorization/policyAssignments/managementGroup/readme.md similarity index 100% rename from arm/Microsoft.Authorization/policyAssignments/managementGroup/readme.md rename to modules/Microsoft.Authorization/policyAssignments/managementGroup/readme.md diff --git a/arm/Microsoft.Authorization/policyAssignments/managementGroup/version.json b/modules/Microsoft.Authorization/policyAssignments/managementGroup/version.json similarity index 100% rename from arm/Microsoft.Authorization/policyAssignments/managementGroup/version.json rename to modules/Microsoft.Authorization/policyAssignments/managementGroup/version.json diff --git a/arm/Microsoft.Authorization/policyAssignments/readme.md b/modules/Microsoft.Authorization/policyAssignments/readme.md similarity index 99% rename from arm/Microsoft.Authorization/policyAssignments/readme.md rename to modules/Microsoft.Authorization/policyAssignments/readme.md index 258fa3d2a6..9ee3780a3d 100644 --- a/arm/Microsoft.Authorization/policyAssignments/readme.md +++ b/modules/Microsoft.Authorization/policyAssignments/readme.md @@ -154,7 +154,7 @@ module policyassignment 'br:bicepregistry.azurecr.io/bicep/modules/microsoft.aut ``` **Local Path Reference** ```bicep -module policyassignment 'yourpath/arm/Microsoft.Authorization.policyAssignments/subscription/deploy.bicep' = {} +module policyassignment 'yourpath/modules/Microsoft.Authorization.policyAssignments/subscription/deploy.bicep' = {} ``` ## Outputs diff --git a/arm/Microsoft.Authorization/policyAssignments/resourceGroup/deploy.bicep b/modules/Microsoft.Authorization/policyAssignments/resourceGroup/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/policyAssignments/resourceGroup/deploy.bicep rename to modules/Microsoft.Authorization/policyAssignments/resourceGroup/deploy.bicep diff --git a/arm/Microsoft.Authorization/policyAssignments/resourceGroup/readme.md b/modules/Microsoft.Authorization/policyAssignments/resourceGroup/readme.md similarity index 100% rename from arm/Microsoft.Authorization/policyAssignments/resourceGroup/readme.md rename to modules/Microsoft.Authorization/policyAssignments/resourceGroup/readme.md diff --git a/arm/Microsoft.Authorization/policyAssignments/resourceGroup/version.json b/modules/Microsoft.Authorization/policyAssignments/resourceGroup/version.json similarity index 100% rename from arm/Microsoft.Authorization/policyAssignments/resourceGroup/version.json rename to modules/Microsoft.Authorization/policyAssignments/resourceGroup/version.json diff --git a/arm/Microsoft.Authorization/policyAssignments/subscription/deploy.bicep b/modules/Microsoft.Authorization/policyAssignments/subscription/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/policyAssignments/subscription/deploy.bicep rename to modules/Microsoft.Authorization/policyAssignments/subscription/deploy.bicep diff --git a/arm/Microsoft.Authorization/policyAssignments/subscription/readme.md b/modules/Microsoft.Authorization/policyAssignments/subscription/readme.md similarity index 100% rename from arm/Microsoft.Authorization/policyAssignments/subscription/readme.md rename to modules/Microsoft.Authorization/policyAssignments/subscription/readme.md diff --git a/arm/Microsoft.Authorization/policyAssignments/subscription/version.json b/modules/Microsoft.Authorization/policyAssignments/subscription/version.json similarity index 100% rename from arm/Microsoft.Authorization/policyAssignments/subscription/version.json rename to modules/Microsoft.Authorization/policyAssignments/subscription/version.json diff --git a/arm/Microsoft.Authorization/policyAssignments/version.json b/modules/Microsoft.Authorization/policyAssignments/version.json similarity index 100% rename from arm/Microsoft.Authorization/policyAssignments/version.json rename to modules/Microsoft.Authorization/policyAssignments/version.json diff --git a/arm/Microsoft.Authorization/policyDefinitions/.parameters/mg.min.parameters.json b/modules/Microsoft.Authorization/policyDefinitions/.parameters/mg.min.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/policyDefinitions/.parameters/mg.min.parameters.json rename to modules/Microsoft.Authorization/policyDefinitions/.parameters/mg.min.parameters.json diff --git a/arm/Microsoft.Authorization/policyDefinitions/.parameters/mg.parameters.json b/modules/Microsoft.Authorization/policyDefinitions/.parameters/mg.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/policyDefinitions/.parameters/mg.parameters.json rename to modules/Microsoft.Authorization/policyDefinitions/.parameters/mg.parameters.json diff --git a/arm/Microsoft.Authorization/policyDefinitions/.parameters/sub.min.parameters.json b/modules/Microsoft.Authorization/policyDefinitions/.parameters/sub.min.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/policyDefinitions/.parameters/sub.min.parameters.json rename to modules/Microsoft.Authorization/policyDefinitions/.parameters/sub.min.parameters.json diff --git a/arm/Microsoft.Authorization/policyDefinitions/.parameters/sub.parameters.json b/modules/Microsoft.Authorization/policyDefinitions/.parameters/sub.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/policyDefinitions/.parameters/sub.parameters.json rename to modules/Microsoft.Authorization/policyDefinitions/.parameters/sub.parameters.json diff --git a/arm/Microsoft.Authorization/policyDefinitions/deploy.bicep b/modules/Microsoft.Authorization/policyDefinitions/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/policyDefinitions/deploy.bicep rename to modules/Microsoft.Authorization/policyDefinitions/deploy.bicep diff --git a/arm/Microsoft.Authorization/policyDefinitions/managementGroup/deploy.bicep b/modules/Microsoft.Authorization/policyDefinitions/managementGroup/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/policyDefinitions/managementGroup/deploy.bicep rename to modules/Microsoft.Authorization/policyDefinitions/managementGroup/deploy.bicep diff --git a/arm/Microsoft.Authorization/policyDefinitions/managementGroup/readme.md b/modules/Microsoft.Authorization/policyDefinitions/managementGroup/readme.md similarity index 100% rename from arm/Microsoft.Authorization/policyDefinitions/managementGroup/readme.md rename to modules/Microsoft.Authorization/policyDefinitions/managementGroup/readme.md diff --git a/arm/Microsoft.Authorization/policyDefinitions/managementGroup/version.json b/modules/Microsoft.Authorization/policyDefinitions/managementGroup/version.json similarity index 100% rename from arm/Microsoft.Authorization/policyDefinitions/managementGroup/version.json rename to modules/Microsoft.Authorization/policyDefinitions/managementGroup/version.json diff --git a/arm/Microsoft.Authorization/policyDefinitions/readme.md b/modules/Microsoft.Authorization/policyDefinitions/readme.md similarity index 99% rename from arm/Microsoft.Authorization/policyDefinitions/readme.md rename to modules/Microsoft.Authorization/policyDefinitions/readme.md index 62b291946a..c35c3d5ed4 100644 --- a/arm/Microsoft.Authorization/policyDefinitions/readme.md +++ b/modules/Microsoft.Authorization/policyDefinitions/readme.md @@ -113,7 +113,7 @@ module policydefinition 'br:bicepregistry.azurecr.io/bicep/modules/microsoft.aut ``` **Local Path Reference** ```bicep -module policydefinition 'yourpath/arm/Microsoft.Authorization.policyDefinitions/subscription/deploy.bicep' = {} +module policydefinition 'yourpath/modules/Microsoft.Authorization.policyDefinitions/subscription/deploy.bicep' = {} ``` ## Outputs diff --git a/arm/Microsoft.Authorization/policyDefinitions/subscription/deploy.bicep b/modules/Microsoft.Authorization/policyDefinitions/subscription/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/policyDefinitions/subscription/deploy.bicep rename to modules/Microsoft.Authorization/policyDefinitions/subscription/deploy.bicep diff --git a/arm/Microsoft.Authorization/policyDefinitions/subscription/readme.md b/modules/Microsoft.Authorization/policyDefinitions/subscription/readme.md similarity index 100% rename from arm/Microsoft.Authorization/policyDefinitions/subscription/readme.md rename to modules/Microsoft.Authorization/policyDefinitions/subscription/readme.md diff --git a/arm/Microsoft.Authorization/policyDefinitions/subscription/version.json b/modules/Microsoft.Authorization/policyDefinitions/subscription/version.json similarity index 100% rename from arm/Microsoft.Authorization/policyDefinitions/subscription/version.json rename to modules/Microsoft.Authorization/policyDefinitions/subscription/version.json diff --git a/arm/Microsoft.Authorization/policyDefinitions/version.json b/modules/Microsoft.Authorization/policyDefinitions/version.json similarity index 100% rename from arm/Microsoft.Authorization/policyDefinitions/version.json rename to modules/Microsoft.Authorization/policyDefinitions/version.json diff --git a/arm/Microsoft.Authorization/policyExemptions/.parameters/mg.min.parameters.json b/modules/Microsoft.Authorization/policyExemptions/.parameters/mg.min.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/policyExemptions/.parameters/mg.min.parameters.json rename to modules/Microsoft.Authorization/policyExemptions/.parameters/mg.min.parameters.json diff --git a/arm/Microsoft.Authorization/policyExemptions/.parameters/mg.parameters.json b/modules/Microsoft.Authorization/policyExemptions/.parameters/mg.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/policyExemptions/.parameters/mg.parameters.json rename to modules/Microsoft.Authorization/policyExemptions/.parameters/mg.parameters.json diff --git a/arm/Microsoft.Authorization/policyExemptions/.parameters/rg.min.parameters.json b/modules/Microsoft.Authorization/policyExemptions/.parameters/rg.min.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/policyExemptions/.parameters/rg.min.parameters.json rename to modules/Microsoft.Authorization/policyExemptions/.parameters/rg.min.parameters.json diff --git a/arm/Microsoft.Authorization/policyExemptions/.parameters/rg.parameters.json b/modules/Microsoft.Authorization/policyExemptions/.parameters/rg.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/policyExemptions/.parameters/rg.parameters.json rename to modules/Microsoft.Authorization/policyExemptions/.parameters/rg.parameters.json diff --git a/arm/Microsoft.Authorization/policyExemptions/.parameters/sub.min.parameters.json b/modules/Microsoft.Authorization/policyExemptions/.parameters/sub.min.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/policyExemptions/.parameters/sub.min.parameters.json rename to modules/Microsoft.Authorization/policyExemptions/.parameters/sub.min.parameters.json diff --git a/arm/Microsoft.Authorization/policyExemptions/.parameters/sub.parameters.json b/modules/Microsoft.Authorization/policyExemptions/.parameters/sub.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/policyExemptions/.parameters/sub.parameters.json rename to modules/Microsoft.Authorization/policyExemptions/.parameters/sub.parameters.json diff --git a/arm/Microsoft.Authorization/policyExemptions/deploy.bicep b/modules/Microsoft.Authorization/policyExemptions/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/policyExemptions/deploy.bicep rename to modules/Microsoft.Authorization/policyExemptions/deploy.bicep diff --git a/arm/Microsoft.Authorization/policyExemptions/managementGroup/deploy.bicep b/modules/Microsoft.Authorization/policyExemptions/managementGroup/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/policyExemptions/managementGroup/deploy.bicep rename to modules/Microsoft.Authorization/policyExemptions/managementGroup/deploy.bicep diff --git a/arm/Microsoft.Authorization/policyExemptions/managementGroup/readme.md b/modules/Microsoft.Authorization/policyExemptions/managementGroup/readme.md similarity index 100% rename from arm/Microsoft.Authorization/policyExemptions/managementGroup/readme.md rename to modules/Microsoft.Authorization/policyExemptions/managementGroup/readme.md diff --git a/arm/Microsoft.Authorization/policyExemptions/managementGroup/version.json b/modules/Microsoft.Authorization/policyExemptions/managementGroup/version.json similarity index 100% rename from arm/Microsoft.Authorization/policyExemptions/managementGroup/version.json rename to modules/Microsoft.Authorization/policyExemptions/managementGroup/version.json diff --git a/arm/Microsoft.Authorization/policyExemptions/readme.md b/modules/Microsoft.Authorization/policyExemptions/readme.md similarity index 99% rename from arm/Microsoft.Authorization/policyExemptions/readme.md rename to modules/Microsoft.Authorization/policyExemptions/readme.md index f97ba36da0..77204717f5 100644 --- a/arm/Microsoft.Authorization/policyExemptions/readme.md +++ b/modules/Microsoft.Authorization/policyExemptions/readme.md @@ -132,7 +132,7 @@ module policyexemption 'br:bicepregistry.azurecr.io/bicep/modules/microsoft.auth ``` **Local Path Reference** ```bicep -module policyexemption 'yourpath/arm/Microsoft.Authorization.policyExemptions/subscription/deploy.bicep' = {} +module policyexemption 'yourpath/modules/Microsoft.Authorization.policyExemptions/subscription/deploy.bicep' = {} ``` ## Outputs diff --git a/arm/Microsoft.Authorization/policyExemptions/resourceGroup/deploy.bicep b/modules/Microsoft.Authorization/policyExemptions/resourceGroup/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/policyExemptions/resourceGroup/deploy.bicep rename to modules/Microsoft.Authorization/policyExemptions/resourceGroup/deploy.bicep diff --git a/arm/Microsoft.Authorization/policyExemptions/resourceGroup/readme.md b/modules/Microsoft.Authorization/policyExemptions/resourceGroup/readme.md similarity index 100% rename from arm/Microsoft.Authorization/policyExemptions/resourceGroup/readme.md rename to modules/Microsoft.Authorization/policyExemptions/resourceGroup/readme.md diff --git a/arm/Microsoft.Authorization/policyExemptions/resourceGroup/version.json b/modules/Microsoft.Authorization/policyExemptions/resourceGroup/version.json similarity index 100% rename from arm/Microsoft.Authorization/policyExemptions/resourceGroup/version.json rename to modules/Microsoft.Authorization/policyExemptions/resourceGroup/version.json diff --git a/arm/Microsoft.Authorization/policyExemptions/subscription/deploy.bicep b/modules/Microsoft.Authorization/policyExemptions/subscription/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/policyExemptions/subscription/deploy.bicep rename to modules/Microsoft.Authorization/policyExemptions/subscription/deploy.bicep diff --git a/arm/Microsoft.Authorization/policyExemptions/subscription/readme.md b/modules/Microsoft.Authorization/policyExemptions/subscription/readme.md similarity index 100% rename from arm/Microsoft.Authorization/policyExemptions/subscription/readme.md rename to modules/Microsoft.Authorization/policyExemptions/subscription/readme.md diff --git a/arm/Microsoft.Authorization/policyExemptions/subscription/version.json b/modules/Microsoft.Authorization/policyExemptions/subscription/version.json similarity index 100% rename from arm/Microsoft.Authorization/policyExemptions/subscription/version.json rename to modules/Microsoft.Authorization/policyExemptions/subscription/version.json diff --git a/arm/Microsoft.Authorization/policyExemptions/version.json b/modules/Microsoft.Authorization/policyExemptions/version.json similarity index 100% rename from arm/Microsoft.Authorization/policyExemptions/version.json rename to modules/Microsoft.Authorization/policyExemptions/version.json diff --git a/arm/Microsoft.Authorization/policySetDefinitions/.parameters/mg.min.parameters.json b/modules/Microsoft.Authorization/policySetDefinitions/.parameters/mg.min.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/policySetDefinitions/.parameters/mg.min.parameters.json rename to modules/Microsoft.Authorization/policySetDefinitions/.parameters/mg.min.parameters.json diff --git a/arm/Microsoft.Authorization/policySetDefinitions/.parameters/mg.parameters.json b/modules/Microsoft.Authorization/policySetDefinitions/.parameters/mg.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/policySetDefinitions/.parameters/mg.parameters.json rename to modules/Microsoft.Authorization/policySetDefinitions/.parameters/mg.parameters.json diff --git a/arm/Microsoft.Authorization/policySetDefinitions/.parameters/sub.min.parameters.json b/modules/Microsoft.Authorization/policySetDefinitions/.parameters/sub.min.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/policySetDefinitions/.parameters/sub.min.parameters.json rename to modules/Microsoft.Authorization/policySetDefinitions/.parameters/sub.min.parameters.json diff --git a/arm/Microsoft.Authorization/policySetDefinitions/.parameters/sub.parameters.json b/modules/Microsoft.Authorization/policySetDefinitions/.parameters/sub.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/policySetDefinitions/.parameters/sub.parameters.json rename to modules/Microsoft.Authorization/policySetDefinitions/.parameters/sub.parameters.json diff --git a/arm/Microsoft.Authorization/policySetDefinitions/deploy.bicep b/modules/Microsoft.Authorization/policySetDefinitions/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/policySetDefinitions/deploy.bicep rename to modules/Microsoft.Authorization/policySetDefinitions/deploy.bicep diff --git a/arm/Microsoft.Authorization/policySetDefinitions/managementGroup/deploy.bicep b/modules/Microsoft.Authorization/policySetDefinitions/managementGroup/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/policySetDefinitions/managementGroup/deploy.bicep rename to modules/Microsoft.Authorization/policySetDefinitions/managementGroup/deploy.bicep diff --git a/arm/Microsoft.Authorization/policySetDefinitions/managementGroup/readme.md b/modules/Microsoft.Authorization/policySetDefinitions/managementGroup/readme.md similarity index 100% rename from arm/Microsoft.Authorization/policySetDefinitions/managementGroup/readme.md rename to modules/Microsoft.Authorization/policySetDefinitions/managementGroup/readme.md diff --git a/arm/Microsoft.Authorization/policySetDefinitions/managementGroup/version.json b/modules/Microsoft.Authorization/policySetDefinitions/managementGroup/version.json similarity index 100% rename from arm/Microsoft.Authorization/policySetDefinitions/managementGroup/version.json rename to modules/Microsoft.Authorization/policySetDefinitions/managementGroup/version.json diff --git a/arm/Microsoft.Authorization/policySetDefinitions/readme.md b/modules/Microsoft.Authorization/policySetDefinitions/readme.md similarity index 99% rename from arm/Microsoft.Authorization/policySetDefinitions/readme.md rename to modules/Microsoft.Authorization/policySetDefinitions/readme.md index 8a47a3172e..ca6fba54e6 100644 --- a/arm/Microsoft.Authorization/policySetDefinitions/readme.md +++ b/modules/Microsoft.Authorization/policySetDefinitions/readme.md @@ -116,7 +116,7 @@ module policysetdefinition 'br:bicepregistry.azurecr.io/bicep/modules/microsoft. ``` **Local Path Reference** ```bicep -module policysetdefinition 'yourpath/arm/Microsoft.Authorization.policySetDefinitions/subscription/deploy.bicep' = {} +module policysetdefinition 'yourpath/modules/Microsoft.Authorization.policySetDefinitions/subscription/deploy.bicep' = {} ``` ## Outputs diff --git a/arm/Microsoft.Authorization/policySetDefinitions/subscription/deploy.bicep b/modules/Microsoft.Authorization/policySetDefinitions/subscription/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/policySetDefinitions/subscription/deploy.bicep rename to modules/Microsoft.Authorization/policySetDefinitions/subscription/deploy.bicep diff --git a/arm/Microsoft.Authorization/policySetDefinitions/subscription/readme.md b/modules/Microsoft.Authorization/policySetDefinitions/subscription/readme.md similarity index 100% rename from arm/Microsoft.Authorization/policySetDefinitions/subscription/readme.md rename to modules/Microsoft.Authorization/policySetDefinitions/subscription/readme.md diff --git a/arm/Microsoft.Authorization/policySetDefinitions/subscription/version.json b/modules/Microsoft.Authorization/policySetDefinitions/subscription/version.json similarity index 100% rename from arm/Microsoft.Authorization/policySetDefinitions/subscription/version.json rename to modules/Microsoft.Authorization/policySetDefinitions/subscription/version.json diff --git a/arm/Microsoft.Authorization/policySetDefinitions/version.json b/modules/Microsoft.Authorization/policySetDefinitions/version.json similarity index 100% rename from arm/Microsoft.Authorization/policySetDefinitions/version.json rename to modules/Microsoft.Authorization/policySetDefinitions/version.json diff --git a/arm/Microsoft.Authorization/roleAssignments/.parameters/mg.min.parameters.json b/modules/Microsoft.Authorization/roleAssignments/.parameters/mg.min.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/roleAssignments/.parameters/mg.min.parameters.json rename to modules/Microsoft.Authorization/roleAssignments/.parameters/mg.min.parameters.json diff --git a/arm/Microsoft.Authorization/roleAssignments/.parameters/mg.parameters.json b/modules/Microsoft.Authorization/roleAssignments/.parameters/mg.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/roleAssignments/.parameters/mg.parameters.json rename to modules/Microsoft.Authorization/roleAssignments/.parameters/mg.parameters.json diff --git a/arm/Microsoft.Authorization/roleAssignments/.parameters/rg.min.parameters.json b/modules/Microsoft.Authorization/roleAssignments/.parameters/rg.min.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/roleAssignments/.parameters/rg.min.parameters.json rename to modules/Microsoft.Authorization/roleAssignments/.parameters/rg.min.parameters.json diff --git a/arm/Microsoft.Authorization/roleAssignments/.parameters/rg.parameters.json b/modules/Microsoft.Authorization/roleAssignments/.parameters/rg.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/roleAssignments/.parameters/rg.parameters.json rename to modules/Microsoft.Authorization/roleAssignments/.parameters/rg.parameters.json diff --git a/arm/Microsoft.Authorization/roleAssignments/.parameters/sub.min.parameters.json b/modules/Microsoft.Authorization/roleAssignments/.parameters/sub.min.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/roleAssignments/.parameters/sub.min.parameters.json rename to modules/Microsoft.Authorization/roleAssignments/.parameters/sub.min.parameters.json diff --git a/arm/Microsoft.Authorization/roleAssignments/.parameters/sub.parameters.json b/modules/Microsoft.Authorization/roleAssignments/.parameters/sub.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/roleAssignments/.parameters/sub.parameters.json rename to modules/Microsoft.Authorization/roleAssignments/.parameters/sub.parameters.json diff --git a/arm/Microsoft.Authorization/roleAssignments/deploy.bicep b/modules/Microsoft.Authorization/roleAssignments/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/roleAssignments/deploy.bicep rename to modules/Microsoft.Authorization/roleAssignments/deploy.bicep diff --git a/arm/Microsoft.Authorization/roleAssignments/managementGroup/deploy.bicep b/modules/Microsoft.Authorization/roleAssignments/managementGroup/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/roleAssignments/managementGroup/deploy.bicep rename to modules/Microsoft.Authorization/roleAssignments/managementGroup/deploy.bicep diff --git a/arm/Microsoft.Authorization/roleAssignments/managementGroup/readme.md b/modules/Microsoft.Authorization/roleAssignments/managementGroup/readme.md similarity index 100% rename from arm/Microsoft.Authorization/roleAssignments/managementGroup/readme.md rename to modules/Microsoft.Authorization/roleAssignments/managementGroup/readme.md diff --git a/arm/Microsoft.Authorization/roleAssignments/managementGroup/version.json b/modules/Microsoft.Authorization/roleAssignments/managementGroup/version.json similarity index 100% rename from arm/Microsoft.Authorization/roleAssignments/managementGroup/version.json rename to modules/Microsoft.Authorization/roleAssignments/managementGroup/version.json diff --git a/arm/Microsoft.Authorization/roleAssignments/readme.md b/modules/Microsoft.Authorization/roleAssignments/readme.md similarity index 99% rename from arm/Microsoft.Authorization/roleAssignments/readme.md rename to modules/Microsoft.Authorization/roleAssignments/readme.md index c78f67fac0..b1f3aa4d16 100644 --- a/arm/Microsoft.Authorization/roleAssignments/readme.md +++ b/modules/Microsoft.Authorization/roleAssignments/readme.md @@ -150,7 +150,7 @@ module roleassignment 'br:bicepregistry.azurecr.io/bicep/modules/microsoft.autho ``` **Local Path Reference** ```bicep -module roleassignment 'yourpath/arm/Microsoft.Authorization.roleAssignments/subscription/deploy.bicep' = {} +module roleassignment 'yourpath/modules/Microsoft.Authorization.roleAssignments/subscription/deploy.bicep' = {} ``` ## Outputs diff --git a/arm/Microsoft.Authorization/roleAssignments/resourceGroup/deploy.bicep b/modules/Microsoft.Authorization/roleAssignments/resourceGroup/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/roleAssignments/resourceGroup/deploy.bicep rename to modules/Microsoft.Authorization/roleAssignments/resourceGroup/deploy.bicep diff --git a/arm/Microsoft.Authorization/roleAssignments/resourceGroup/readme.md b/modules/Microsoft.Authorization/roleAssignments/resourceGroup/readme.md similarity index 100% rename from arm/Microsoft.Authorization/roleAssignments/resourceGroup/readme.md rename to modules/Microsoft.Authorization/roleAssignments/resourceGroup/readme.md diff --git a/arm/Microsoft.Authorization/roleAssignments/resourceGroup/version.json b/modules/Microsoft.Authorization/roleAssignments/resourceGroup/version.json similarity index 100% rename from arm/Microsoft.Authorization/roleAssignments/resourceGroup/version.json rename to modules/Microsoft.Authorization/roleAssignments/resourceGroup/version.json diff --git a/arm/Microsoft.Authorization/roleAssignments/subscription/deploy.bicep b/modules/Microsoft.Authorization/roleAssignments/subscription/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/roleAssignments/subscription/deploy.bicep rename to modules/Microsoft.Authorization/roleAssignments/subscription/deploy.bicep diff --git a/arm/Microsoft.Authorization/roleAssignments/subscription/readme.md b/modules/Microsoft.Authorization/roleAssignments/subscription/readme.md similarity index 100% rename from arm/Microsoft.Authorization/roleAssignments/subscription/readme.md rename to modules/Microsoft.Authorization/roleAssignments/subscription/readme.md diff --git a/arm/Microsoft.Authorization/roleAssignments/subscription/version.json b/modules/Microsoft.Authorization/roleAssignments/subscription/version.json similarity index 100% rename from arm/Microsoft.Authorization/roleAssignments/subscription/version.json rename to modules/Microsoft.Authorization/roleAssignments/subscription/version.json diff --git a/arm/Microsoft.Authorization/roleAssignments/version.json b/modules/Microsoft.Authorization/roleAssignments/version.json similarity index 100% rename from arm/Microsoft.Authorization/roleAssignments/version.json rename to modules/Microsoft.Authorization/roleAssignments/version.json diff --git a/arm/Microsoft.Authorization/roleDefinitions/.parameters/mg.min.parameters.json b/modules/Microsoft.Authorization/roleDefinitions/.parameters/mg.min.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/roleDefinitions/.parameters/mg.min.parameters.json rename to modules/Microsoft.Authorization/roleDefinitions/.parameters/mg.min.parameters.json diff --git a/arm/Microsoft.Authorization/roleDefinitions/.parameters/mg.parameters.json b/modules/Microsoft.Authorization/roleDefinitions/.parameters/mg.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/roleDefinitions/.parameters/mg.parameters.json rename to modules/Microsoft.Authorization/roleDefinitions/.parameters/mg.parameters.json diff --git a/arm/Microsoft.Authorization/roleDefinitions/.parameters/rg.min.parameters.json b/modules/Microsoft.Authorization/roleDefinitions/.parameters/rg.min.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/roleDefinitions/.parameters/rg.min.parameters.json rename to modules/Microsoft.Authorization/roleDefinitions/.parameters/rg.min.parameters.json diff --git a/arm/Microsoft.Authorization/roleDefinitions/.parameters/rg.parameters.json b/modules/Microsoft.Authorization/roleDefinitions/.parameters/rg.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/roleDefinitions/.parameters/rg.parameters.json rename to modules/Microsoft.Authorization/roleDefinitions/.parameters/rg.parameters.json diff --git a/arm/Microsoft.Authorization/roleDefinitions/.parameters/sub.min.parameters.json b/modules/Microsoft.Authorization/roleDefinitions/.parameters/sub.min.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/roleDefinitions/.parameters/sub.min.parameters.json rename to modules/Microsoft.Authorization/roleDefinitions/.parameters/sub.min.parameters.json diff --git a/arm/Microsoft.Authorization/roleDefinitions/.parameters/sub.parameters.json b/modules/Microsoft.Authorization/roleDefinitions/.parameters/sub.parameters.json similarity index 100% rename from arm/Microsoft.Authorization/roleDefinitions/.parameters/sub.parameters.json rename to modules/Microsoft.Authorization/roleDefinitions/.parameters/sub.parameters.json diff --git a/arm/Microsoft.Authorization/roleDefinitions/deploy.bicep b/modules/Microsoft.Authorization/roleDefinitions/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/roleDefinitions/deploy.bicep rename to modules/Microsoft.Authorization/roleDefinitions/deploy.bicep diff --git a/arm/Microsoft.Authorization/roleDefinitions/managementGroup/deploy.bicep b/modules/Microsoft.Authorization/roleDefinitions/managementGroup/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/roleDefinitions/managementGroup/deploy.bicep rename to modules/Microsoft.Authorization/roleDefinitions/managementGroup/deploy.bicep diff --git a/arm/Microsoft.Authorization/roleDefinitions/managementGroup/readme.md b/modules/Microsoft.Authorization/roleDefinitions/managementGroup/readme.md similarity index 100% rename from arm/Microsoft.Authorization/roleDefinitions/managementGroup/readme.md rename to modules/Microsoft.Authorization/roleDefinitions/managementGroup/readme.md diff --git a/arm/Microsoft.Authorization/roleDefinitions/managementGroup/version.json b/modules/Microsoft.Authorization/roleDefinitions/managementGroup/version.json similarity index 100% rename from arm/Microsoft.Authorization/roleDefinitions/managementGroup/version.json rename to modules/Microsoft.Authorization/roleDefinitions/managementGroup/version.json diff --git a/arm/Microsoft.Authorization/roleDefinitions/readme.md b/modules/Microsoft.Authorization/roleDefinitions/readme.md similarity index 99% rename from arm/Microsoft.Authorization/roleDefinitions/readme.md rename to modules/Microsoft.Authorization/roleDefinitions/readme.md index fdc02fd430..6d74ed6ac8 100644 --- a/arm/Microsoft.Authorization/roleDefinitions/readme.md +++ b/modules/Microsoft.Authorization/roleDefinitions/readme.md @@ -150,7 +150,7 @@ module roledefinition 'br:bicepregistry.azurecr.io/bicep/modules/microsoft.autho ``` **Local Path Reference** ```bicep -module roledefinition 'yourpath/arm/Microsoft.Authorization.roleDefinitions/subscription/deploy.bicep' = {} +module roledefinition 'yourpath/modules/Microsoft.Authorization.roleDefinitions/subscription/deploy.bicep' = {} ``` ## Outputs diff --git a/arm/Microsoft.Authorization/roleDefinitions/resourceGroup/deploy.bicep b/modules/Microsoft.Authorization/roleDefinitions/resourceGroup/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/roleDefinitions/resourceGroup/deploy.bicep rename to modules/Microsoft.Authorization/roleDefinitions/resourceGroup/deploy.bicep diff --git a/arm/Microsoft.Authorization/roleDefinitions/resourceGroup/readme.md b/modules/Microsoft.Authorization/roleDefinitions/resourceGroup/readme.md similarity index 100% rename from arm/Microsoft.Authorization/roleDefinitions/resourceGroup/readme.md rename to modules/Microsoft.Authorization/roleDefinitions/resourceGroup/readme.md diff --git a/arm/Microsoft.Authorization/roleDefinitions/resourceGroup/version.json b/modules/Microsoft.Authorization/roleDefinitions/resourceGroup/version.json similarity index 100% rename from arm/Microsoft.Authorization/roleDefinitions/resourceGroup/version.json rename to modules/Microsoft.Authorization/roleDefinitions/resourceGroup/version.json diff --git a/arm/Microsoft.Authorization/roleDefinitions/subscription/deploy.bicep b/modules/Microsoft.Authorization/roleDefinitions/subscription/deploy.bicep similarity index 100% rename from arm/Microsoft.Authorization/roleDefinitions/subscription/deploy.bicep rename to modules/Microsoft.Authorization/roleDefinitions/subscription/deploy.bicep diff --git a/arm/Microsoft.Authorization/roleDefinitions/subscription/readme.md b/modules/Microsoft.Authorization/roleDefinitions/subscription/readme.md similarity index 100% rename from arm/Microsoft.Authorization/roleDefinitions/subscription/readme.md rename to modules/Microsoft.Authorization/roleDefinitions/subscription/readme.md diff --git a/arm/Microsoft.Authorization/roleDefinitions/subscription/version.json b/modules/Microsoft.Authorization/roleDefinitions/subscription/version.json similarity index 100% rename from arm/Microsoft.Authorization/roleDefinitions/subscription/version.json rename to modules/Microsoft.Authorization/roleDefinitions/subscription/version.json diff --git a/arm/Microsoft.Authorization/roleDefinitions/version.json b/modules/Microsoft.Authorization/roleDefinitions/version.json similarity index 100% rename from arm/Microsoft.Authorization/roleDefinitions/version.json rename to modules/Microsoft.Authorization/roleDefinitions/version.json diff --git a/arm/Microsoft.Automation/automationAccounts/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Automation/automationAccounts/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Automation/automationAccounts/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Automation/automationAccounts/.parameters/encr.parameters.json b/modules/Microsoft.Automation/automationAccounts/.parameters/encr.parameters.json similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/.parameters/encr.parameters.json rename to modules/Microsoft.Automation/automationAccounts/.parameters/encr.parameters.json diff --git a/arm/Microsoft.Automation/automationAccounts/.parameters/min.parameters.json b/modules/Microsoft.Automation/automationAccounts/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/.parameters/min.parameters.json rename to modules/Microsoft.Automation/automationAccounts/.parameters/min.parameters.json diff --git a/arm/Microsoft.Automation/automationAccounts/.parameters/parameters.json b/modules/Microsoft.Automation/automationAccounts/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/.parameters/parameters.json rename to modules/Microsoft.Automation/automationAccounts/.parameters/parameters.json diff --git a/arm/Microsoft.Automation/automationAccounts/deploy.bicep b/modules/Microsoft.Automation/automationAccounts/deploy.bicep similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/deploy.bicep rename to modules/Microsoft.Automation/automationAccounts/deploy.bicep diff --git a/arm/Microsoft.Automation/automationAccounts/jobSchedules/deploy.bicep b/modules/Microsoft.Automation/automationAccounts/jobSchedules/deploy.bicep similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/jobSchedules/deploy.bicep rename to modules/Microsoft.Automation/automationAccounts/jobSchedules/deploy.bicep diff --git a/arm/Microsoft.Automation/automationAccounts/jobSchedules/readme.md b/modules/Microsoft.Automation/automationAccounts/jobSchedules/readme.md similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/jobSchedules/readme.md rename to modules/Microsoft.Automation/automationAccounts/jobSchedules/readme.md diff --git a/arm/Microsoft.Automation/automationAccounts/jobSchedules/version.json b/modules/Microsoft.Automation/automationAccounts/jobSchedules/version.json similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/jobSchedules/version.json rename to modules/Microsoft.Automation/automationAccounts/jobSchedules/version.json diff --git a/arm/Microsoft.Automation/automationAccounts/modules/deploy.bicep b/modules/Microsoft.Automation/automationAccounts/modules/deploy.bicep similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/modules/deploy.bicep rename to modules/Microsoft.Automation/automationAccounts/modules/deploy.bicep diff --git a/arm/Microsoft.Automation/automationAccounts/modules/readme.md b/modules/Microsoft.Automation/automationAccounts/modules/readme.md similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/modules/readme.md rename to modules/Microsoft.Automation/automationAccounts/modules/readme.md diff --git a/arm/Microsoft.Automation/automationAccounts/modules/version.json b/modules/Microsoft.Automation/automationAccounts/modules/version.json similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/modules/version.json rename to modules/Microsoft.Automation/automationAccounts/modules/version.json diff --git a/arm/Microsoft.Automation/automationAccounts/readme.md b/modules/Microsoft.Automation/automationAccounts/readme.md similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/readme.md rename to modules/Microsoft.Automation/automationAccounts/readme.md diff --git a/arm/Microsoft.Automation/automationAccounts/runbooks/deploy.bicep b/modules/Microsoft.Automation/automationAccounts/runbooks/deploy.bicep similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/runbooks/deploy.bicep rename to modules/Microsoft.Automation/automationAccounts/runbooks/deploy.bicep diff --git a/arm/Microsoft.Automation/automationAccounts/runbooks/readme.md b/modules/Microsoft.Automation/automationAccounts/runbooks/readme.md similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/runbooks/readme.md rename to modules/Microsoft.Automation/automationAccounts/runbooks/readme.md diff --git a/arm/Microsoft.Automation/automationAccounts/runbooks/version.json b/modules/Microsoft.Automation/automationAccounts/runbooks/version.json similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/runbooks/version.json rename to modules/Microsoft.Automation/automationAccounts/runbooks/version.json diff --git a/arm/Microsoft.Automation/automationAccounts/schedules/deploy.bicep b/modules/Microsoft.Automation/automationAccounts/schedules/deploy.bicep similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/schedules/deploy.bicep rename to modules/Microsoft.Automation/automationAccounts/schedules/deploy.bicep diff --git a/arm/Microsoft.Automation/automationAccounts/schedules/readme.md b/modules/Microsoft.Automation/automationAccounts/schedules/readme.md similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/schedules/readme.md rename to modules/Microsoft.Automation/automationAccounts/schedules/readme.md diff --git a/arm/Microsoft.Automation/automationAccounts/schedules/version.json b/modules/Microsoft.Automation/automationAccounts/schedules/version.json similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/schedules/version.json rename to modules/Microsoft.Automation/automationAccounts/schedules/version.json diff --git a/arm/Microsoft.Automation/automationAccounts/softwareUpdateConfigurations/deploy.bicep b/modules/Microsoft.Automation/automationAccounts/softwareUpdateConfigurations/deploy.bicep similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/softwareUpdateConfigurations/deploy.bicep rename to modules/Microsoft.Automation/automationAccounts/softwareUpdateConfigurations/deploy.bicep diff --git a/arm/Microsoft.Automation/automationAccounts/softwareUpdateConfigurations/readme.md b/modules/Microsoft.Automation/automationAccounts/softwareUpdateConfigurations/readme.md similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/softwareUpdateConfigurations/readme.md rename to modules/Microsoft.Automation/automationAccounts/softwareUpdateConfigurations/readme.md diff --git a/arm/Microsoft.Automation/automationAccounts/softwareUpdateConfigurations/version.json b/modules/Microsoft.Automation/automationAccounts/softwareUpdateConfigurations/version.json similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/softwareUpdateConfigurations/version.json rename to modules/Microsoft.Automation/automationAccounts/softwareUpdateConfigurations/version.json diff --git a/arm/Microsoft.Automation/automationAccounts/variables/deploy.bicep b/modules/Microsoft.Automation/automationAccounts/variables/deploy.bicep similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/variables/deploy.bicep rename to modules/Microsoft.Automation/automationAccounts/variables/deploy.bicep diff --git a/arm/Microsoft.Automation/automationAccounts/variables/readme.md b/modules/Microsoft.Automation/automationAccounts/variables/readme.md similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/variables/readme.md rename to modules/Microsoft.Automation/automationAccounts/variables/readme.md diff --git a/arm/Microsoft.Automation/automationAccounts/variables/version.json b/modules/Microsoft.Automation/automationAccounts/variables/version.json similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/variables/version.json rename to modules/Microsoft.Automation/automationAccounts/variables/version.json diff --git a/arm/Microsoft.Automation/automationAccounts/version.json b/modules/Microsoft.Automation/automationAccounts/version.json similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/version.json rename to modules/Microsoft.Automation/automationAccounts/version.json diff --git a/arm/Microsoft.Batch/batchAccounts/.parameters/min.parameters.json b/modules/Microsoft.Batch/batchAccounts/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.Batch/batchAccounts/.parameters/min.parameters.json rename to modules/Microsoft.Batch/batchAccounts/.parameters/min.parameters.json diff --git a/arm/Microsoft.Batch/batchAccounts/.parameters/parameters.json b/modules/Microsoft.Batch/batchAccounts/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Batch/batchAccounts/.parameters/parameters.json rename to modules/Microsoft.Batch/batchAccounts/.parameters/parameters.json diff --git a/arm/Microsoft.Batch/batchAccounts/deploy.bicep b/modules/Microsoft.Batch/batchAccounts/deploy.bicep similarity index 100% rename from arm/Microsoft.Batch/batchAccounts/deploy.bicep rename to modules/Microsoft.Batch/batchAccounts/deploy.bicep diff --git a/arm/Microsoft.Batch/batchAccounts/readme.md b/modules/Microsoft.Batch/batchAccounts/readme.md similarity index 100% rename from arm/Microsoft.Batch/batchAccounts/readme.md rename to modules/Microsoft.Batch/batchAccounts/readme.md diff --git a/arm/Microsoft.Batch/batchAccounts/version.json b/modules/Microsoft.Batch/batchAccounts/version.json similarity index 100% rename from arm/Microsoft.Batch/batchAccounts/version.json rename to modules/Microsoft.Batch/batchAccounts/version.json diff --git a/arm/Microsoft.CognitiveServices/accounts/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.CognitiveServices/accounts/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.CognitiveServices/accounts/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.CognitiveServices/accounts/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.CognitiveServices/accounts/.parameters/encr.parameters.json b/modules/Microsoft.CognitiveServices/accounts/.parameters/encr.parameters.json similarity index 100% rename from arm/Microsoft.CognitiveServices/accounts/.parameters/encr.parameters.json rename to modules/Microsoft.CognitiveServices/accounts/.parameters/encr.parameters.json diff --git a/arm/Microsoft.CognitiveServices/accounts/.parameters/min.parameters.json b/modules/Microsoft.CognitiveServices/accounts/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.CognitiveServices/accounts/.parameters/min.parameters.json rename to modules/Microsoft.CognitiveServices/accounts/.parameters/min.parameters.json diff --git a/arm/Microsoft.CognitiveServices/accounts/.parameters/parameters.json b/modules/Microsoft.CognitiveServices/accounts/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.CognitiveServices/accounts/.parameters/parameters.json rename to modules/Microsoft.CognitiveServices/accounts/.parameters/parameters.json diff --git a/arm/Microsoft.CognitiveServices/accounts/.parameters/speech.parameters.json b/modules/Microsoft.CognitiveServices/accounts/.parameters/speech.parameters.json similarity index 100% rename from arm/Microsoft.CognitiveServices/accounts/.parameters/speech.parameters.json rename to modules/Microsoft.CognitiveServices/accounts/.parameters/speech.parameters.json diff --git a/arm/Microsoft.CognitiveServices/accounts/deploy.bicep b/modules/Microsoft.CognitiveServices/accounts/deploy.bicep similarity index 100% rename from arm/Microsoft.CognitiveServices/accounts/deploy.bicep rename to modules/Microsoft.CognitiveServices/accounts/deploy.bicep diff --git a/arm/Microsoft.CognitiveServices/accounts/readme.md b/modules/Microsoft.CognitiveServices/accounts/readme.md similarity index 100% rename from arm/Microsoft.CognitiveServices/accounts/readme.md rename to modules/Microsoft.CognitiveServices/accounts/readme.md diff --git a/arm/Microsoft.CognitiveServices/accounts/version.json b/modules/Microsoft.CognitiveServices/accounts/version.json similarity index 100% rename from arm/Microsoft.CognitiveServices/accounts/version.json rename to modules/Microsoft.CognitiveServices/accounts/version.json diff --git a/arm/Microsoft.Compute/availabilitySets/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Compute/availabilitySets/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Compute/availabilitySets/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Compute/availabilitySets/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Compute/availabilitySets/.parameters/min.parameters.json b/modules/Microsoft.Compute/availabilitySets/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.Compute/availabilitySets/.parameters/min.parameters.json rename to modules/Microsoft.Compute/availabilitySets/.parameters/min.parameters.json diff --git a/arm/Microsoft.Compute/availabilitySets/.parameters/parameters.json b/modules/Microsoft.Compute/availabilitySets/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Compute/availabilitySets/.parameters/parameters.json rename to modules/Microsoft.Compute/availabilitySets/.parameters/parameters.json diff --git a/arm/Microsoft.Compute/availabilitySets/deploy.bicep b/modules/Microsoft.Compute/availabilitySets/deploy.bicep similarity index 100% rename from arm/Microsoft.Compute/availabilitySets/deploy.bicep rename to modules/Microsoft.Compute/availabilitySets/deploy.bicep diff --git a/arm/Microsoft.Compute/availabilitySets/readme.md b/modules/Microsoft.Compute/availabilitySets/readme.md similarity index 100% rename from arm/Microsoft.Compute/availabilitySets/readme.md rename to modules/Microsoft.Compute/availabilitySets/readme.md diff --git a/arm/Microsoft.Compute/availabilitySets/version.json b/modules/Microsoft.Compute/availabilitySets/version.json similarity index 100% rename from arm/Microsoft.Compute/availabilitySets/version.json rename to modules/Microsoft.Compute/availabilitySets/version.json diff --git a/arm/Microsoft.Compute/diskEncryptionSets/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Compute/diskEncryptionSets/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Compute/diskEncryptionSets/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Compute/diskEncryptionSets/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Compute/diskEncryptionSets/.parameters/parameters.json b/modules/Microsoft.Compute/diskEncryptionSets/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Compute/diskEncryptionSets/.parameters/parameters.json rename to modules/Microsoft.Compute/diskEncryptionSets/.parameters/parameters.json diff --git a/arm/Microsoft.Compute/diskEncryptionSets/deploy.bicep b/modules/Microsoft.Compute/diskEncryptionSets/deploy.bicep similarity index 100% rename from arm/Microsoft.Compute/diskEncryptionSets/deploy.bicep rename to modules/Microsoft.Compute/diskEncryptionSets/deploy.bicep diff --git a/arm/Microsoft.Compute/diskEncryptionSets/readme.md b/modules/Microsoft.Compute/diskEncryptionSets/readme.md similarity index 100% rename from arm/Microsoft.Compute/diskEncryptionSets/readme.md rename to modules/Microsoft.Compute/diskEncryptionSets/readme.md diff --git a/arm/Microsoft.Compute/diskEncryptionSets/version.json b/modules/Microsoft.Compute/diskEncryptionSets/version.json similarity index 100% rename from arm/Microsoft.Compute/diskEncryptionSets/version.json rename to modules/Microsoft.Compute/diskEncryptionSets/version.json diff --git a/arm/Microsoft.Compute/disks/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Compute/disks/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Compute/disks/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Compute/disks/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Compute/disks/.parameters/image.parameters.json b/modules/Microsoft.Compute/disks/.parameters/image.parameters.json similarity index 100% rename from arm/Microsoft.Compute/disks/.parameters/image.parameters.json rename to modules/Microsoft.Compute/disks/.parameters/image.parameters.json diff --git a/arm/Microsoft.Compute/disks/.parameters/import.parameters.json b/modules/Microsoft.Compute/disks/.parameters/import.parameters.json similarity index 100% rename from arm/Microsoft.Compute/disks/.parameters/import.parameters.json rename to modules/Microsoft.Compute/disks/.parameters/import.parameters.json diff --git a/arm/Microsoft.Compute/disks/.parameters/min.parameters.json b/modules/Microsoft.Compute/disks/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.Compute/disks/.parameters/min.parameters.json rename to modules/Microsoft.Compute/disks/.parameters/min.parameters.json diff --git a/arm/Microsoft.Compute/disks/.parameters/parameters.json b/modules/Microsoft.Compute/disks/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Compute/disks/.parameters/parameters.json rename to modules/Microsoft.Compute/disks/.parameters/parameters.json diff --git a/arm/Microsoft.Compute/disks/deploy.bicep b/modules/Microsoft.Compute/disks/deploy.bicep similarity index 100% rename from arm/Microsoft.Compute/disks/deploy.bicep rename to modules/Microsoft.Compute/disks/deploy.bicep diff --git a/arm/Microsoft.Compute/disks/readme.md b/modules/Microsoft.Compute/disks/readme.md similarity index 100% rename from arm/Microsoft.Compute/disks/readme.md rename to modules/Microsoft.Compute/disks/readme.md diff --git a/arm/Microsoft.Compute/disks/version.json b/modules/Microsoft.Compute/disks/version.json similarity index 100% rename from arm/Microsoft.Compute/disks/version.json rename to modules/Microsoft.Compute/disks/version.json diff --git a/arm/Microsoft.Compute/galleries/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Compute/galleries/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Compute/galleries/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Compute/galleries/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Compute/galleries/.parameters/images.parameters.json b/modules/Microsoft.Compute/galleries/.parameters/images.parameters.json similarity index 100% rename from arm/Microsoft.Compute/galleries/.parameters/images.parameters.json rename to modules/Microsoft.Compute/galleries/.parameters/images.parameters.json diff --git a/arm/Microsoft.Compute/galleries/.parameters/parameters.json b/modules/Microsoft.Compute/galleries/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Compute/galleries/.parameters/parameters.json rename to modules/Microsoft.Compute/galleries/.parameters/parameters.json diff --git a/arm/Microsoft.Compute/galleries/deploy.bicep b/modules/Microsoft.Compute/galleries/deploy.bicep similarity index 100% rename from arm/Microsoft.Compute/galleries/deploy.bicep rename to modules/Microsoft.Compute/galleries/deploy.bicep diff --git a/arm/Microsoft.Compute/galleries/images/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Compute/galleries/images/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Compute/galleries/images/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Compute/galleries/images/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Compute/galleries/images/deploy.bicep b/modules/Microsoft.Compute/galleries/images/deploy.bicep similarity index 100% rename from arm/Microsoft.Compute/galleries/images/deploy.bicep rename to modules/Microsoft.Compute/galleries/images/deploy.bicep diff --git a/arm/Microsoft.Compute/galleries/images/readme.md b/modules/Microsoft.Compute/galleries/images/readme.md similarity index 100% rename from arm/Microsoft.Compute/galleries/images/readme.md rename to modules/Microsoft.Compute/galleries/images/readme.md diff --git a/arm/Microsoft.Compute/galleries/images/version.json b/modules/Microsoft.Compute/galleries/images/version.json similarity index 100% rename from arm/Microsoft.Compute/galleries/images/version.json rename to modules/Microsoft.Compute/galleries/images/version.json diff --git a/arm/Microsoft.Compute/galleries/readme.md b/modules/Microsoft.Compute/galleries/readme.md similarity index 100% rename from arm/Microsoft.Compute/galleries/readme.md rename to modules/Microsoft.Compute/galleries/readme.md diff --git a/arm/Microsoft.Compute/galleries/version.json b/modules/Microsoft.Compute/galleries/version.json similarity index 100% rename from arm/Microsoft.Compute/galleries/version.json rename to modules/Microsoft.Compute/galleries/version.json diff --git a/arm/Microsoft.Compute/images/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Compute/images/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Compute/images/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Compute/images/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Compute/images/.parameters/parameters.json b/modules/Microsoft.Compute/images/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Compute/images/.parameters/parameters.json rename to modules/Microsoft.Compute/images/.parameters/parameters.json diff --git a/arm/Microsoft.Compute/images/deploy.bicep b/modules/Microsoft.Compute/images/deploy.bicep similarity index 100% rename from arm/Microsoft.Compute/images/deploy.bicep rename to modules/Microsoft.Compute/images/deploy.bicep diff --git a/arm/Microsoft.Compute/images/readme.md b/modules/Microsoft.Compute/images/readme.md similarity index 100% rename from arm/Microsoft.Compute/images/readme.md rename to modules/Microsoft.Compute/images/readme.md diff --git a/arm/Microsoft.Compute/images/version.json b/modules/Microsoft.Compute/images/version.json similarity index 100% rename from arm/Microsoft.Compute/images/version.json rename to modules/Microsoft.Compute/images/version.json diff --git a/arm/Microsoft.Compute/proximityPlacementGroups/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Compute/proximityPlacementGroups/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Compute/proximityPlacementGroups/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Compute/proximityPlacementGroups/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Compute/proximityPlacementGroups/.parameters/parameters.json b/modules/Microsoft.Compute/proximityPlacementGroups/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Compute/proximityPlacementGroups/.parameters/parameters.json rename to modules/Microsoft.Compute/proximityPlacementGroups/.parameters/parameters.json diff --git a/arm/Microsoft.Compute/proximityPlacementGroups/deploy.bicep b/modules/Microsoft.Compute/proximityPlacementGroups/deploy.bicep similarity index 100% rename from arm/Microsoft.Compute/proximityPlacementGroups/deploy.bicep rename to modules/Microsoft.Compute/proximityPlacementGroups/deploy.bicep diff --git a/arm/Microsoft.Compute/proximityPlacementGroups/readme.md b/modules/Microsoft.Compute/proximityPlacementGroups/readme.md similarity index 100% rename from arm/Microsoft.Compute/proximityPlacementGroups/readme.md rename to modules/Microsoft.Compute/proximityPlacementGroups/readme.md diff --git a/arm/Microsoft.Compute/proximityPlacementGroups/version.json b/modules/Microsoft.Compute/proximityPlacementGroups/version.json similarity index 100% rename from arm/Microsoft.Compute/proximityPlacementGroups/version.json rename to modules/Microsoft.Compute/proximityPlacementGroups/version.json diff --git a/arm/Microsoft.Compute/virtualMachineScaleSets/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Compute/virtualMachineScaleSets/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Compute/virtualMachineScaleSets/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Compute/virtualMachineScaleSets/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.min.parameters.json b/modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.min.parameters.json similarity index 100% rename from arm/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.min.parameters.json rename to modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.min.parameters.json diff --git a/arm/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.parameters.json b/modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.parameters.json similarity index 100% rename from arm/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.parameters.json rename to modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.parameters.json diff --git a/arm/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.min.parameters.json b/modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.min.parameters.json similarity index 100% rename from arm/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.min.parameters.json rename to modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.min.parameters.json diff --git a/arm/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.parameters.json b/modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.parameters.json similarity index 100% rename from arm/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.parameters.json rename to modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.parameters.json diff --git a/arm/Microsoft.Compute/virtualMachineScaleSets/deploy.bicep b/modules/Microsoft.Compute/virtualMachineScaleSets/deploy.bicep similarity index 100% rename from arm/Microsoft.Compute/virtualMachineScaleSets/deploy.bicep rename to modules/Microsoft.Compute/virtualMachineScaleSets/deploy.bicep diff --git a/arm/Microsoft.Compute/virtualMachineScaleSets/extensions/deploy.bicep b/modules/Microsoft.Compute/virtualMachineScaleSets/extensions/deploy.bicep similarity index 100% rename from arm/Microsoft.Compute/virtualMachineScaleSets/extensions/deploy.bicep rename to modules/Microsoft.Compute/virtualMachineScaleSets/extensions/deploy.bicep diff --git a/arm/Microsoft.Compute/virtualMachineScaleSets/extensions/readme.md b/modules/Microsoft.Compute/virtualMachineScaleSets/extensions/readme.md similarity index 100% rename from arm/Microsoft.Compute/virtualMachineScaleSets/extensions/readme.md rename to modules/Microsoft.Compute/virtualMachineScaleSets/extensions/readme.md diff --git a/arm/Microsoft.Compute/virtualMachineScaleSets/extensions/version.json b/modules/Microsoft.Compute/virtualMachineScaleSets/extensions/version.json similarity index 100% rename from arm/Microsoft.Compute/virtualMachineScaleSets/extensions/version.json rename to modules/Microsoft.Compute/virtualMachineScaleSets/extensions/version.json diff --git a/arm/Microsoft.Compute/virtualMachineScaleSets/readme.md b/modules/Microsoft.Compute/virtualMachineScaleSets/readme.md similarity index 100% rename from arm/Microsoft.Compute/virtualMachineScaleSets/readme.md rename to modules/Microsoft.Compute/virtualMachineScaleSets/readme.md diff --git a/arm/Microsoft.Compute/virtualMachineScaleSets/version.json b/modules/Microsoft.Compute/virtualMachineScaleSets/version.json similarity index 100% rename from arm/Microsoft.Compute/virtualMachineScaleSets/version.json rename to modules/Microsoft.Compute/virtualMachineScaleSets/version.json diff --git a/arm/Microsoft.Compute/virtualMachines/.bicep/nested_networkInterface.bicep b/modules/Microsoft.Compute/virtualMachines/.bicep/nested_networkInterface.bicep similarity index 100% rename from arm/Microsoft.Compute/virtualMachines/.bicep/nested_networkInterface.bicep rename to modules/Microsoft.Compute/virtualMachines/.bicep/nested_networkInterface.bicep diff --git a/arm/Microsoft.Compute/virtualMachines/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Compute/virtualMachines/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Compute/virtualMachines/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Compute/virtualMachines/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Compute/virtualMachines/.parameters/linux.autmg.parameters.json b/modules/Microsoft.Compute/virtualMachines/.parameters/linux.autmg.parameters.json similarity index 100% rename from arm/Microsoft.Compute/virtualMachines/.parameters/linux.autmg.parameters.json rename to modules/Microsoft.Compute/virtualMachines/.parameters/linux.autmg.parameters.json diff --git a/arm/Microsoft.Compute/virtualMachines/.parameters/linux.min.parameters.json b/modules/Microsoft.Compute/virtualMachines/.parameters/linux.min.parameters.json similarity index 100% rename from arm/Microsoft.Compute/virtualMachines/.parameters/linux.min.parameters.json rename to modules/Microsoft.Compute/virtualMachines/.parameters/linux.min.parameters.json diff --git a/arm/Microsoft.Compute/virtualMachines/.parameters/linux.parameters.json b/modules/Microsoft.Compute/virtualMachines/.parameters/linux.parameters.json similarity index 100% rename from arm/Microsoft.Compute/virtualMachines/.parameters/linux.parameters.json rename to modules/Microsoft.Compute/virtualMachines/.parameters/linux.parameters.json diff --git a/arm/Microsoft.Compute/virtualMachines/.parameters/windows.autmg.parameters.json b/modules/Microsoft.Compute/virtualMachines/.parameters/windows.autmg.parameters.json similarity index 100% rename from arm/Microsoft.Compute/virtualMachines/.parameters/windows.autmg.parameters.json rename to modules/Microsoft.Compute/virtualMachines/.parameters/windows.autmg.parameters.json diff --git a/arm/Microsoft.Compute/virtualMachines/.parameters/windows.min.parameters.json b/modules/Microsoft.Compute/virtualMachines/.parameters/windows.min.parameters.json similarity index 100% rename from arm/Microsoft.Compute/virtualMachines/.parameters/windows.min.parameters.json rename to modules/Microsoft.Compute/virtualMachines/.parameters/windows.min.parameters.json diff --git a/arm/Microsoft.Compute/virtualMachines/.parameters/windows.parameters.json b/modules/Microsoft.Compute/virtualMachines/.parameters/windows.parameters.json similarity index 100% rename from arm/Microsoft.Compute/virtualMachines/.parameters/windows.parameters.json rename to modules/Microsoft.Compute/virtualMachines/.parameters/windows.parameters.json diff --git a/arm/Microsoft.Compute/virtualMachines/deploy.bicep b/modules/Microsoft.Compute/virtualMachines/deploy.bicep similarity index 100% rename from arm/Microsoft.Compute/virtualMachines/deploy.bicep rename to modules/Microsoft.Compute/virtualMachines/deploy.bicep diff --git a/arm/Microsoft.Compute/virtualMachines/extensions/deploy.bicep b/modules/Microsoft.Compute/virtualMachines/extensions/deploy.bicep similarity index 100% rename from arm/Microsoft.Compute/virtualMachines/extensions/deploy.bicep rename to modules/Microsoft.Compute/virtualMachines/extensions/deploy.bicep diff --git a/arm/Microsoft.Compute/virtualMachines/extensions/readme.md b/modules/Microsoft.Compute/virtualMachines/extensions/readme.md similarity index 100% rename from arm/Microsoft.Compute/virtualMachines/extensions/readme.md rename to modules/Microsoft.Compute/virtualMachines/extensions/readme.md diff --git a/arm/Microsoft.Compute/virtualMachines/extensions/version.json b/modules/Microsoft.Compute/virtualMachines/extensions/version.json similarity index 100% rename from arm/Microsoft.Compute/virtualMachines/extensions/version.json rename to modules/Microsoft.Compute/virtualMachines/extensions/version.json diff --git a/arm/Microsoft.Compute/virtualMachines/readme.md b/modules/Microsoft.Compute/virtualMachines/readme.md similarity index 100% rename from arm/Microsoft.Compute/virtualMachines/readme.md rename to modules/Microsoft.Compute/virtualMachines/readme.md diff --git a/arm/Microsoft.Compute/virtualMachines/version.json b/modules/Microsoft.Compute/virtualMachines/version.json similarity index 100% rename from arm/Microsoft.Compute/virtualMachines/version.json rename to modules/Microsoft.Compute/virtualMachines/version.json diff --git a/arm/Microsoft.Consumption/budgets/.parameters/parameters.json b/modules/Microsoft.Consumption/budgets/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Consumption/budgets/.parameters/parameters.json rename to modules/Microsoft.Consumption/budgets/.parameters/parameters.json diff --git a/arm/Microsoft.Consumption/budgets/deploy.bicep b/modules/Microsoft.Consumption/budgets/deploy.bicep similarity index 100% rename from arm/Microsoft.Consumption/budgets/deploy.bicep rename to modules/Microsoft.Consumption/budgets/deploy.bicep diff --git a/arm/Microsoft.Consumption/budgets/readme.md b/modules/Microsoft.Consumption/budgets/readme.md similarity index 100% rename from arm/Microsoft.Consumption/budgets/readme.md rename to modules/Microsoft.Consumption/budgets/readme.md diff --git a/arm/Microsoft.Consumption/budgets/version.json b/modules/Microsoft.Consumption/budgets/version.json similarity index 100% rename from arm/Microsoft.Consumption/budgets/version.json rename to modules/Microsoft.Consumption/budgets/version.json diff --git a/arm/Microsoft.ContainerInstance/containerGroups/.parameters/parameters.json b/modules/Microsoft.ContainerInstance/containerGroups/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.ContainerInstance/containerGroups/.parameters/parameters.json rename to modules/Microsoft.ContainerInstance/containerGroups/.parameters/parameters.json diff --git a/arm/Microsoft.ContainerInstance/containerGroups/deploy.bicep b/modules/Microsoft.ContainerInstance/containerGroups/deploy.bicep similarity index 100% rename from arm/Microsoft.ContainerInstance/containerGroups/deploy.bicep rename to modules/Microsoft.ContainerInstance/containerGroups/deploy.bicep diff --git a/arm/Microsoft.ContainerInstance/containerGroups/readme.md b/modules/Microsoft.ContainerInstance/containerGroups/readme.md similarity index 100% rename from arm/Microsoft.ContainerInstance/containerGroups/readme.md rename to modules/Microsoft.ContainerInstance/containerGroups/readme.md diff --git a/arm/Microsoft.ContainerInstance/containerGroups/version.json b/modules/Microsoft.ContainerInstance/containerGroups/version.json similarity index 100% rename from arm/Microsoft.ContainerInstance/containerGroups/version.json rename to modules/Microsoft.ContainerInstance/containerGroups/version.json diff --git a/arm/Microsoft.ContainerRegistry/registries/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.ContainerRegistry/registries/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.ContainerRegistry/registries/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.ContainerRegistry/registries/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.ContainerRegistry/registries/.parameters/encr.parameters.json b/modules/Microsoft.ContainerRegistry/registries/.parameters/encr.parameters.json similarity index 100% rename from arm/Microsoft.ContainerRegistry/registries/.parameters/encr.parameters.json rename to modules/Microsoft.ContainerRegistry/registries/.parameters/encr.parameters.json diff --git a/arm/Microsoft.ContainerRegistry/registries/.parameters/min.parameters.json b/modules/Microsoft.ContainerRegistry/registries/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.ContainerRegistry/registries/.parameters/min.parameters.json rename to modules/Microsoft.ContainerRegistry/registries/.parameters/min.parameters.json diff --git a/arm/Microsoft.ContainerRegistry/registries/.parameters/parameters.json b/modules/Microsoft.ContainerRegistry/registries/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.ContainerRegistry/registries/.parameters/parameters.json rename to modules/Microsoft.ContainerRegistry/registries/.parameters/parameters.json diff --git a/arm/Microsoft.ContainerRegistry/registries/deploy.bicep b/modules/Microsoft.ContainerRegistry/registries/deploy.bicep similarity index 100% rename from arm/Microsoft.ContainerRegistry/registries/deploy.bicep rename to modules/Microsoft.ContainerRegistry/registries/deploy.bicep diff --git a/arm/Microsoft.ContainerRegistry/registries/readme.md b/modules/Microsoft.ContainerRegistry/registries/readme.md similarity index 100% rename from arm/Microsoft.ContainerRegistry/registries/readme.md rename to modules/Microsoft.ContainerRegistry/registries/readme.md diff --git a/arm/Microsoft.ContainerRegistry/registries/replications/deploy.bicep b/modules/Microsoft.ContainerRegistry/registries/replications/deploy.bicep similarity index 100% rename from arm/Microsoft.ContainerRegistry/registries/replications/deploy.bicep rename to modules/Microsoft.ContainerRegistry/registries/replications/deploy.bicep diff --git a/arm/Microsoft.ContainerRegistry/registries/replications/readme.md b/modules/Microsoft.ContainerRegistry/registries/replications/readme.md similarity index 100% rename from arm/Microsoft.ContainerRegistry/registries/replications/readme.md rename to modules/Microsoft.ContainerRegistry/registries/replications/readme.md diff --git a/arm/Microsoft.ContainerRegistry/registries/replications/version.json b/modules/Microsoft.ContainerRegistry/registries/replications/version.json similarity index 100% rename from arm/Microsoft.ContainerRegistry/registries/replications/version.json rename to modules/Microsoft.ContainerRegistry/registries/replications/version.json diff --git a/arm/Microsoft.ContainerRegistry/registries/version.json b/modules/Microsoft.ContainerRegistry/registries/version.json similarity index 100% rename from arm/Microsoft.ContainerRegistry/registries/version.json rename to modules/Microsoft.ContainerRegistry/registries/version.json diff --git a/arm/Microsoft.ContainerRegistry/registries/webhooks/deploy.bicep b/modules/Microsoft.ContainerRegistry/registries/webhooks/deploy.bicep similarity index 100% rename from arm/Microsoft.ContainerRegistry/registries/webhooks/deploy.bicep rename to modules/Microsoft.ContainerRegistry/registries/webhooks/deploy.bicep diff --git a/arm/Microsoft.ContainerRegistry/registries/webhooks/readme.md b/modules/Microsoft.ContainerRegistry/registries/webhooks/readme.md similarity index 100% rename from arm/Microsoft.ContainerRegistry/registries/webhooks/readme.md rename to modules/Microsoft.ContainerRegistry/registries/webhooks/readme.md diff --git a/arm/Microsoft.ContainerRegistry/registries/webhooks/version.json b/modules/Microsoft.ContainerRegistry/registries/webhooks/version.json similarity index 100% rename from arm/Microsoft.ContainerRegistry/registries/webhooks/version.json rename to modules/Microsoft.ContainerRegistry/registries/webhooks/version.json diff --git a/arm/Microsoft.ContainerService/managedClusters/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.ContainerService/managedClusters/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.ContainerService/managedClusters/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.ContainerService/managedClusters/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.ContainerService/managedClusters/.parameters/azure.parameters.json b/modules/Microsoft.ContainerService/managedClusters/.parameters/azure.parameters.json similarity index 100% rename from arm/Microsoft.ContainerService/managedClusters/.parameters/azure.parameters.json rename to modules/Microsoft.ContainerService/managedClusters/.parameters/azure.parameters.json diff --git a/arm/Microsoft.ContainerService/managedClusters/.parameters/kubenet.parameters.json b/modules/Microsoft.ContainerService/managedClusters/.parameters/kubenet.parameters.json similarity index 100% rename from arm/Microsoft.ContainerService/managedClusters/.parameters/kubenet.parameters.json rename to modules/Microsoft.ContainerService/managedClusters/.parameters/kubenet.parameters.json diff --git a/arm/Microsoft.ContainerService/managedClusters/agentPools/deploy.bicep b/modules/Microsoft.ContainerService/managedClusters/agentPools/deploy.bicep similarity index 100% rename from arm/Microsoft.ContainerService/managedClusters/agentPools/deploy.bicep rename to modules/Microsoft.ContainerService/managedClusters/agentPools/deploy.bicep diff --git a/arm/Microsoft.ContainerService/managedClusters/agentPools/readme.md b/modules/Microsoft.ContainerService/managedClusters/agentPools/readme.md similarity index 100% rename from arm/Microsoft.ContainerService/managedClusters/agentPools/readme.md rename to modules/Microsoft.ContainerService/managedClusters/agentPools/readme.md diff --git a/arm/Microsoft.ContainerService/managedClusters/agentPools/version.json b/modules/Microsoft.ContainerService/managedClusters/agentPools/version.json similarity index 100% rename from arm/Microsoft.ContainerService/managedClusters/agentPools/version.json rename to modules/Microsoft.ContainerService/managedClusters/agentPools/version.json diff --git a/arm/Microsoft.ContainerService/managedClusters/deploy.bicep b/modules/Microsoft.ContainerService/managedClusters/deploy.bicep similarity index 100% rename from arm/Microsoft.ContainerService/managedClusters/deploy.bicep rename to modules/Microsoft.ContainerService/managedClusters/deploy.bicep diff --git a/arm/Microsoft.ContainerService/managedClusters/readme.md b/modules/Microsoft.ContainerService/managedClusters/readme.md similarity index 100% rename from arm/Microsoft.ContainerService/managedClusters/readme.md rename to modules/Microsoft.ContainerService/managedClusters/readme.md diff --git a/arm/Microsoft.ContainerService/managedClusters/version.json b/modules/Microsoft.ContainerService/managedClusters/version.json similarity index 100% rename from arm/Microsoft.ContainerService/managedClusters/version.json rename to modules/Microsoft.ContainerService/managedClusters/version.json diff --git a/arm/Microsoft.DataFactory/factories/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.DataFactory/factories/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.DataFactory/factories/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.DataFactory/factories/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.DataFactory/factories/.parameters/parameters.json b/modules/Microsoft.DataFactory/factories/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.DataFactory/factories/.parameters/parameters.json rename to modules/Microsoft.DataFactory/factories/.parameters/parameters.json diff --git a/arm/Microsoft.DataFactory/factories/deploy.bicep b/modules/Microsoft.DataFactory/factories/deploy.bicep similarity index 100% rename from arm/Microsoft.DataFactory/factories/deploy.bicep rename to modules/Microsoft.DataFactory/factories/deploy.bicep diff --git a/arm/Microsoft.DataFactory/factories/integrationRuntime/deploy.bicep b/modules/Microsoft.DataFactory/factories/integrationRuntime/deploy.bicep similarity index 100% rename from arm/Microsoft.DataFactory/factories/integrationRuntime/deploy.bicep rename to modules/Microsoft.DataFactory/factories/integrationRuntime/deploy.bicep diff --git a/arm/Microsoft.DataFactory/factories/integrationRuntime/readme.md b/modules/Microsoft.DataFactory/factories/integrationRuntime/readme.md similarity index 100% rename from arm/Microsoft.DataFactory/factories/integrationRuntime/readme.md rename to modules/Microsoft.DataFactory/factories/integrationRuntime/readme.md diff --git a/arm/Microsoft.DataFactory/factories/integrationRuntime/version.json b/modules/Microsoft.DataFactory/factories/integrationRuntime/version.json similarity index 100% rename from arm/Microsoft.DataFactory/factories/integrationRuntime/version.json rename to modules/Microsoft.DataFactory/factories/integrationRuntime/version.json diff --git a/arm/Microsoft.DataFactory/factories/managedVirtualNetwork/deploy.bicep b/modules/Microsoft.DataFactory/factories/managedVirtualNetwork/deploy.bicep similarity index 100% rename from arm/Microsoft.DataFactory/factories/managedVirtualNetwork/deploy.bicep rename to modules/Microsoft.DataFactory/factories/managedVirtualNetwork/deploy.bicep diff --git a/arm/Microsoft.DataFactory/factories/managedVirtualNetwork/readme.md b/modules/Microsoft.DataFactory/factories/managedVirtualNetwork/readme.md similarity index 100% rename from arm/Microsoft.DataFactory/factories/managedVirtualNetwork/readme.md rename to modules/Microsoft.DataFactory/factories/managedVirtualNetwork/readme.md diff --git a/arm/Microsoft.DataFactory/factories/managedVirtualNetwork/version.json b/modules/Microsoft.DataFactory/factories/managedVirtualNetwork/version.json similarity index 100% rename from arm/Microsoft.DataFactory/factories/managedVirtualNetwork/version.json rename to modules/Microsoft.DataFactory/factories/managedVirtualNetwork/version.json diff --git a/arm/Microsoft.DataFactory/factories/readme.md b/modules/Microsoft.DataFactory/factories/readme.md similarity index 100% rename from arm/Microsoft.DataFactory/factories/readme.md rename to modules/Microsoft.DataFactory/factories/readme.md diff --git a/arm/Microsoft.DataFactory/factories/version.json b/modules/Microsoft.DataFactory/factories/version.json similarity index 100% rename from arm/Microsoft.DataFactory/factories/version.json rename to modules/Microsoft.DataFactory/factories/version.json diff --git a/arm/Microsoft.DataProtection/backupVaults/.parameters/min.parameters.json b/modules/Microsoft.DataProtection/backupVaults/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.DataProtection/backupVaults/.parameters/min.parameters.json rename to modules/Microsoft.DataProtection/backupVaults/.parameters/min.parameters.json diff --git a/arm/Microsoft.DataProtection/backupVaults/.parameters/parameters.json b/modules/Microsoft.DataProtection/backupVaults/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.DataProtection/backupVaults/.parameters/parameters.json rename to modules/Microsoft.DataProtection/backupVaults/.parameters/parameters.json diff --git a/arm/Microsoft.DataProtection/backupVaults/backupPolicies/deploy.bicep b/modules/Microsoft.DataProtection/backupVaults/backupPolicies/deploy.bicep similarity index 100% rename from arm/Microsoft.DataProtection/backupVaults/backupPolicies/deploy.bicep rename to modules/Microsoft.DataProtection/backupVaults/backupPolicies/deploy.bicep diff --git a/arm/Microsoft.DataProtection/backupVaults/backupPolicies/readme.md b/modules/Microsoft.DataProtection/backupVaults/backupPolicies/readme.md similarity index 100% rename from arm/Microsoft.DataProtection/backupVaults/backupPolicies/readme.md rename to modules/Microsoft.DataProtection/backupVaults/backupPolicies/readme.md diff --git a/arm/Microsoft.DataProtection/backupVaults/backupPolicies/version.json b/modules/Microsoft.DataProtection/backupVaults/backupPolicies/version.json similarity index 100% rename from arm/Microsoft.DataProtection/backupVaults/backupPolicies/version.json rename to modules/Microsoft.DataProtection/backupVaults/backupPolicies/version.json diff --git a/arm/Microsoft.DataProtection/backupVaults/deploy.bicep b/modules/Microsoft.DataProtection/backupVaults/deploy.bicep similarity index 100% rename from arm/Microsoft.DataProtection/backupVaults/deploy.bicep rename to modules/Microsoft.DataProtection/backupVaults/deploy.bicep diff --git a/arm/Microsoft.DataProtection/backupVaults/readme.md b/modules/Microsoft.DataProtection/backupVaults/readme.md similarity index 100% rename from arm/Microsoft.DataProtection/backupVaults/readme.md rename to modules/Microsoft.DataProtection/backupVaults/readme.md diff --git a/arm/Microsoft.DataProtection/backupVaults/version.json b/modules/Microsoft.DataProtection/backupVaults/version.json similarity index 100% rename from arm/Microsoft.DataProtection/backupVaults/version.json rename to modules/Microsoft.DataProtection/backupVaults/version.json diff --git a/arm/Microsoft.Databricks/workspaces/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Databricks/workspaces/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Databricks/workspaces/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Databricks/workspaces/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Databricks/workspaces/.parameters/parameters.json b/modules/Microsoft.Databricks/workspaces/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Databricks/workspaces/.parameters/parameters.json rename to modules/Microsoft.Databricks/workspaces/.parameters/parameters.json diff --git a/arm/Microsoft.Databricks/workspaces/deploy.bicep b/modules/Microsoft.Databricks/workspaces/deploy.bicep similarity index 100% rename from arm/Microsoft.Databricks/workspaces/deploy.bicep rename to modules/Microsoft.Databricks/workspaces/deploy.bicep diff --git a/arm/Microsoft.Databricks/workspaces/readme.md b/modules/Microsoft.Databricks/workspaces/readme.md similarity index 100% rename from arm/Microsoft.Databricks/workspaces/readme.md rename to modules/Microsoft.Databricks/workspaces/readme.md diff --git a/arm/Microsoft.Databricks/workspaces/version.json b/modules/Microsoft.Databricks/workspaces/version.json similarity index 100% rename from arm/Microsoft.Databricks/workspaces/version.json rename to modules/Microsoft.Databricks/workspaces/version.json diff --git a/arm/Microsoft.DesktopVirtualization/applicationgroups/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.DesktopVirtualization/applicationgroups/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.DesktopVirtualization/applicationgroups/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.DesktopVirtualization/applicationgroups/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.DesktopVirtualization/applicationgroups/.parameters/min.parameters.json b/modules/Microsoft.DesktopVirtualization/applicationgroups/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.DesktopVirtualization/applicationgroups/.parameters/min.parameters.json rename to modules/Microsoft.DesktopVirtualization/applicationgroups/.parameters/min.parameters.json diff --git a/arm/Microsoft.DesktopVirtualization/applicationgroups/.parameters/parameters.json b/modules/Microsoft.DesktopVirtualization/applicationgroups/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.DesktopVirtualization/applicationgroups/.parameters/parameters.json rename to modules/Microsoft.DesktopVirtualization/applicationgroups/.parameters/parameters.json diff --git a/arm/Microsoft.DesktopVirtualization/applicationgroups/applications/deploy.bicep b/modules/Microsoft.DesktopVirtualization/applicationgroups/applications/deploy.bicep similarity index 100% rename from arm/Microsoft.DesktopVirtualization/applicationgroups/applications/deploy.bicep rename to modules/Microsoft.DesktopVirtualization/applicationgroups/applications/deploy.bicep diff --git a/arm/Microsoft.DesktopVirtualization/applicationgroups/applications/readme.md b/modules/Microsoft.DesktopVirtualization/applicationgroups/applications/readme.md similarity index 100% rename from arm/Microsoft.DesktopVirtualization/applicationgroups/applications/readme.md rename to modules/Microsoft.DesktopVirtualization/applicationgroups/applications/readme.md diff --git a/arm/Microsoft.DesktopVirtualization/applicationgroups/applications/version.json b/modules/Microsoft.DesktopVirtualization/applicationgroups/applications/version.json similarity index 100% rename from arm/Microsoft.DesktopVirtualization/applicationgroups/applications/version.json rename to modules/Microsoft.DesktopVirtualization/applicationgroups/applications/version.json diff --git a/arm/Microsoft.DesktopVirtualization/applicationgroups/deploy.bicep b/modules/Microsoft.DesktopVirtualization/applicationgroups/deploy.bicep similarity index 100% rename from arm/Microsoft.DesktopVirtualization/applicationgroups/deploy.bicep rename to modules/Microsoft.DesktopVirtualization/applicationgroups/deploy.bicep diff --git a/arm/Microsoft.DesktopVirtualization/applicationgroups/readme.md b/modules/Microsoft.DesktopVirtualization/applicationgroups/readme.md similarity index 100% rename from arm/Microsoft.DesktopVirtualization/applicationgroups/readme.md rename to modules/Microsoft.DesktopVirtualization/applicationgroups/readme.md diff --git a/arm/Microsoft.DesktopVirtualization/applicationgroups/version.json b/modules/Microsoft.DesktopVirtualization/applicationgroups/version.json similarity index 100% rename from arm/Microsoft.DesktopVirtualization/applicationgroups/version.json rename to modules/Microsoft.DesktopVirtualization/applicationgroups/version.json diff --git a/arm/Microsoft.DesktopVirtualization/hostpools/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.DesktopVirtualization/hostpools/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.DesktopVirtualization/hostpools/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.DesktopVirtualization/hostpools/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.DesktopVirtualization/hostpools/.parameters/parameters.json b/modules/Microsoft.DesktopVirtualization/hostpools/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.DesktopVirtualization/hostpools/.parameters/parameters.json rename to modules/Microsoft.DesktopVirtualization/hostpools/.parameters/parameters.json diff --git a/arm/Microsoft.DesktopVirtualization/hostpools/deploy.bicep b/modules/Microsoft.DesktopVirtualization/hostpools/deploy.bicep similarity index 100% rename from arm/Microsoft.DesktopVirtualization/hostpools/deploy.bicep rename to modules/Microsoft.DesktopVirtualization/hostpools/deploy.bicep diff --git a/arm/Microsoft.DesktopVirtualization/hostpools/readme.md b/modules/Microsoft.DesktopVirtualization/hostpools/readme.md similarity index 100% rename from arm/Microsoft.DesktopVirtualization/hostpools/readme.md rename to modules/Microsoft.DesktopVirtualization/hostpools/readme.md diff --git a/arm/Microsoft.DesktopVirtualization/hostpools/version.json b/modules/Microsoft.DesktopVirtualization/hostpools/version.json similarity index 100% rename from arm/Microsoft.DesktopVirtualization/hostpools/version.json rename to modules/Microsoft.DesktopVirtualization/hostpools/version.json diff --git a/arm/Microsoft.DesktopVirtualization/scalingplans/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.DesktopVirtualization/scalingplans/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.DesktopVirtualization/scalingplans/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.DesktopVirtualization/scalingplans/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.DesktopVirtualization/scalingplans/.parameters/min.parameters.json b/modules/Microsoft.DesktopVirtualization/scalingplans/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.DesktopVirtualization/scalingplans/.parameters/min.parameters.json rename to modules/Microsoft.DesktopVirtualization/scalingplans/.parameters/min.parameters.json diff --git a/arm/Microsoft.DesktopVirtualization/scalingplans/deploy.bicep b/modules/Microsoft.DesktopVirtualization/scalingplans/deploy.bicep similarity index 100% rename from arm/Microsoft.DesktopVirtualization/scalingplans/deploy.bicep rename to modules/Microsoft.DesktopVirtualization/scalingplans/deploy.bicep diff --git a/arm/Microsoft.DesktopVirtualization/scalingplans/readme.md b/modules/Microsoft.DesktopVirtualization/scalingplans/readme.md similarity index 100% rename from arm/Microsoft.DesktopVirtualization/scalingplans/readme.md rename to modules/Microsoft.DesktopVirtualization/scalingplans/readme.md diff --git a/arm/Microsoft.DesktopVirtualization/scalingplans/version.json b/modules/Microsoft.DesktopVirtualization/scalingplans/version.json similarity index 100% rename from arm/Microsoft.DesktopVirtualization/scalingplans/version.json rename to modules/Microsoft.DesktopVirtualization/scalingplans/version.json diff --git a/arm/Microsoft.DesktopVirtualization/workspaces/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.DesktopVirtualization/workspaces/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.DesktopVirtualization/workspaces/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.DesktopVirtualization/workspaces/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.DesktopVirtualization/workspaces/.parameters/parameters.json b/modules/Microsoft.DesktopVirtualization/workspaces/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.DesktopVirtualization/workspaces/.parameters/parameters.json rename to modules/Microsoft.DesktopVirtualization/workspaces/.parameters/parameters.json diff --git a/arm/Microsoft.DesktopVirtualization/workspaces/deploy.bicep b/modules/Microsoft.DesktopVirtualization/workspaces/deploy.bicep similarity index 100% rename from arm/Microsoft.DesktopVirtualization/workspaces/deploy.bicep rename to modules/Microsoft.DesktopVirtualization/workspaces/deploy.bicep diff --git a/arm/Microsoft.DesktopVirtualization/workspaces/readme.md b/modules/Microsoft.DesktopVirtualization/workspaces/readme.md similarity index 100% rename from arm/Microsoft.DesktopVirtualization/workspaces/readme.md rename to modules/Microsoft.DesktopVirtualization/workspaces/readme.md diff --git a/arm/Microsoft.DesktopVirtualization/workspaces/version.json b/modules/Microsoft.DesktopVirtualization/workspaces/version.json similarity index 100% rename from arm/Microsoft.DesktopVirtualization/workspaces/version.json rename to modules/Microsoft.DesktopVirtualization/workspaces/version.json diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.DocumentDB/databaseAccounts/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.DocumentDB/databaseAccounts/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.DocumentDB/databaseAccounts/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/.parameters/mongodb.parameters.json b/modules/Microsoft.DocumentDB/databaseAccounts/.parameters/mongodb.parameters.json similarity index 100% rename from arm/Microsoft.DocumentDB/databaseAccounts/.parameters/mongodb.parameters.json rename to modules/Microsoft.DocumentDB/databaseAccounts/.parameters/mongodb.parameters.json diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/.parameters/plain.parameters.json b/modules/Microsoft.DocumentDB/databaseAccounts/.parameters/plain.parameters.json similarity index 100% rename from arm/Microsoft.DocumentDB/databaseAccounts/.parameters/plain.parameters.json rename to modules/Microsoft.DocumentDB/databaseAccounts/.parameters/plain.parameters.json diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/.parameters/sqldb.parameters.json b/modules/Microsoft.DocumentDB/databaseAccounts/.parameters/sqldb.parameters.json similarity index 100% rename from arm/Microsoft.DocumentDB/databaseAccounts/.parameters/sqldb.parameters.json rename to modules/Microsoft.DocumentDB/databaseAccounts/.parameters/sqldb.parameters.json diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/deploy.bicep b/modules/Microsoft.DocumentDB/databaseAccounts/deploy.bicep similarity index 100% rename from arm/Microsoft.DocumentDB/databaseAccounts/deploy.bicep rename to modules/Microsoft.DocumentDB/databaseAccounts/deploy.bicep diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/deploy.bicep b/modules/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/deploy.bicep similarity index 100% rename from arm/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/deploy.bicep rename to modules/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/deploy.bicep diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/readme.md b/modules/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/readme.md similarity index 100% rename from arm/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/readme.md rename to modules/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/readme.md diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/version.json b/modules/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/version.json similarity index 100% rename from arm/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/version.json rename to modules/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/version.json diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/deploy.bicep b/modules/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/deploy.bicep similarity index 100% rename from arm/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/deploy.bicep rename to modules/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/deploy.bicep diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/readme.md b/modules/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/readme.md similarity index 100% rename from arm/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/readme.md rename to modules/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/readme.md diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/version.json b/modules/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/version.json similarity index 100% rename from arm/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/version.json rename to modules/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/version.json diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/readme.md b/modules/Microsoft.DocumentDB/databaseAccounts/readme.md similarity index 100% rename from arm/Microsoft.DocumentDB/databaseAccounts/readme.md rename to modules/Microsoft.DocumentDB/databaseAccounts/readme.md diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/deploy.bicep b/modules/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/deploy.bicep similarity index 100% rename from arm/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/deploy.bicep rename to modules/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/deploy.bicep diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readme.md b/modules/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readme.md similarity index 100% rename from arm/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readme.md rename to modules/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readme.md diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/version.json b/modules/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/version.json similarity index 100% rename from arm/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/version.json rename to modules/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/version.json diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/deploy.bicep b/modules/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/deploy.bicep similarity index 100% rename from arm/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/deploy.bicep rename to modules/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/deploy.bicep diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/readme.md b/modules/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/readme.md similarity index 100% rename from arm/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/readme.md rename to modules/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/readme.md diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/version.json b/modules/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/version.json similarity index 100% rename from arm/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/version.json rename to modules/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/version.json diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/version.json b/modules/Microsoft.DocumentDB/databaseAccounts/version.json similarity index 100% rename from arm/Microsoft.DocumentDB/databaseAccounts/version.json rename to modules/Microsoft.DocumentDB/databaseAccounts/version.json diff --git a/arm/Microsoft.EventGrid/systemTopics/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.EventGrid/systemTopics/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.EventGrid/systemTopics/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.EventGrid/systemTopics/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.EventGrid/systemTopics/.parameters/min.parameters.json b/modules/Microsoft.EventGrid/systemTopics/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.EventGrid/systemTopics/.parameters/min.parameters.json rename to modules/Microsoft.EventGrid/systemTopics/.parameters/min.parameters.json diff --git a/arm/Microsoft.EventGrid/systemTopics/.parameters/parameters.json b/modules/Microsoft.EventGrid/systemTopics/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.EventGrid/systemTopics/.parameters/parameters.json rename to modules/Microsoft.EventGrid/systemTopics/.parameters/parameters.json diff --git a/arm/Microsoft.EventGrid/systemTopics/deploy.bicep b/modules/Microsoft.EventGrid/systemTopics/deploy.bicep similarity index 100% rename from arm/Microsoft.EventGrid/systemTopics/deploy.bicep rename to modules/Microsoft.EventGrid/systemTopics/deploy.bicep diff --git a/arm/Microsoft.EventGrid/systemTopics/readme.md b/modules/Microsoft.EventGrid/systemTopics/readme.md similarity index 100% rename from arm/Microsoft.EventGrid/systemTopics/readme.md rename to modules/Microsoft.EventGrid/systemTopics/readme.md diff --git a/arm/Microsoft.EventGrid/systemTopics/version.json b/modules/Microsoft.EventGrid/systemTopics/version.json similarity index 100% rename from arm/Microsoft.EventGrid/systemTopics/version.json rename to modules/Microsoft.EventGrid/systemTopics/version.json diff --git a/arm/Microsoft.EventGrid/topics/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.EventGrid/topics/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.EventGrid/topics/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.EventGrid/topics/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.EventGrid/topics/.parameters/parameters.json b/modules/Microsoft.EventGrid/topics/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.EventGrid/topics/.parameters/parameters.json rename to modules/Microsoft.EventGrid/topics/.parameters/parameters.json diff --git a/arm/Microsoft.EventGrid/topics/deploy.bicep b/modules/Microsoft.EventGrid/topics/deploy.bicep similarity index 100% rename from arm/Microsoft.EventGrid/topics/deploy.bicep rename to modules/Microsoft.EventGrid/topics/deploy.bicep diff --git a/arm/Microsoft.EventGrid/topics/readme.md b/modules/Microsoft.EventGrid/topics/readme.md similarity index 100% rename from arm/Microsoft.EventGrid/topics/readme.md rename to modules/Microsoft.EventGrid/topics/readme.md diff --git a/arm/Microsoft.EventGrid/topics/version.json b/modules/Microsoft.EventGrid/topics/version.json similarity index 100% rename from arm/Microsoft.EventGrid/topics/version.json rename to modules/Microsoft.EventGrid/topics/version.json diff --git a/arm/Microsoft.EventHub/namespaces/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.EventHub/namespaces/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.EventHub/namespaces/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.EventHub/namespaces/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.EventHub/namespaces/.parameters/min.parameters.json b/modules/Microsoft.EventHub/namespaces/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.EventHub/namespaces/.parameters/min.parameters.json rename to modules/Microsoft.EventHub/namespaces/.parameters/min.parameters.json diff --git a/arm/Microsoft.EventHub/namespaces/.parameters/parameters.json b/modules/Microsoft.EventHub/namespaces/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.EventHub/namespaces/.parameters/parameters.json rename to modules/Microsoft.EventHub/namespaces/.parameters/parameters.json diff --git a/arm/Microsoft.EventHub/namespaces/authorizationRules/deploy.bicep b/modules/Microsoft.EventHub/namespaces/authorizationRules/deploy.bicep similarity index 100% rename from arm/Microsoft.EventHub/namespaces/authorizationRules/deploy.bicep rename to modules/Microsoft.EventHub/namespaces/authorizationRules/deploy.bicep diff --git a/arm/Microsoft.EventHub/namespaces/authorizationRules/readme.md b/modules/Microsoft.EventHub/namespaces/authorizationRules/readme.md similarity index 100% rename from arm/Microsoft.EventHub/namespaces/authorizationRules/readme.md rename to modules/Microsoft.EventHub/namespaces/authorizationRules/readme.md diff --git a/arm/Microsoft.EventHub/namespaces/authorizationRules/version.json b/modules/Microsoft.EventHub/namespaces/authorizationRules/version.json similarity index 100% rename from arm/Microsoft.EventHub/namespaces/authorizationRules/version.json rename to modules/Microsoft.EventHub/namespaces/authorizationRules/version.json diff --git a/arm/Microsoft.EventHub/namespaces/deploy.bicep b/modules/Microsoft.EventHub/namespaces/deploy.bicep similarity index 100% rename from arm/Microsoft.EventHub/namespaces/deploy.bicep rename to modules/Microsoft.EventHub/namespaces/deploy.bicep diff --git a/arm/Microsoft.EventHub/namespaces/disasterRecoveryConfigs/deploy.bicep b/modules/Microsoft.EventHub/namespaces/disasterRecoveryConfigs/deploy.bicep similarity index 100% rename from arm/Microsoft.EventHub/namespaces/disasterRecoveryConfigs/deploy.bicep rename to modules/Microsoft.EventHub/namespaces/disasterRecoveryConfigs/deploy.bicep diff --git a/arm/Microsoft.EventHub/namespaces/disasterRecoveryConfigs/readme.md b/modules/Microsoft.EventHub/namespaces/disasterRecoveryConfigs/readme.md similarity index 100% rename from arm/Microsoft.EventHub/namespaces/disasterRecoveryConfigs/readme.md rename to modules/Microsoft.EventHub/namespaces/disasterRecoveryConfigs/readme.md diff --git a/arm/Microsoft.EventHub/namespaces/disasterRecoveryConfigs/version.json b/modules/Microsoft.EventHub/namespaces/disasterRecoveryConfigs/version.json similarity index 100% rename from arm/Microsoft.EventHub/namespaces/disasterRecoveryConfigs/version.json rename to modules/Microsoft.EventHub/namespaces/disasterRecoveryConfigs/version.json diff --git a/arm/Microsoft.EventHub/namespaces/eventhubs/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.EventHub/namespaces/eventhubs/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.EventHub/namespaces/eventhubs/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.EventHub/namespaces/eventhubs/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.EventHub/namespaces/eventhubs/authorizationRules/deploy.bicep b/modules/Microsoft.EventHub/namespaces/eventhubs/authorizationRules/deploy.bicep similarity index 100% rename from arm/Microsoft.EventHub/namespaces/eventhubs/authorizationRules/deploy.bicep rename to modules/Microsoft.EventHub/namespaces/eventhubs/authorizationRules/deploy.bicep diff --git a/arm/Microsoft.EventHub/namespaces/eventhubs/authorizationRules/readme.md b/modules/Microsoft.EventHub/namespaces/eventhubs/authorizationRules/readme.md similarity index 100% rename from arm/Microsoft.EventHub/namespaces/eventhubs/authorizationRules/readme.md rename to modules/Microsoft.EventHub/namespaces/eventhubs/authorizationRules/readme.md diff --git a/arm/Microsoft.EventHub/namespaces/eventhubs/authorizationRules/version.json b/modules/Microsoft.EventHub/namespaces/eventhubs/authorizationRules/version.json similarity index 100% rename from arm/Microsoft.EventHub/namespaces/eventhubs/authorizationRules/version.json rename to modules/Microsoft.EventHub/namespaces/eventhubs/authorizationRules/version.json diff --git a/arm/Microsoft.EventHub/namespaces/eventhubs/consumergroups/deploy.bicep b/modules/Microsoft.EventHub/namespaces/eventhubs/consumergroups/deploy.bicep similarity index 100% rename from arm/Microsoft.EventHub/namespaces/eventhubs/consumergroups/deploy.bicep rename to modules/Microsoft.EventHub/namespaces/eventhubs/consumergroups/deploy.bicep diff --git a/arm/Microsoft.EventHub/namespaces/eventhubs/consumergroups/readme.md b/modules/Microsoft.EventHub/namespaces/eventhubs/consumergroups/readme.md similarity index 100% rename from arm/Microsoft.EventHub/namespaces/eventhubs/consumergroups/readme.md rename to modules/Microsoft.EventHub/namespaces/eventhubs/consumergroups/readme.md diff --git a/arm/Microsoft.EventHub/namespaces/eventhubs/consumergroups/version.json b/modules/Microsoft.EventHub/namespaces/eventhubs/consumergroups/version.json similarity index 100% rename from arm/Microsoft.EventHub/namespaces/eventhubs/consumergroups/version.json rename to modules/Microsoft.EventHub/namespaces/eventhubs/consumergroups/version.json diff --git a/arm/Microsoft.EventHub/namespaces/eventhubs/deploy.bicep b/modules/Microsoft.EventHub/namespaces/eventhubs/deploy.bicep similarity index 100% rename from arm/Microsoft.EventHub/namespaces/eventhubs/deploy.bicep rename to modules/Microsoft.EventHub/namespaces/eventhubs/deploy.bicep diff --git a/arm/Microsoft.EventHub/namespaces/eventhubs/readme.md b/modules/Microsoft.EventHub/namespaces/eventhubs/readme.md similarity index 100% rename from arm/Microsoft.EventHub/namespaces/eventhubs/readme.md rename to modules/Microsoft.EventHub/namespaces/eventhubs/readme.md diff --git a/arm/Microsoft.EventHub/namespaces/eventhubs/version.json b/modules/Microsoft.EventHub/namespaces/eventhubs/version.json similarity index 100% rename from arm/Microsoft.EventHub/namespaces/eventhubs/version.json rename to modules/Microsoft.EventHub/namespaces/eventhubs/version.json diff --git a/arm/Microsoft.EventHub/namespaces/networkRuleSets/deploy.bicep b/modules/Microsoft.EventHub/namespaces/networkRuleSets/deploy.bicep similarity index 100% rename from arm/Microsoft.EventHub/namespaces/networkRuleSets/deploy.bicep rename to modules/Microsoft.EventHub/namespaces/networkRuleSets/deploy.bicep diff --git a/arm/Microsoft.EventHub/namespaces/networkRuleSets/readme.md b/modules/Microsoft.EventHub/namespaces/networkRuleSets/readme.md similarity index 100% rename from arm/Microsoft.EventHub/namespaces/networkRuleSets/readme.md rename to modules/Microsoft.EventHub/namespaces/networkRuleSets/readme.md diff --git a/arm/Microsoft.EventHub/namespaces/networkRuleSets/version.json b/modules/Microsoft.EventHub/namespaces/networkRuleSets/version.json similarity index 100% rename from arm/Microsoft.EventHub/namespaces/networkRuleSets/version.json rename to modules/Microsoft.EventHub/namespaces/networkRuleSets/version.json diff --git a/arm/Microsoft.EventHub/namespaces/readme.md b/modules/Microsoft.EventHub/namespaces/readme.md similarity index 100% rename from arm/Microsoft.EventHub/namespaces/readme.md rename to modules/Microsoft.EventHub/namespaces/readme.md diff --git a/arm/Microsoft.EventHub/namespaces/version.json b/modules/Microsoft.EventHub/namespaces/version.json similarity index 100% rename from arm/Microsoft.EventHub/namespaces/version.json rename to modules/Microsoft.EventHub/namespaces/version.json diff --git a/arm/Microsoft.HealthBot/healthBots/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.HealthBot/healthBots/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.HealthBot/healthBots/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.HealthBot/healthBots/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.HealthBot/healthBots/.parameters/parameters.json b/modules/Microsoft.HealthBot/healthBots/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.HealthBot/healthBots/.parameters/parameters.json rename to modules/Microsoft.HealthBot/healthBots/.parameters/parameters.json diff --git a/arm/Microsoft.HealthBot/healthBots/deploy.bicep b/modules/Microsoft.HealthBot/healthBots/deploy.bicep similarity index 100% rename from arm/Microsoft.HealthBot/healthBots/deploy.bicep rename to modules/Microsoft.HealthBot/healthBots/deploy.bicep diff --git a/arm/Microsoft.HealthBot/healthBots/readme.md b/modules/Microsoft.HealthBot/healthBots/readme.md similarity index 100% rename from arm/Microsoft.HealthBot/healthBots/readme.md rename to modules/Microsoft.HealthBot/healthBots/readme.md diff --git a/arm/Microsoft.HealthBot/healthBots/version.json b/modules/Microsoft.HealthBot/healthBots/version.json similarity index 100% rename from arm/Microsoft.HealthBot/healthBots/version.json rename to modules/Microsoft.HealthBot/healthBots/version.json diff --git a/arm/Microsoft.Insights/actionGroups/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Insights/actionGroups/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Insights/actionGroups/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Insights/actionGroups/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Insights/actionGroups/.parameters/parameters.json b/modules/Microsoft.Insights/actionGroups/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Insights/actionGroups/.parameters/parameters.json rename to modules/Microsoft.Insights/actionGroups/.parameters/parameters.json diff --git a/arm/Microsoft.Insights/actionGroups/deploy.bicep b/modules/Microsoft.Insights/actionGroups/deploy.bicep similarity index 100% rename from arm/Microsoft.Insights/actionGroups/deploy.bicep rename to modules/Microsoft.Insights/actionGroups/deploy.bicep diff --git a/arm/Microsoft.Insights/actionGroups/readme.md b/modules/Microsoft.Insights/actionGroups/readme.md similarity index 100% rename from arm/Microsoft.Insights/actionGroups/readme.md rename to modules/Microsoft.Insights/actionGroups/readme.md diff --git a/arm/Microsoft.Insights/actionGroups/version.json b/modules/Microsoft.Insights/actionGroups/version.json similarity index 100% rename from arm/Microsoft.Insights/actionGroups/version.json rename to modules/Microsoft.Insights/actionGroups/version.json diff --git a/arm/Microsoft.Insights/activityLogAlerts/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Insights/activityLogAlerts/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Insights/activityLogAlerts/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Insights/activityLogAlerts/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Insights/activityLogAlerts/.parameters/parameters.json b/modules/Microsoft.Insights/activityLogAlerts/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Insights/activityLogAlerts/.parameters/parameters.json rename to modules/Microsoft.Insights/activityLogAlerts/.parameters/parameters.json diff --git a/arm/Microsoft.Insights/activityLogAlerts/deploy.bicep b/modules/Microsoft.Insights/activityLogAlerts/deploy.bicep similarity index 100% rename from arm/Microsoft.Insights/activityLogAlerts/deploy.bicep rename to modules/Microsoft.Insights/activityLogAlerts/deploy.bicep diff --git a/arm/Microsoft.Insights/activityLogAlerts/readme.md b/modules/Microsoft.Insights/activityLogAlerts/readme.md similarity index 100% rename from arm/Microsoft.Insights/activityLogAlerts/readme.md rename to modules/Microsoft.Insights/activityLogAlerts/readme.md diff --git a/arm/Microsoft.Insights/activityLogAlerts/version.json b/modules/Microsoft.Insights/activityLogAlerts/version.json similarity index 100% rename from arm/Microsoft.Insights/activityLogAlerts/version.json rename to modules/Microsoft.Insights/activityLogAlerts/version.json diff --git a/arm/Microsoft.Insights/components/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Insights/components/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Insights/components/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Insights/components/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Insights/components/.parameters/parameters.json b/modules/Microsoft.Insights/components/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Insights/components/.parameters/parameters.json rename to modules/Microsoft.Insights/components/.parameters/parameters.json diff --git a/arm/Microsoft.Insights/components/deploy.bicep b/modules/Microsoft.Insights/components/deploy.bicep similarity index 100% rename from arm/Microsoft.Insights/components/deploy.bicep rename to modules/Microsoft.Insights/components/deploy.bicep diff --git a/arm/Microsoft.Insights/components/readme.md b/modules/Microsoft.Insights/components/readme.md similarity index 100% rename from arm/Microsoft.Insights/components/readme.md rename to modules/Microsoft.Insights/components/readme.md diff --git a/arm/Microsoft.Insights/components/version.json b/modules/Microsoft.Insights/components/version.json similarity index 100% rename from arm/Microsoft.Insights/components/version.json rename to modules/Microsoft.Insights/components/version.json diff --git a/arm/Microsoft.Insights/diagnosticSettings/.parameters/parameters.json b/modules/Microsoft.Insights/diagnosticSettings/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Insights/diagnosticSettings/.parameters/parameters.json rename to modules/Microsoft.Insights/diagnosticSettings/.parameters/parameters.json diff --git a/arm/Microsoft.Insights/diagnosticSettings/deploy.bicep b/modules/Microsoft.Insights/diagnosticSettings/deploy.bicep similarity index 100% rename from arm/Microsoft.Insights/diagnosticSettings/deploy.bicep rename to modules/Microsoft.Insights/diagnosticSettings/deploy.bicep diff --git a/arm/Microsoft.Insights/diagnosticSettings/readme.md b/modules/Microsoft.Insights/diagnosticSettings/readme.md similarity index 100% rename from arm/Microsoft.Insights/diagnosticSettings/readme.md rename to modules/Microsoft.Insights/diagnosticSettings/readme.md diff --git a/arm/Microsoft.Insights/diagnosticSettings/version.json b/modules/Microsoft.Insights/diagnosticSettings/version.json similarity index 100% rename from arm/Microsoft.Insights/diagnosticSettings/version.json rename to modules/Microsoft.Insights/diagnosticSettings/version.json diff --git a/arm/Microsoft.Insights/metricAlerts/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Insights/metricAlerts/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Insights/metricAlerts/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Insights/metricAlerts/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Insights/metricAlerts/.parameters/parameters.json b/modules/Microsoft.Insights/metricAlerts/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Insights/metricAlerts/.parameters/parameters.json rename to modules/Microsoft.Insights/metricAlerts/.parameters/parameters.json diff --git a/arm/Microsoft.Insights/metricAlerts/deploy.bicep b/modules/Microsoft.Insights/metricAlerts/deploy.bicep similarity index 100% rename from arm/Microsoft.Insights/metricAlerts/deploy.bicep rename to modules/Microsoft.Insights/metricAlerts/deploy.bicep diff --git a/arm/Microsoft.Insights/metricAlerts/readme.md b/modules/Microsoft.Insights/metricAlerts/readme.md similarity index 100% rename from arm/Microsoft.Insights/metricAlerts/readme.md rename to modules/Microsoft.Insights/metricAlerts/readme.md diff --git a/arm/Microsoft.Insights/metricAlerts/version.json b/modules/Microsoft.Insights/metricAlerts/version.json similarity index 100% rename from arm/Microsoft.Insights/metricAlerts/version.json rename to modules/Microsoft.Insights/metricAlerts/version.json diff --git a/arm/Microsoft.Insights/privateLinkScopes/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Insights/privateLinkScopes/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Insights/privateLinkScopes/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Insights/privateLinkScopes/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Insights/privateLinkScopes/.parameters/parameters.json b/modules/Microsoft.Insights/privateLinkScopes/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Insights/privateLinkScopes/.parameters/parameters.json rename to modules/Microsoft.Insights/privateLinkScopes/.parameters/parameters.json diff --git a/arm/Microsoft.Insights/privateLinkScopes/deploy.bicep b/modules/Microsoft.Insights/privateLinkScopes/deploy.bicep similarity index 100% rename from arm/Microsoft.Insights/privateLinkScopes/deploy.bicep rename to modules/Microsoft.Insights/privateLinkScopes/deploy.bicep diff --git a/arm/Microsoft.Insights/privateLinkScopes/readme.md b/modules/Microsoft.Insights/privateLinkScopes/readme.md similarity index 100% rename from arm/Microsoft.Insights/privateLinkScopes/readme.md rename to modules/Microsoft.Insights/privateLinkScopes/readme.md diff --git a/arm/Microsoft.Insights/privateLinkScopes/scopedResources/deploy.bicep b/modules/Microsoft.Insights/privateLinkScopes/scopedResources/deploy.bicep similarity index 100% rename from arm/Microsoft.Insights/privateLinkScopes/scopedResources/deploy.bicep rename to modules/Microsoft.Insights/privateLinkScopes/scopedResources/deploy.bicep diff --git a/arm/Microsoft.Insights/privateLinkScopes/scopedResources/readme.md b/modules/Microsoft.Insights/privateLinkScopes/scopedResources/readme.md similarity index 100% rename from arm/Microsoft.Insights/privateLinkScopes/scopedResources/readme.md rename to modules/Microsoft.Insights/privateLinkScopes/scopedResources/readme.md diff --git a/arm/Microsoft.Insights/privateLinkScopes/scopedResources/version.json b/modules/Microsoft.Insights/privateLinkScopes/scopedResources/version.json similarity index 100% rename from arm/Microsoft.Insights/privateLinkScopes/scopedResources/version.json rename to modules/Microsoft.Insights/privateLinkScopes/scopedResources/version.json diff --git a/arm/Microsoft.Insights/privateLinkScopes/version.json b/modules/Microsoft.Insights/privateLinkScopes/version.json similarity index 100% rename from arm/Microsoft.Insights/privateLinkScopes/version.json rename to modules/Microsoft.Insights/privateLinkScopes/version.json diff --git a/arm/Microsoft.Insights/scheduledQueryRules/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Insights/scheduledQueryRules/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Insights/scheduledQueryRules/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Insights/scheduledQueryRules/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Insights/scheduledQueryRules/.parameters/parameters.json b/modules/Microsoft.Insights/scheduledQueryRules/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Insights/scheduledQueryRules/.parameters/parameters.json rename to modules/Microsoft.Insights/scheduledQueryRules/.parameters/parameters.json diff --git a/arm/Microsoft.Insights/scheduledQueryRules/deploy.bicep b/modules/Microsoft.Insights/scheduledQueryRules/deploy.bicep similarity index 100% rename from arm/Microsoft.Insights/scheduledQueryRules/deploy.bicep rename to modules/Microsoft.Insights/scheduledQueryRules/deploy.bicep diff --git a/arm/Microsoft.Insights/scheduledQueryRules/readme.md b/modules/Microsoft.Insights/scheduledQueryRules/readme.md similarity index 100% rename from arm/Microsoft.Insights/scheduledQueryRules/readme.md rename to modules/Microsoft.Insights/scheduledQueryRules/readme.md diff --git a/arm/Microsoft.Insights/scheduledQueryRules/version.json b/modules/Microsoft.Insights/scheduledQueryRules/version.json similarity index 100% rename from arm/Microsoft.Insights/scheduledQueryRules/version.json rename to modules/Microsoft.Insights/scheduledQueryRules/version.json diff --git a/arm/Microsoft.KeyVault/vaults/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.KeyVault/vaults/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.KeyVault/vaults/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.KeyVault/vaults/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.KeyVault/vaults/.parameters/min.parameters.json b/modules/Microsoft.KeyVault/vaults/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.KeyVault/vaults/.parameters/min.parameters.json rename to modules/Microsoft.KeyVault/vaults/.parameters/min.parameters.json diff --git a/arm/Microsoft.KeyVault/vaults/.parameters/parameters.json b/modules/Microsoft.KeyVault/vaults/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.KeyVault/vaults/.parameters/parameters.json rename to modules/Microsoft.KeyVault/vaults/.parameters/parameters.json diff --git a/arm/Microsoft.KeyVault/vaults/accessPolicies/deploy.bicep b/modules/Microsoft.KeyVault/vaults/accessPolicies/deploy.bicep similarity index 100% rename from arm/Microsoft.KeyVault/vaults/accessPolicies/deploy.bicep rename to modules/Microsoft.KeyVault/vaults/accessPolicies/deploy.bicep diff --git a/arm/Microsoft.KeyVault/vaults/accessPolicies/readme.md b/modules/Microsoft.KeyVault/vaults/accessPolicies/readme.md similarity index 100% rename from arm/Microsoft.KeyVault/vaults/accessPolicies/readme.md rename to modules/Microsoft.KeyVault/vaults/accessPolicies/readme.md diff --git a/arm/Microsoft.KeyVault/vaults/accessPolicies/version.json b/modules/Microsoft.KeyVault/vaults/accessPolicies/version.json similarity index 100% rename from arm/Microsoft.KeyVault/vaults/accessPolicies/version.json rename to modules/Microsoft.KeyVault/vaults/accessPolicies/version.json diff --git a/arm/Microsoft.KeyVault/vaults/deploy.bicep b/modules/Microsoft.KeyVault/vaults/deploy.bicep similarity index 100% rename from arm/Microsoft.KeyVault/vaults/deploy.bicep rename to modules/Microsoft.KeyVault/vaults/deploy.bicep diff --git a/arm/Microsoft.KeyVault/vaults/keys/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.KeyVault/vaults/keys/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.KeyVault/vaults/keys/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.KeyVault/vaults/keys/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.KeyVault/vaults/keys/deploy.bicep b/modules/Microsoft.KeyVault/vaults/keys/deploy.bicep similarity index 100% rename from arm/Microsoft.KeyVault/vaults/keys/deploy.bicep rename to modules/Microsoft.KeyVault/vaults/keys/deploy.bicep diff --git a/arm/Microsoft.KeyVault/vaults/keys/readme.md b/modules/Microsoft.KeyVault/vaults/keys/readme.md similarity index 100% rename from arm/Microsoft.KeyVault/vaults/keys/readme.md rename to modules/Microsoft.KeyVault/vaults/keys/readme.md diff --git a/arm/Microsoft.KeyVault/vaults/keys/version.json b/modules/Microsoft.KeyVault/vaults/keys/version.json similarity index 100% rename from arm/Microsoft.KeyVault/vaults/keys/version.json rename to modules/Microsoft.KeyVault/vaults/keys/version.json diff --git a/arm/Microsoft.KeyVault/vaults/readme.md b/modules/Microsoft.KeyVault/vaults/readme.md similarity index 100% rename from arm/Microsoft.KeyVault/vaults/readme.md rename to modules/Microsoft.KeyVault/vaults/readme.md diff --git a/arm/Microsoft.KeyVault/vaults/secrets/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.KeyVault/vaults/secrets/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.KeyVault/vaults/secrets/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.KeyVault/vaults/secrets/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.KeyVault/vaults/secrets/deploy.bicep b/modules/Microsoft.KeyVault/vaults/secrets/deploy.bicep similarity index 100% rename from arm/Microsoft.KeyVault/vaults/secrets/deploy.bicep rename to modules/Microsoft.KeyVault/vaults/secrets/deploy.bicep diff --git a/arm/Microsoft.KeyVault/vaults/secrets/readme.md b/modules/Microsoft.KeyVault/vaults/secrets/readme.md similarity index 100% rename from arm/Microsoft.KeyVault/vaults/secrets/readme.md rename to modules/Microsoft.KeyVault/vaults/secrets/readme.md diff --git a/arm/Microsoft.KeyVault/vaults/secrets/version.json b/modules/Microsoft.KeyVault/vaults/secrets/version.json similarity index 100% rename from arm/Microsoft.KeyVault/vaults/secrets/version.json rename to modules/Microsoft.KeyVault/vaults/secrets/version.json diff --git a/arm/Microsoft.KeyVault/vaults/version.json b/modules/Microsoft.KeyVault/vaults/version.json similarity index 100% rename from arm/Microsoft.KeyVault/vaults/version.json rename to modules/Microsoft.KeyVault/vaults/version.json diff --git a/arm/Microsoft.KubernetesConfiguration/extensions/.parameters/min.parameters.json b/modules/Microsoft.KubernetesConfiguration/extensions/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.KubernetesConfiguration/extensions/.parameters/min.parameters.json rename to modules/Microsoft.KubernetesConfiguration/extensions/.parameters/min.parameters.json diff --git a/arm/Microsoft.KubernetesConfiguration/extensions/.parameters/parameters.json b/modules/Microsoft.KubernetesConfiguration/extensions/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.KubernetesConfiguration/extensions/.parameters/parameters.json rename to modules/Microsoft.KubernetesConfiguration/extensions/.parameters/parameters.json diff --git a/arm/Microsoft.KubernetesConfiguration/extensions/deploy.bicep b/modules/Microsoft.KubernetesConfiguration/extensions/deploy.bicep similarity index 100% rename from arm/Microsoft.KubernetesConfiguration/extensions/deploy.bicep rename to modules/Microsoft.KubernetesConfiguration/extensions/deploy.bicep diff --git a/arm/Microsoft.KubernetesConfiguration/extensions/readme.md b/modules/Microsoft.KubernetesConfiguration/extensions/readme.md similarity index 100% rename from arm/Microsoft.KubernetesConfiguration/extensions/readme.md rename to modules/Microsoft.KubernetesConfiguration/extensions/readme.md diff --git a/arm/Microsoft.KubernetesConfiguration/extensions/version.json b/modules/Microsoft.KubernetesConfiguration/extensions/version.json similarity index 100% rename from arm/Microsoft.KubernetesConfiguration/extensions/version.json rename to modules/Microsoft.KubernetesConfiguration/extensions/version.json diff --git a/arm/Microsoft.KubernetesConfiguration/fluxConfigurations/.parameters/min.parameters.json b/modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.KubernetesConfiguration/fluxConfigurations/.parameters/min.parameters.json rename to modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.parameters/min.parameters.json diff --git a/arm/Microsoft.KubernetesConfiguration/fluxConfigurations/.parameters/parameters.json b/modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.KubernetesConfiguration/fluxConfigurations/.parameters/parameters.json rename to modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.parameters/parameters.json diff --git a/arm/Microsoft.KubernetesConfiguration/fluxConfigurations/deploy.bicep b/modules/Microsoft.KubernetesConfiguration/fluxConfigurations/deploy.bicep similarity index 100% rename from arm/Microsoft.KubernetesConfiguration/fluxConfigurations/deploy.bicep rename to modules/Microsoft.KubernetesConfiguration/fluxConfigurations/deploy.bicep diff --git a/arm/Microsoft.KubernetesConfiguration/fluxConfigurations/readme.md b/modules/Microsoft.KubernetesConfiguration/fluxConfigurations/readme.md similarity index 100% rename from arm/Microsoft.KubernetesConfiguration/fluxConfigurations/readme.md rename to modules/Microsoft.KubernetesConfiguration/fluxConfigurations/readme.md diff --git a/arm/Microsoft.KubernetesConfiguration/fluxConfigurations/version.json b/modules/Microsoft.KubernetesConfiguration/fluxConfigurations/version.json similarity index 100% rename from arm/Microsoft.KubernetesConfiguration/fluxConfigurations/version.json rename to modules/Microsoft.KubernetesConfiguration/fluxConfigurations/version.json diff --git a/arm/Microsoft.Logic/workflows/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Logic/workflows/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Logic/workflows/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Logic/workflows/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Logic/workflows/.parameters/parameters.json b/modules/Microsoft.Logic/workflows/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Logic/workflows/.parameters/parameters.json rename to modules/Microsoft.Logic/workflows/.parameters/parameters.json diff --git a/arm/Microsoft.Logic/workflows/deploy.bicep b/modules/Microsoft.Logic/workflows/deploy.bicep similarity index 100% rename from arm/Microsoft.Logic/workflows/deploy.bicep rename to modules/Microsoft.Logic/workflows/deploy.bicep diff --git a/arm/Microsoft.Logic/workflows/readme.md b/modules/Microsoft.Logic/workflows/readme.md similarity index 100% rename from arm/Microsoft.Logic/workflows/readme.md rename to modules/Microsoft.Logic/workflows/readme.md diff --git a/arm/Microsoft.Logic/workflows/version.json b/modules/Microsoft.Logic/workflows/version.json similarity index 100% rename from arm/Microsoft.Logic/workflows/version.json rename to modules/Microsoft.Logic/workflows/version.json diff --git a/arm/Microsoft.MachineLearningServices/workspaces/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.MachineLearningServices/workspaces/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.MachineLearningServices/workspaces/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.MachineLearningServices/workspaces/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.MachineLearningServices/workspaces/.parameters/min.parameters.json b/modules/Microsoft.MachineLearningServices/workspaces/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.MachineLearningServices/workspaces/.parameters/min.parameters.json rename to modules/Microsoft.MachineLearningServices/workspaces/.parameters/min.parameters.json diff --git a/arm/Microsoft.MachineLearningServices/workspaces/.parameters/parameters.json b/modules/Microsoft.MachineLearningServices/workspaces/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.MachineLearningServices/workspaces/.parameters/parameters.json rename to modules/Microsoft.MachineLearningServices/workspaces/.parameters/parameters.json diff --git a/arm/Microsoft.MachineLearningServices/workspaces/computes/deploy.bicep b/modules/Microsoft.MachineLearningServices/workspaces/computes/deploy.bicep similarity index 100% rename from arm/Microsoft.MachineLearningServices/workspaces/computes/deploy.bicep rename to modules/Microsoft.MachineLearningServices/workspaces/computes/deploy.bicep diff --git a/arm/Microsoft.MachineLearningServices/workspaces/computes/readme.md b/modules/Microsoft.MachineLearningServices/workspaces/computes/readme.md similarity index 100% rename from arm/Microsoft.MachineLearningServices/workspaces/computes/readme.md rename to modules/Microsoft.MachineLearningServices/workspaces/computes/readme.md diff --git a/arm/Microsoft.MachineLearningServices/workspaces/computes/version.json b/modules/Microsoft.MachineLearningServices/workspaces/computes/version.json similarity index 100% rename from arm/Microsoft.MachineLearningServices/workspaces/computes/version.json rename to modules/Microsoft.MachineLearningServices/workspaces/computes/version.json diff --git a/arm/Microsoft.MachineLearningServices/workspaces/deploy.bicep b/modules/Microsoft.MachineLearningServices/workspaces/deploy.bicep similarity index 100% rename from arm/Microsoft.MachineLearningServices/workspaces/deploy.bicep rename to modules/Microsoft.MachineLearningServices/workspaces/deploy.bicep diff --git a/arm/Microsoft.MachineLearningServices/workspaces/readme.md b/modules/Microsoft.MachineLearningServices/workspaces/readme.md similarity index 100% rename from arm/Microsoft.MachineLearningServices/workspaces/readme.md rename to modules/Microsoft.MachineLearningServices/workspaces/readme.md diff --git a/arm/Microsoft.MachineLearningServices/workspaces/version.json b/modules/Microsoft.MachineLearningServices/workspaces/version.json similarity index 100% rename from arm/Microsoft.MachineLearningServices/workspaces/version.json rename to modules/Microsoft.MachineLearningServices/workspaces/version.json diff --git a/arm/Microsoft.ManagedIdentity/userAssignedIdentities/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.ManagedIdentity/userAssignedIdentities/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.ManagedIdentity/userAssignedIdentities/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.ManagedIdentity/userAssignedIdentities/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.ManagedIdentity/userAssignedIdentities/.parameters/parameters.json b/modules/Microsoft.ManagedIdentity/userAssignedIdentities/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.ManagedIdentity/userAssignedIdentities/.parameters/parameters.json rename to modules/Microsoft.ManagedIdentity/userAssignedIdentities/.parameters/parameters.json diff --git a/arm/Microsoft.ManagedIdentity/userAssignedIdentities/deploy.bicep b/modules/Microsoft.ManagedIdentity/userAssignedIdentities/deploy.bicep similarity index 100% rename from arm/Microsoft.ManagedIdentity/userAssignedIdentities/deploy.bicep rename to modules/Microsoft.ManagedIdentity/userAssignedIdentities/deploy.bicep diff --git a/arm/Microsoft.ManagedIdentity/userAssignedIdentities/readme.md b/modules/Microsoft.ManagedIdentity/userAssignedIdentities/readme.md similarity index 100% rename from arm/Microsoft.ManagedIdentity/userAssignedIdentities/readme.md rename to modules/Microsoft.ManagedIdentity/userAssignedIdentities/readme.md diff --git a/arm/Microsoft.ManagedIdentity/userAssignedIdentities/version.json b/modules/Microsoft.ManagedIdentity/userAssignedIdentities/version.json similarity index 100% rename from arm/Microsoft.ManagedIdentity/userAssignedIdentities/version.json rename to modules/Microsoft.ManagedIdentity/userAssignedIdentities/version.json diff --git a/arm/Microsoft.ManagedServices/registrationDefinitions/.bicep/nested_registrationAssignment.bicep b/modules/Microsoft.ManagedServices/registrationDefinitions/.bicep/nested_registrationAssignment.bicep similarity index 100% rename from arm/Microsoft.ManagedServices/registrationDefinitions/.bicep/nested_registrationAssignment.bicep rename to modules/Microsoft.ManagedServices/registrationDefinitions/.bicep/nested_registrationAssignment.bicep diff --git a/arm/Microsoft.ManagedServices/registrationDefinitions/.parameters/parameters.json b/modules/Microsoft.ManagedServices/registrationDefinitions/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.ManagedServices/registrationDefinitions/.parameters/parameters.json rename to modules/Microsoft.ManagedServices/registrationDefinitions/.parameters/parameters.json diff --git a/arm/Microsoft.ManagedServices/registrationDefinitions/.parameters/rg.parameters.json b/modules/Microsoft.ManagedServices/registrationDefinitions/.parameters/rg.parameters.json similarity index 100% rename from arm/Microsoft.ManagedServices/registrationDefinitions/.parameters/rg.parameters.json rename to modules/Microsoft.ManagedServices/registrationDefinitions/.parameters/rg.parameters.json diff --git a/arm/Microsoft.ManagedServices/registrationDefinitions/deploy.bicep b/modules/Microsoft.ManagedServices/registrationDefinitions/deploy.bicep similarity index 100% rename from arm/Microsoft.ManagedServices/registrationDefinitions/deploy.bicep rename to modules/Microsoft.ManagedServices/registrationDefinitions/deploy.bicep diff --git a/arm/Microsoft.ManagedServices/registrationDefinitions/readme.md b/modules/Microsoft.ManagedServices/registrationDefinitions/readme.md similarity index 100% rename from arm/Microsoft.ManagedServices/registrationDefinitions/readme.md rename to modules/Microsoft.ManagedServices/registrationDefinitions/readme.md diff --git a/arm/Microsoft.ManagedServices/registrationDefinitions/version.json b/modules/Microsoft.ManagedServices/registrationDefinitions/version.json similarity index 100% rename from arm/Microsoft.ManagedServices/registrationDefinitions/version.json rename to modules/Microsoft.ManagedServices/registrationDefinitions/version.json diff --git a/arm/Microsoft.Management/managementGroups/.parameters/parameters.json b/modules/Microsoft.Management/managementGroups/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Management/managementGroups/.parameters/parameters.json rename to modules/Microsoft.Management/managementGroups/.parameters/parameters.json diff --git a/arm/Microsoft.Management/managementGroups/deploy.bicep b/modules/Microsoft.Management/managementGroups/deploy.bicep similarity index 100% rename from arm/Microsoft.Management/managementGroups/deploy.bicep rename to modules/Microsoft.Management/managementGroups/deploy.bicep diff --git a/arm/Microsoft.Management/managementGroups/readme.md b/modules/Microsoft.Management/managementGroups/readme.md similarity index 100% rename from arm/Microsoft.Management/managementGroups/readme.md rename to modules/Microsoft.Management/managementGroups/readme.md diff --git a/arm/Microsoft.Management/managementGroups/version.json b/modules/Microsoft.Management/managementGroups/version.json similarity index 100% rename from arm/Microsoft.Management/managementGroups/version.json rename to modules/Microsoft.Management/managementGroups/version.json diff --git a/arm/Microsoft.NetApp/netAppAccounts/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.NetApp/netAppAccounts/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.NetApp/netAppAccounts/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.NetApp/netAppAccounts/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.NetApp/netAppAccounts/.parameters/min.parameters.json b/modules/Microsoft.NetApp/netAppAccounts/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.NetApp/netAppAccounts/.parameters/min.parameters.json rename to modules/Microsoft.NetApp/netAppAccounts/.parameters/min.parameters.json diff --git a/arm/Microsoft.NetApp/netAppAccounts/.parameters/nfs3.parameters.json b/modules/Microsoft.NetApp/netAppAccounts/.parameters/nfs3.parameters.json similarity index 100% rename from arm/Microsoft.NetApp/netAppAccounts/.parameters/nfs3.parameters.json rename to modules/Microsoft.NetApp/netAppAccounts/.parameters/nfs3.parameters.json diff --git a/arm/Microsoft.NetApp/netAppAccounts/.parameters/nfs41.parameters.json b/modules/Microsoft.NetApp/netAppAccounts/.parameters/nfs41.parameters.json similarity index 100% rename from arm/Microsoft.NetApp/netAppAccounts/.parameters/nfs41.parameters.json rename to modules/Microsoft.NetApp/netAppAccounts/.parameters/nfs41.parameters.json diff --git a/arm/Microsoft.NetApp/netAppAccounts/capacityPools/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.NetApp/netAppAccounts/capacityPools/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.NetApp/netAppAccounts/capacityPools/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.NetApp/netAppAccounts/capacityPools/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.NetApp/netAppAccounts/capacityPools/deploy.bicep b/modules/Microsoft.NetApp/netAppAccounts/capacityPools/deploy.bicep similarity index 100% rename from arm/Microsoft.NetApp/netAppAccounts/capacityPools/deploy.bicep rename to modules/Microsoft.NetApp/netAppAccounts/capacityPools/deploy.bicep diff --git a/arm/Microsoft.NetApp/netAppAccounts/capacityPools/readme.md b/modules/Microsoft.NetApp/netAppAccounts/capacityPools/readme.md similarity index 100% rename from arm/Microsoft.NetApp/netAppAccounts/capacityPools/readme.md rename to modules/Microsoft.NetApp/netAppAccounts/capacityPools/readme.md diff --git a/arm/Microsoft.NetApp/netAppAccounts/capacityPools/version.json b/modules/Microsoft.NetApp/netAppAccounts/capacityPools/version.json similarity index 100% rename from arm/Microsoft.NetApp/netAppAccounts/capacityPools/version.json rename to modules/Microsoft.NetApp/netAppAccounts/capacityPools/version.json diff --git a/arm/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/deploy.bicep b/modules/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/deploy.bicep similarity index 100% rename from arm/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/deploy.bicep rename to modules/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/deploy.bicep diff --git a/arm/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/readme.md b/modules/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/readme.md similarity index 100% rename from arm/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/readme.md rename to modules/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/readme.md diff --git a/arm/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/version.json b/modules/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/version.json similarity index 100% rename from arm/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/version.json rename to modules/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/version.json diff --git a/arm/Microsoft.NetApp/netAppAccounts/deploy.bicep b/modules/Microsoft.NetApp/netAppAccounts/deploy.bicep similarity index 100% rename from arm/Microsoft.NetApp/netAppAccounts/deploy.bicep rename to modules/Microsoft.NetApp/netAppAccounts/deploy.bicep diff --git a/arm/Microsoft.NetApp/netAppAccounts/readme.md b/modules/Microsoft.NetApp/netAppAccounts/readme.md similarity index 100% rename from arm/Microsoft.NetApp/netAppAccounts/readme.md rename to modules/Microsoft.NetApp/netAppAccounts/readme.md diff --git a/arm/Microsoft.NetApp/netAppAccounts/version.json b/modules/Microsoft.NetApp/netAppAccounts/version.json similarity index 100% rename from arm/Microsoft.NetApp/netAppAccounts/version.json rename to modules/Microsoft.NetApp/netAppAccounts/version.json diff --git a/arm/Microsoft.Network/applicationGateways/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/applicationGateways/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/applicationGateways/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/applicationGateways/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/applicationGateways/.parameters/parameters.json b/modules/Microsoft.Network/applicationGateways/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/applicationGateways/.parameters/parameters.json rename to modules/Microsoft.Network/applicationGateways/.parameters/parameters.json diff --git a/arm/Microsoft.Network/applicationGateways/deploy.bicep b/modules/Microsoft.Network/applicationGateways/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/applicationGateways/deploy.bicep rename to modules/Microsoft.Network/applicationGateways/deploy.bicep diff --git a/arm/Microsoft.Network/applicationGateways/readme.md b/modules/Microsoft.Network/applicationGateways/readme.md similarity index 100% rename from arm/Microsoft.Network/applicationGateways/readme.md rename to modules/Microsoft.Network/applicationGateways/readme.md diff --git a/arm/Microsoft.Network/applicationGateways/version.json b/modules/Microsoft.Network/applicationGateways/version.json similarity index 100% rename from arm/Microsoft.Network/applicationGateways/version.json rename to modules/Microsoft.Network/applicationGateways/version.json diff --git a/arm/Microsoft.Network/applicationSecurityGroups/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/applicationSecurityGroups/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/applicationSecurityGroups/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/applicationSecurityGroups/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/applicationSecurityGroups/.parameters/parameters.json b/modules/Microsoft.Network/applicationSecurityGroups/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/applicationSecurityGroups/.parameters/parameters.json rename to modules/Microsoft.Network/applicationSecurityGroups/.parameters/parameters.json diff --git a/arm/Microsoft.Network/applicationSecurityGroups/deploy.bicep b/modules/Microsoft.Network/applicationSecurityGroups/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/applicationSecurityGroups/deploy.bicep rename to modules/Microsoft.Network/applicationSecurityGroups/deploy.bicep diff --git a/arm/Microsoft.Network/applicationSecurityGroups/readme.md b/modules/Microsoft.Network/applicationSecurityGroups/readme.md similarity index 100% rename from arm/Microsoft.Network/applicationSecurityGroups/readme.md rename to modules/Microsoft.Network/applicationSecurityGroups/readme.md diff --git a/arm/Microsoft.Network/applicationSecurityGroups/version.json b/modules/Microsoft.Network/applicationSecurityGroups/version.json similarity index 100% rename from arm/Microsoft.Network/applicationSecurityGroups/version.json rename to modules/Microsoft.Network/applicationSecurityGroups/version.json diff --git a/arm/Microsoft.Network/azureFirewalls/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/azureFirewalls/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/azureFirewalls/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/azureFirewalls/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/azureFirewalls/.parameters/addpip.parameters.json b/modules/Microsoft.Network/azureFirewalls/.parameters/addpip.parameters.json similarity index 100% rename from arm/Microsoft.Network/azureFirewalls/.parameters/addpip.parameters.json rename to modules/Microsoft.Network/azureFirewalls/.parameters/addpip.parameters.json diff --git a/arm/Microsoft.Network/azureFirewalls/.parameters/custompip.parameters.json b/modules/Microsoft.Network/azureFirewalls/.parameters/custompip.parameters.json similarity index 100% rename from arm/Microsoft.Network/azureFirewalls/.parameters/custompip.parameters.json rename to modules/Microsoft.Network/azureFirewalls/.parameters/custompip.parameters.json diff --git a/arm/Microsoft.Network/azureFirewalls/.parameters/min.parameters.json b/modules/Microsoft.Network/azureFirewalls/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.Network/azureFirewalls/.parameters/min.parameters.json rename to modules/Microsoft.Network/azureFirewalls/.parameters/min.parameters.json diff --git a/arm/Microsoft.Network/azureFirewalls/.parameters/parameters.json b/modules/Microsoft.Network/azureFirewalls/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/azureFirewalls/.parameters/parameters.json rename to modules/Microsoft.Network/azureFirewalls/.parameters/parameters.json diff --git a/arm/Microsoft.Network/azureFirewalls/deploy.bicep b/modules/Microsoft.Network/azureFirewalls/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/azureFirewalls/deploy.bicep rename to modules/Microsoft.Network/azureFirewalls/deploy.bicep diff --git a/arm/Microsoft.Network/azureFirewalls/readme.md b/modules/Microsoft.Network/azureFirewalls/readme.md similarity index 100% rename from arm/Microsoft.Network/azureFirewalls/readme.md rename to modules/Microsoft.Network/azureFirewalls/readme.md diff --git a/arm/Microsoft.Network/azureFirewalls/version.json b/modules/Microsoft.Network/azureFirewalls/version.json similarity index 100% rename from arm/Microsoft.Network/azureFirewalls/version.json rename to modules/Microsoft.Network/azureFirewalls/version.json diff --git a/arm/Microsoft.Network/bastionHosts/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/bastionHosts/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/bastionHosts/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/bastionHosts/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/bastionHosts/.parameters/addpip.parameters.json b/modules/Microsoft.Network/bastionHosts/.parameters/addpip.parameters.json similarity index 100% rename from arm/Microsoft.Network/bastionHosts/.parameters/addpip.parameters.json rename to modules/Microsoft.Network/bastionHosts/.parameters/addpip.parameters.json diff --git a/arm/Microsoft.Network/bastionHosts/.parameters/custompip.parameters.json b/modules/Microsoft.Network/bastionHosts/.parameters/custompip.parameters.json similarity index 100% rename from arm/Microsoft.Network/bastionHosts/.parameters/custompip.parameters.json rename to modules/Microsoft.Network/bastionHosts/.parameters/custompip.parameters.json diff --git a/arm/Microsoft.Network/bastionHosts/.parameters/min.parameters.json b/modules/Microsoft.Network/bastionHosts/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.Network/bastionHosts/.parameters/min.parameters.json rename to modules/Microsoft.Network/bastionHosts/.parameters/min.parameters.json diff --git a/arm/Microsoft.Network/bastionHosts/.parameters/parameters.json b/modules/Microsoft.Network/bastionHosts/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/bastionHosts/.parameters/parameters.json rename to modules/Microsoft.Network/bastionHosts/.parameters/parameters.json diff --git a/arm/Microsoft.Network/bastionHosts/deploy.bicep b/modules/Microsoft.Network/bastionHosts/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/bastionHosts/deploy.bicep rename to modules/Microsoft.Network/bastionHosts/deploy.bicep diff --git a/arm/Microsoft.Network/bastionHosts/readme.md b/modules/Microsoft.Network/bastionHosts/readme.md similarity index 100% rename from arm/Microsoft.Network/bastionHosts/readme.md rename to modules/Microsoft.Network/bastionHosts/readme.md diff --git a/arm/Microsoft.Network/bastionHosts/version.json b/modules/Microsoft.Network/bastionHosts/version.json similarity index 100% rename from arm/Microsoft.Network/bastionHosts/version.json rename to modules/Microsoft.Network/bastionHosts/version.json diff --git a/arm/Microsoft.Network/connections/.parameters/vnet2vnet.parameters.json b/modules/Microsoft.Network/connections/.parameters/vnet2vnet.parameters.json similarity index 100% rename from arm/Microsoft.Network/connections/.parameters/vnet2vnet.parameters.json rename to modules/Microsoft.Network/connections/.parameters/vnet2vnet.parameters.json diff --git a/arm/Microsoft.Network/connections/deploy.bicep b/modules/Microsoft.Network/connections/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/connections/deploy.bicep rename to modules/Microsoft.Network/connections/deploy.bicep diff --git a/arm/Microsoft.Network/connections/readme.md b/modules/Microsoft.Network/connections/readme.md similarity index 100% rename from arm/Microsoft.Network/connections/readme.md rename to modules/Microsoft.Network/connections/readme.md diff --git a/arm/Microsoft.Network/connections/version.json b/modules/Microsoft.Network/connections/version.json similarity index 100% rename from arm/Microsoft.Network/connections/version.json rename to modules/Microsoft.Network/connections/version.json diff --git a/arm/Microsoft.Network/ddosProtectionPlans/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/ddosProtectionPlans/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/ddosProtectionPlans/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/ddosProtectionPlans/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/ddosProtectionPlans/.parameters/parameters.json b/modules/Microsoft.Network/ddosProtectionPlans/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/ddosProtectionPlans/.parameters/parameters.json rename to modules/Microsoft.Network/ddosProtectionPlans/.parameters/parameters.json diff --git a/arm/Microsoft.Network/ddosProtectionPlans/deploy.bicep b/modules/Microsoft.Network/ddosProtectionPlans/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/ddosProtectionPlans/deploy.bicep rename to modules/Microsoft.Network/ddosProtectionPlans/deploy.bicep diff --git a/arm/Microsoft.Network/ddosProtectionPlans/readme.md b/modules/Microsoft.Network/ddosProtectionPlans/readme.md similarity index 100% rename from arm/Microsoft.Network/ddosProtectionPlans/readme.md rename to modules/Microsoft.Network/ddosProtectionPlans/readme.md diff --git a/arm/Microsoft.Network/ddosProtectionPlans/version.json b/modules/Microsoft.Network/ddosProtectionPlans/version.json similarity index 100% rename from arm/Microsoft.Network/ddosProtectionPlans/version.json rename to modules/Microsoft.Network/ddosProtectionPlans/version.json diff --git a/arm/Microsoft.Network/expressRouteCircuits/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/expressRouteCircuits/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/expressRouteCircuits/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/expressRouteCircuits/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/expressRouteCircuits/.parameters/parameters.json b/modules/Microsoft.Network/expressRouteCircuits/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/expressRouteCircuits/.parameters/parameters.json rename to modules/Microsoft.Network/expressRouteCircuits/.parameters/parameters.json diff --git a/arm/Microsoft.Network/expressRouteCircuits/deploy.bicep b/modules/Microsoft.Network/expressRouteCircuits/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/expressRouteCircuits/deploy.bicep rename to modules/Microsoft.Network/expressRouteCircuits/deploy.bicep diff --git a/arm/Microsoft.Network/expressRouteCircuits/readme.md b/modules/Microsoft.Network/expressRouteCircuits/readme.md similarity index 100% rename from arm/Microsoft.Network/expressRouteCircuits/readme.md rename to modules/Microsoft.Network/expressRouteCircuits/readme.md diff --git a/arm/Microsoft.Network/expressRouteCircuits/version.json b/modules/Microsoft.Network/expressRouteCircuits/version.json similarity index 100% rename from arm/Microsoft.Network/expressRouteCircuits/version.json rename to modules/Microsoft.Network/expressRouteCircuits/version.json diff --git a/arm/Microsoft.Network/firewallPolicies/.parameters/min.parameters.json b/modules/Microsoft.Network/firewallPolicies/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.Network/firewallPolicies/.parameters/min.parameters.json rename to modules/Microsoft.Network/firewallPolicies/.parameters/min.parameters.json diff --git a/arm/Microsoft.Network/firewallPolicies/.parameters/parameters.json b/modules/Microsoft.Network/firewallPolicies/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/firewallPolicies/.parameters/parameters.json rename to modules/Microsoft.Network/firewallPolicies/.parameters/parameters.json diff --git a/arm/Microsoft.Network/firewallPolicies/deploy.bicep b/modules/Microsoft.Network/firewallPolicies/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/firewallPolicies/deploy.bicep rename to modules/Microsoft.Network/firewallPolicies/deploy.bicep diff --git a/arm/Microsoft.Network/firewallPolicies/readme.md b/modules/Microsoft.Network/firewallPolicies/readme.md similarity index 100% rename from arm/Microsoft.Network/firewallPolicies/readme.md rename to modules/Microsoft.Network/firewallPolicies/readme.md diff --git a/arm/Microsoft.Network/firewallPolicies/ruleCollectionGroups/deploy.bicep b/modules/Microsoft.Network/firewallPolicies/ruleCollectionGroups/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/firewallPolicies/ruleCollectionGroups/deploy.bicep rename to modules/Microsoft.Network/firewallPolicies/ruleCollectionGroups/deploy.bicep diff --git a/arm/Microsoft.Network/firewallPolicies/ruleCollectionGroups/readme.md b/modules/Microsoft.Network/firewallPolicies/ruleCollectionGroups/readme.md similarity index 100% rename from arm/Microsoft.Network/firewallPolicies/ruleCollectionGroups/readme.md rename to modules/Microsoft.Network/firewallPolicies/ruleCollectionGroups/readme.md diff --git a/arm/Microsoft.Network/firewallPolicies/ruleCollectionGroups/version.json b/modules/Microsoft.Network/firewallPolicies/ruleCollectionGroups/version.json similarity index 100% rename from arm/Microsoft.Network/firewallPolicies/ruleCollectionGroups/version.json rename to modules/Microsoft.Network/firewallPolicies/ruleCollectionGroups/version.json diff --git a/arm/Microsoft.Network/firewallPolicies/version.json b/modules/Microsoft.Network/firewallPolicies/version.json similarity index 100% rename from arm/Microsoft.Network/firewallPolicies/version.json rename to modules/Microsoft.Network/firewallPolicies/version.json diff --git a/arm/Microsoft.Network/frontDoors/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/frontDoors/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/frontDoors/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/frontDoors/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/frontDoors/.parameters/parameters.json b/modules/Microsoft.Network/frontDoors/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/frontDoors/.parameters/parameters.json rename to modules/Microsoft.Network/frontDoors/.parameters/parameters.json diff --git a/arm/Microsoft.Network/frontDoors/deploy.bicep b/modules/Microsoft.Network/frontDoors/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/frontDoors/deploy.bicep rename to modules/Microsoft.Network/frontDoors/deploy.bicep diff --git a/arm/Microsoft.Network/frontDoors/readme.md b/modules/Microsoft.Network/frontDoors/readme.md similarity index 100% rename from arm/Microsoft.Network/frontDoors/readme.md rename to modules/Microsoft.Network/frontDoors/readme.md diff --git a/arm/Microsoft.Network/frontDoors/version.json b/modules/Microsoft.Network/frontDoors/version.json similarity index 100% rename from arm/Microsoft.Network/frontDoors/version.json rename to modules/Microsoft.Network/frontDoors/version.json diff --git a/arm/Microsoft.Network/ipGroups/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/ipGroups/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/ipGroups/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/ipGroups/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/ipGroups/.parameters/parameters.json b/modules/Microsoft.Network/ipGroups/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/ipGroups/.parameters/parameters.json rename to modules/Microsoft.Network/ipGroups/.parameters/parameters.json diff --git a/arm/Microsoft.Network/ipGroups/deploy.bicep b/modules/Microsoft.Network/ipGroups/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/ipGroups/deploy.bicep rename to modules/Microsoft.Network/ipGroups/deploy.bicep diff --git a/arm/Microsoft.Network/ipGroups/readme.md b/modules/Microsoft.Network/ipGroups/readme.md similarity index 100% rename from arm/Microsoft.Network/ipGroups/readme.md rename to modules/Microsoft.Network/ipGroups/readme.md diff --git a/arm/Microsoft.Network/ipGroups/version.json b/modules/Microsoft.Network/ipGroups/version.json similarity index 100% rename from arm/Microsoft.Network/ipGroups/version.json rename to modules/Microsoft.Network/ipGroups/version.json diff --git a/arm/Microsoft.Network/loadBalancers/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/loadBalancers/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/loadBalancers/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/loadBalancers/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/loadBalancers/.parameters/internal.parameters.json b/modules/Microsoft.Network/loadBalancers/.parameters/internal.parameters.json similarity index 100% rename from arm/Microsoft.Network/loadBalancers/.parameters/internal.parameters.json rename to modules/Microsoft.Network/loadBalancers/.parameters/internal.parameters.json diff --git a/arm/Microsoft.Network/loadBalancers/.parameters/min.parameters.json b/modules/Microsoft.Network/loadBalancers/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.Network/loadBalancers/.parameters/min.parameters.json rename to modules/Microsoft.Network/loadBalancers/.parameters/min.parameters.json diff --git a/arm/Microsoft.Network/loadBalancers/.parameters/parameters.json b/modules/Microsoft.Network/loadBalancers/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/loadBalancers/.parameters/parameters.json rename to modules/Microsoft.Network/loadBalancers/.parameters/parameters.json diff --git a/arm/Microsoft.Network/loadBalancers/backendAddressPools/deploy.bicep b/modules/Microsoft.Network/loadBalancers/backendAddressPools/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/loadBalancers/backendAddressPools/deploy.bicep rename to modules/Microsoft.Network/loadBalancers/backendAddressPools/deploy.bicep diff --git a/arm/Microsoft.Network/loadBalancers/backendAddressPools/readme.md b/modules/Microsoft.Network/loadBalancers/backendAddressPools/readme.md similarity index 100% rename from arm/Microsoft.Network/loadBalancers/backendAddressPools/readme.md rename to modules/Microsoft.Network/loadBalancers/backendAddressPools/readme.md diff --git a/arm/Microsoft.Network/loadBalancers/backendAddressPools/version.json b/modules/Microsoft.Network/loadBalancers/backendAddressPools/version.json similarity index 100% rename from arm/Microsoft.Network/loadBalancers/backendAddressPools/version.json rename to modules/Microsoft.Network/loadBalancers/backendAddressPools/version.json diff --git a/arm/Microsoft.Network/loadBalancers/deploy.bicep b/modules/Microsoft.Network/loadBalancers/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/loadBalancers/deploy.bicep rename to modules/Microsoft.Network/loadBalancers/deploy.bicep diff --git a/arm/Microsoft.Network/loadBalancers/inboundNatRules/deploy.bicep b/modules/Microsoft.Network/loadBalancers/inboundNatRules/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/loadBalancers/inboundNatRules/deploy.bicep rename to modules/Microsoft.Network/loadBalancers/inboundNatRules/deploy.bicep diff --git a/arm/Microsoft.Network/loadBalancers/inboundNatRules/readme.md b/modules/Microsoft.Network/loadBalancers/inboundNatRules/readme.md similarity index 100% rename from arm/Microsoft.Network/loadBalancers/inboundNatRules/readme.md rename to modules/Microsoft.Network/loadBalancers/inboundNatRules/readme.md diff --git a/arm/Microsoft.Network/loadBalancers/inboundNatRules/version.json b/modules/Microsoft.Network/loadBalancers/inboundNatRules/version.json similarity index 100% rename from arm/Microsoft.Network/loadBalancers/inboundNatRules/version.json rename to modules/Microsoft.Network/loadBalancers/inboundNatRules/version.json diff --git a/arm/Microsoft.Network/loadBalancers/readme.md b/modules/Microsoft.Network/loadBalancers/readme.md similarity index 100% rename from arm/Microsoft.Network/loadBalancers/readme.md rename to modules/Microsoft.Network/loadBalancers/readme.md diff --git a/arm/Microsoft.Network/loadBalancers/version.json b/modules/Microsoft.Network/loadBalancers/version.json similarity index 100% rename from arm/Microsoft.Network/loadBalancers/version.json rename to modules/Microsoft.Network/loadBalancers/version.json diff --git a/arm/Microsoft.Network/localNetworkGateways/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/localNetworkGateways/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/localNetworkGateways/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/localNetworkGateways/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/localNetworkGateways/.parameters/parameters.json b/modules/Microsoft.Network/localNetworkGateways/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/localNetworkGateways/.parameters/parameters.json rename to modules/Microsoft.Network/localNetworkGateways/.parameters/parameters.json diff --git a/arm/Microsoft.Network/localNetworkGateways/deploy.bicep b/modules/Microsoft.Network/localNetworkGateways/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/localNetworkGateways/deploy.bicep rename to modules/Microsoft.Network/localNetworkGateways/deploy.bicep diff --git a/arm/Microsoft.Network/localNetworkGateways/readme.md b/modules/Microsoft.Network/localNetworkGateways/readme.md similarity index 100% rename from arm/Microsoft.Network/localNetworkGateways/readme.md rename to modules/Microsoft.Network/localNetworkGateways/readme.md diff --git a/arm/Microsoft.Network/localNetworkGateways/version.json b/modules/Microsoft.Network/localNetworkGateways/version.json similarity index 100% rename from arm/Microsoft.Network/localNetworkGateways/version.json rename to modules/Microsoft.Network/localNetworkGateways/version.json diff --git a/arm/Microsoft.Network/natGateways/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/natGateways/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/natGateways/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/natGateways/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/natGateways/.parameters/parameters.json b/modules/Microsoft.Network/natGateways/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/natGateways/.parameters/parameters.json rename to modules/Microsoft.Network/natGateways/.parameters/parameters.json diff --git a/arm/Microsoft.Network/natGateways/deploy.bicep b/modules/Microsoft.Network/natGateways/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/natGateways/deploy.bicep rename to modules/Microsoft.Network/natGateways/deploy.bicep diff --git a/arm/Microsoft.Network/natGateways/readme.md b/modules/Microsoft.Network/natGateways/readme.md similarity index 100% rename from arm/Microsoft.Network/natGateways/readme.md rename to modules/Microsoft.Network/natGateways/readme.md diff --git a/arm/Microsoft.Network/natGateways/version.json b/modules/Microsoft.Network/natGateways/version.json similarity index 100% rename from arm/Microsoft.Network/natGateways/version.json rename to modules/Microsoft.Network/natGateways/version.json diff --git a/arm/Microsoft.Network/networkInterfaces/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/networkInterfaces/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/networkInterfaces/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/networkInterfaces/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/networkInterfaces/.parameters/min.parameters.json b/modules/Microsoft.Network/networkInterfaces/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.Network/networkInterfaces/.parameters/min.parameters.json rename to modules/Microsoft.Network/networkInterfaces/.parameters/min.parameters.json diff --git a/arm/Microsoft.Network/networkInterfaces/.parameters/parameters.json b/modules/Microsoft.Network/networkInterfaces/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/networkInterfaces/.parameters/parameters.json rename to modules/Microsoft.Network/networkInterfaces/.parameters/parameters.json diff --git a/arm/Microsoft.Network/networkInterfaces/deploy.bicep b/modules/Microsoft.Network/networkInterfaces/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/networkInterfaces/deploy.bicep rename to modules/Microsoft.Network/networkInterfaces/deploy.bicep diff --git a/arm/Microsoft.Network/networkInterfaces/readme.md b/modules/Microsoft.Network/networkInterfaces/readme.md similarity index 100% rename from arm/Microsoft.Network/networkInterfaces/readme.md rename to modules/Microsoft.Network/networkInterfaces/readme.md diff --git a/arm/Microsoft.Network/networkInterfaces/version.json b/modules/Microsoft.Network/networkInterfaces/version.json similarity index 100% rename from arm/Microsoft.Network/networkInterfaces/version.json rename to modules/Microsoft.Network/networkInterfaces/version.json diff --git a/arm/Microsoft.Network/networkSecurityGroups/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/networkSecurityGroups/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/networkSecurityGroups/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/networkSecurityGroups/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/networkSecurityGroups/.parameters/min.parameters.json b/modules/Microsoft.Network/networkSecurityGroups/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.Network/networkSecurityGroups/.parameters/min.parameters.json rename to modules/Microsoft.Network/networkSecurityGroups/.parameters/min.parameters.json diff --git a/arm/Microsoft.Network/networkSecurityGroups/.parameters/parameters.json b/modules/Microsoft.Network/networkSecurityGroups/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/networkSecurityGroups/.parameters/parameters.json rename to modules/Microsoft.Network/networkSecurityGroups/.parameters/parameters.json diff --git a/arm/Microsoft.Network/networkSecurityGroups/deploy.bicep b/modules/Microsoft.Network/networkSecurityGroups/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/networkSecurityGroups/deploy.bicep rename to modules/Microsoft.Network/networkSecurityGroups/deploy.bicep diff --git a/arm/Microsoft.Network/networkSecurityGroups/readme.md b/modules/Microsoft.Network/networkSecurityGroups/readme.md similarity index 100% rename from arm/Microsoft.Network/networkSecurityGroups/readme.md rename to modules/Microsoft.Network/networkSecurityGroups/readme.md diff --git a/arm/Microsoft.Network/networkSecurityGroups/securityRules/deploy.bicep b/modules/Microsoft.Network/networkSecurityGroups/securityRules/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/networkSecurityGroups/securityRules/deploy.bicep rename to modules/Microsoft.Network/networkSecurityGroups/securityRules/deploy.bicep diff --git a/arm/Microsoft.Network/networkSecurityGroups/securityRules/readme.md b/modules/Microsoft.Network/networkSecurityGroups/securityRules/readme.md similarity index 100% rename from arm/Microsoft.Network/networkSecurityGroups/securityRules/readme.md rename to modules/Microsoft.Network/networkSecurityGroups/securityRules/readme.md diff --git a/arm/Microsoft.Network/networkSecurityGroups/securityRules/version.json b/modules/Microsoft.Network/networkSecurityGroups/securityRules/version.json similarity index 100% rename from arm/Microsoft.Network/networkSecurityGroups/securityRules/version.json rename to modules/Microsoft.Network/networkSecurityGroups/securityRules/version.json diff --git a/arm/Microsoft.Network/networkSecurityGroups/version.json b/modules/Microsoft.Network/networkSecurityGroups/version.json similarity index 100% rename from arm/Microsoft.Network/networkSecurityGroups/version.json rename to modules/Microsoft.Network/networkSecurityGroups/version.json diff --git a/arm/Microsoft.Network/networkWatchers/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/networkWatchers/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/networkWatchers/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/networkWatchers/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/networkWatchers/.parameters/min.parameters.json b/modules/Microsoft.Network/networkWatchers/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.Network/networkWatchers/.parameters/min.parameters.json rename to modules/Microsoft.Network/networkWatchers/.parameters/min.parameters.json diff --git a/arm/Microsoft.Network/networkWatchers/.parameters/parameters.json b/modules/Microsoft.Network/networkWatchers/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/networkWatchers/.parameters/parameters.json rename to modules/Microsoft.Network/networkWatchers/.parameters/parameters.json diff --git a/arm/Microsoft.Network/networkWatchers/connectionMonitors/deploy.bicep b/modules/Microsoft.Network/networkWatchers/connectionMonitors/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/networkWatchers/connectionMonitors/deploy.bicep rename to modules/Microsoft.Network/networkWatchers/connectionMonitors/deploy.bicep diff --git a/arm/Microsoft.Network/networkWatchers/connectionMonitors/readme.md b/modules/Microsoft.Network/networkWatchers/connectionMonitors/readme.md similarity index 100% rename from arm/Microsoft.Network/networkWatchers/connectionMonitors/readme.md rename to modules/Microsoft.Network/networkWatchers/connectionMonitors/readme.md diff --git a/arm/Microsoft.Network/networkWatchers/connectionMonitors/version.json b/modules/Microsoft.Network/networkWatchers/connectionMonitors/version.json similarity index 100% rename from arm/Microsoft.Network/networkWatchers/connectionMonitors/version.json rename to modules/Microsoft.Network/networkWatchers/connectionMonitors/version.json diff --git a/arm/Microsoft.Network/networkWatchers/deploy.bicep b/modules/Microsoft.Network/networkWatchers/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/networkWatchers/deploy.bicep rename to modules/Microsoft.Network/networkWatchers/deploy.bicep diff --git a/arm/Microsoft.Network/networkWatchers/flowLogs/deploy.bicep b/modules/Microsoft.Network/networkWatchers/flowLogs/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/networkWatchers/flowLogs/deploy.bicep rename to modules/Microsoft.Network/networkWatchers/flowLogs/deploy.bicep diff --git a/arm/Microsoft.Network/networkWatchers/flowLogs/readme.md b/modules/Microsoft.Network/networkWatchers/flowLogs/readme.md similarity index 100% rename from arm/Microsoft.Network/networkWatchers/flowLogs/readme.md rename to modules/Microsoft.Network/networkWatchers/flowLogs/readme.md diff --git a/arm/Microsoft.Network/networkWatchers/flowLogs/version.json b/modules/Microsoft.Network/networkWatchers/flowLogs/version.json similarity index 100% rename from arm/Microsoft.Network/networkWatchers/flowLogs/version.json rename to modules/Microsoft.Network/networkWatchers/flowLogs/version.json diff --git a/arm/Microsoft.Network/networkWatchers/readme.md b/modules/Microsoft.Network/networkWatchers/readme.md similarity index 100% rename from arm/Microsoft.Network/networkWatchers/readme.md rename to modules/Microsoft.Network/networkWatchers/readme.md diff --git a/arm/Microsoft.Network/networkWatchers/version.json b/modules/Microsoft.Network/networkWatchers/version.json similarity index 100% rename from arm/Microsoft.Network/networkWatchers/version.json rename to modules/Microsoft.Network/networkWatchers/version.json diff --git a/arm/Microsoft.Network/privateDnsZones/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/privateDnsZones/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/privateDnsZones/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/.parameters/min.parameters.json b/modules/Microsoft.Network/privateDnsZones/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/.parameters/min.parameters.json rename to modules/Microsoft.Network/privateDnsZones/.parameters/min.parameters.json diff --git a/arm/Microsoft.Network/privateDnsZones/.parameters/parameters.json b/modules/Microsoft.Network/privateDnsZones/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/.parameters/parameters.json rename to modules/Microsoft.Network/privateDnsZones/.parameters/parameters.json diff --git a/arm/Microsoft.Network/privateDnsZones/A/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/privateDnsZones/A/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/A/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/privateDnsZones/A/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/A/deploy.bicep b/modules/Microsoft.Network/privateDnsZones/A/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/A/deploy.bicep rename to modules/Microsoft.Network/privateDnsZones/A/deploy.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/A/readme.md b/modules/Microsoft.Network/privateDnsZones/A/readme.md similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/A/readme.md rename to modules/Microsoft.Network/privateDnsZones/A/readme.md diff --git a/arm/Microsoft.Network/privateDnsZones/A/version.json b/modules/Microsoft.Network/privateDnsZones/A/version.json similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/A/version.json rename to modules/Microsoft.Network/privateDnsZones/A/version.json diff --git a/arm/Microsoft.Network/privateDnsZones/AAAA/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/privateDnsZones/AAAA/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/AAAA/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/privateDnsZones/AAAA/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/AAAA/deploy.bicep b/modules/Microsoft.Network/privateDnsZones/AAAA/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/AAAA/deploy.bicep rename to modules/Microsoft.Network/privateDnsZones/AAAA/deploy.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/AAAA/readme.md b/modules/Microsoft.Network/privateDnsZones/AAAA/readme.md similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/AAAA/readme.md rename to modules/Microsoft.Network/privateDnsZones/AAAA/readme.md diff --git a/arm/Microsoft.Network/privateDnsZones/AAAA/version.json b/modules/Microsoft.Network/privateDnsZones/AAAA/version.json similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/AAAA/version.json rename to modules/Microsoft.Network/privateDnsZones/AAAA/version.json diff --git a/arm/Microsoft.Network/privateDnsZones/CNAME/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/privateDnsZones/CNAME/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/CNAME/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/privateDnsZones/CNAME/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/CNAME/deploy.bicep b/modules/Microsoft.Network/privateDnsZones/CNAME/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/CNAME/deploy.bicep rename to modules/Microsoft.Network/privateDnsZones/CNAME/deploy.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/CNAME/readme.md b/modules/Microsoft.Network/privateDnsZones/CNAME/readme.md similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/CNAME/readme.md rename to modules/Microsoft.Network/privateDnsZones/CNAME/readme.md diff --git a/arm/Microsoft.Network/privateDnsZones/CNAME/version.json b/modules/Microsoft.Network/privateDnsZones/CNAME/version.json similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/CNAME/version.json rename to modules/Microsoft.Network/privateDnsZones/CNAME/version.json diff --git a/arm/Microsoft.Network/privateDnsZones/MX/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/privateDnsZones/MX/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/MX/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/privateDnsZones/MX/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/MX/deploy.bicep b/modules/Microsoft.Network/privateDnsZones/MX/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/MX/deploy.bicep rename to modules/Microsoft.Network/privateDnsZones/MX/deploy.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/MX/readme.md b/modules/Microsoft.Network/privateDnsZones/MX/readme.md similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/MX/readme.md rename to modules/Microsoft.Network/privateDnsZones/MX/readme.md diff --git a/arm/Microsoft.Network/privateDnsZones/MX/version.json b/modules/Microsoft.Network/privateDnsZones/MX/version.json similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/MX/version.json rename to modules/Microsoft.Network/privateDnsZones/MX/version.json diff --git a/arm/Microsoft.Network/privateDnsZones/PTR/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/privateDnsZones/PTR/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/PTR/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/privateDnsZones/PTR/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/PTR/deploy.bicep b/modules/Microsoft.Network/privateDnsZones/PTR/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/PTR/deploy.bicep rename to modules/Microsoft.Network/privateDnsZones/PTR/deploy.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/PTR/readme.md b/modules/Microsoft.Network/privateDnsZones/PTR/readme.md similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/PTR/readme.md rename to modules/Microsoft.Network/privateDnsZones/PTR/readme.md diff --git a/arm/Microsoft.Network/privateDnsZones/PTR/version.json b/modules/Microsoft.Network/privateDnsZones/PTR/version.json similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/PTR/version.json rename to modules/Microsoft.Network/privateDnsZones/PTR/version.json diff --git a/arm/Microsoft.Network/privateDnsZones/SOA/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/privateDnsZones/SOA/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/SOA/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/privateDnsZones/SOA/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/SOA/deploy.bicep b/modules/Microsoft.Network/privateDnsZones/SOA/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/SOA/deploy.bicep rename to modules/Microsoft.Network/privateDnsZones/SOA/deploy.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/SOA/readme.md b/modules/Microsoft.Network/privateDnsZones/SOA/readme.md similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/SOA/readme.md rename to modules/Microsoft.Network/privateDnsZones/SOA/readme.md diff --git a/arm/Microsoft.Network/privateDnsZones/SOA/version.json b/modules/Microsoft.Network/privateDnsZones/SOA/version.json similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/SOA/version.json rename to modules/Microsoft.Network/privateDnsZones/SOA/version.json diff --git a/arm/Microsoft.Network/privateDnsZones/SRV/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/privateDnsZones/SRV/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/SRV/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/privateDnsZones/SRV/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/SRV/deploy.bicep b/modules/Microsoft.Network/privateDnsZones/SRV/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/SRV/deploy.bicep rename to modules/Microsoft.Network/privateDnsZones/SRV/deploy.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/SRV/readme.md b/modules/Microsoft.Network/privateDnsZones/SRV/readme.md similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/SRV/readme.md rename to modules/Microsoft.Network/privateDnsZones/SRV/readme.md diff --git a/arm/Microsoft.Network/privateDnsZones/SRV/version.json b/modules/Microsoft.Network/privateDnsZones/SRV/version.json similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/SRV/version.json rename to modules/Microsoft.Network/privateDnsZones/SRV/version.json diff --git a/arm/Microsoft.Network/privateDnsZones/TXT/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/privateDnsZones/TXT/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/TXT/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/privateDnsZones/TXT/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/TXT/deploy.bicep b/modules/Microsoft.Network/privateDnsZones/TXT/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/TXT/deploy.bicep rename to modules/Microsoft.Network/privateDnsZones/TXT/deploy.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/TXT/readme.md b/modules/Microsoft.Network/privateDnsZones/TXT/readme.md similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/TXT/readme.md rename to modules/Microsoft.Network/privateDnsZones/TXT/readme.md diff --git a/arm/Microsoft.Network/privateDnsZones/TXT/version.json b/modules/Microsoft.Network/privateDnsZones/TXT/version.json similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/TXT/version.json rename to modules/Microsoft.Network/privateDnsZones/TXT/version.json diff --git a/arm/Microsoft.Network/privateDnsZones/deploy.bicep b/modules/Microsoft.Network/privateDnsZones/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/deploy.bicep rename to modules/Microsoft.Network/privateDnsZones/deploy.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/readme.md b/modules/Microsoft.Network/privateDnsZones/readme.md similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/readme.md rename to modules/Microsoft.Network/privateDnsZones/readme.md diff --git a/arm/Microsoft.Network/privateDnsZones/version.json b/modules/Microsoft.Network/privateDnsZones/version.json similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/version.json rename to modules/Microsoft.Network/privateDnsZones/version.json diff --git a/arm/Microsoft.Network/privateDnsZones/virtualNetworkLinks/deploy.bicep b/modules/Microsoft.Network/privateDnsZones/virtualNetworkLinks/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/virtualNetworkLinks/deploy.bicep rename to modules/Microsoft.Network/privateDnsZones/virtualNetworkLinks/deploy.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/virtualNetworkLinks/readme.md b/modules/Microsoft.Network/privateDnsZones/virtualNetworkLinks/readme.md similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/virtualNetworkLinks/readme.md rename to modules/Microsoft.Network/privateDnsZones/virtualNetworkLinks/readme.md diff --git a/arm/Microsoft.Network/privateDnsZones/virtualNetworkLinks/version.json b/modules/Microsoft.Network/privateDnsZones/virtualNetworkLinks/version.json similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/virtualNetworkLinks/version.json rename to modules/Microsoft.Network/privateDnsZones/virtualNetworkLinks/version.json diff --git a/arm/Microsoft.Network/privateEndpoints/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/privateEndpoints/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/privateEndpoints/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/privateEndpoints/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/privateEndpoints/.parameters/min.parameters.json b/modules/Microsoft.Network/privateEndpoints/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.Network/privateEndpoints/.parameters/min.parameters.json rename to modules/Microsoft.Network/privateEndpoints/.parameters/min.parameters.json diff --git a/arm/Microsoft.Network/privateEndpoints/.parameters/parameters.json b/modules/Microsoft.Network/privateEndpoints/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/privateEndpoints/.parameters/parameters.json rename to modules/Microsoft.Network/privateEndpoints/.parameters/parameters.json diff --git a/arm/Microsoft.Network/privateEndpoints/deploy.bicep b/modules/Microsoft.Network/privateEndpoints/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/privateEndpoints/deploy.bicep rename to modules/Microsoft.Network/privateEndpoints/deploy.bicep diff --git a/arm/Microsoft.Network/privateEndpoints/privateDnsZoneGroups/deploy.bicep b/modules/Microsoft.Network/privateEndpoints/privateDnsZoneGroups/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/privateEndpoints/privateDnsZoneGroups/deploy.bicep rename to modules/Microsoft.Network/privateEndpoints/privateDnsZoneGroups/deploy.bicep diff --git a/arm/Microsoft.Network/privateEndpoints/privateDnsZoneGroups/readme.md b/modules/Microsoft.Network/privateEndpoints/privateDnsZoneGroups/readme.md similarity index 100% rename from arm/Microsoft.Network/privateEndpoints/privateDnsZoneGroups/readme.md rename to modules/Microsoft.Network/privateEndpoints/privateDnsZoneGroups/readme.md diff --git a/arm/Microsoft.Network/privateEndpoints/privateDnsZoneGroups/version.json b/modules/Microsoft.Network/privateEndpoints/privateDnsZoneGroups/version.json similarity index 100% rename from arm/Microsoft.Network/privateEndpoints/privateDnsZoneGroups/version.json rename to modules/Microsoft.Network/privateEndpoints/privateDnsZoneGroups/version.json diff --git a/arm/Microsoft.Network/privateEndpoints/readme.md b/modules/Microsoft.Network/privateEndpoints/readme.md similarity index 100% rename from arm/Microsoft.Network/privateEndpoints/readme.md rename to modules/Microsoft.Network/privateEndpoints/readme.md diff --git a/arm/Microsoft.Network/privateEndpoints/version.json b/modules/Microsoft.Network/privateEndpoints/version.json similarity index 100% rename from arm/Microsoft.Network/privateEndpoints/version.json rename to modules/Microsoft.Network/privateEndpoints/version.json diff --git a/arm/Microsoft.Network/publicIPAddresses/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/publicIPAddresses/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/publicIPAddresses/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/publicIPAddresses/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/publicIPAddresses/.parameters/parameters.json b/modules/Microsoft.Network/publicIPAddresses/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/publicIPAddresses/.parameters/parameters.json rename to modules/Microsoft.Network/publicIPAddresses/.parameters/parameters.json diff --git a/arm/Microsoft.Network/publicIPAddresses/deploy.bicep b/modules/Microsoft.Network/publicIPAddresses/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/publicIPAddresses/deploy.bicep rename to modules/Microsoft.Network/publicIPAddresses/deploy.bicep diff --git a/arm/Microsoft.Network/publicIPAddresses/readme.md b/modules/Microsoft.Network/publicIPAddresses/readme.md similarity index 100% rename from arm/Microsoft.Network/publicIPAddresses/readme.md rename to modules/Microsoft.Network/publicIPAddresses/readme.md diff --git a/arm/Microsoft.Network/publicIPAddresses/version.json b/modules/Microsoft.Network/publicIPAddresses/version.json similarity index 100% rename from arm/Microsoft.Network/publicIPAddresses/version.json rename to modules/Microsoft.Network/publicIPAddresses/version.json diff --git a/arm/Microsoft.Network/publicIPPrefixes/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/publicIPPrefixes/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/publicIPPrefixes/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/publicIPPrefixes/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/publicIPPrefixes/.parameters/parameters.json b/modules/Microsoft.Network/publicIPPrefixes/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/publicIPPrefixes/.parameters/parameters.json rename to modules/Microsoft.Network/publicIPPrefixes/.parameters/parameters.json diff --git a/arm/Microsoft.Network/publicIPPrefixes/deploy.bicep b/modules/Microsoft.Network/publicIPPrefixes/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/publicIPPrefixes/deploy.bicep rename to modules/Microsoft.Network/publicIPPrefixes/deploy.bicep diff --git a/arm/Microsoft.Network/publicIPPrefixes/readme.md b/modules/Microsoft.Network/publicIPPrefixes/readme.md similarity index 100% rename from arm/Microsoft.Network/publicIPPrefixes/readme.md rename to modules/Microsoft.Network/publicIPPrefixes/readme.md diff --git a/arm/Microsoft.Network/publicIPPrefixes/version.json b/modules/Microsoft.Network/publicIPPrefixes/version.json similarity index 100% rename from arm/Microsoft.Network/publicIPPrefixes/version.json rename to modules/Microsoft.Network/publicIPPrefixes/version.json diff --git a/arm/Microsoft.Network/routeTables/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/routeTables/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/routeTables/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/routeTables/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/routeTables/.parameters/parameters.json b/modules/Microsoft.Network/routeTables/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/routeTables/.parameters/parameters.json rename to modules/Microsoft.Network/routeTables/.parameters/parameters.json diff --git a/arm/Microsoft.Network/routeTables/deploy.bicep b/modules/Microsoft.Network/routeTables/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/routeTables/deploy.bicep rename to modules/Microsoft.Network/routeTables/deploy.bicep diff --git a/arm/Microsoft.Network/routeTables/readme.md b/modules/Microsoft.Network/routeTables/readme.md similarity index 100% rename from arm/Microsoft.Network/routeTables/readme.md rename to modules/Microsoft.Network/routeTables/readme.md diff --git a/arm/Microsoft.Network/routeTables/version.json b/modules/Microsoft.Network/routeTables/version.json similarity index 100% rename from arm/Microsoft.Network/routeTables/version.json rename to modules/Microsoft.Network/routeTables/version.json diff --git a/arm/Microsoft.Network/trafficmanagerprofiles/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/trafficmanagerprofiles/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/trafficmanagerprofiles/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/trafficmanagerprofiles/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/trafficmanagerprofiles/.parameters/parameters.json b/modules/Microsoft.Network/trafficmanagerprofiles/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/trafficmanagerprofiles/.parameters/parameters.json rename to modules/Microsoft.Network/trafficmanagerprofiles/.parameters/parameters.json diff --git a/arm/Microsoft.Network/trafficmanagerprofiles/deploy.bicep b/modules/Microsoft.Network/trafficmanagerprofiles/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/trafficmanagerprofiles/deploy.bicep rename to modules/Microsoft.Network/trafficmanagerprofiles/deploy.bicep diff --git a/arm/Microsoft.Network/trafficmanagerprofiles/readme.md b/modules/Microsoft.Network/trafficmanagerprofiles/readme.md similarity index 100% rename from arm/Microsoft.Network/trafficmanagerprofiles/readme.md rename to modules/Microsoft.Network/trafficmanagerprofiles/readme.md diff --git a/arm/Microsoft.Network/trafficmanagerprofiles/version.json b/modules/Microsoft.Network/trafficmanagerprofiles/version.json similarity index 100% rename from arm/Microsoft.Network/trafficmanagerprofiles/version.json rename to modules/Microsoft.Network/trafficmanagerprofiles/version.json diff --git a/arm/Microsoft.Network/virtualHubs/.parameters/min.parameters.json b/modules/Microsoft.Network/virtualHubs/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.Network/virtualHubs/.parameters/min.parameters.json rename to modules/Microsoft.Network/virtualHubs/.parameters/min.parameters.json diff --git a/arm/Microsoft.Network/virtualHubs/.parameters/parameters.json b/modules/Microsoft.Network/virtualHubs/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/virtualHubs/.parameters/parameters.json rename to modules/Microsoft.Network/virtualHubs/.parameters/parameters.json diff --git a/arm/Microsoft.Network/virtualHubs/deploy.bicep b/modules/Microsoft.Network/virtualHubs/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/virtualHubs/deploy.bicep rename to modules/Microsoft.Network/virtualHubs/deploy.bicep diff --git a/arm/Microsoft.Network/virtualHubs/hubRouteTables/deploy.bicep b/modules/Microsoft.Network/virtualHubs/hubRouteTables/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/virtualHubs/hubRouteTables/deploy.bicep rename to modules/Microsoft.Network/virtualHubs/hubRouteTables/deploy.bicep diff --git a/arm/Microsoft.Network/virtualHubs/hubRouteTables/readme.md b/modules/Microsoft.Network/virtualHubs/hubRouteTables/readme.md similarity index 100% rename from arm/Microsoft.Network/virtualHubs/hubRouteTables/readme.md rename to modules/Microsoft.Network/virtualHubs/hubRouteTables/readme.md diff --git a/arm/Microsoft.Network/virtualHubs/hubRouteTables/version.json b/modules/Microsoft.Network/virtualHubs/hubRouteTables/version.json similarity index 100% rename from arm/Microsoft.Network/virtualHubs/hubRouteTables/version.json rename to modules/Microsoft.Network/virtualHubs/hubRouteTables/version.json diff --git a/arm/Microsoft.Network/virtualHubs/hubVirtualNetworkConnections/deploy.bicep b/modules/Microsoft.Network/virtualHubs/hubVirtualNetworkConnections/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/virtualHubs/hubVirtualNetworkConnections/deploy.bicep rename to modules/Microsoft.Network/virtualHubs/hubVirtualNetworkConnections/deploy.bicep diff --git a/arm/Microsoft.Network/virtualHubs/hubVirtualNetworkConnections/readme.md b/modules/Microsoft.Network/virtualHubs/hubVirtualNetworkConnections/readme.md similarity index 100% rename from arm/Microsoft.Network/virtualHubs/hubVirtualNetworkConnections/readme.md rename to modules/Microsoft.Network/virtualHubs/hubVirtualNetworkConnections/readme.md diff --git a/arm/Microsoft.Network/virtualHubs/hubVirtualNetworkConnections/version.json b/modules/Microsoft.Network/virtualHubs/hubVirtualNetworkConnections/version.json similarity index 100% rename from arm/Microsoft.Network/virtualHubs/hubVirtualNetworkConnections/version.json rename to modules/Microsoft.Network/virtualHubs/hubVirtualNetworkConnections/version.json diff --git a/arm/Microsoft.Network/virtualHubs/readme.md b/modules/Microsoft.Network/virtualHubs/readme.md similarity index 100% rename from arm/Microsoft.Network/virtualHubs/readme.md rename to modules/Microsoft.Network/virtualHubs/readme.md diff --git a/arm/Microsoft.Network/virtualHubs/version.json b/modules/Microsoft.Network/virtualHubs/version.json similarity index 100% rename from arm/Microsoft.Network/virtualHubs/version.json rename to modules/Microsoft.Network/virtualHubs/version.json diff --git a/arm/Microsoft.Network/virtualNetworkGateways/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/virtualNetworkGateways/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/virtualNetworkGateways/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/virtualNetworkGateways/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/virtualNetworkGateways/.parameters/expressRoute.parameters.json b/modules/Microsoft.Network/virtualNetworkGateways/.parameters/expressRoute.parameters.json similarity index 100% rename from arm/Microsoft.Network/virtualNetworkGateways/.parameters/expressRoute.parameters.json rename to modules/Microsoft.Network/virtualNetworkGateways/.parameters/expressRoute.parameters.json diff --git a/arm/Microsoft.Network/virtualNetworkGateways/.parameters/vpn.parameters.json b/modules/Microsoft.Network/virtualNetworkGateways/.parameters/vpn.parameters.json similarity index 100% rename from arm/Microsoft.Network/virtualNetworkGateways/.parameters/vpn.parameters.json rename to modules/Microsoft.Network/virtualNetworkGateways/.parameters/vpn.parameters.json diff --git a/arm/Microsoft.Network/virtualNetworkGateways/deploy.bicep b/modules/Microsoft.Network/virtualNetworkGateways/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/virtualNetworkGateways/deploy.bicep rename to modules/Microsoft.Network/virtualNetworkGateways/deploy.bicep diff --git a/arm/Microsoft.Network/virtualNetworkGateways/readme.md b/modules/Microsoft.Network/virtualNetworkGateways/readme.md similarity index 100% rename from arm/Microsoft.Network/virtualNetworkGateways/readme.md rename to modules/Microsoft.Network/virtualNetworkGateways/readme.md diff --git a/arm/Microsoft.Network/virtualNetworkGateways/version.json b/modules/Microsoft.Network/virtualNetworkGateways/version.json similarity index 100% rename from arm/Microsoft.Network/virtualNetworkGateways/version.json rename to modules/Microsoft.Network/virtualNetworkGateways/version.json diff --git a/arm/Microsoft.Network/virtualNetworks/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/virtualNetworks/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/virtualNetworks/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/virtualNetworks/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/virtualNetworks/.parameters/min.parameters.json b/modules/Microsoft.Network/virtualNetworks/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.Network/virtualNetworks/.parameters/min.parameters.json rename to modules/Microsoft.Network/virtualNetworks/.parameters/min.parameters.json diff --git a/arm/Microsoft.Network/virtualNetworks/.parameters/parameters.json b/modules/Microsoft.Network/virtualNetworks/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/virtualNetworks/.parameters/parameters.json rename to modules/Microsoft.Network/virtualNetworks/.parameters/parameters.json diff --git a/arm/Microsoft.Network/virtualNetworks/.parameters/vnetPeering.parameters.json b/modules/Microsoft.Network/virtualNetworks/.parameters/vnetPeering.parameters.json similarity index 100% rename from arm/Microsoft.Network/virtualNetworks/.parameters/vnetPeering.parameters.json rename to modules/Microsoft.Network/virtualNetworks/.parameters/vnetPeering.parameters.json diff --git a/arm/Microsoft.Network/virtualNetworks/deploy.bicep b/modules/Microsoft.Network/virtualNetworks/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/virtualNetworks/deploy.bicep rename to modules/Microsoft.Network/virtualNetworks/deploy.bicep diff --git a/arm/Microsoft.Network/virtualNetworks/readme.md b/modules/Microsoft.Network/virtualNetworks/readme.md similarity index 100% rename from arm/Microsoft.Network/virtualNetworks/readme.md rename to modules/Microsoft.Network/virtualNetworks/readme.md diff --git a/arm/Microsoft.Network/virtualNetworks/subnets/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/virtualNetworks/subnets/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/virtualNetworks/subnets/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/virtualNetworks/subnets/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/virtualNetworks/subnets/deploy.bicep b/modules/Microsoft.Network/virtualNetworks/subnets/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/virtualNetworks/subnets/deploy.bicep rename to modules/Microsoft.Network/virtualNetworks/subnets/deploy.bicep diff --git a/arm/Microsoft.Network/virtualNetworks/subnets/readme.md b/modules/Microsoft.Network/virtualNetworks/subnets/readme.md similarity index 100% rename from arm/Microsoft.Network/virtualNetworks/subnets/readme.md rename to modules/Microsoft.Network/virtualNetworks/subnets/readme.md diff --git a/arm/Microsoft.Network/virtualNetworks/subnets/version.json b/modules/Microsoft.Network/virtualNetworks/subnets/version.json similarity index 100% rename from arm/Microsoft.Network/virtualNetworks/subnets/version.json rename to modules/Microsoft.Network/virtualNetworks/subnets/version.json diff --git a/arm/Microsoft.Network/virtualNetworks/version.json b/modules/Microsoft.Network/virtualNetworks/version.json similarity index 100% rename from arm/Microsoft.Network/virtualNetworks/version.json rename to modules/Microsoft.Network/virtualNetworks/version.json diff --git a/arm/Microsoft.Network/virtualNetworks/virtualNetworkPeerings/deploy.bicep b/modules/Microsoft.Network/virtualNetworks/virtualNetworkPeerings/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/virtualNetworks/virtualNetworkPeerings/deploy.bicep rename to modules/Microsoft.Network/virtualNetworks/virtualNetworkPeerings/deploy.bicep diff --git a/arm/Microsoft.Network/virtualNetworks/virtualNetworkPeerings/readme.md b/modules/Microsoft.Network/virtualNetworks/virtualNetworkPeerings/readme.md similarity index 100% rename from arm/Microsoft.Network/virtualNetworks/virtualNetworkPeerings/readme.md rename to modules/Microsoft.Network/virtualNetworks/virtualNetworkPeerings/readme.md diff --git a/arm/Microsoft.Network/virtualNetworks/virtualNetworkPeerings/version.json b/modules/Microsoft.Network/virtualNetworks/virtualNetworkPeerings/version.json similarity index 100% rename from arm/Microsoft.Network/virtualNetworks/virtualNetworkPeerings/version.json rename to modules/Microsoft.Network/virtualNetworks/virtualNetworkPeerings/version.json diff --git a/arm/Microsoft.Network/virtualWans/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/virtualWans/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/virtualWans/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/virtualWans/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/virtualWans/.parameters/min.parameters.json b/modules/Microsoft.Network/virtualWans/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.Network/virtualWans/.parameters/min.parameters.json rename to modules/Microsoft.Network/virtualWans/.parameters/min.parameters.json diff --git a/arm/Microsoft.Network/virtualWans/.parameters/parameters.json b/modules/Microsoft.Network/virtualWans/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/virtualWans/.parameters/parameters.json rename to modules/Microsoft.Network/virtualWans/.parameters/parameters.json diff --git a/arm/Microsoft.Network/virtualWans/deploy.bicep b/modules/Microsoft.Network/virtualWans/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/virtualWans/deploy.bicep rename to modules/Microsoft.Network/virtualWans/deploy.bicep diff --git a/arm/Microsoft.Network/virtualWans/readme.md b/modules/Microsoft.Network/virtualWans/readme.md similarity index 100% rename from arm/Microsoft.Network/virtualWans/readme.md rename to modules/Microsoft.Network/virtualWans/readme.md diff --git a/arm/Microsoft.Network/virtualWans/version.json b/modules/Microsoft.Network/virtualWans/version.json similarity index 100% rename from arm/Microsoft.Network/virtualWans/version.json rename to modules/Microsoft.Network/virtualWans/version.json diff --git a/arm/Microsoft.Network/vpnGateways/.parameters/min.parameters.json b/modules/Microsoft.Network/vpnGateways/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.Network/vpnGateways/.parameters/min.parameters.json rename to modules/Microsoft.Network/vpnGateways/.parameters/min.parameters.json diff --git a/arm/Microsoft.Network/vpnGateways/.parameters/parameters.json b/modules/Microsoft.Network/vpnGateways/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/vpnGateways/.parameters/parameters.json rename to modules/Microsoft.Network/vpnGateways/.parameters/parameters.json diff --git a/arm/Microsoft.Network/vpnGateways/connections/deploy.bicep b/modules/Microsoft.Network/vpnGateways/connections/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/vpnGateways/connections/deploy.bicep rename to modules/Microsoft.Network/vpnGateways/connections/deploy.bicep diff --git a/arm/Microsoft.Network/vpnGateways/connections/readme.md b/modules/Microsoft.Network/vpnGateways/connections/readme.md similarity index 100% rename from arm/Microsoft.Network/vpnGateways/connections/readme.md rename to modules/Microsoft.Network/vpnGateways/connections/readme.md diff --git a/arm/Microsoft.Network/vpnGateways/connections/version.json b/modules/Microsoft.Network/vpnGateways/connections/version.json similarity index 100% rename from arm/Microsoft.Network/vpnGateways/connections/version.json rename to modules/Microsoft.Network/vpnGateways/connections/version.json diff --git a/arm/Microsoft.Network/vpnGateways/deploy.bicep b/modules/Microsoft.Network/vpnGateways/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/vpnGateways/deploy.bicep rename to modules/Microsoft.Network/vpnGateways/deploy.bicep diff --git a/arm/Microsoft.Network/vpnGateways/natRules/deploy.bicep b/modules/Microsoft.Network/vpnGateways/natRules/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/vpnGateways/natRules/deploy.bicep rename to modules/Microsoft.Network/vpnGateways/natRules/deploy.bicep diff --git a/arm/Microsoft.Network/vpnGateways/natRules/readme.md b/modules/Microsoft.Network/vpnGateways/natRules/readme.md similarity index 100% rename from arm/Microsoft.Network/vpnGateways/natRules/readme.md rename to modules/Microsoft.Network/vpnGateways/natRules/readme.md diff --git a/arm/Microsoft.Network/vpnGateways/natRules/version.json b/modules/Microsoft.Network/vpnGateways/natRules/version.json similarity index 100% rename from arm/Microsoft.Network/vpnGateways/natRules/version.json rename to modules/Microsoft.Network/vpnGateways/natRules/version.json diff --git a/arm/Microsoft.Network/vpnGateways/readme.md b/modules/Microsoft.Network/vpnGateways/readme.md similarity index 100% rename from arm/Microsoft.Network/vpnGateways/readme.md rename to modules/Microsoft.Network/vpnGateways/readme.md diff --git a/arm/Microsoft.Network/vpnGateways/version.json b/modules/Microsoft.Network/vpnGateways/version.json similarity index 100% rename from arm/Microsoft.Network/vpnGateways/version.json rename to modules/Microsoft.Network/vpnGateways/version.json diff --git a/arm/Microsoft.Network/vpnSites/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Network/vpnSites/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/vpnSites/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Network/vpnSites/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/vpnSites/.parameters/min.parameters.json b/modules/Microsoft.Network/vpnSites/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.Network/vpnSites/.parameters/min.parameters.json rename to modules/Microsoft.Network/vpnSites/.parameters/min.parameters.json diff --git a/arm/Microsoft.Network/vpnSites/.parameters/parameters.json b/modules/Microsoft.Network/vpnSites/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Network/vpnSites/.parameters/parameters.json rename to modules/Microsoft.Network/vpnSites/.parameters/parameters.json diff --git a/arm/Microsoft.Network/vpnSites/deploy.bicep b/modules/Microsoft.Network/vpnSites/deploy.bicep similarity index 100% rename from arm/Microsoft.Network/vpnSites/deploy.bicep rename to modules/Microsoft.Network/vpnSites/deploy.bicep diff --git a/arm/Microsoft.Network/vpnSites/readme.md b/modules/Microsoft.Network/vpnSites/readme.md similarity index 100% rename from arm/Microsoft.Network/vpnSites/readme.md rename to modules/Microsoft.Network/vpnSites/readme.md diff --git a/arm/Microsoft.Network/vpnSites/version.json b/modules/Microsoft.Network/vpnSites/version.json similarity index 100% rename from arm/Microsoft.Network/vpnSites/version.json rename to modules/Microsoft.Network/vpnSites/version.json diff --git a/arm/Microsoft.OperationalInsights/workspaces/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.OperationalInsights/workspaces/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.OperationalInsights/workspaces/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.OperationalInsights/workspaces/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.OperationalInsights/workspaces/.parameters/min.parameters.json b/modules/Microsoft.OperationalInsights/workspaces/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.OperationalInsights/workspaces/.parameters/min.parameters.json rename to modules/Microsoft.OperationalInsights/workspaces/.parameters/min.parameters.json diff --git a/arm/Microsoft.OperationalInsights/workspaces/.parameters/parameters.json b/modules/Microsoft.OperationalInsights/workspaces/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.OperationalInsights/workspaces/.parameters/parameters.json rename to modules/Microsoft.OperationalInsights/workspaces/.parameters/parameters.json diff --git a/arm/Microsoft.OperationalInsights/workspaces/dataSources/deploy.bicep b/modules/Microsoft.OperationalInsights/workspaces/dataSources/deploy.bicep similarity index 100% rename from arm/Microsoft.OperationalInsights/workspaces/dataSources/deploy.bicep rename to modules/Microsoft.OperationalInsights/workspaces/dataSources/deploy.bicep diff --git a/arm/Microsoft.OperationalInsights/workspaces/dataSources/readme.md b/modules/Microsoft.OperationalInsights/workspaces/dataSources/readme.md similarity index 100% rename from arm/Microsoft.OperationalInsights/workspaces/dataSources/readme.md rename to modules/Microsoft.OperationalInsights/workspaces/dataSources/readme.md diff --git a/arm/Microsoft.OperationalInsights/workspaces/dataSources/version.json b/modules/Microsoft.OperationalInsights/workspaces/dataSources/version.json similarity index 100% rename from arm/Microsoft.OperationalInsights/workspaces/dataSources/version.json rename to modules/Microsoft.OperationalInsights/workspaces/dataSources/version.json diff --git a/arm/Microsoft.OperationalInsights/workspaces/deploy.bicep b/modules/Microsoft.OperationalInsights/workspaces/deploy.bicep similarity index 100% rename from arm/Microsoft.OperationalInsights/workspaces/deploy.bicep rename to modules/Microsoft.OperationalInsights/workspaces/deploy.bicep diff --git a/arm/Microsoft.OperationalInsights/workspaces/linkedServices/deploy.bicep b/modules/Microsoft.OperationalInsights/workspaces/linkedServices/deploy.bicep similarity index 100% rename from arm/Microsoft.OperationalInsights/workspaces/linkedServices/deploy.bicep rename to modules/Microsoft.OperationalInsights/workspaces/linkedServices/deploy.bicep diff --git a/arm/Microsoft.OperationalInsights/workspaces/linkedServices/readme.md b/modules/Microsoft.OperationalInsights/workspaces/linkedServices/readme.md similarity index 100% rename from arm/Microsoft.OperationalInsights/workspaces/linkedServices/readme.md rename to modules/Microsoft.OperationalInsights/workspaces/linkedServices/readme.md diff --git a/arm/Microsoft.OperationalInsights/workspaces/linkedServices/version.json b/modules/Microsoft.OperationalInsights/workspaces/linkedServices/version.json similarity index 100% rename from arm/Microsoft.OperationalInsights/workspaces/linkedServices/version.json rename to modules/Microsoft.OperationalInsights/workspaces/linkedServices/version.json diff --git a/arm/Microsoft.OperationalInsights/workspaces/readme.md b/modules/Microsoft.OperationalInsights/workspaces/readme.md similarity index 100% rename from arm/Microsoft.OperationalInsights/workspaces/readme.md rename to modules/Microsoft.OperationalInsights/workspaces/readme.md diff --git a/arm/Microsoft.OperationalInsights/workspaces/savedSearches/deploy.bicep b/modules/Microsoft.OperationalInsights/workspaces/savedSearches/deploy.bicep similarity index 100% rename from arm/Microsoft.OperationalInsights/workspaces/savedSearches/deploy.bicep rename to modules/Microsoft.OperationalInsights/workspaces/savedSearches/deploy.bicep diff --git a/arm/Microsoft.OperationalInsights/workspaces/savedSearches/readme.md b/modules/Microsoft.OperationalInsights/workspaces/savedSearches/readme.md similarity index 100% rename from arm/Microsoft.OperationalInsights/workspaces/savedSearches/readme.md rename to modules/Microsoft.OperationalInsights/workspaces/savedSearches/readme.md diff --git a/arm/Microsoft.OperationalInsights/workspaces/savedSearches/version.json b/modules/Microsoft.OperationalInsights/workspaces/savedSearches/version.json similarity index 100% rename from arm/Microsoft.OperationalInsights/workspaces/savedSearches/version.json rename to modules/Microsoft.OperationalInsights/workspaces/savedSearches/version.json diff --git a/arm/Microsoft.OperationalInsights/workspaces/storageInsightConfigs/deploy.bicep b/modules/Microsoft.OperationalInsights/workspaces/storageInsightConfigs/deploy.bicep similarity index 100% rename from arm/Microsoft.OperationalInsights/workspaces/storageInsightConfigs/deploy.bicep rename to modules/Microsoft.OperationalInsights/workspaces/storageInsightConfigs/deploy.bicep diff --git a/arm/Microsoft.OperationalInsights/workspaces/storageInsightConfigs/readme.md b/modules/Microsoft.OperationalInsights/workspaces/storageInsightConfigs/readme.md similarity index 100% rename from arm/Microsoft.OperationalInsights/workspaces/storageInsightConfigs/readme.md rename to modules/Microsoft.OperationalInsights/workspaces/storageInsightConfigs/readme.md diff --git a/arm/Microsoft.OperationalInsights/workspaces/storageInsightConfigs/version.json b/modules/Microsoft.OperationalInsights/workspaces/storageInsightConfigs/version.json similarity index 100% rename from arm/Microsoft.OperationalInsights/workspaces/storageInsightConfigs/version.json rename to modules/Microsoft.OperationalInsights/workspaces/storageInsightConfigs/version.json diff --git a/arm/Microsoft.OperationalInsights/workspaces/version.json b/modules/Microsoft.OperationalInsights/workspaces/version.json similarity index 100% rename from arm/Microsoft.OperationalInsights/workspaces/version.json rename to modules/Microsoft.OperationalInsights/workspaces/version.json diff --git a/arm/Microsoft.OperationsManagement/solutions/.parameters/min.parameters.json b/modules/Microsoft.OperationsManagement/solutions/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.OperationsManagement/solutions/.parameters/min.parameters.json rename to modules/Microsoft.OperationsManagement/solutions/.parameters/min.parameters.json diff --git a/arm/Microsoft.OperationsManagement/solutions/.parameters/ms.parameters.json b/modules/Microsoft.OperationsManagement/solutions/.parameters/ms.parameters.json similarity index 100% rename from arm/Microsoft.OperationsManagement/solutions/.parameters/ms.parameters.json rename to modules/Microsoft.OperationsManagement/solutions/.parameters/ms.parameters.json diff --git a/arm/Microsoft.OperationsManagement/solutions/.parameters/nonms.parameters.json b/modules/Microsoft.OperationsManagement/solutions/.parameters/nonms.parameters.json similarity index 100% rename from arm/Microsoft.OperationsManagement/solutions/.parameters/nonms.parameters.json rename to modules/Microsoft.OperationsManagement/solutions/.parameters/nonms.parameters.json diff --git a/arm/Microsoft.OperationsManagement/solutions/deploy.bicep b/modules/Microsoft.OperationsManagement/solutions/deploy.bicep similarity index 100% rename from arm/Microsoft.OperationsManagement/solutions/deploy.bicep rename to modules/Microsoft.OperationsManagement/solutions/deploy.bicep diff --git a/arm/Microsoft.OperationsManagement/solutions/readme.md b/modules/Microsoft.OperationsManagement/solutions/readme.md similarity index 100% rename from arm/Microsoft.OperationsManagement/solutions/readme.md rename to modules/Microsoft.OperationsManagement/solutions/readme.md diff --git a/arm/Microsoft.OperationsManagement/solutions/version.json b/modules/Microsoft.OperationsManagement/solutions/version.json similarity index 100% rename from arm/Microsoft.OperationsManagement/solutions/version.json rename to modules/Microsoft.OperationsManagement/solutions/version.json diff --git a/arm/Microsoft.RecoveryServices/vaults/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.RecoveryServices/vaults/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.RecoveryServices/vaults/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.RecoveryServices/vaults/.parameters/dr.parameters.json b/modules/Microsoft.RecoveryServices/vaults/.parameters/dr.parameters.json similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/.parameters/dr.parameters.json rename to modules/Microsoft.RecoveryServices/vaults/.parameters/dr.parameters.json diff --git a/arm/Microsoft.RecoveryServices/vaults/.parameters/min.parameters.json b/modules/Microsoft.RecoveryServices/vaults/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/.parameters/min.parameters.json rename to modules/Microsoft.RecoveryServices/vaults/.parameters/min.parameters.json diff --git a/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json b/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json rename to modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json diff --git a/arm/Microsoft.RecoveryServices/vaults/backupConfig/deploy.bicep b/modules/Microsoft.RecoveryServices/vaults/backupConfig/deploy.bicep similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/backupConfig/deploy.bicep rename to modules/Microsoft.RecoveryServices/vaults/backupConfig/deploy.bicep diff --git a/arm/Microsoft.RecoveryServices/vaults/backupConfig/readme.md b/modules/Microsoft.RecoveryServices/vaults/backupConfig/readme.md similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/backupConfig/readme.md rename to modules/Microsoft.RecoveryServices/vaults/backupConfig/readme.md diff --git a/arm/Microsoft.RecoveryServices/vaults/backupConfig/version.json b/modules/Microsoft.RecoveryServices/vaults/backupConfig/version.json similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/backupConfig/version.json rename to modules/Microsoft.RecoveryServices/vaults/backupConfig/version.json diff --git a/arm/Microsoft.RecoveryServices/vaults/backupPolicies/deploy.bicep b/modules/Microsoft.RecoveryServices/vaults/backupPolicies/deploy.bicep similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/backupPolicies/deploy.bicep rename to modules/Microsoft.RecoveryServices/vaults/backupPolicies/deploy.bicep diff --git a/arm/Microsoft.RecoveryServices/vaults/backupPolicies/readme.md b/modules/Microsoft.RecoveryServices/vaults/backupPolicies/readme.md similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/backupPolicies/readme.md rename to modules/Microsoft.RecoveryServices/vaults/backupPolicies/readme.md diff --git a/arm/Microsoft.RecoveryServices/vaults/backupPolicies/version.json b/modules/Microsoft.RecoveryServices/vaults/backupPolicies/version.json similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/backupPolicies/version.json rename to modules/Microsoft.RecoveryServices/vaults/backupPolicies/version.json diff --git a/arm/Microsoft.RecoveryServices/vaults/backupStorageConfig/deploy.bicep b/modules/Microsoft.RecoveryServices/vaults/backupStorageConfig/deploy.bicep similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/backupStorageConfig/deploy.bicep rename to modules/Microsoft.RecoveryServices/vaults/backupStorageConfig/deploy.bicep diff --git a/arm/Microsoft.RecoveryServices/vaults/backupStorageConfig/readme.md b/modules/Microsoft.RecoveryServices/vaults/backupStorageConfig/readme.md similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/backupStorageConfig/readme.md rename to modules/Microsoft.RecoveryServices/vaults/backupStorageConfig/readme.md diff --git a/arm/Microsoft.RecoveryServices/vaults/backupStorageConfig/version.json b/modules/Microsoft.RecoveryServices/vaults/backupStorageConfig/version.json similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/backupStorageConfig/version.json rename to modules/Microsoft.RecoveryServices/vaults/backupStorageConfig/version.json diff --git a/arm/Microsoft.RecoveryServices/vaults/deploy.bicep b/modules/Microsoft.RecoveryServices/vaults/deploy.bicep similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/deploy.bicep rename to modules/Microsoft.RecoveryServices/vaults/deploy.bicep diff --git a/arm/Microsoft.RecoveryServices/vaults/protectionContainers/deploy.bicep b/modules/Microsoft.RecoveryServices/vaults/protectionContainers/deploy.bicep similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/protectionContainers/deploy.bicep rename to modules/Microsoft.RecoveryServices/vaults/protectionContainers/deploy.bicep diff --git a/arm/Microsoft.RecoveryServices/vaults/protectionContainers/protectedItems/deploy.bicep b/modules/Microsoft.RecoveryServices/vaults/protectionContainers/protectedItems/deploy.bicep similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/protectionContainers/protectedItems/deploy.bicep rename to modules/Microsoft.RecoveryServices/vaults/protectionContainers/protectedItems/deploy.bicep diff --git a/arm/Microsoft.RecoveryServices/vaults/protectionContainers/protectedItems/readme.md b/modules/Microsoft.RecoveryServices/vaults/protectionContainers/protectedItems/readme.md similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/protectionContainers/protectedItems/readme.md rename to modules/Microsoft.RecoveryServices/vaults/protectionContainers/protectedItems/readme.md diff --git a/arm/Microsoft.RecoveryServices/vaults/protectionContainers/protectedItems/version.json b/modules/Microsoft.RecoveryServices/vaults/protectionContainers/protectedItems/version.json similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/protectionContainers/protectedItems/version.json rename to modules/Microsoft.RecoveryServices/vaults/protectionContainers/protectedItems/version.json diff --git a/arm/Microsoft.RecoveryServices/vaults/protectionContainers/readme.md b/modules/Microsoft.RecoveryServices/vaults/protectionContainers/readme.md similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/protectionContainers/readme.md rename to modules/Microsoft.RecoveryServices/vaults/protectionContainers/readme.md diff --git a/arm/Microsoft.RecoveryServices/vaults/protectionContainers/version.json b/modules/Microsoft.RecoveryServices/vaults/protectionContainers/version.json similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/protectionContainers/version.json rename to modules/Microsoft.RecoveryServices/vaults/protectionContainers/version.json diff --git a/arm/Microsoft.RecoveryServices/vaults/readme.md b/modules/Microsoft.RecoveryServices/vaults/readme.md similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/readme.md rename to modules/Microsoft.RecoveryServices/vaults/readme.md diff --git a/arm/Microsoft.RecoveryServices/vaults/replicationFabrics/deploy.bicep b/modules/Microsoft.RecoveryServices/vaults/replicationFabrics/deploy.bicep similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/replicationFabrics/deploy.bicep rename to modules/Microsoft.RecoveryServices/vaults/replicationFabrics/deploy.bicep diff --git a/arm/Microsoft.RecoveryServices/vaults/replicationFabrics/readme.md b/modules/Microsoft.RecoveryServices/vaults/replicationFabrics/readme.md similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/replicationFabrics/readme.md rename to modules/Microsoft.RecoveryServices/vaults/replicationFabrics/readme.md diff --git a/arm/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/deploy.bicep b/modules/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/deploy.bicep similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/deploy.bicep rename to modules/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/deploy.bicep diff --git a/arm/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/readme.md b/modules/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/readme.md similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/readme.md rename to modules/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/readme.md diff --git a/arm/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/deploy.bicep b/modules/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/deploy.bicep similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/deploy.bicep rename to modules/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/deploy.bicep diff --git a/arm/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/readme.md b/modules/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/readme.md similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/readme.md rename to modules/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/readme.md diff --git a/arm/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/version.json b/modules/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/version.json similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/version.json rename to modules/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/version.json diff --git a/arm/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/version.json b/modules/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/version.json similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/version.json rename to modules/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/version.json diff --git a/arm/Microsoft.RecoveryServices/vaults/replicationFabrics/version.json b/modules/Microsoft.RecoveryServices/vaults/replicationFabrics/version.json similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/replicationFabrics/version.json rename to modules/Microsoft.RecoveryServices/vaults/replicationFabrics/version.json diff --git a/arm/Microsoft.RecoveryServices/vaults/replicationPolicies/deploy.bicep b/modules/Microsoft.RecoveryServices/vaults/replicationPolicies/deploy.bicep similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/replicationPolicies/deploy.bicep rename to modules/Microsoft.RecoveryServices/vaults/replicationPolicies/deploy.bicep diff --git a/arm/Microsoft.RecoveryServices/vaults/replicationPolicies/readme.md b/modules/Microsoft.RecoveryServices/vaults/replicationPolicies/readme.md similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/replicationPolicies/readme.md rename to modules/Microsoft.RecoveryServices/vaults/replicationPolicies/readme.md diff --git a/arm/Microsoft.RecoveryServices/vaults/replicationPolicies/version.json b/modules/Microsoft.RecoveryServices/vaults/replicationPolicies/version.json similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/replicationPolicies/version.json rename to modules/Microsoft.RecoveryServices/vaults/replicationPolicies/version.json diff --git a/arm/Microsoft.RecoveryServices/vaults/version.json b/modules/Microsoft.RecoveryServices/vaults/version.json similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/version.json rename to modules/Microsoft.RecoveryServices/vaults/version.json diff --git a/arm/Microsoft.Resources/deploymentScripts/.parameters/cli.parameters.json b/modules/Microsoft.Resources/deploymentScripts/.parameters/cli.parameters.json similarity index 100% rename from arm/Microsoft.Resources/deploymentScripts/.parameters/cli.parameters.json rename to modules/Microsoft.Resources/deploymentScripts/.parameters/cli.parameters.json diff --git a/arm/Microsoft.Resources/deploymentScripts/.parameters/ps.parameters.json b/modules/Microsoft.Resources/deploymentScripts/.parameters/ps.parameters.json similarity index 100% rename from arm/Microsoft.Resources/deploymentScripts/.parameters/ps.parameters.json rename to modules/Microsoft.Resources/deploymentScripts/.parameters/ps.parameters.json diff --git a/arm/Microsoft.Resources/deploymentScripts/deploy.bicep b/modules/Microsoft.Resources/deploymentScripts/deploy.bicep similarity index 100% rename from arm/Microsoft.Resources/deploymentScripts/deploy.bicep rename to modules/Microsoft.Resources/deploymentScripts/deploy.bicep diff --git a/arm/Microsoft.Resources/deploymentScripts/readme.md b/modules/Microsoft.Resources/deploymentScripts/readme.md similarity index 100% rename from arm/Microsoft.Resources/deploymentScripts/readme.md rename to modules/Microsoft.Resources/deploymentScripts/readme.md diff --git a/arm/Microsoft.Resources/deploymentScripts/version.json b/modules/Microsoft.Resources/deploymentScripts/version.json similarity index 100% rename from arm/Microsoft.Resources/deploymentScripts/version.json rename to modules/Microsoft.Resources/deploymentScripts/version.json diff --git a/arm/Microsoft.Resources/resourceGroups/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Resources/resourceGroups/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Resources/resourceGroups/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Resources/resourceGroups/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Resources/resourceGroups/.parameters/parameters.json b/modules/Microsoft.Resources/resourceGroups/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Resources/resourceGroups/.parameters/parameters.json rename to modules/Microsoft.Resources/resourceGroups/.parameters/parameters.json diff --git a/arm/Microsoft.Resources/resourceGroups/deploy.bicep b/modules/Microsoft.Resources/resourceGroups/deploy.bicep similarity index 100% rename from arm/Microsoft.Resources/resourceGroups/deploy.bicep rename to modules/Microsoft.Resources/resourceGroups/deploy.bicep diff --git a/arm/Microsoft.Resources/resourceGroups/readme.md b/modules/Microsoft.Resources/resourceGroups/readme.md similarity index 100% rename from arm/Microsoft.Resources/resourceGroups/readme.md rename to modules/Microsoft.Resources/resourceGroups/readme.md diff --git a/arm/Microsoft.Resources/resourceGroups/version.json b/modules/Microsoft.Resources/resourceGroups/version.json similarity index 100% rename from arm/Microsoft.Resources/resourceGroups/version.json rename to modules/Microsoft.Resources/resourceGroups/version.json diff --git a/arm/Microsoft.Resources/tags/.parameters/min.parameters.json b/modules/Microsoft.Resources/tags/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.Resources/tags/.parameters/min.parameters.json rename to modules/Microsoft.Resources/tags/.parameters/min.parameters.json diff --git a/arm/Microsoft.Resources/tags/.parameters/rg.parameters.json b/modules/Microsoft.Resources/tags/.parameters/rg.parameters.json similarity index 100% rename from arm/Microsoft.Resources/tags/.parameters/rg.parameters.json rename to modules/Microsoft.Resources/tags/.parameters/rg.parameters.json diff --git a/arm/Microsoft.Resources/tags/.parameters/sub.parameters.json b/modules/Microsoft.Resources/tags/.parameters/sub.parameters.json similarity index 100% rename from arm/Microsoft.Resources/tags/.parameters/sub.parameters.json rename to modules/Microsoft.Resources/tags/.parameters/sub.parameters.json diff --git a/arm/Microsoft.Resources/tags/deploy.bicep b/modules/Microsoft.Resources/tags/deploy.bicep similarity index 100% rename from arm/Microsoft.Resources/tags/deploy.bicep rename to modules/Microsoft.Resources/tags/deploy.bicep diff --git a/arm/Microsoft.Resources/tags/readme.md b/modules/Microsoft.Resources/tags/readme.md similarity index 100% rename from arm/Microsoft.Resources/tags/readme.md rename to modules/Microsoft.Resources/tags/readme.md diff --git a/arm/Microsoft.Resources/tags/resourceGroups/.bicep/readTags.bicep b/modules/Microsoft.Resources/tags/resourceGroups/.bicep/readTags.bicep similarity index 100% rename from arm/Microsoft.Resources/tags/resourceGroups/.bicep/readTags.bicep rename to modules/Microsoft.Resources/tags/resourceGroups/.bicep/readTags.bicep diff --git a/arm/Microsoft.Resources/tags/resourceGroups/deploy.bicep b/modules/Microsoft.Resources/tags/resourceGroups/deploy.bicep similarity index 100% rename from arm/Microsoft.Resources/tags/resourceGroups/deploy.bicep rename to modules/Microsoft.Resources/tags/resourceGroups/deploy.bicep diff --git a/arm/Microsoft.Resources/tags/resourceGroups/readme.md b/modules/Microsoft.Resources/tags/resourceGroups/readme.md similarity index 100% rename from arm/Microsoft.Resources/tags/resourceGroups/readme.md rename to modules/Microsoft.Resources/tags/resourceGroups/readme.md diff --git a/arm/Microsoft.Resources/tags/resourceGroups/version.json b/modules/Microsoft.Resources/tags/resourceGroups/version.json similarity index 100% rename from arm/Microsoft.Resources/tags/resourceGroups/version.json rename to modules/Microsoft.Resources/tags/resourceGroups/version.json diff --git a/arm/Microsoft.Resources/tags/subscriptions/.bicep/readTags.bicep b/modules/Microsoft.Resources/tags/subscriptions/.bicep/readTags.bicep similarity index 100% rename from arm/Microsoft.Resources/tags/subscriptions/.bicep/readTags.bicep rename to modules/Microsoft.Resources/tags/subscriptions/.bicep/readTags.bicep diff --git a/arm/Microsoft.Resources/tags/subscriptions/deploy.bicep b/modules/Microsoft.Resources/tags/subscriptions/deploy.bicep similarity index 100% rename from arm/Microsoft.Resources/tags/subscriptions/deploy.bicep rename to modules/Microsoft.Resources/tags/subscriptions/deploy.bicep diff --git a/arm/Microsoft.Resources/tags/subscriptions/readme.md b/modules/Microsoft.Resources/tags/subscriptions/readme.md similarity index 100% rename from arm/Microsoft.Resources/tags/subscriptions/readme.md rename to modules/Microsoft.Resources/tags/subscriptions/readme.md diff --git a/arm/Microsoft.Resources/tags/subscriptions/version.json b/modules/Microsoft.Resources/tags/subscriptions/version.json similarity index 100% rename from arm/Microsoft.Resources/tags/subscriptions/version.json rename to modules/Microsoft.Resources/tags/subscriptions/version.json diff --git a/arm/Microsoft.Resources/tags/version.json b/modules/Microsoft.Resources/tags/version.json similarity index 100% rename from arm/Microsoft.Resources/tags/version.json rename to modules/Microsoft.Resources/tags/version.json diff --git a/arm/Microsoft.Security/azureSecurityCenter/.bicep/nested_iotSecuritySolutions.bicep b/modules/Microsoft.Security/azureSecurityCenter/.bicep/nested_iotSecuritySolutions.bicep similarity index 100% rename from arm/Microsoft.Security/azureSecurityCenter/.bicep/nested_iotSecuritySolutions.bicep rename to modules/Microsoft.Security/azureSecurityCenter/.bicep/nested_iotSecuritySolutions.bicep diff --git a/arm/Microsoft.Security/azureSecurityCenter/.parameters/parameters.json b/modules/Microsoft.Security/azureSecurityCenter/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Security/azureSecurityCenter/.parameters/parameters.json rename to modules/Microsoft.Security/azureSecurityCenter/.parameters/parameters.json diff --git a/arm/Microsoft.Security/azureSecurityCenter/deploy.bicep b/modules/Microsoft.Security/azureSecurityCenter/deploy.bicep similarity index 100% rename from arm/Microsoft.Security/azureSecurityCenter/deploy.bicep rename to modules/Microsoft.Security/azureSecurityCenter/deploy.bicep diff --git a/arm/Microsoft.Security/azureSecurityCenter/readme.md b/modules/Microsoft.Security/azureSecurityCenter/readme.md similarity index 100% rename from arm/Microsoft.Security/azureSecurityCenter/readme.md rename to modules/Microsoft.Security/azureSecurityCenter/readme.md diff --git a/arm/Microsoft.Security/azureSecurityCenter/version.json b/modules/Microsoft.Security/azureSecurityCenter/version.json similarity index 100% rename from arm/Microsoft.Security/azureSecurityCenter/version.json rename to modules/Microsoft.Security/azureSecurityCenter/version.json diff --git a/arm/Microsoft.ServiceBus/namespaces/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.ServiceBus/namespaces/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.ServiceBus/namespaces/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.ServiceBus/namespaces/.parameters/min.parameters.json b/modules/Microsoft.ServiceBus/namespaces/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/.parameters/min.parameters.json rename to modules/Microsoft.ServiceBus/namespaces/.parameters/min.parameters.json diff --git a/arm/Microsoft.ServiceBus/namespaces/.parameters/parameters.json b/modules/Microsoft.ServiceBus/namespaces/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/.parameters/parameters.json rename to modules/Microsoft.ServiceBus/namespaces/.parameters/parameters.json diff --git a/arm/Microsoft.ServiceBus/namespaces/authorizationRules/deploy.bicep b/modules/Microsoft.ServiceBus/namespaces/authorizationRules/deploy.bicep similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/authorizationRules/deploy.bicep rename to modules/Microsoft.ServiceBus/namespaces/authorizationRules/deploy.bicep diff --git a/arm/Microsoft.ServiceBus/namespaces/authorizationRules/readme.md b/modules/Microsoft.ServiceBus/namespaces/authorizationRules/readme.md similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/authorizationRules/readme.md rename to modules/Microsoft.ServiceBus/namespaces/authorizationRules/readme.md diff --git a/arm/Microsoft.ServiceBus/namespaces/authorizationRules/version.json b/modules/Microsoft.ServiceBus/namespaces/authorizationRules/version.json similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/authorizationRules/version.json rename to modules/Microsoft.ServiceBus/namespaces/authorizationRules/version.json diff --git a/arm/Microsoft.ServiceBus/namespaces/deploy.bicep b/modules/Microsoft.ServiceBus/namespaces/deploy.bicep similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/deploy.bicep rename to modules/Microsoft.ServiceBus/namespaces/deploy.bicep diff --git a/arm/Microsoft.ServiceBus/namespaces/disasterRecoveryConfigs/deploy.bicep b/modules/Microsoft.ServiceBus/namespaces/disasterRecoveryConfigs/deploy.bicep similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/disasterRecoveryConfigs/deploy.bicep rename to modules/Microsoft.ServiceBus/namespaces/disasterRecoveryConfigs/deploy.bicep diff --git a/arm/Microsoft.ServiceBus/namespaces/disasterRecoveryConfigs/readme.md b/modules/Microsoft.ServiceBus/namespaces/disasterRecoveryConfigs/readme.md similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/disasterRecoveryConfigs/readme.md rename to modules/Microsoft.ServiceBus/namespaces/disasterRecoveryConfigs/readme.md diff --git a/arm/Microsoft.ServiceBus/namespaces/disasterRecoveryConfigs/version.json b/modules/Microsoft.ServiceBus/namespaces/disasterRecoveryConfigs/version.json similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/disasterRecoveryConfigs/version.json rename to modules/Microsoft.ServiceBus/namespaces/disasterRecoveryConfigs/version.json diff --git a/arm/Microsoft.ServiceBus/namespaces/ipFilterRules/deploy.bicep b/modules/Microsoft.ServiceBus/namespaces/ipFilterRules/deploy.bicep similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/ipFilterRules/deploy.bicep rename to modules/Microsoft.ServiceBus/namespaces/ipFilterRules/deploy.bicep diff --git a/arm/Microsoft.ServiceBus/namespaces/ipFilterRules/readme.md b/modules/Microsoft.ServiceBus/namespaces/ipFilterRules/readme.md similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/ipFilterRules/readme.md rename to modules/Microsoft.ServiceBus/namespaces/ipFilterRules/readme.md diff --git a/arm/Microsoft.ServiceBus/namespaces/ipFilterRules/version.json b/modules/Microsoft.ServiceBus/namespaces/ipFilterRules/version.json similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/ipFilterRules/version.json rename to modules/Microsoft.ServiceBus/namespaces/ipFilterRules/version.json diff --git a/arm/Microsoft.ServiceBus/namespaces/migrationConfigurations/deploy.bicep b/modules/Microsoft.ServiceBus/namespaces/migrationConfigurations/deploy.bicep similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/migrationConfigurations/deploy.bicep rename to modules/Microsoft.ServiceBus/namespaces/migrationConfigurations/deploy.bicep diff --git a/arm/Microsoft.ServiceBus/namespaces/migrationConfigurations/readme.md b/modules/Microsoft.ServiceBus/namespaces/migrationConfigurations/readme.md similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/migrationConfigurations/readme.md rename to modules/Microsoft.ServiceBus/namespaces/migrationConfigurations/readme.md diff --git a/arm/Microsoft.ServiceBus/namespaces/migrationConfigurations/version.json b/modules/Microsoft.ServiceBus/namespaces/migrationConfigurations/version.json similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/migrationConfigurations/version.json rename to modules/Microsoft.ServiceBus/namespaces/migrationConfigurations/version.json diff --git a/arm/Microsoft.ServiceBus/namespaces/queues/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.ServiceBus/namespaces/queues/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/queues/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.ServiceBus/namespaces/queues/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.ServiceBus/namespaces/queues/authorizationRules/deploy.bicep b/modules/Microsoft.ServiceBus/namespaces/queues/authorizationRules/deploy.bicep similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/queues/authorizationRules/deploy.bicep rename to modules/Microsoft.ServiceBus/namespaces/queues/authorizationRules/deploy.bicep diff --git a/arm/Microsoft.ServiceBus/namespaces/queues/authorizationRules/readme.md b/modules/Microsoft.ServiceBus/namespaces/queues/authorizationRules/readme.md similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/queues/authorizationRules/readme.md rename to modules/Microsoft.ServiceBus/namespaces/queues/authorizationRules/readme.md diff --git a/arm/Microsoft.ServiceBus/namespaces/queues/authorizationRules/version.json b/modules/Microsoft.ServiceBus/namespaces/queues/authorizationRules/version.json similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/queues/authorizationRules/version.json rename to modules/Microsoft.ServiceBus/namespaces/queues/authorizationRules/version.json diff --git a/arm/Microsoft.ServiceBus/namespaces/queues/deploy.bicep b/modules/Microsoft.ServiceBus/namespaces/queues/deploy.bicep similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/queues/deploy.bicep rename to modules/Microsoft.ServiceBus/namespaces/queues/deploy.bicep diff --git a/arm/Microsoft.ServiceBus/namespaces/queues/readme.md b/modules/Microsoft.ServiceBus/namespaces/queues/readme.md similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/queues/readme.md rename to modules/Microsoft.ServiceBus/namespaces/queues/readme.md diff --git a/arm/Microsoft.ServiceBus/namespaces/queues/version.json b/modules/Microsoft.ServiceBus/namespaces/queues/version.json similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/queues/version.json rename to modules/Microsoft.ServiceBus/namespaces/queues/version.json diff --git a/arm/Microsoft.ServiceBus/namespaces/readme.md b/modules/Microsoft.ServiceBus/namespaces/readme.md similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/readme.md rename to modules/Microsoft.ServiceBus/namespaces/readme.md diff --git a/arm/Microsoft.ServiceBus/namespaces/topics/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.ServiceBus/namespaces/topics/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/topics/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.ServiceBus/namespaces/topics/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.ServiceBus/namespaces/topics/authorizationRules/deploy.bicep b/modules/Microsoft.ServiceBus/namespaces/topics/authorizationRules/deploy.bicep similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/topics/authorizationRules/deploy.bicep rename to modules/Microsoft.ServiceBus/namespaces/topics/authorizationRules/deploy.bicep diff --git a/arm/Microsoft.ServiceBus/namespaces/topics/authorizationRules/readme.md b/modules/Microsoft.ServiceBus/namespaces/topics/authorizationRules/readme.md similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/topics/authorizationRules/readme.md rename to modules/Microsoft.ServiceBus/namespaces/topics/authorizationRules/readme.md diff --git a/arm/Microsoft.ServiceBus/namespaces/topics/authorizationRules/version.json b/modules/Microsoft.ServiceBus/namespaces/topics/authorizationRules/version.json similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/topics/authorizationRules/version.json rename to modules/Microsoft.ServiceBus/namespaces/topics/authorizationRules/version.json diff --git a/arm/Microsoft.ServiceBus/namespaces/topics/deploy.bicep b/modules/Microsoft.ServiceBus/namespaces/topics/deploy.bicep similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/topics/deploy.bicep rename to modules/Microsoft.ServiceBus/namespaces/topics/deploy.bicep diff --git a/arm/Microsoft.ServiceBus/namespaces/topics/readme.md b/modules/Microsoft.ServiceBus/namespaces/topics/readme.md similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/topics/readme.md rename to modules/Microsoft.ServiceBus/namespaces/topics/readme.md diff --git a/arm/Microsoft.ServiceBus/namespaces/topics/version.json b/modules/Microsoft.ServiceBus/namespaces/topics/version.json similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/topics/version.json rename to modules/Microsoft.ServiceBus/namespaces/topics/version.json diff --git a/arm/Microsoft.ServiceBus/namespaces/version.json b/modules/Microsoft.ServiceBus/namespaces/version.json similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/version.json rename to modules/Microsoft.ServiceBus/namespaces/version.json diff --git a/arm/Microsoft.ServiceBus/namespaces/virtualNetworkRules/deploy.bicep b/modules/Microsoft.ServiceBus/namespaces/virtualNetworkRules/deploy.bicep similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/virtualNetworkRules/deploy.bicep rename to modules/Microsoft.ServiceBus/namespaces/virtualNetworkRules/deploy.bicep diff --git a/arm/Microsoft.ServiceBus/namespaces/virtualNetworkRules/readme.md b/modules/Microsoft.ServiceBus/namespaces/virtualNetworkRules/readme.md similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/virtualNetworkRules/readme.md rename to modules/Microsoft.ServiceBus/namespaces/virtualNetworkRules/readme.md diff --git a/arm/Microsoft.ServiceBus/namespaces/virtualNetworkRules/version.json b/modules/Microsoft.ServiceBus/namespaces/virtualNetworkRules/version.json similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/virtualNetworkRules/version.json rename to modules/Microsoft.ServiceBus/namespaces/virtualNetworkRules/version.json diff --git a/arm/Microsoft.ServiceFabric/clusters/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.ServiceFabric/clusters/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.ServiceFabric/clusters/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.ServiceFabric/clusters/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.ServiceFabric/clusters/.parameters/cert.parameters.json b/modules/Microsoft.ServiceFabric/clusters/.parameters/cert.parameters.json similarity index 100% rename from arm/Microsoft.ServiceFabric/clusters/.parameters/cert.parameters.json rename to modules/Microsoft.ServiceFabric/clusters/.parameters/cert.parameters.json diff --git a/arm/Microsoft.ServiceFabric/clusters/.parameters/full.parameters.json b/modules/Microsoft.ServiceFabric/clusters/.parameters/full.parameters.json similarity index 100% rename from arm/Microsoft.ServiceFabric/clusters/.parameters/full.parameters.json rename to modules/Microsoft.ServiceFabric/clusters/.parameters/full.parameters.json diff --git a/arm/Microsoft.ServiceFabric/clusters/.parameters/min.parameters.json b/modules/Microsoft.ServiceFabric/clusters/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.ServiceFabric/clusters/.parameters/min.parameters.json rename to modules/Microsoft.ServiceFabric/clusters/.parameters/min.parameters.json diff --git a/arm/Microsoft.ServiceFabric/clusters/applicationTypes/deploy.bicep b/modules/Microsoft.ServiceFabric/clusters/applicationTypes/deploy.bicep similarity index 100% rename from arm/Microsoft.ServiceFabric/clusters/applicationTypes/deploy.bicep rename to modules/Microsoft.ServiceFabric/clusters/applicationTypes/deploy.bicep diff --git a/arm/Microsoft.ServiceFabric/clusters/applicationTypes/readme.md b/modules/Microsoft.ServiceFabric/clusters/applicationTypes/readme.md similarity index 100% rename from arm/Microsoft.ServiceFabric/clusters/applicationTypes/readme.md rename to modules/Microsoft.ServiceFabric/clusters/applicationTypes/readme.md diff --git a/arm/Microsoft.ServiceFabric/clusters/applicationTypes/version.json b/modules/Microsoft.ServiceFabric/clusters/applicationTypes/version.json similarity index 100% rename from arm/Microsoft.ServiceFabric/clusters/applicationTypes/version.json rename to modules/Microsoft.ServiceFabric/clusters/applicationTypes/version.json diff --git a/arm/Microsoft.ServiceFabric/clusters/deploy.bicep b/modules/Microsoft.ServiceFabric/clusters/deploy.bicep similarity index 100% rename from arm/Microsoft.ServiceFabric/clusters/deploy.bicep rename to modules/Microsoft.ServiceFabric/clusters/deploy.bicep diff --git a/arm/Microsoft.ServiceFabric/clusters/readme.md b/modules/Microsoft.ServiceFabric/clusters/readme.md similarity index 100% rename from arm/Microsoft.ServiceFabric/clusters/readme.md rename to modules/Microsoft.ServiceFabric/clusters/readme.md diff --git a/arm/Microsoft.ServiceFabric/clusters/version.json b/modules/Microsoft.ServiceFabric/clusters/version.json similarity index 100% rename from arm/Microsoft.ServiceFabric/clusters/version.json rename to modules/Microsoft.ServiceFabric/clusters/version.json diff --git a/arm/Microsoft.Sql/managedInstances/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Sql/managedInstances/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Sql/managedInstances/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Sql/managedInstances/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Sql/managedInstances/.parameters/parameters.json b/modules/Microsoft.Sql/managedInstances/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Sql/managedInstances/.parameters/parameters.json rename to modules/Microsoft.Sql/managedInstances/.parameters/parameters.json diff --git a/arm/Microsoft.Sql/managedInstances/administrators/deploy.bicep b/modules/Microsoft.Sql/managedInstances/administrators/deploy.bicep similarity index 100% rename from arm/Microsoft.Sql/managedInstances/administrators/deploy.bicep rename to modules/Microsoft.Sql/managedInstances/administrators/deploy.bicep diff --git a/arm/Microsoft.Sql/managedInstances/administrators/readme.md b/modules/Microsoft.Sql/managedInstances/administrators/readme.md similarity index 100% rename from arm/Microsoft.Sql/managedInstances/administrators/readme.md rename to modules/Microsoft.Sql/managedInstances/administrators/readme.md diff --git a/arm/Microsoft.Sql/managedInstances/administrators/version.json b/modules/Microsoft.Sql/managedInstances/administrators/version.json similarity index 100% rename from arm/Microsoft.Sql/managedInstances/administrators/version.json rename to modules/Microsoft.Sql/managedInstances/administrators/version.json diff --git a/arm/Microsoft.Sql/managedInstances/databases/backupLongTermRetentionPolicies/deploy.bicep b/modules/Microsoft.Sql/managedInstances/databases/backupLongTermRetentionPolicies/deploy.bicep similarity index 100% rename from arm/Microsoft.Sql/managedInstances/databases/backupLongTermRetentionPolicies/deploy.bicep rename to modules/Microsoft.Sql/managedInstances/databases/backupLongTermRetentionPolicies/deploy.bicep diff --git a/arm/Microsoft.Sql/managedInstances/databases/backupLongTermRetentionPolicies/readme.md b/modules/Microsoft.Sql/managedInstances/databases/backupLongTermRetentionPolicies/readme.md similarity index 100% rename from arm/Microsoft.Sql/managedInstances/databases/backupLongTermRetentionPolicies/readme.md rename to modules/Microsoft.Sql/managedInstances/databases/backupLongTermRetentionPolicies/readme.md diff --git a/arm/Microsoft.Sql/managedInstances/databases/backupLongTermRetentionPolicies/version.json b/modules/Microsoft.Sql/managedInstances/databases/backupLongTermRetentionPolicies/version.json similarity index 100% rename from arm/Microsoft.Sql/managedInstances/databases/backupLongTermRetentionPolicies/version.json rename to modules/Microsoft.Sql/managedInstances/databases/backupLongTermRetentionPolicies/version.json diff --git a/arm/Microsoft.Sql/managedInstances/databases/backupShortTermRetentionPolicies/deploy.bicep b/modules/Microsoft.Sql/managedInstances/databases/backupShortTermRetentionPolicies/deploy.bicep similarity index 100% rename from arm/Microsoft.Sql/managedInstances/databases/backupShortTermRetentionPolicies/deploy.bicep rename to modules/Microsoft.Sql/managedInstances/databases/backupShortTermRetentionPolicies/deploy.bicep diff --git a/arm/Microsoft.Sql/managedInstances/databases/backupShortTermRetentionPolicies/readme.md b/modules/Microsoft.Sql/managedInstances/databases/backupShortTermRetentionPolicies/readme.md similarity index 100% rename from arm/Microsoft.Sql/managedInstances/databases/backupShortTermRetentionPolicies/readme.md rename to modules/Microsoft.Sql/managedInstances/databases/backupShortTermRetentionPolicies/readme.md diff --git a/arm/Microsoft.Sql/managedInstances/databases/backupShortTermRetentionPolicies/version.json b/modules/Microsoft.Sql/managedInstances/databases/backupShortTermRetentionPolicies/version.json similarity index 100% rename from arm/Microsoft.Sql/managedInstances/databases/backupShortTermRetentionPolicies/version.json rename to modules/Microsoft.Sql/managedInstances/databases/backupShortTermRetentionPolicies/version.json diff --git a/arm/Microsoft.Sql/managedInstances/databases/deploy.bicep b/modules/Microsoft.Sql/managedInstances/databases/deploy.bicep similarity index 100% rename from arm/Microsoft.Sql/managedInstances/databases/deploy.bicep rename to modules/Microsoft.Sql/managedInstances/databases/deploy.bicep diff --git a/arm/Microsoft.Sql/managedInstances/databases/readme.md b/modules/Microsoft.Sql/managedInstances/databases/readme.md similarity index 100% rename from arm/Microsoft.Sql/managedInstances/databases/readme.md rename to modules/Microsoft.Sql/managedInstances/databases/readme.md diff --git a/arm/Microsoft.Sql/managedInstances/databases/version.json b/modules/Microsoft.Sql/managedInstances/databases/version.json similarity index 100% rename from arm/Microsoft.Sql/managedInstances/databases/version.json rename to modules/Microsoft.Sql/managedInstances/databases/version.json diff --git a/arm/Microsoft.Sql/managedInstances/deploy.bicep b/modules/Microsoft.Sql/managedInstances/deploy.bicep similarity index 100% rename from arm/Microsoft.Sql/managedInstances/deploy.bicep rename to modules/Microsoft.Sql/managedInstances/deploy.bicep diff --git a/arm/Microsoft.Sql/managedInstances/encryptionProtector/deploy.bicep b/modules/Microsoft.Sql/managedInstances/encryptionProtector/deploy.bicep similarity index 100% rename from arm/Microsoft.Sql/managedInstances/encryptionProtector/deploy.bicep rename to modules/Microsoft.Sql/managedInstances/encryptionProtector/deploy.bicep diff --git a/arm/Microsoft.Sql/managedInstances/encryptionProtector/readme.md b/modules/Microsoft.Sql/managedInstances/encryptionProtector/readme.md similarity index 100% rename from arm/Microsoft.Sql/managedInstances/encryptionProtector/readme.md rename to modules/Microsoft.Sql/managedInstances/encryptionProtector/readme.md diff --git a/arm/Microsoft.Sql/managedInstances/encryptionProtector/version.json b/modules/Microsoft.Sql/managedInstances/encryptionProtector/version.json similarity index 100% rename from arm/Microsoft.Sql/managedInstances/encryptionProtector/version.json rename to modules/Microsoft.Sql/managedInstances/encryptionProtector/version.json diff --git a/arm/Microsoft.Sql/managedInstances/keys/deploy.bicep b/modules/Microsoft.Sql/managedInstances/keys/deploy.bicep similarity index 100% rename from arm/Microsoft.Sql/managedInstances/keys/deploy.bicep rename to modules/Microsoft.Sql/managedInstances/keys/deploy.bicep diff --git a/arm/Microsoft.Sql/managedInstances/keys/readme.md b/modules/Microsoft.Sql/managedInstances/keys/readme.md similarity index 100% rename from arm/Microsoft.Sql/managedInstances/keys/readme.md rename to modules/Microsoft.Sql/managedInstances/keys/readme.md diff --git a/arm/Microsoft.Sql/managedInstances/keys/version.json b/modules/Microsoft.Sql/managedInstances/keys/version.json similarity index 100% rename from arm/Microsoft.Sql/managedInstances/keys/version.json rename to modules/Microsoft.Sql/managedInstances/keys/version.json diff --git a/arm/Microsoft.Sql/managedInstances/readme.md b/modules/Microsoft.Sql/managedInstances/readme.md similarity index 100% rename from arm/Microsoft.Sql/managedInstances/readme.md rename to modules/Microsoft.Sql/managedInstances/readme.md diff --git a/arm/Microsoft.Sql/managedInstances/securityAlertPolicies/deploy.bicep b/modules/Microsoft.Sql/managedInstances/securityAlertPolicies/deploy.bicep similarity index 100% rename from arm/Microsoft.Sql/managedInstances/securityAlertPolicies/deploy.bicep rename to modules/Microsoft.Sql/managedInstances/securityAlertPolicies/deploy.bicep diff --git a/arm/Microsoft.Sql/managedInstances/securityAlertPolicies/readme.md b/modules/Microsoft.Sql/managedInstances/securityAlertPolicies/readme.md similarity index 100% rename from arm/Microsoft.Sql/managedInstances/securityAlertPolicies/readme.md rename to modules/Microsoft.Sql/managedInstances/securityAlertPolicies/readme.md diff --git a/arm/Microsoft.Sql/managedInstances/securityAlertPolicies/version.json b/modules/Microsoft.Sql/managedInstances/securityAlertPolicies/version.json similarity index 100% rename from arm/Microsoft.Sql/managedInstances/securityAlertPolicies/version.json rename to modules/Microsoft.Sql/managedInstances/securityAlertPolicies/version.json diff --git a/arm/Microsoft.Sql/managedInstances/version.json b/modules/Microsoft.Sql/managedInstances/version.json similarity index 100% rename from arm/Microsoft.Sql/managedInstances/version.json rename to modules/Microsoft.Sql/managedInstances/version.json diff --git a/arm/Microsoft.Sql/managedInstances/vulnerabilityAssessments/deploy.bicep b/modules/Microsoft.Sql/managedInstances/vulnerabilityAssessments/deploy.bicep similarity index 100% rename from arm/Microsoft.Sql/managedInstances/vulnerabilityAssessments/deploy.bicep rename to modules/Microsoft.Sql/managedInstances/vulnerabilityAssessments/deploy.bicep diff --git a/arm/Microsoft.Sql/managedInstances/vulnerabilityAssessments/readme.md b/modules/Microsoft.Sql/managedInstances/vulnerabilityAssessments/readme.md similarity index 100% rename from arm/Microsoft.Sql/managedInstances/vulnerabilityAssessments/readme.md rename to modules/Microsoft.Sql/managedInstances/vulnerabilityAssessments/readme.md diff --git a/arm/Microsoft.Sql/managedInstances/vulnerabilityAssessments/version.json b/modules/Microsoft.Sql/managedInstances/vulnerabilityAssessments/version.json similarity index 100% rename from arm/Microsoft.Sql/managedInstances/vulnerabilityAssessments/version.json rename to modules/Microsoft.Sql/managedInstances/vulnerabilityAssessments/version.json diff --git a/arm/Microsoft.Sql/servers/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Sql/servers/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Sql/servers/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Sql/servers/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Sql/servers/.parameters/admin.parameters.json b/modules/Microsoft.Sql/servers/.parameters/admin.parameters.json similarity index 100% rename from arm/Microsoft.Sql/servers/.parameters/admin.parameters.json rename to modules/Microsoft.Sql/servers/.parameters/admin.parameters.json diff --git a/arm/Microsoft.Sql/servers/.parameters/parameters.json b/modules/Microsoft.Sql/servers/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Sql/servers/.parameters/parameters.json rename to modules/Microsoft.Sql/servers/.parameters/parameters.json diff --git a/arm/Microsoft.Sql/servers/databases/deploy.bicep b/modules/Microsoft.Sql/servers/databases/deploy.bicep similarity index 100% rename from arm/Microsoft.Sql/servers/databases/deploy.bicep rename to modules/Microsoft.Sql/servers/databases/deploy.bicep diff --git a/arm/Microsoft.Sql/servers/databases/readme.md b/modules/Microsoft.Sql/servers/databases/readme.md similarity index 100% rename from arm/Microsoft.Sql/servers/databases/readme.md rename to modules/Microsoft.Sql/servers/databases/readme.md diff --git a/arm/Microsoft.Sql/servers/databases/version.json b/modules/Microsoft.Sql/servers/databases/version.json similarity index 100% rename from arm/Microsoft.Sql/servers/databases/version.json rename to modules/Microsoft.Sql/servers/databases/version.json diff --git a/arm/Microsoft.Sql/servers/deploy.bicep b/modules/Microsoft.Sql/servers/deploy.bicep similarity index 100% rename from arm/Microsoft.Sql/servers/deploy.bicep rename to modules/Microsoft.Sql/servers/deploy.bicep diff --git a/arm/Microsoft.Sql/servers/firewallRules/deploy.bicep b/modules/Microsoft.Sql/servers/firewallRules/deploy.bicep similarity index 100% rename from arm/Microsoft.Sql/servers/firewallRules/deploy.bicep rename to modules/Microsoft.Sql/servers/firewallRules/deploy.bicep diff --git a/arm/Microsoft.Sql/servers/firewallRules/readme.md b/modules/Microsoft.Sql/servers/firewallRules/readme.md similarity index 100% rename from arm/Microsoft.Sql/servers/firewallRules/readme.md rename to modules/Microsoft.Sql/servers/firewallRules/readme.md diff --git a/arm/Microsoft.Sql/servers/firewallRules/version.json b/modules/Microsoft.Sql/servers/firewallRules/version.json similarity index 100% rename from arm/Microsoft.Sql/servers/firewallRules/version.json rename to modules/Microsoft.Sql/servers/firewallRules/version.json diff --git a/arm/Microsoft.Sql/servers/readme.md b/modules/Microsoft.Sql/servers/readme.md similarity index 100% rename from arm/Microsoft.Sql/servers/readme.md rename to modules/Microsoft.Sql/servers/readme.md diff --git a/arm/Microsoft.Sql/servers/securityAlertPolicies/deploy.bicep b/modules/Microsoft.Sql/servers/securityAlertPolicies/deploy.bicep similarity index 100% rename from arm/Microsoft.Sql/servers/securityAlertPolicies/deploy.bicep rename to modules/Microsoft.Sql/servers/securityAlertPolicies/deploy.bicep diff --git a/arm/Microsoft.Sql/servers/securityAlertPolicies/readme.md b/modules/Microsoft.Sql/servers/securityAlertPolicies/readme.md similarity index 100% rename from arm/Microsoft.Sql/servers/securityAlertPolicies/readme.md rename to modules/Microsoft.Sql/servers/securityAlertPolicies/readme.md diff --git a/arm/Microsoft.Sql/servers/securityAlertPolicies/version.json b/modules/Microsoft.Sql/servers/securityAlertPolicies/version.json similarity index 100% rename from arm/Microsoft.Sql/servers/securityAlertPolicies/version.json rename to modules/Microsoft.Sql/servers/securityAlertPolicies/version.json diff --git a/arm/Microsoft.Sql/servers/version.json b/modules/Microsoft.Sql/servers/version.json similarity index 100% rename from arm/Microsoft.Sql/servers/version.json rename to modules/Microsoft.Sql/servers/version.json diff --git a/arm/Microsoft.Sql/servers/vulnerabilityAssessments/deploy.bicep b/modules/Microsoft.Sql/servers/vulnerabilityAssessments/deploy.bicep similarity index 100% rename from arm/Microsoft.Sql/servers/vulnerabilityAssessments/deploy.bicep rename to modules/Microsoft.Sql/servers/vulnerabilityAssessments/deploy.bicep diff --git a/arm/Microsoft.Sql/servers/vulnerabilityAssessments/readme.md b/modules/Microsoft.Sql/servers/vulnerabilityAssessments/readme.md similarity index 100% rename from arm/Microsoft.Sql/servers/vulnerabilityAssessments/readme.md rename to modules/Microsoft.Sql/servers/vulnerabilityAssessments/readme.md diff --git a/arm/Microsoft.Sql/servers/vulnerabilityAssessments/version.json b/modules/Microsoft.Sql/servers/vulnerabilityAssessments/version.json similarity index 100% rename from arm/Microsoft.Sql/servers/vulnerabilityAssessments/version.json rename to modules/Microsoft.Sql/servers/vulnerabilityAssessments/version.json diff --git a/arm/Microsoft.Storage/storageAccounts/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Storage/storageAccounts/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Storage/storageAccounts/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Storage/storageAccounts/.parameters/encr.parameters.json b/modules/Microsoft.Storage/storageAccounts/.parameters/encr.parameters.json similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/.parameters/encr.parameters.json rename to modules/Microsoft.Storage/storageAccounts/.parameters/encr.parameters.json diff --git a/arm/Microsoft.Storage/storageAccounts/.parameters/min.parameters.json b/modules/Microsoft.Storage/storageAccounts/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/.parameters/min.parameters.json rename to modules/Microsoft.Storage/storageAccounts/.parameters/min.parameters.json diff --git a/arm/Microsoft.Storage/storageAccounts/.parameters/nfs.parameters.json b/modules/Microsoft.Storage/storageAccounts/.parameters/nfs.parameters.json similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/.parameters/nfs.parameters.json rename to modules/Microsoft.Storage/storageAccounts/.parameters/nfs.parameters.json diff --git a/arm/Microsoft.Storage/storageAccounts/.parameters/parameters.json b/modules/Microsoft.Storage/storageAccounts/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/.parameters/parameters.json rename to modules/Microsoft.Storage/storageAccounts/.parameters/parameters.json diff --git a/arm/Microsoft.Storage/storageAccounts/.parameters/v1.parameters.json b/modules/Microsoft.Storage/storageAccounts/.parameters/v1.parameters.json similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/.parameters/v1.parameters.json rename to modules/Microsoft.Storage/storageAccounts/.parameters/v1.parameters.json diff --git a/arm/Microsoft.Storage/storageAccounts/blobServices/containers/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Storage/storageAccounts/blobServices/containers/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/blobServices/containers/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Storage/storageAccounts/blobServices/containers/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Storage/storageAccounts/blobServices/containers/deploy.bicep b/modules/Microsoft.Storage/storageAccounts/blobServices/containers/deploy.bicep similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/blobServices/containers/deploy.bicep rename to modules/Microsoft.Storage/storageAccounts/blobServices/containers/deploy.bicep diff --git a/arm/Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/deploy.bicep b/modules/Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/deploy.bicep similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/deploy.bicep rename to modules/Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/deploy.bicep diff --git a/arm/Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/readme.md b/modules/Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/readme.md similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/readme.md rename to modules/Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/readme.md diff --git a/arm/Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/version.json b/modules/Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/version.json similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/version.json rename to modules/Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/version.json diff --git a/arm/Microsoft.Storage/storageAccounts/blobServices/containers/readme.md b/modules/Microsoft.Storage/storageAccounts/blobServices/containers/readme.md similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/blobServices/containers/readme.md rename to modules/Microsoft.Storage/storageAccounts/blobServices/containers/readme.md diff --git a/arm/Microsoft.Storage/storageAccounts/blobServices/containers/version.json b/modules/Microsoft.Storage/storageAccounts/blobServices/containers/version.json similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/blobServices/containers/version.json rename to modules/Microsoft.Storage/storageAccounts/blobServices/containers/version.json diff --git a/arm/Microsoft.Storage/storageAccounts/blobServices/deploy.bicep b/modules/Microsoft.Storage/storageAccounts/blobServices/deploy.bicep similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/blobServices/deploy.bicep rename to modules/Microsoft.Storage/storageAccounts/blobServices/deploy.bicep diff --git a/arm/Microsoft.Storage/storageAccounts/blobServices/readme.md b/modules/Microsoft.Storage/storageAccounts/blobServices/readme.md similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/blobServices/readme.md rename to modules/Microsoft.Storage/storageAccounts/blobServices/readme.md diff --git a/arm/Microsoft.Storage/storageAccounts/blobServices/version.json b/modules/Microsoft.Storage/storageAccounts/blobServices/version.json similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/blobServices/version.json rename to modules/Microsoft.Storage/storageAccounts/blobServices/version.json diff --git a/arm/Microsoft.Storage/storageAccounts/deploy.bicep b/modules/Microsoft.Storage/storageAccounts/deploy.bicep similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/deploy.bicep rename to modules/Microsoft.Storage/storageAccounts/deploy.bicep diff --git a/arm/Microsoft.Storage/storageAccounts/fileServices/deploy.bicep b/modules/Microsoft.Storage/storageAccounts/fileServices/deploy.bicep similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/fileServices/deploy.bicep rename to modules/Microsoft.Storage/storageAccounts/fileServices/deploy.bicep diff --git a/arm/Microsoft.Storage/storageAccounts/fileServices/readme.md b/modules/Microsoft.Storage/storageAccounts/fileServices/readme.md similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/fileServices/readme.md rename to modules/Microsoft.Storage/storageAccounts/fileServices/readme.md diff --git a/arm/Microsoft.Storage/storageAccounts/fileServices/shares/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Storage/storageAccounts/fileServices/shares/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/fileServices/shares/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Storage/storageAccounts/fileServices/shares/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Storage/storageAccounts/fileServices/shares/deploy.bicep b/modules/Microsoft.Storage/storageAccounts/fileServices/shares/deploy.bicep similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/fileServices/shares/deploy.bicep rename to modules/Microsoft.Storage/storageAccounts/fileServices/shares/deploy.bicep diff --git a/arm/Microsoft.Storage/storageAccounts/fileServices/shares/readme.md b/modules/Microsoft.Storage/storageAccounts/fileServices/shares/readme.md similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/fileServices/shares/readme.md rename to modules/Microsoft.Storage/storageAccounts/fileServices/shares/readme.md diff --git a/arm/Microsoft.Storage/storageAccounts/fileServices/shares/version.json b/modules/Microsoft.Storage/storageAccounts/fileServices/shares/version.json similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/fileServices/shares/version.json rename to modules/Microsoft.Storage/storageAccounts/fileServices/shares/version.json diff --git a/arm/Microsoft.Storage/storageAccounts/fileServices/version.json b/modules/Microsoft.Storage/storageAccounts/fileServices/version.json similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/fileServices/version.json rename to modules/Microsoft.Storage/storageAccounts/fileServices/version.json diff --git a/arm/Microsoft.Storage/storageAccounts/managementPolicies/deploy.bicep b/modules/Microsoft.Storage/storageAccounts/managementPolicies/deploy.bicep similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/managementPolicies/deploy.bicep rename to modules/Microsoft.Storage/storageAccounts/managementPolicies/deploy.bicep diff --git a/arm/Microsoft.Storage/storageAccounts/managementPolicies/readme.md b/modules/Microsoft.Storage/storageAccounts/managementPolicies/readme.md similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/managementPolicies/readme.md rename to modules/Microsoft.Storage/storageAccounts/managementPolicies/readme.md diff --git a/arm/Microsoft.Storage/storageAccounts/managementPolicies/version.json b/modules/Microsoft.Storage/storageAccounts/managementPolicies/version.json similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/managementPolicies/version.json rename to modules/Microsoft.Storage/storageAccounts/managementPolicies/version.json diff --git a/arm/Microsoft.Storage/storageAccounts/queueServices/deploy.bicep b/modules/Microsoft.Storage/storageAccounts/queueServices/deploy.bicep similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/queueServices/deploy.bicep rename to modules/Microsoft.Storage/storageAccounts/queueServices/deploy.bicep diff --git a/arm/Microsoft.Storage/storageAccounts/queueServices/queues/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Storage/storageAccounts/queueServices/queues/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/queueServices/queues/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Storage/storageAccounts/queueServices/queues/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Storage/storageAccounts/queueServices/queues/deploy.bicep b/modules/Microsoft.Storage/storageAccounts/queueServices/queues/deploy.bicep similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/queueServices/queues/deploy.bicep rename to modules/Microsoft.Storage/storageAccounts/queueServices/queues/deploy.bicep diff --git a/arm/Microsoft.Storage/storageAccounts/queueServices/queues/readme.md b/modules/Microsoft.Storage/storageAccounts/queueServices/queues/readme.md similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/queueServices/queues/readme.md rename to modules/Microsoft.Storage/storageAccounts/queueServices/queues/readme.md diff --git a/arm/Microsoft.Storage/storageAccounts/queueServices/queues/version.json b/modules/Microsoft.Storage/storageAccounts/queueServices/queues/version.json similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/queueServices/queues/version.json rename to modules/Microsoft.Storage/storageAccounts/queueServices/queues/version.json diff --git a/arm/Microsoft.Storage/storageAccounts/queueServices/readme.md b/modules/Microsoft.Storage/storageAccounts/queueServices/readme.md similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/queueServices/readme.md rename to modules/Microsoft.Storage/storageAccounts/queueServices/readme.md diff --git a/arm/Microsoft.Storage/storageAccounts/queueServices/version.json b/modules/Microsoft.Storage/storageAccounts/queueServices/version.json similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/queueServices/version.json rename to modules/Microsoft.Storage/storageAccounts/queueServices/version.json diff --git a/arm/Microsoft.Storage/storageAccounts/readme.md b/modules/Microsoft.Storage/storageAccounts/readme.md similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/readme.md rename to modules/Microsoft.Storage/storageAccounts/readme.md diff --git a/arm/Microsoft.Storage/storageAccounts/tableServices/deploy.bicep b/modules/Microsoft.Storage/storageAccounts/tableServices/deploy.bicep similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/tableServices/deploy.bicep rename to modules/Microsoft.Storage/storageAccounts/tableServices/deploy.bicep diff --git a/arm/Microsoft.Storage/storageAccounts/tableServices/readme.md b/modules/Microsoft.Storage/storageAccounts/tableServices/readme.md similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/tableServices/readme.md rename to modules/Microsoft.Storage/storageAccounts/tableServices/readme.md diff --git a/arm/Microsoft.Storage/storageAccounts/tableServices/tables/deploy.bicep b/modules/Microsoft.Storage/storageAccounts/tableServices/tables/deploy.bicep similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/tableServices/tables/deploy.bicep rename to modules/Microsoft.Storage/storageAccounts/tableServices/tables/deploy.bicep diff --git a/arm/Microsoft.Storage/storageAccounts/tableServices/tables/readme.md b/modules/Microsoft.Storage/storageAccounts/tableServices/tables/readme.md similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/tableServices/tables/readme.md rename to modules/Microsoft.Storage/storageAccounts/tableServices/tables/readme.md diff --git a/arm/Microsoft.Storage/storageAccounts/tableServices/tables/version.json b/modules/Microsoft.Storage/storageAccounts/tableServices/tables/version.json similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/tableServices/tables/version.json rename to modules/Microsoft.Storage/storageAccounts/tableServices/tables/version.json diff --git a/arm/Microsoft.Storage/storageAccounts/tableServices/version.json b/modules/Microsoft.Storage/storageAccounts/tableServices/version.json similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/tableServices/version.json rename to modules/Microsoft.Storage/storageAccounts/tableServices/version.json diff --git a/arm/Microsoft.Storage/storageAccounts/version.json b/modules/Microsoft.Storage/storageAccounts/version.json similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/version.json rename to modules/Microsoft.Storage/storageAccounts/version.json diff --git a/arm/Microsoft.Synapse/privateLinkHubs/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Synapse/privateLinkHubs/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Synapse/privateLinkHubs/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Synapse/privateLinkHubs/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Synapse/privateLinkHubs/.parameters/min.parameters.json b/modules/Microsoft.Synapse/privateLinkHubs/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.Synapse/privateLinkHubs/.parameters/min.parameters.json rename to modules/Microsoft.Synapse/privateLinkHubs/.parameters/min.parameters.json diff --git a/arm/Microsoft.Synapse/privateLinkHubs/.parameters/parameters.json b/modules/Microsoft.Synapse/privateLinkHubs/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Synapse/privateLinkHubs/.parameters/parameters.json rename to modules/Microsoft.Synapse/privateLinkHubs/.parameters/parameters.json diff --git a/arm/Microsoft.Synapse/privateLinkHubs/deploy.bicep b/modules/Microsoft.Synapse/privateLinkHubs/deploy.bicep similarity index 100% rename from arm/Microsoft.Synapse/privateLinkHubs/deploy.bicep rename to modules/Microsoft.Synapse/privateLinkHubs/deploy.bicep diff --git a/arm/Microsoft.Synapse/privateLinkHubs/readme.md b/modules/Microsoft.Synapse/privateLinkHubs/readme.md similarity index 100% rename from arm/Microsoft.Synapse/privateLinkHubs/readme.md rename to modules/Microsoft.Synapse/privateLinkHubs/readme.md diff --git a/arm/Microsoft.Synapse/privateLinkHubs/version.json b/modules/Microsoft.Synapse/privateLinkHubs/version.json similarity index 100% rename from arm/Microsoft.Synapse/privateLinkHubs/version.json rename to modules/Microsoft.Synapse/privateLinkHubs/version.json diff --git a/arm/Microsoft.VirtualMachineImages/imageTemplates/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.VirtualMachineImages/imageTemplates/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.VirtualMachineImages/imageTemplates/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.VirtualMachineImages/imageTemplates/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.VirtualMachineImages/imageTemplates/.parameters/parameters.json b/modules/Microsoft.VirtualMachineImages/imageTemplates/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.VirtualMachineImages/imageTemplates/.parameters/parameters.json rename to modules/Microsoft.VirtualMachineImages/imageTemplates/.parameters/parameters.json diff --git a/arm/Microsoft.VirtualMachineImages/imageTemplates/deploy.bicep b/modules/Microsoft.VirtualMachineImages/imageTemplates/deploy.bicep similarity index 100% rename from arm/Microsoft.VirtualMachineImages/imageTemplates/deploy.bicep rename to modules/Microsoft.VirtualMachineImages/imageTemplates/deploy.bicep diff --git a/arm/Microsoft.VirtualMachineImages/imageTemplates/readme.md b/modules/Microsoft.VirtualMachineImages/imageTemplates/readme.md similarity index 100% rename from arm/Microsoft.VirtualMachineImages/imageTemplates/readme.md rename to modules/Microsoft.VirtualMachineImages/imageTemplates/readme.md diff --git a/arm/Microsoft.VirtualMachineImages/imageTemplates/version.json b/modules/Microsoft.VirtualMachineImages/imageTemplates/version.json similarity index 100% rename from arm/Microsoft.VirtualMachineImages/imageTemplates/version.json rename to modules/Microsoft.VirtualMachineImages/imageTemplates/version.json diff --git a/arm/Microsoft.Web/connections/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Web/connections/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Web/connections/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Web/connections/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Web/connections/.parameters/parameters.json b/modules/Microsoft.Web/connections/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Web/connections/.parameters/parameters.json rename to modules/Microsoft.Web/connections/.parameters/parameters.json diff --git a/arm/Microsoft.Web/connections/deploy.bicep b/modules/Microsoft.Web/connections/deploy.bicep similarity index 100% rename from arm/Microsoft.Web/connections/deploy.bicep rename to modules/Microsoft.Web/connections/deploy.bicep diff --git a/arm/Microsoft.Web/connections/readme.md b/modules/Microsoft.Web/connections/readme.md similarity index 100% rename from arm/Microsoft.Web/connections/readme.md rename to modules/Microsoft.Web/connections/readme.md diff --git a/arm/Microsoft.Web/connections/version.json b/modules/Microsoft.Web/connections/version.json similarity index 100% rename from arm/Microsoft.Web/connections/version.json rename to modules/Microsoft.Web/connections/version.json diff --git a/arm/Microsoft.Web/hostingEnvironments/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Web/hostingEnvironments/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Web/hostingEnvironments/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Web/hostingEnvironments/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Web/hostingEnvironments/.parameters/asev2.parameters.json b/modules/Microsoft.Web/hostingEnvironments/.parameters/asev2.parameters.json similarity index 100% rename from arm/Microsoft.Web/hostingEnvironments/.parameters/asev2.parameters.json rename to modules/Microsoft.Web/hostingEnvironments/.parameters/asev2.parameters.json diff --git a/arm/Microsoft.Web/hostingEnvironments/.parameters/asev3.parameters.json b/modules/Microsoft.Web/hostingEnvironments/.parameters/asev3.parameters.json similarity index 100% rename from arm/Microsoft.Web/hostingEnvironments/.parameters/asev3.parameters.json rename to modules/Microsoft.Web/hostingEnvironments/.parameters/asev3.parameters.json diff --git a/arm/Microsoft.Web/hostingEnvironments/deploy.bicep b/modules/Microsoft.Web/hostingEnvironments/deploy.bicep similarity index 100% rename from arm/Microsoft.Web/hostingEnvironments/deploy.bicep rename to modules/Microsoft.Web/hostingEnvironments/deploy.bicep diff --git a/arm/Microsoft.Web/hostingEnvironments/readme.md b/modules/Microsoft.Web/hostingEnvironments/readme.md similarity index 100% rename from arm/Microsoft.Web/hostingEnvironments/readme.md rename to modules/Microsoft.Web/hostingEnvironments/readme.md diff --git a/arm/Microsoft.Web/hostingEnvironments/version.json b/modules/Microsoft.Web/hostingEnvironments/version.json similarity index 100% rename from arm/Microsoft.Web/hostingEnvironments/version.json rename to modules/Microsoft.Web/hostingEnvironments/version.json diff --git a/arm/Microsoft.Web/serverfarms/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Web/serverfarms/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Web/serverfarms/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Web/serverfarms/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Web/serverfarms/.parameters/parameters.json b/modules/Microsoft.Web/serverfarms/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Web/serverfarms/.parameters/parameters.json rename to modules/Microsoft.Web/serverfarms/.parameters/parameters.json diff --git a/arm/Microsoft.Web/serverfarms/deploy.bicep b/modules/Microsoft.Web/serverfarms/deploy.bicep similarity index 100% rename from arm/Microsoft.Web/serverfarms/deploy.bicep rename to modules/Microsoft.Web/serverfarms/deploy.bicep diff --git a/arm/Microsoft.Web/serverfarms/readme.md b/modules/Microsoft.Web/serverfarms/readme.md similarity index 100% rename from arm/Microsoft.Web/serverfarms/readme.md rename to modules/Microsoft.Web/serverfarms/readme.md diff --git a/arm/Microsoft.Web/serverfarms/version.json b/modules/Microsoft.Web/serverfarms/version.json similarity index 100% rename from arm/Microsoft.Web/serverfarms/version.json rename to modules/Microsoft.Web/serverfarms/version.json diff --git a/arm/Microsoft.Web/sites/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Web/sites/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Web/sites/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Web/sites/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Web/sites/.parameters/fa.min.parameters.json b/modules/Microsoft.Web/sites/.parameters/fa.min.parameters.json similarity index 100% rename from arm/Microsoft.Web/sites/.parameters/fa.min.parameters.json rename to modules/Microsoft.Web/sites/.parameters/fa.min.parameters.json diff --git a/arm/Microsoft.Web/sites/.parameters/fa.parameters.json b/modules/Microsoft.Web/sites/.parameters/fa.parameters.json similarity index 100% rename from arm/Microsoft.Web/sites/.parameters/fa.parameters.json rename to modules/Microsoft.Web/sites/.parameters/fa.parameters.json diff --git a/arm/Microsoft.Web/sites/.parameters/wa.min.parameters.json b/modules/Microsoft.Web/sites/.parameters/wa.min.parameters.json similarity index 100% rename from arm/Microsoft.Web/sites/.parameters/wa.min.parameters.json rename to modules/Microsoft.Web/sites/.parameters/wa.min.parameters.json diff --git a/arm/Microsoft.Web/sites/.parameters/wa.parameters.json b/modules/Microsoft.Web/sites/.parameters/wa.parameters.json similarity index 100% rename from arm/Microsoft.Web/sites/.parameters/wa.parameters.json rename to modules/Microsoft.Web/sites/.parameters/wa.parameters.json diff --git a/arm/Microsoft.Web/sites/config-appsettings/deploy.bicep b/modules/Microsoft.Web/sites/config-appsettings/deploy.bicep similarity index 100% rename from arm/Microsoft.Web/sites/config-appsettings/deploy.bicep rename to modules/Microsoft.Web/sites/config-appsettings/deploy.bicep diff --git a/arm/Microsoft.Web/sites/config-appsettings/readme.md b/modules/Microsoft.Web/sites/config-appsettings/readme.md similarity index 100% rename from arm/Microsoft.Web/sites/config-appsettings/readme.md rename to modules/Microsoft.Web/sites/config-appsettings/readme.md diff --git a/arm/Microsoft.Web/sites/config-appsettings/version.json b/modules/Microsoft.Web/sites/config-appsettings/version.json similarity index 100% rename from arm/Microsoft.Web/sites/config-appsettings/version.json rename to modules/Microsoft.Web/sites/config-appsettings/version.json diff --git a/arm/Microsoft.Web/sites/config-authsettingsv2/deploy.bicep b/modules/Microsoft.Web/sites/config-authsettingsv2/deploy.bicep similarity index 100% rename from arm/Microsoft.Web/sites/config-authsettingsv2/deploy.bicep rename to modules/Microsoft.Web/sites/config-authsettingsv2/deploy.bicep diff --git a/arm/Microsoft.Web/sites/config-authsettingsv2/readme.md b/modules/Microsoft.Web/sites/config-authsettingsv2/readme.md similarity index 100% rename from arm/Microsoft.Web/sites/config-authsettingsv2/readme.md rename to modules/Microsoft.Web/sites/config-authsettingsv2/readme.md diff --git a/arm/Microsoft.Web/sites/config-authsettingsv2/version.json b/modules/Microsoft.Web/sites/config-authsettingsv2/version.json similarity index 100% rename from arm/Microsoft.Web/sites/config-authsettingsv2/version.json rename to modules/Microsoft.Web/sites/config-authsettingsv2/version.json diff --git a/arm/Microsoft.Web/sites/deploy.bicep b/modules/Microsoft.Web/sites/deploy.bicep similarity index 100% rename from arm/Microsoft.Web/sites/deploy.bicep rename to modules/Microsoft.Web/sites/deploy.bicep diff --git a/arm/Microsoft.Web/sites/readme.md b/modules/Microsoft.Web/sites/readme.md similarity index 100% rename from arm/Microsoft.Web/sites/readme.md rename to modules/Microsoft.Web/sites/readme.md diff --git a/arm/Microsoft.Web/sites/version.json b/modules/Microsoft.Web/sites/version.json similarity index 100% rename from arm/Microsoft.Web/sites/version.json rename to modules/Microsoft.Web/sites/version.json diff --git a/arm/Microsoft.Web/staticSites/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.Web/staticSites/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Web/staticSites/.bicep/nested_roleAssignments.bicep rename to modules/Microsoft.Web/staticSites/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Web/staticSites/.parameters/min.parameters.json b/modules/Microsoft.Web/staticSites/.parameters/min.parameters.json similarity index 100% rename from arm/Microsoft.Web/staticSites/.parameters/min.parameters.json rename to modules/Microsoft.Web/staticSites/.parameters/min.parameters.json diff --git a/arm/Microsoft.Web/staticSites/.parameters/parameters.json b/modules/Microsoft.Web/staticSites/.parameters/parameters.json similarity index 100% rename from arm/Microsoft.Web/staticSites/.parameters/parameters.json rename to modules/Microsoft.Web/staticSites/.parameters/parameters.json diff --git a/arm/Microsoft.Web/staticSites/deploy.bicep b/modules/Microsoft.Web/staticSites/deploy.bicep similarity index 100% rename from arm/Microsoft.Web/staticSites/deploy.bicep rename to modules/Microsoft.Web/staticSites/deploy.bicep diff --git a/arm/Microsoft.Web/staticSites/readme.md b/modules/Microsoft.Web/staticSites/readme.md similarity index 100% rename from arm/Microsoft.Web/staticSites/readme.md rename to modules/Microsoft.Web/staticSites/readme.md diff --git a/arm/Microsoft.Web/staticSites/version.json b/modules/Microsoft.Web/staticSites/version.json similarity index 100% rename from arm/Microsoft.Web/staticSites/version.json rename to modules/Microsoft.Web/staticSites/version.json diff --git a/modules/README.md b/modules/README.md new file mode 100644 index 0000000000..23e4b05592 --- /dev/null +++ b/modules/README.md @@ -0,0 +1,107 @@ +In this section you can find useful information regarding the Modules that are contained in this repository. + +## Available Resource Modules + +| Name | Provider namespace | Resource Type | +| - | - | - | +| [Azure Active Directory Domain Services](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.AAD/DomainServices) | `MS.AAD` | [DomainServices](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.AAD/DomainServices) | +| [Analysis Services Servers](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.AnalysisServices/servers) | `MS.AnalysisServices` | [servers](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.AnalysisServices/servers) | +| [API Management Services](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ApiManagement/service) | `MS.ApiManagement` | [service](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ApiManagement/service) | +| [App Configuration](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.AppConfiguration/configurationStores) | `MS.AppConfiguration` | [configurationStores](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.AppConfiguration/configurationStores) | +| [Authorization Locks](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/locks) | `MS.Authorization` | [locks](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/locks) | +| [Policy Assignments](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/policyAssignments) | | [policyAssignments](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/policyAssignments) | +| [Policy Definitions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/policyDefinitions) | | [policyDefinitions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/policyDefinitions) | +| [Policy Exemptions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/policyExemptions) | | [policyExemptions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/policyExemptions) | +| [Policy Set Definitions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/policySetDefinitions) | | [policySetDefinitions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/policySetDefinitions) | +| [Role Assignments](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/roleAssignments) | | [roleAssignments](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/roleAssignments) | +| [Role Definitions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/roleDefinitions) | | [roleDefinitions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/roleDefinitions) | +| [Automation Accounts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Automation/automationAccounts) | `MS.Automation` | [automationAccounts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Automation/automationAccounts) | +| [Batch Accounts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Batch/batchAccounts) | `MS.Batch` | [batchAccounts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Batch/batchAccounts) | +| [Cognitive Services](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.CognitiveServices/accounts) | `MS.CognitiveServices` | [accounts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.CognitiveServices/accounts) | +| [Availability Sets](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/availabilitySets) | `MS.Compute` | [availabilitySets](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/availabilitySets) | +| [Disk Encryption Sets](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/diskEncryptionSets) | | [diskEncryptionSets](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/diskEncryptionSets) | +| [Compute Disks](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/disks) | | [disks](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/disks) | +| [Azure Compute Galleries](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/galleries) | | [galleries](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/galleries) | +| [Images](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/images) | | [images](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/images) | +| [Proximity Placement Groups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/proximityPlacementGroups) | | [proximityPlacementGroups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/proximityPlacementGroups) | +| [Virtual Machines](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/virtualMachines) | | [virtualMachines](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/virtualMachines) | +| [Virtual Machine Scale Sets](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/virtualMachineScaleSets) | | [virtualMachineScaleSets](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/virtualMachineScaleSets) | +| [Budgets](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Consumption/budgets) | `MS.Consumption` | [budgets](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Consumption/budgets) | +| [Container Instances](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ContainerInstance/containerGroups) | `MS.ContainerInstance` | [containerGroups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ContainerInstance/containerGroups) | +| [Container Registries](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ContainerRegistry/registries) | `MS.ContainerRegistry` | [registries](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ContainerRegistry/registries) | +| [Azure Kubernetes Services](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ContainerService/managedClusters) | `MS.ContainerService` | [managedClusters](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ContainerService/managedClusters) | +| [Azure Databricks](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Databricks/workspaces) | `MS.Databricks` | [workspaces](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Databricks/workspaces) | +| [Data Factories](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DataFactory/factories) | `MS.DataFactory` | [factories](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DataFactory/factories) | +| [DataProtection BackupVaults](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DataProtection/backupVaults) | `MS.DataProtection` | [backupVaults](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DataProtection/backupVaults) | +| [AVD Application Groups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/applicationgroups) | `MS.DesktopVirtualization` | [applicationgroups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/applicationgroups) | +| [AVD Host Pools](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/hostpools) | | [hostpools](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/hostpools) | +| [AVD Scaling Plans](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/scalingplans) | | [scalingplans](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/scalingplans) | +| [AVD Workspaces](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/workspaces) | | [workspaces](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/workspaces) | +| [DocumentDB Database Accounts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DocumentDB/databaseAccounts) | `MS.DocumentDB` | [databaseAccounts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DocumentDB/databaseAccounts) | +| [Event Grid System Topics](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.EventGrid/systemTopics) | `MS.EventGrid` | [systemTopics](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.EventGrid/systemTopics) | +| [Event Grid Topics](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.EventGrid/topics) | | [topics](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.EventGrid/topics) | +| [Event Hub Namespaces](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.EventHub/namespaces) | `MS.EventHub` | [namespaces](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.EventHub/namespaces) | +| [Azure Health Bots](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.HealthBot/healthBots) | `MS.HealthBot` | [healthBots](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.HealthBot/healthBots) | +| [Action Groups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/actionGroups) | `MS.Insights` | [actionGroups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/actionGroups) | +| [Activity Log Alerts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/activityLogAlerts) | | [activityLogAlerts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/activityLogAlerts) | +| [Application Insights](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/components) | | [components](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/components) | +| [Activity Logs](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/diagnosticSettings) | | [diagnosticSettings](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/diagnosticSettings) | +| [Metric Alerts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/metricAlerts) | | [metricAlerts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/metricAlerts) | +| [Azure Monitor Private Link Scopes](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/privateLinkScopes) | | [privateLinkScopes](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/privateLinkScopes) | +| [Scheduled Query Rules](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/scheduledQueryRules) | | [scheduledQueryRules](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/scheduledQueryRules) | +| [Key Vaults](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.KeyVault/vaults) | `MS.KeyVault` | [vaults](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.KeyVault/vaults) | +| [Kubernetes Configuration Extensions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.KubernetesConfiguration/extensions) | `MS.KubernetesConfiguration` | [extensions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.KubernetesConfiguration/extensions) | +| [Kubernetes Configuration Flux Configurations](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.KubernetesConfiguration/fluxConfigurations) | | [fluxConfigurations](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.KubernetesConfiguration/fluxConfigurations) | +| [Logic Apps](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Logic/workflows) | `MS.Logic` | [workflows](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Logic/workflows) | +| [Machine Learning Workspaces](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.MachineLearningServices/workspaces) | `MS.achineLearningServices` | [workspaces](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.MachineLearningServices/workspaces) | +| [User Assigned Identities](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ManagedIdentity/userAssignedIdentities) | `MS.anagedIdentity` | [userAssignedIdentities](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ManagedIdentity/userAssignedIdentities) | +| [Registration Definitions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ManagedServices/registrationDefinitions) | `MS.anagedServices` | [registrationDefinitions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ManagedServices/registrationDefinitions) | +| [Management Groups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Management/managementGroups) | `MS.anagement` | [managementGroups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Management/managementGroups) | +| [Azure NetApp Files](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.NetApp/netAppAccounts) | `MS.NetApp` | [netAppAccounts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.NetApp/netAppAccounts) | +| [Network Application Gateways](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/applicationGateways) | `MS.Network` | [applicationGateways](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/applicationGateways) | +| [Application Security Groups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/applicationSecurityGroups) | | [applicationSecurityGroups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/applicationSecurityGroups) | +| [Azure Firewalls](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/azureFirewalls) | | [azureFirewalls](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/azureFirewalls) | +| [Bastion Hosts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/bastionHosts) | | [bastionHosts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/bastionHosts) | +| [Virtual Network Gateway Connections](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/connections) | | [connections](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/connections) | +| [DDoS Protection Plans](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/ddosProtectionPlans) | | [ddosProtectionPlans](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/ddosProtectionPlans) | +| [ExpressRoute Circuits](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/expressRouteCircuits) | | [expressRouteCircuits](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/expressRouteCircuits) | +| [Firewall Policies](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/firewallPolicies) | | [firewallPolicies](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/firewallPolicies) | +| [Front Doors](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/frontDoors) | | [frontDoors](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/frontDoors) | +| [IP Groups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/ipGroups) | | [ipGroups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/ipGroups) | +| [Load Balancers](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/loadBalancers) | | [loadBalancers](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/loadBalancers) | +| [Local Network Gateways](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/localNetworkGateways) | | [localNetworkGateways](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/localNetworkGateways) | +| [NAT Gateways](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/natGateways) | | [natGateways](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/natGateways) | +| [Network Interface](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/networkInterfaces) | | [networkInterfaces](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/networkInterfaces) | +| [Network Security Groups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/networkSecurityGroups) | | [networkSecurityGroups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/networkSecurityGroups) | +| [Network Watchers](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/networkWatchers) | | [networkWatchers](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/networkWatchers) | +| [Private DNS Zones](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/privateDnsZones) | | [privateDnsZones](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/privateDnsZones) | +| [Private Endpoints](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/privateEndpoints) | | [privateEndpoints](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/privateEndpoints) | +| [Public IP Addresses](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/publicIPAddresses) | | [publicIPAddresses](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/publicIPAddresses) | +| [Public IP Prefixes](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/publicIPPrefixes) | | [publicIPPrefixes](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/publicIPPrefixes) | +| [Route Tables](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/routeTables) | | [routeTables](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/routeTables) | +| [Traffic Manager Profiles](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/trafficmanagerprofiles) | | [trafficmanagerprofiles](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/trafficmanagerprofiles) | +| [Virtual Hubs](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/virtualHubs) | | [virtualHubs](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/virtualHubs) | +| [Virtual Network Gateways](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/virtualNetworkGateways) | | [virtualNetworkGateways](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/virtualNetworkGateways) | +| [Virtual Networks](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/virtualNetworks) | | [virtualNetworks](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/virtualNetworks) | +| [Virtual WANs](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/virtualWans) | | [virtualWans](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/virtualWans) | +| [VPN Gateways](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/vpnGateways) | | [vpnGateways](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/vpnGateways) | +| [VPN Sites](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/vpnSites) | | [vpnSites](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/vpnSites) | +| [Log Analytics Workspaces](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.OperationalInsights/workspaces) | `MS.OperationalInsights` | [workspaces](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.OperationalInsights/workspaces) | +| [OperationsManagement Solutions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.OperationsManagement/solutions) | `MS.OperationsManagement` | [solutions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.OperationsManagement/solutions) | +| [Recovery Services Vaults](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.RecoveryServices/vaults) | `MS.RecoveryServices` | [vaults](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.RecoveryServices/vaults) | +| [Deployment Scripts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Resources/deploymentScripts) | `MS.Resources` | [deploymentScripts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Resources/deploymentScripts) | +| [Resource Groups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Resources/resourceGroups) | | [resourceGroups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Resources/resourceGroups) | +| [Resources Tags](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Resources/tags) | | [tags](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Resources/tags) | +| [Azure Security Center](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Security/azureSecurityCenter) | `MS.Security` | [azureSecurityCenter](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Security/azureSecurityCenter) | +| [Service Bus Namespaces](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ServiceBus/namespaces) | `MS.ServiceBus` | [namespaces](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ServiceBus/namespaces) | +| [Service Fabric Clusters](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ServiceFabric/clusters) | `MS.ServiceFabric` | [clusters](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ServiceFabric/clusters) | +| [SQL Managed Instances](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Sql/managedInstances) | `MS.Sql` | [managedInstances](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Sql/managedInstances) | +| [SQL Servers](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Sql/servers) | | [servers](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Sql/servers) | +| [Storage Accounts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Storage/storageAccounts) | `MS.Storage` | [storageAccounts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Storage/storageAccounts) | +| [Azure Synapse Analytics](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Synapse/privateLinkHubs) | `MS.Synapse` | [privateLinkHubs](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Synapse/privateLinkHubs) | +| [Image Templates](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.VirtualMachineImages/imageTemplates) | `MS.VirtualMachineImages` | [imageTemplates](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.VirtualMachineImages/imageTemplates) | +| [API Connections](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Web/connections) | `MS.Web` | [connections](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Web/connections) | +| [App Service Environments](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Web/hostingEnvironments) | | [hostingEnvironments](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Web/hostingEnvironments) | +| [App Service Plans](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Web/serverfarms) | | [serverfarms](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Web/serverfarms) | +| [Web/Function Apps](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Web/sites) | | [sites](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Web/sites) | +| [Static Web Sites](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Web/staticSites) | | [staticSites](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Web/staticSites) | diff --git a/utilities/pipelines/resourcePublish/Get-ModulesToPublish.ps1 b/utilities/pipelines/resourcePublish/Get-ModulesToPublish.ps1 index 57c18ff75e..7993734f5a 100644 --- a/utilities/pipelines/resourcePublish/Get-ModulesToPublish.ps1 +++ b/utilities/pipelines/resourcePublish/Get-ModulesToPublish.ps1 @@ -79,9 +79,9 @@ This function will search the current directory and all parent directories for a Mandatory. Path to the folder/file that should be searched .EXAMPLE -Find-TemplateFile -Path "C:\Repos\Azure\ResourceModules\arm\Microsoft.Storage\storageAccounts\tableServices\tables\.bicep\nested_roleAssignments.bicep" +Find-TemplateFile -Path "C:\Repos\Azure\ResourceModules\modules\Microsoft.Storage\storageAccounts\tableServices\tables\.bicep\nested_roleAssignments.bicep" - Directory: C:\Repos\Azure\ResourceModules\arm\Microsoft.Storage\storageAccounts\tableServices\tables + Directory: C:\Repos\Azure\ResourceModules\modules\Microsoft.Storage\storageAccounts\tableServices\tables Mode LastWriteTime Length Name ---- ------------- ------ ---- @@ -98,7 +98,7 @@ function Find-TemplateFile { $FolderPath = Split-Path $Path -Parent $FolderName = Split-Path $Path -Leaf - if ($FolderName -eq 'arm') { + if ($FolderName -eq 'modules') { return $null } @@ -126,9 +126,9 @@ Find the closest deploy.bicep/json file to the changed files in the module folde Mandatory. Path to the main/parent module folder. .EXAMPLE -Get-TemplateFileToPublish -ModuleFolderPath "C:\Repos\Azure\ResourceModules\arm\Microsoft.Storage\storageAccounts\" +Get-TemplateFileToPublish -ModuleFolderPath "C:\Repos\Azure\ResourceModules\modules\Microsoft.Storage\storageAccounts\" -C:\Repos\Azure\ResourceModules\arm\Microsoft.Storage\storageAccounts\tableServices\tables\deploy.bicep +C:\Repos\Azure\ResourceModules\modules\Microsoft.Storage\storageAccounts\tableServices\tables\deploy.bicep Gets the closest deploy.bicep/json file to the changed files in the module folder structure. Assuming there is a changed file in 'Microsoft.Storage\storageAccounts\tableServices\tables' @@ -142,7 +142,7 @@ function Get-TemplateFileToPublish { [Parameter(Mandatory)] [string] $ModuleFolderPath ) - $ModuleFolderRelPath = $ModuleFolderPath.Split('/arm/')[-1] + $ModuleFolderRelPath = $ModuleFolderPath.Split('/modules/')[-1] $ModifiedFiles = Get-ModifiedFileList -Verbose Write-Verbose "Looking for modified files under: [$ModuleFolderRelPath]" -Verbose $ModifiedModuleFiles = $ModifiedFiles | Where-Object { $_.FullName -like "*$ModuleFolderPath*" } @@ -157,7 +157,7 @@ function Get-TemplateFileToPublish { Write-Verbose ('Modified modules found: [{0}]' -f $TemplateFilesToPublish.count) -Verbose $TemplateFilesToPublish | ForEach-Object { - $RelPath = ($_.FullName).Split('/arm/')[-1] + $RelPath = ($_.FullName).Split('/modules/')[-1] $RelPath = $RelPath.Split('/deploy.')[0] Write-Verbose " - [$RelPath]" -Verbose } @@ -179,15 +179,15 @@ Mandatory. Path to a deploy.bicep/json file. Optional. If true, the function will recurse up the folder structure to find the closest deploy.bicep/json file. .EXAMPLE -Get-ParentModuleTemplateFile -TemplateFilePath 'C:\Repos\Azure\ResourceModules\arm\Microsoft.Storage\storageAccounts\tableServices\tables\deploy.bicep' -Recurse +Get-ParentModuleTemplateFile -TemplateFilePath 'C:\Repos\Azure\ResourceModules\modules\Microsoft.Storage\storageAccounts\tableServices\tables\deploy.bicep' -Recurse - Directory: C:\Repos\Azure\ResourceModules\arm\Microsoft.Storage\storageAccounts\tableServices + Directory: C:\Repos\Azure\ResourceModules\modules\Microsoft.Storage\storageAccounts\tableServices Mode LastWriteTime Length Name ---- ------------- ------ ---- la--- 05.12.2021 22:45 1427 deploy.bicep - Directory: C:\Repos\Azure\ResourceModules\arm\Microsoft.Storage\storageAccounts + Directory: C:\Repos\Azure\ResourceModules\modules\Microsoft.Storage\storageAccounts Mode LastWriteTime Length Name ---- ------------- ------ ---- @@ -268,7 +268,7 @@ The file needs to be in the same folder as the template file itself. Mandatory. Path to a deploy.bicep/json file. .EXAMPLE -Get-ModuleVersionFromFile -TemplateFilePath 'C:\Repos\Azure\ResourceModules\arm\Microsoft.Storage\storageAccounts\tableServices\tables\deploy.bicep' +Get-ModuleVersionFromFile -TemplateFilePath 'C:\Repos\Azure\ResourceModules\modules\Microsoft.Storage\storageAccounts\tableServices\tables\deploy.bicep' 0.3 @@ -307,7 +307,7 @@ Patch version number is calculated based on the git commit count on the branch. Mandatory. Path to a deploy.bicep/json file. .EXAMPLE -Get-NewModuleVersion -TemplateFilePath 'C:\Repos\Azure\ResourceModules\arm\Microsoft.Storage\storageAccounts\tableServices\tables\deploy.bicep' +Get-NewModuleVersion -TemplateFilePath 'C:\Repos\Azure\ResourceModules\modules\Microsoft.Storage\storageAccounts\tableServices\tables\deploy.bicep' 0.3.630 @@ -347,16 +347,16 @@ Generates a hashtable with template file paths to publish with a new version. Mandatory. Path to a deploy.bicep/json file. .EXAMPLE -Get-ModulesToPublish -TemplateFilePath 'C:\Repos\Azure\ResourceModules\arm\Microsoft.Storage\storageAccounts\deploy.bicep' +Get-ModulesToPublish -TemplateFilePath 'C:\Repos\Azure\ResourceModules\modules\Microsoft.Storage\storageAccounts\deploy.bicep' Name Value ---- ----- -TemplateFilePath C:\Repos\Azure\ResourceModules\arm\Microsoft.Storage\storageAccounts\fileServices\shares\deploy.bicep +TemplateFilePath C:\Repos\Azure\ResourceModules\modules\Microsoft.Storage\storageAccounts\fileServices\shares\deploy.bicep Version 0.3.848-prerelease -TemplateFilePath C:\Repos\Azure\ResourceModules\arm\Microsoft.Storage\storageAccounts\fileServices\deploy.bicep +TemplateFilePath C:\Repos\Azure\ResourceModules\modules\Microsoft.Storage\storageAccounts\fileServices\deploy.bicep Version 0.3.848-prerelease -TemplateFilePath C:\Repos\Azure\ResourceModules\arm\Microsoft.Storage\storageAccounts\deploy.bicep +TemplateFilePath C:\Repos\Azure\ResourceModules\modules\Microsoft.Storage\storageAccounts\deploy.bicep Version 0.3.848-prerelease Generates a hashtable with template file paths to publish and their new versions. @@ -429,7 +429,7 @@ function Get-ModulesToPublish { if ($ModulesToPublish.count -gt 0) { Write-Verbose 'Publish the following modules:'-Verbose $ModulesToPublish | ForEach-Object { - $RelPath = ($_.TemplateFilePath).Split('/arm/')[-1] + $RelPath = ($_.TemplateFilePath).Split('/modules/')[-1] $RelPath = $RelPath.Split('/deploy.')[0] Write-Verbose (' - [{0}] [{1}] ' -f $RelPath, $_.Version) -Verbose } diff --git a/utilities/pipelines/resourcePublish/Publish-ModuleToPrivateBicepRegistry.ps1 b/utilities/pipelines/resourcePublish/Publish-ModuleToPrivateBicepRegistry.ps1 index 584582b4e1..319c73b919 100644 --- a/utilities/pipelines/resourcePublish/Publish-ModuleToPrivateBicepRegistry.ps1 +++ b/utilities/pipelines/resourcePublish/Publish-ModuleToPrivateBicepRegistry.ps1 @@ -7,7 +7,7 @@ Publish a new version of a given module to a private bicep registry .PARAMETER TemplateFilePath Mandatory. Path to the module deployment file from root. -Example: 'C:\arm\Microsoft.KeyVault\vaults\deploy.bicep' +Example: 'C:\modules\Microsoft.KeyVault\vaults\deploy.bicep' .PARAMETER ModuleVersion Mandatory. Version of the module to publish, following SemVer convention. @@ -26,7 +26,7 @@ Optional. The location of the resourceGroup the private bicep registry is deploy Example: 'West Europe' .EXAMPLE -Publish-ModuleToPrivateBicepRegistry -TemplateFilePath 'C:\arm\Microsoft.KeyVault\vaults\deploy.bicep' -ModuleVersion '3.0.0-alpha' -BicepRegistryName 'adpsxxazacrx001' -BicepRegistryRgName 'artifacts-rg' +Publish-ModuleToPrivateBicepRegistry -TemplateFilePath 'C:\modules\Microsoft.KeyVault\vaults\deploy.bicep' -ModuleVersion '3.0.0-alpha' -BicepRegistryName 'adpsxxazacrx001' -BicepRegistryRgName 'artifacts-rg' Try to publish the KeyVault module with version 3.0.0-alpha to a private bicep registry called 'adpsxxazacrx001' in resource group 'artifacts-rg'. #> @@ -76,8 +76,8 @@ function Publish-ModuleToPrivateBicepRegistry { } } - # Extracts Microsoft.KeyVault/vaults from e.g. C:\arm\Microsoft.KeyVault\vaults\deploy.bicep - $moduleIdentifier = (Split-Path $TemplateFilePath -Parent).Replace('\', '/').Split('/arm/')[1] + # Extracts Microsoft.KeyVault/vaults from e.g. C:\modules\Microsoft.KeyVault\vaults\deploy.bicep + $moduleIdentifier = (Split-Path $TemplateFilePath -Parent).Replace('\', '/').Split('/modules/')[1] $moduleRegistryIdentifier = 'bicep/modules/{0}' -f $moduleIdentifier.Replace('\', '/').Replace('/', '.').ToLower() ############################################# diff --git a/utilities/pipelines/resourcePublish/Publish-ModuleToTemplateSpec.ps1 b/utilities/pipelines/resourcePublish/Publish-ModuleToTemplateSpec.ps1 index 1a0a883a5f..df821bd8d8 100644 --- a/utilities/pipelines/resourcePublish/Publish-ModuleToTemplateSpec.ps1 +++ b/utilities/pipelines/resourcePublish/Publish-ModuleToTemplateSpec.ps1 @@ -8,7 +8,7 @@ The template spec is set up if not already existing. .PARAMETER TemplateFilePath Mandatory. Path to the module deployment file from root. -Example: 'C:\arm\Microsoft.KeyVault\vaults\deploy.bicep' +Example: 'C:\modules\Microsoft.KeyVault\vaults\deploy.bicep' .PARAMETER ModuleVersion Mandatory. Version of the module to publish, following SemVer convention. @@ -27,7 +27,7 @@ Mandatory. The description of the parent template spec. Example: 'iacs key vault' .EXAMPLE -Publish-ModuleToTemplateSpec -TemplateFilePath 'C:\arm\Microsoft.KeyVault\vaults\deploy.bicep' -ModuleVersion '3.0.0-alpha' -TemplateSpecsRgName 'artifacts-rg' -TemplateSpecsRgLocation 'West Europe' -TemplateSpecsDescription 'iacs key vault' +Publish-ModuleToTemplateSpec -TemplateFilePath 'C:\modules\Microsoft.KeyVault\vaults\deploy.bicep' -ModuleVersion '3.0.0-alpha' -TemplateSpecsRgName 'artifacts-rg' -TemplateSpecsRgLocation 'West Europe' -TemplateSpecsDescription 'iacs key vault' Try to publish the KeyVault module with version 3.0.0-alpha to a template spec in resource group 'artifacts-rg'. #> @@ -56,7 +56,7 @@ function Publish-ModuleToTemplateSpec { } process { - $moduleIdentifier = (Split-Path $TemplateFilePath -Parent).Replace('\', '/').Split('/arm/')[1] + $moduleIdentifier = (Split-Path $TemplateFilePath -Parent).Replace('\', '/').Split('/modules/')[1] $templateSpecIdentifier = $moduleIdentifier.Replace('\', '/').Replace('/', '.').ToLower() ############################# diff --git a/utilities/pipelines/resourcePublish/Publish-ModuleToUniversalArtifactFeed.ps1 b/utilities/pipelines/resourcePublish/Publish-ModuleToUniversalArtifactFeed.ps1 index 7868fe45fa..0dd3549f87 100644 --- a/utilities/pipelines/resourcePublish/Publish-ModuleToUniversalArtifactFeed.ps1 +++ b/utilities/pipelines/resourcePublish/Publish-ModuleToUniversalArtifactFeed.ps1 @@ -38,7 +38,7 @@ Publish a new version of a given module to an Azure DevOps artifact feed as a un .PARAMETER TemplateFilePath Mandatory. Path to the module deployment file from root. -Example: 'C:\arm\Microsoft.KeyVault\vaults\deploy.bicep' +Example: 'C:\modules\Microsoft.KeyVault\vaults\deploy.bicep' .PARAMETER ModuleVersion Mandatory. Version of the module to publish, following SemVer convention. @@ -60,7 +60,7 @@ Example: 'Artifacts'. Optional. The bearer token to use to authenticate the request. If not provided it MUST be existing in your environment as `$env:TOKEN` .EXAMPLE -Publish-ModuleToUniversalArtifactFeed -TemplateFilePath 'C:\arm\Microsoft.KeyVault\vaults\deploy.bicep' -ModuleVersion '3.0.0-alpha' -vstsOrganizationUri 'https://dev.azure.com/fabrikam' -VstsProject 'IaC' -VstsFeedName 'Artifacts' +Publish-ModuleToUniversalArtifactFeed -TemplateFilePath 'C:\modules\Microsoft.KeyVault\vaults\deploy.bicep' -ModuleVersion '3.0.0-alpha' -vstsOrganizationUri 'https://dev.azure.com/fabrikam' -VstsProject 'IaC' -VstsFeedName 'Artifacts' Try to publish the KeyVault module with version 3.0.0-alpha to a Universal Package Feed called 'Artifacts' under the project 'IaC'. #> @@ -102,9 +102,9 @@ function Publish-ModuleToUniversalArtifactFeed { ################################# # Universal package names => lowercase alphanumerics, dashes, dots or underscores, under 256 characters. - # 'C:\arm\Microsoft.KeyVault\vaults\deploy.bicep' => 'microsoft.keyvault.vaults' + # 'C:\modules\Microsoft.KeyVault\vaults\deploy.bicep' => 'microsoft.keyvault.vaults' $ModuleFolderPath = Split-Path $TemplateFilePath -Parent - $universalPackageModuleName = $ModuleFolderPath.Replace('\', '/').Split('/arm/')[1] + $universalPackageModuleName = $ModuleFolderPath.Replace('\', '/').Split('/modules/')[1] $universalPackageModuleName = ($universalPackageModuleName.Replace('\', '.').Replace('/', '.').toLower() -Replace '[^a-z0-9\.\-_]')[0..255] -join '' Write-Verbose "The universal package name is [$universalPackageModuleName]" -Verbose diff --git a/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1 b/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1 index c826ed26d9..af78109452 100644 --- a/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1 +++ b/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1 @@ -18,9 +18,9 @@ Optional. The name of the resource group the deployment was happening in. Releva Optional. The ID of the management group to fetch deployments from. Relevant for management-group level deployments. .EXAMPLE -Initialize-DeploymentRemoval -DeploymentName 'virtualWans-20211204T1812029146Z' -TemplateFilePath "$home/ResourceModules/arm/Microsoft.Network/virtualWans/deploy.bicep" -resourceGroupName 'test-virtualWan-parameters.json-rg' +Initialize-DeploymentRemoval -DeploymentName 'virtualWans-20211204T1812029146Z' -TemplateFilePath "$home/ResourceModules/modules/Microsoft.Network/virtualWans/deploy.bicep" -resourceGroupName 'test-virtualWan-parameters.json-rg' -Remove the deployment 'virtualWans-20211204T1812029146Z' from resource group 'test-virtualWan-parameters.json-rg' that was executed using template in path "$home/ResourceModules/arm/Microsoft.Network/virtualWans/deploy.bicep" +Remove the deployment 'virtualWans-20211204T1812029146Z' from resource group 'test-virtualWan-parameters.json-rg' that was executed using template in path "$home/ResourceModules/modules/Microsoft.Network/virtualWans/deploy.bicep" #> function Initialize-DeploymentRemoval { diff --git a/utilities/pipelines/sharedScripts/Get-ModuleParameterFiles.ps1 b/utilities/pipelines/sharedScripts/Get-ModuleParameterFiles.ps1 index bb5cef5dd6..b13d619e7b 100644 --- a/utilities/pipelines/sharedScripts/Get-ModuleParameterFiles.ps1 +++ b/utilities/pipelines/sharedScripts/Get-ModuleParameterFiles.ps1 @@ -10,7 +10,7 @@ The relative path is returned instead of the full one to make paths easier to re Mandatory. The module path to search in. .EXAMPLE -Get-ModuleParameterFiles -ModulePath 'C:\ResourceModules\arm\Microsoft.Compute\virtualMachines' +Get-ModuleParameterFiles -ModulePath 'C:\ResourceModules\modules\Microsoft.Compute\virtualMachines' Returns the relative file paths of all parameter files of the virtual machines module. #> diff --git a/utilities/tools/ConvertTo-ARMTemplate.ps1 b/utilities/tools/ConvertTo-ARMTemplate.ps1 index ed3150bef3..90fe651023 100644 --- a/utilities/tools/ConvertTo-ARMTemplate.ps1 +++ b/utilities/tools/ConvertTo-ARMTemplate.ps1 @@ -56,20 +56,20 @@ param ( ) $rootPath = Get-Item -Path $Path | Select-Object -ExpandProperty 'FullName' -$armFolderPath = Join-Path -Path $rootPath -ChildPath 'arm' +$modulesFolderPath = Join-Path -Path $rootPath -ChildPath 'modules' if ($ConvertChildren) { - $BicepFilesToConvert = Get-ChildItem -Path $armFolderPath -Filter 'deploy.bicep' -Recurse -Force + $BicepFilesToConvert = Get-ChildItem -Path $modulesFolderPath -Filter 'deploy.bicep' -Recurse -Force } else { - $BicepFilesToConvert = Get-ChildItem -Path $armFolderPath -Filter 'deploy.bicep' -Recurse -Force -Depth 2 + $BicepFilesToConvert = Get-ChildItem -Path $modulesFolderPath -Filter 'deploy.bicep' -Recurse -Force -Depth 2 } #region Remove existing deploy.json files Write-Verbose 'Remove existing deploy.json files' -if (Test-Path -Path (Join-Path -Path $armFolderPath -ChildPath 'deploy.bicep')) { - $JsonFilesToRemove = Get-ChildItem -Path $armFolderPath -Filter 'deploy.json' -Recurse -Force -File +if (Test-Path -Path (Join-Path -Path $modulesFolderPath -ChildPath 'deploy.bicep')) { + $JsonFilesToRemove = Get-ChildItem -Path $modulesFolderPath -Filter 'deploy.json' -Recurse -Force -File Write-Verbose "Remove existing deploy.json files - Remove [$($JsonFilesToRemove.count)] file(s)" - if ($PSCmdlet.ShouldProcess("[$($JsonFilesToRemove.count)] deploy.json files(s) in path [$armFolderPath]", 'Remove-Item')) { + if ($PSCmdlet.ShouldProcess("[$($JsonFilesToRemove.count)] deploy.json files(s) in path [$modulesFolderPath]", 'Remove-Item')) { $JsonFilesToRemove | Remove-Item -Force } Write-Verbose 'Remove existing deploy.json files - Done' @@ -81,7 +81,7 @@ if (Test-Path -Path (Join-Path -Path $armFolderPath -ChildPath 'deploy.bicep')) Write-Verbose 'Convert bicep files to json' Write-Verbose "Convert bicep files to json - Processing [$($BicepFilesToConvert.count)] file(s)" -if ($PSCmdlet.ShouldProcess("[$($BicepFilesToConvert.count)] deploy.bicep file(s) in path [$armFolderPath]", 'az bicep build')) { +if ($PSCmdlet.ShouldProcess("[$($BicepFilesToConvert.count)] deploy.bicep file(s) in path [$modulesFolderPath]", 'az bicep build')) { # parallelism is not supported on GitHub runners #$BicepFilesToConvert | ForEach-Object -ThrottleLimit $env:NUMBER_OF_PROCESSORS -Parallel { $BicepFilesToConvert | ForEach-Object { @@ -97,7 +97,7 @@ if (-not $SkipMetadataCleanup) { Write-Verbose 'Remove Bicep metadata from json' Write-Verbose "Remove Bicep metadata from json - Processing [$($BicepFilesToConvert.count)] file(s)" - if ($PSCmdlet.ShouldProcess("[$($BicepFilesToConvert.count)] deploy.bicep file(s) in path [$armFolderPath]", 'Set-Content')) { + if ($PSCmdlet.ShouldProcess("[$($BicepFilesToConvert.count)] deploy.bicep file(s) in path [$modulesFolderPath]", 'Set-Content')) { # parallelism is not supported on GitHub runners #$BicepFilesToConvert | ForEach-Object -ThrottleLimit $env:NUMBER_OF_PROCESSORS -Parallel { $BicepFilesToConvert | ForEach-Object { @@ -153,15 +153,15 @@ if (-not $SkipMetadataCleanup) { if (-not $SkipBicepCleanUp) { Write-Verbose 'Remove bicep files and folders' - $dotBicepFoldersToRemove = Get-ChildItem -Path $armFolderPath -Filter '.bicep' -Recurse -Force -Directory + $dotBicepFoldersToRemove = Get-ChildItem -Path $modulesFolderPath -Filter '.bicep' -Recurse -Force -Directory Write-Verbose "Remove bicep files and folders - Remove [$($dotBicepFoldersToRemove.count)] .bicep folder(s)" - if ($PSCmdlet.ShouldProcess("[$($dotBicepFoldersToRemove.count)] .bicep folder(s) in path [$armFolderPath]", 'Remove-Item')) { + if ($PSCmdlet.ShouldProcess("[$($dotBicepFoldersToRemove.count)] .bicep folder(s) in path [$modulesFolderPath]", 'Remove-Item')) { $dotBicepFoldersToRemove | Remove-Item -Recurse -Force } - $BicepFilesToRemove = Get-ChildItem -Path $armFolderPath -Filter '*.bicep' -Recurse -Force -File + $BicepFilesToRemove = Get-ChildItem -Path $modulesFolderPath -Filter '*.bicep' -Recurse -Force -File Write-Verbose "Remove bicep files and folders - Remove [$($BicepFilesToRemove.count)] *.bicep file(s)" - if ($PSCmdlet.ShouldProcess("[$($BicepFilesToRemove.count)] *.bicep file(s) in path [$armFolderPath]", 'Remove-Item')) { + if ($PSCmdlet.ShouldProcess("[$($BicepFilesToRemove.count)] *.bicep file(s) in path [$modulesFolderPath]", 'Remove-Item')) { $BicepFilesToRemove | Remove-Item -Force } diff --git a/utilities/tools/Get-LinkedLocalModuleList.ps1 b/utilities/tools/Get-LinkedLocalModuleList.ps1 index 347997b8e9..23d23d798c 100644 --- a/utilities/tools/Get-LinkedLocalModuleList.ps1 +++ b/utilities/tools/Get-LinkedLocalModuleList.ps1 @@ -6,14 +6,14 @@ Print a list of all local references for the modules in a given path The result will be a list of all modules in the given path alongside their individual references to other modules in the folder structure .PARAMETER path -Optional. The path to search in. Defaults to the 'arm' folder +Optional. The path to search in. Defaults to the 'modules' folder .EXAMPLE Get-LinkedLocalModuleList Invoke the function with the default path. Prints a list such as: -> The modules in path [C:\dev\ip\Azure-ResourceModules\ResourceModules\arm] have the following local folder dependencies: +> The modules in path [C:\dev\ip\Azure-ResourceModules\ResourceModules\modules] have the following local folder dependencies: > > Resource: Microsoft.EventGrid/topics > - Microsoft.EventGrid/Microsoft.Network/privateEndpoints @@ -26,7 +26,7 @@ Get-LinkedLocalModuleList -Path './Microsoft.Sql' Get only the references of the modules in folder path './Microsoft.Sql' -> The modules in path [..\..\arm\Microsoft.Sql\] have the following local folder dependencies: +> The modules in path [..\..\modules\Microsoft.Sql\] have the following local folder dependencies: > > Resource: Microsoft.Sql/servers > - Microsoft.Sql/Microsoft.Network/privateEndpoints @@ -36,7 +36,7 @@ function Get-LinkedLocalModuleList { [CmdletBinding()] param ( [Parameter()] - [string] $path = (Join-Path (Split-Path (Split-Path $PSScriptRoot -Parent) -Parent) 'arm') + [string] $path = (Join-Path (Split-Path (Split-Path $PSScriptRoot -Parent) -Parent) 'modules') ) # Load used functions diff --git a/utilities/tools/Get-LinkedModuleList.ps1 b/utilities/tools/Get-LinkedModuleList.ps1 index 2d6a8608e1..221924185e 100644 --- a/utilities/tools/Get-LinkedModuleList.ps1 +++ b/utilities/tools/Get-LinkedModuleList.ps1 @@ -9,7 +9,7 @@ As an output you will receive a hashtable that (for each provider namespace) lis - Linked remote module tempaltes (e.g. via "module rg 'br/modules:(..):(..)'") .PARAMETER path -Optional. The path to search in. Defaults to the 'arm' folder +Optional. The path to search in. Defaults to the 'modules' folder .EXAMPLE Get-LinkedModuleList @@ -40,7 +40,7 @@ function Get-LinkedModuleList { [CmdletBinding()] param ( [Parameter()] - [string] $path = (Join-Path (Split-Path (Split-Path $PSScriptRoot -Parent) -Parent) 'arm') + [string] $path = (Join-Path (Split-Path (Split-Path $PSScriptRoot -Parent) -Parent) 'modules') ) $resultSet = @{} diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index e169bd984a..96bfe0e955 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -350,7 +350,7 @@ function Set-DeploymentExamplesSection { $SectionContent = [System.Collections.ArrayList]@() $moduleRoot = Split-Path $TemplateFilePath -Parent - $resourceTypeIdentifier = $moduleRoot.Split('arm')[1].Replace('\', '/').TrimStart('/') + $resourceTypeIdentifier = $moduleRoot.Split('modules')[1].Replace('\', '/').TrimStart('/') $parameterFiles = Get-ChildItem (Join-Path $moduleRoot '.parameters') -Filter '*parameters.json' -Recurse $index = 1 @@ -639,7 +639,7 @@ function Set-ModuleReadMe { throw "Failed to compile [$TemplateFilePath]" } - $fullResourcePath = (Split-Path $TemplateFilePath -Parent).Replace('\', '/').split('/arm/')[1] + $fullResourcePath = (Split-Path $TemplateFilePath -Parent).Replace('\', '/').split('/modules/')[1] # Check readme if (-not (Test-Path $ReadMeFilePath) -or ([String]::IsNullOrEmpty((Get-Content $ReadMeFilePath -Raw)))) { @@ -674,7 +674,7 @@ function Set-ModuleReadMe { } # Update title - if ($TemplateFilePath.Replace('\', '/') -like '*/arm/*') { + if ($TemplateFilePath.Replace('\', '/') -like '*/modules/*') { if ($readMeFileContent[0] -notlike "*``[$fullResourcePath]``") { # Cut outdated diff --git a/utilities/tools/Set-ReadMeModuleTable.ps1 b/utilities/tools/Set-ReadMeModuleTable.ps1 index 9ebb1235ea..937d1e4605 100644 --- a/utilities/tools/Set-ReadMeModuleTable.ps1 +++ b/utilities/tools/Set-ReadMeModuleTable.ps1 @@ -25,7 +25,7 @@ Mandatory. The set of columns to add to the table in the order you expect them i Available are 'Name', 'ProviderNamespace', 'ResourceType', 'TemplateType', 'Deploy' & 'Status' .EXAMPLE -Set-ReadMeModuleTable -FilePath 'C:\readme.md' -ModulesPath 'C:\arm' -RepositoryName 'ResourceModules' -Organization 'Azure' -ColumnsInOrder @('Name','Status') +Set-ReadMeModuleTable -FilePath 'C:\readme.md' -ModulesPath 'C:\modules' -RepositoryName 'ResourceModules' -Organization 'Azure' -ColumnsInOrder @('Name','Status') Update the defined table section in the 'readme.md' file with a table that has the columns 'Name' & 'Status' #> diff --git a/utilities/tools/Test-ModuleLocally.ps1 b/utilities/tools/Test-ModuleLocally.ps1 index dced7d66d2..081762ab77 100644 --- a/utilities/tools/Test-ModuleLocally.ps1 +++ b/utilities/tools/Test-ModuleLocally.ps1 @@ -166,7 +166,7 @@ function Test-ModuleLocally { Invoke-Pester -Configuration @{ Run = @{ - Container = New-PesterContainer -Path (Join-Path (Get-Item $PSScriptRoot).Parent.Parent 'arm/.global/global.module.tests.ps1') -Data @{ + Container = New-PesterContainer -Path (Join-Path (Get-Item $PSScriptRoot).Parent.Parent 'modules/.global/global.module.tests.ps1') -Data @{ moduleFolderPaths = Split-Path $TemplateFilePath -Parent enforcedTokenList = $enforcedTokenList } diff --git a/utilities/tools/helper/Get-ModulesAsMarkdownTable.ps1 b/utilities/tools/helper/Get-ModulesAsMarkdownTable.ps1 index 5ac8682b7a..fb41024aaf 100644 --- a/utilities/tools/helper/Get-ModulesAsMarkdownTable.ps1 +++ b/utilities/tools/helper/Get-ModulesAsMarkdownTable.ps1 @@ -340,10 +340,10 @@ function Get-ResolvedSubServiceRow { 'Name' { switch ($Environment) { 'ADO' { - $row['Name'] = ('[{0}](https://dev.azure.com/{1}/{2}/_git/{3}?path=/arm/{4})' -f (Get-ResourceModuleName -path $subfolder), $Organization, $ProjectName, $RepositoryName, $relativePath.Replace('\', '/')) + $row['Name'] = ('[{0}](https://dev.azure.com/{1}/{2}/_git/{3}?path=/modules/{4})' -f (Get-ResourceModuleName -path $subfolder), $Organization, $ProjectName, $RepositoryName, $relativePath.Replace('\', '/')) } 'GitHub' { - $row['Name'] = ('[{0}](https://github.com/{1}/{2}/tree/main/arm/{3})' -f (Get-ResourceModuleName -path $subfolder), $Organization, $RepositoryName, $relativePath.Replace('\', '/')) + $row['Name'] = ('[{0}](https://github.com/{1}/{2}/tree/main/modules/{3})' -f (Get-ResourceModuleName -path $subfolder), $Organization, $RepositoryName, $relativePath.Replace('\', '/')) } } @@ -365,10 +365,10 @@ function Get-ResolvedSubServiceRow { 'ResourceType' { switch ($Environment) { 'ADO' { - $row['ResourceType'] = ('[{0}](https://dev.azure.com/{1}/{2}/_git/{3}?path=/arm/{4})' -f $subName, $Organization, $ProjectName, $RepositoryName, $relativePath.Replace('\', '/')) + $row['ResourceType'] = ('[{0}](https://dev.azure.com/{1}/{2}/_git/{3}?path=/modules/{4})' -f $subName, $Organization, $ProjectName, $RepositoryName, $relativePath.Replace('\', '/')) } 'GitHub' { - $row['ResourceType'] = ('[{0}](https://github.com/{1}/{2}/tree/main/arm/{3})' -f $subName, $Organization, $RepositoryName, $relativePath.Replace('\', '/')) + $row['ResourceType'] = ('[{0}](https://github.com/{1}/{2}/tree/main/modules/{3})' -f $subName, $Organization, $RepositoryName, $relativePath.Replace('\', '/')) } } @@ -451,7 +451,7 @@ Get-ModulesAsMarkdownTable -path 'C:\dev\Modules' -ColumnsInOrder @('Resource Ty Generate a markdown table for all modules in path 'C:\dev\Modules' with only the 'Resource Type' & 'Name' columns, , sorted by 'Name' .EXAMPLE -Get-ModulesAsMarkdownTable -path 'C:\dev\ip\Azure-Modules\ResourceModules\arm' -RepositoryName 'ResourceModules' -Organization 'Azure' -ColumnsInOrder @('Name','TemplateType','Status','Deploy') +Get-ModulesAsMarkdownTable -path 'C:\dev\ip\Azure-Modules\ResourceModules\modules' -RepositoryName 'ResourceModules' -Organization 'Azure' -ColumnsInOrder @('Name','TemplateType','Status','Deploy') Generate a markdown table for all modules in path 'C:\dev\Modules' with only the 'Name','TemplateType','Status' &'Deploy' columns, sorted by 'Name' #> @@ -544,10 +544,10 @@ function Get-ModulesAsMarkdownTable { 'Name' { switch ($Environment) { 'ADO' { - $row['Name'] = ('[{0}](https://dev.azure.com/{1}/{2}/_git/{3}?path=/arm/{4})' -f (Get-ResourceModuleName -path $containedFolder), $Organization, $ProjectName, $RepositoryName, $concatedBase.Replace('\', '/')) + $row['Name'] = ('[{0}](https://dev.azure.com/{1}/{2}/_git/{3}?path=/modules/{4})' -f (Get-ResourceModuleName -path $containedFolder), $Organization, $ProjectName, $RepositoryName, $concatedBase.Replace('\', '/')) } 'GitHub' { - $row['Name'] = ('[{0}](https://github.com/{1}/{2}/tree/main/arm/{3})' -f (Get-ResourceModuleName -path $containedFolder), $Organization, $RepositoryName, $concatedBase.Replace('\', '/')) + $row['Name'] = ('[{0}](https://github.com/{1}/{2}/tree/main/modules/{3})' -f (Get-ResourceModuleName -path $containedFolder), $Organization, $RepositoryName, $concatedBase.Replace('\', '/')) } } } @@ -568,10 +568,10 @@ function Get-ModulesAsMarkdownTable { 'ResourceType' { switch ($Environment) { 'ADO' { - $row['ResourceType'] = ('[{0}](https://dev.azure.com/{1}/{2}/_git/{3}?path=/arm/{4})' -f (Get-ResourceModuleName -path $containedFolder), $Organization, $ProjectName, $RepositoryName, $concatedBase.Replace('\', '/')) + $row['ResourceType'] = ('[{0}](https://dev.azure.com/{1}/{2}/_git/{3}?path=/modules/{4})' -f (Get-ResourceModuleName -path $containedFolder), $Organization, $ProjectName, $RepositoryName, $concatedBase.Replace('\', '/')) } 'GitHub' { - $row['ResourceType'] += ('[{0}](https://github.com/{1}/{2}/tree/main/arm/{3})' -f $containedFolderName, $Organization, $RepositoryName, $concatedBase.Replace('\', '/')) + $row['ResourceType'] += ('[{0}](https://github.com/{1}/{2}/tree/main/modules/{3})' -f $containedFolderName, $Organization, $RepositoryName, $concatedBase.Replace('\', '/')) } } diff --git a/utilities/tools/tests/ConvertTo-ARMTemplate.Tests.ps1 b/utilities/tools/tests/ConvertTo-ARMTemplate.Tests.ps1 index 422bba1b51..8a544ed4d0 100644 --- a/utilities/tools/tests/ConvertTo-ARMTemplate.Tests.ps1 +++ b/utilities/tools/tests/ConvertTo-ARMTemplate.Tests.ps1 @@ -7,14 +7,14 @@ param () BeforeAll { # Define paths $rootPath = (Get-Item $PSScriptRoot).Parent.Parent.Parent.FullName - $armFolderPath = Join-Path $rootPath 'arm' + $modulesFolderPath = Join-Path $rootPath 'modules' $toolsPath = Join-Path $rootPath 'utilities' 'tools' # Collect original files - $bicepFilesCount = (Get-ChildItem -Recurse $armFolderPath | Where-Object { $_.Name -like '*.bicep' }).Count - $nestedBicepFilesCount = (Get-ChildItem -Recurse $armFolderPath | Where-Object { $_.Name -like 'nested_*bicep' }).Count - $deployBicepFilesCount = (Get-ChildItem -Recurse $armFolderPath | Where-Object { $_.Name -match 'deploy.bicep' }).Count - $deployParentBicepFilesCount = (Get-ChildItem -Recurse $armFolderPath -Depth 2 | Where-Object { $_.Name -match 'deploy.bicep' }).Count + $bicepFilesCount = (Get-ChildItem -Recurse $modulesFolderPath | Where-Object { $_.Name -like '*.bicep' }).Count + $nestedBicepFilesCount = (Get-ChildItem -Recurse $modulesFolderPath | Where-Object { $_.Name -like 'nested_*bicep' }).Count + $deployBicepFilesCount = (Get-ChildItem -Recurse $modulesFolderPath | Where-Object { $_.Name -match 'deploy.bicep' }).Count + $deployParentBicepFilesCount = (Get-ChildItem -Recurse $modulesFolderPath -Depth 2 | Where-Object { $_.Name -match 'deploy.bicep' }).Count # GitHub Workflows $moduleWorkflowFiles = Get-ChildItem -Path (Join-Path $rootPath '.github' 'workflows') -Filter 'ms.*.yml' -File @@ -48,17 +48,17 @@ Describe 'Test default behavior' -Tag 'Default' { } It 'All top-level deploy.bicep files are converted to deploy.json' { - $deployJsonFilesCount = (Get-ChildItem -Recurse $armFolderPath | Where-Object { $_.FullName -match 'deploy.json' }).Count + $deployJsonFilesCount = (Get-ChildItem -Recurse $modulesFolderPath | Where-Object { $_.FullName -match 'deploy.json' }).Count $deployJsonFilesCount | Should -Be $deployParentBicepFilesCount } It 'All bicep files are removed' { - $bicepFilesCount = (Get-ChildItem -Recurse $armFolderPath | Where-Object { $_.FullName -match '.*.bicep' }).Count + $bicepFilesCount = (Get-ChildItem -Recurse $modulesFolderPath | Where-Object { $_.FullName -match '.*.bicep' }).Count $bicepFilesCount | Should -Be 0 } It 'All json files have metadata removed' { - $deployJsonFiles = (Get-ChildItem -Recurse $armFolderPath | Where-Object { $_.FullName -match 'deploy.json' }) + $deployJsonFiles = (Get-ChildItem -Recurse $modulesFolderPath | Where-Object { $_.FullName -match 'deploy.json' }) $metadataFound = $false foreach ($deployJsonFile in $deployJsonFiles) { @@ -109,17 +109,17 @@ Describe 'Test flag to including children' -Tag 'ConvertChildren' { } It 'All deploy.bicep files are converted to deploy.json' { - $deployJsonFilesCount = (Get-ChildItem -Recurse $armFolderPath | Where-Object { $_.FullName -match 'deploy.json' }).Count + $deployJsonFilesCount = (Get-ChildItem -Recurse $modulesFolderPath | Where-Object { $_.FullName -match 'deploy.json' }).Count $deployJsonFilesCount | Should -Be $deployBicepFilesCount } It 'All bicep files are removed' { - $bicepFilesCount = (Get-ChildItem -Recurse $armFolderPath | Where-Object { $_.FullName -match '.*.bicep' }).Count + $bicepFilesCount = (Get-ChildItem -Recurse $modulesFolderPath | Where-Object { $_.FullName -match '.*.bicep' }).Count $bicepFilesCount | Should -Be 0 } It 'All json files have metadata removed' { - $deployJsonFiles = (Get-ChildItem -Recurse $armFolderPath | Where-Object { $_.FullName -match 'deploy.json' }) + $deployJsonFiles = (Get-ChildItem -Recurse $modulesFolderPath | Where-Object { $_.FullName -match 'deploy.json' }) $metadataFound = $false foreach ($deployJsonFile in $deployJsonFiles) { @@ -170,17 +170,17 @@ Describe 'Test flags that skip logic' -Tag 'Skip' { } It 'All deploy.bicep files are converted to deploy.json' { - $deployJsonFilesCount = (Get-ChildItem -Recurse $armFolderPath | Where-Object { $_.FullName -match 'deploy.json' }).Count + $deployJsonFilesCount = (Get-ChildItem -Recurse $modulesFolderPath | Where-Object { $_.FullName -match 'deploy.json' }).Count $deployJsonFilesCount | Should -Be $deployParentBicepFilesCount } It 'All bicep files are still there' { - $bicepFilesCount = (Get-ChildItem -Recurse $armFolderPath | Where-Object { $_.FullName -match '.*.bicep' }).Count + $bicepFilesCount = (Get-ChildItem -Recurse $modulesFolderPath | Where-Object { $_.FullName -match '.*.bicep' }).Count $bicepFilesCount | Should -Be $bicepFilesCount } It 'All json files still have metadata' { - $deployJsonFiles = (Get-ChildItem -Recurse $armFolderPath | Where-Object { $_.FullName -match 'deploy.json' }) + $deployJsonFiles = (Get-ChildItem -Recurse $modulesFolderPath | Where-Object { $_.FullName -match 'deploy.json' }) $metadataFound = $false foreach ($deployJsonFile in $deployJsonFiles) { From 27e87c1e30215511f66cf141c34507edd0002e00 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 26 Jun 2022 20:01:29 +0200 Subject: [PATCH 002/274] Updated readme --- modules/Microsoft.OperationalInsights/workspaces/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/Microsoft.OperationalInsights/workspaces/readme.md b/modules/Microsoft.OperationalInsights/workspaces/readme.md index a59a80f2c1..7ab03028f1 100644 --- a/modules/Microsoft.OperationalInsights/workspaces/readme.md +++ b/modules/Microsoft.OperationalInsights/workspaces/readme.md @@ -15,7 +15,7 @@ This template deploys a log analytics workspace. | :-- | :-- | | `Microsoft.Authorization/locks` | [2017-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2017-04-01/locks) | | `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-10-01-preview/roleAssignments) | -| `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/diagnosticSettings) | +| `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | | `Microsoft.OperationalInsights/workspaces` | [2020-08-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.OperationalInsights/2020-08-01/workspaces) | | `Microsoft.OperationalInsights/workspaces/dataSources` | [2020-08-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.OperationalInsights/2020-08-01/workspaces/dataSources) | | `Microsoft.OperationalInsights/workspaces/linkedServices` | [2020-08-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.OperationalInsights/2020-08-01/workspaces/linkedServices) | From 60ec109118a3fd9eb682103dcccb6d52df24f19d Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 26 Jun 2022 20:04:14 +0200 Subject: [PATCH 003/274] Updated readme --- modules/Microsoft.Web/serverfarms/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/Microsoft.Web/serverfarms/readme.md b/modules/Microsoft.Web/serverfarms/readme.md index f67d7dc3c0..72d0297048 100644 --- a/modules/Microsoft.Web/serverfarms/readme.md +++ b/modules/Microsoft.Web/serverfarms/readme.md @@ -260,8 +260,8 @@ tags: {

via Bicep module ```bicep -module serverf './Microsoft.Web/serverf/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-serverf' +module serverfarms './Microsoft.Web/serverfarms/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-serverfarms' params: { name: '<>-az-asp-x-001' lock: 'CanNotDelete' From 3c60701f7d68b8c0c65f79b238f2c9b66d55d5e8 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 26 Jun 2022 20:11:58 +0200 Subject: [PATCH 004/274] Minor update --- .../automationAccounts/modules/deploy.bicep | 2 +- .../Microsoft.Automation/automationAccounts/modules/readme.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/Microsoft.Automation/automationAccounts/modules/deploy.bicep b/modules/Microsoft.Automation/automationAccounts/modules/deploy.bicep index 2927c87e94..4e9ce28d86 100644 --- a/modules/Microsoft.Automation/automationAccounts/modules/deploy.bicep +++ b/modules/Microsoft.Automation/automationAccounts/modules/deploy.bicep @@ -4,7 +4,7 @@ param name string @description('Conditional. The name of the parent Automation Account. Required if the template is used in a standalone deployment.') param automationAccountName string -@description('Required. Module package uri, e.g. https://www.powershellgallery.com/api/v2/package.') +@description('Required. Module package URI, e.g. https://www.powershellgallery.com/api/v2/package.') param uri string @description('Optional. Module version or specify latest to get the latest version.') diff --git a/modules/Microsoft.Automation/automationAccounts/modules/readme.md b/modules/Microsoft.Automation/automationAccounts/modules/readme.md index c593272a90..9eb4ee8a5c 100644 --- a/modules/Microsoft.Automation/automationAccounts/modules/readme.md +++ b/modules/Microsoft.Automation/automationAccounts/modules/readme.md @@ -20,7 +20,7 @@ This module deploys an Azure Automation Account Module. | Parameter Name | Type | Description | | :-- | :-- | :-- | | `name` | string | Name of the Automation Account module. | -| `uri` | string | Module package uri, e.g. https://www.powershellgallery.com/api/v2/package. | +| `uri` | string | Module package URI, e.g. https://www.powershellgallery.com/api/v2/package. | **Conditional parameters** | Parameter Name | Type | Description | From cd82aacfebd5c436110c6e1b5020f61585014441 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 26 Jun 2022 20:51:48 +0200 Subject: [PATCH 005/274] Added trigger to arm convertion test --- .github/workflows/platform.convertToArmTemplate.tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/platform.convertToArmTemplate.tests.yml b/.github/workflows/platform.convertToArmTemplate.tests.yml index abbce2b938..a17478ce75 100644 --- a/.github/workflows/platform.convertToArmTemplate.tests.yml +++ b/.github/workflows/platform.convertToArmTemplate.tests.yml @@ -1,6 +1,7 @@ name: '.Platform: Test - ConvertTo-ARMTemplate.ps1' on: + workflow_dispatch: push: branches: - main From 1bcc7ed55f9d0f23dea85374714992e3ad24c003 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 26 Jun 2022 21:49:23 +0200 Subject: [PATCH 006/274] Adjusted pester --- modules/.global/global.module.tests.ps1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/.global/global.module.tests.ps1 b/modules/.global/global.module.tests.ps1 index 3233d33690..389efe3eb4 100644 --- a/modules/.global/global.module.tests.ps1 +++ b/modules/.global/global.module.tests.ps1 @@ -156,7 +156,7 @@ Describe 'Readme tests' -Tag Readme { foreach ($moduleFolderPath in $moduleFolderPaths) { # For runtime purposes, we cache the compiled template in a hashtable that uses a formatted relative module path as a key - $moduleFolderPathKey = $moduleFolderPath.Split('modules')[1].Replace('\', '/').Trim('/').Replace('/', '-') + $moduleFolderPathKey = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1].Trim('/').Replace('/', '-') if (-not ($convertedTemplates.Keys -contains $moduleFolderPathKey)) { if (Test-Path (Join-Path $moduleFolderPath 'deploy.bicep')) { $templateFilePath = Join-Path $moduleFolderPath 'deploy.bicep' @@ -471,7 +471,7 @@ Describe 'Deployment template tests' -Tag Template { foreach ($moduleFolderPath in $moduleFolderPaths) { # For runtime purposes, we cache the compiled template in a hashtable that uses a formatted relative module path as a key - $moduleFolderPathKey = $moduleFolderPath.Split('modules')[1].Replace('\', '/').Trim('/').Replace('/', '-') + $moduleFolderPathKey = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1].Trim('/').Replace('/', '-') if (-not ($convertedTemplates.Keys -contains $moduleFolderPathKey)) { if (Test-Path (Join-Path $moduleFolderPath 'deploy.bicep')) { $templateFilePath = Join-Path $moduleFolderPath 'deploy.bicep' @@ -963,7 +963,7 @@ Describe "API version tests [All apiVersions in the template should be 'recent'] $moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1] # For runtime purposes, we cache the compiled template in a hashtable that uses a formatted relative module path as a key - $moduleFolderPathKey = $moduleFolderPath.Split('modules')[1].Replace('\', '/').Trim('/').Replace('/', '-') + $moduleFolderPathKey = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1].Trim('/').Replace('/', '-') if (-not ($convertedTemplates.Keys -contains $moduleFolderPathKey)) { if (Test-Path (Join-Path $moduleFolderPath 'deploy.bicep')) { $templateFilePath = Join-Path $moduleFolderPath 'deploy.bicep' From 9832be2a8b5e9ad3c9bb12754d9a510799ff2562 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 26 Jun 2022 22:08:27 +0200 Subject: [PATCH 007/274] Fixed in readme function --- utilities/tools/Set-ModuleReadMe.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index e06c53c970..cb564db51a 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -350,7 +350,7 @@ function Set-DeploymentExamplesSection { $SectionContent = [System.Collections.ArrayList]@() $moduleRoot = Split-Path $TemplateFilePath -Parent - $resourceTypeIdentifier = $moduleRoot.Split('modules')[1].Replace('\', '/').TrimStart('/') + $resourceTypeIdentifier = $moduleRoot.Replace('\', '/').Split('/modules/')[1].TrimStart('/') $parameterFiles = Get-ChildItem (Join-Path $moduleRoot '.parameters') -Filter '*parameters.json' -Recurse $index = 1 From c5e44572716d71ec9c3b88fb79c6ba1db010e0a1 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 26 Jun 2022 22:15:58 +0200 Subject: [PATCH 008/274] Re-added deleted template --- .../.bicep/nested_roleAssignments.bicep | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 modules/Microsoft.DataProtection/backupVaults/.bicep/nested_roleAssignments.bicep diff --git a/modules/Microsoft.DataProtection/backupVaults/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.DataProtection/backupVaults/.bicep/nested_roleAssignments.bicep new file mode 100644 index 0000000000..02cd494ea4 --- /dev/null +++ b/modules/Microsoft.DataProtection/backupVaults/.bicep/nested_roleAssignments.bicep @@ -0,0 +1,43 @@ +@sys.description('Required. The IDs of the principals to assign the role to.') +param principalIds array + +@sys.description('Required. The name of the role to assign. If it cannot be found you can specify the role definition ID instead.') +param roleDefinitionIdOrName string + +@sys.description('Required. The resource ID of the resource to apply the role assignment to.') +param resourceId string + +@sys.description('Optional. The principal type of the assigned principal ID.') +@allowed([ + 'ServicePrincipal' + 'Group' + 'User' + 'ForeignGroup' + 'Device' + '' +]) +param principalType string = '' + +@sys.description('Optional. The description of the role assignment.') +param description string = '' + +var builtInRoleNames = { + 'Owner': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '8e3af657-a8ff-443c-a75c-2fe8c4bcb635') + 'Contributor': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b24988ac-6180-42a0-ab88-20f7382dd24c') + 'Reader': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'acdd72a7-3385-48ef-bd42-f606fba81ae7') +} + +resource backupVault 'Microsoft.DataProtection/backupVaults@2022-03-01' existing = { + name: last(split(resourceId, '/')) +} + +resource roleAssignment 'Microsoft.Authorization/roleAssignments@2020-10-01-preview' = [for principalId in principalIds: { + name: guid(backupVault.id, principalId, roleDefinitionIdOrName) + properties: { + description: description + roleDefinitionId: contains(builtInRoleNames, roleDefinitionIdOrName) ? builtInRoleNames[roleDefinitionIdOrName] : roleDefinitionIdOrName + principalId: principalId + principalType: !empty(principalType) ? any(principalType) : null + } + scope: backupVault +}] From 69cad602ace52f03eb60b552e42da96ab5d25a6c Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 27 Jun 2022 10:05:10 +0200 Subject: [PATCH 009/274] Fixed pipeline reference --- .azuredevops/modulePipelines/ms.network.firewallpolicies.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml b/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml index d0628548a1..251c1eaa44 100644 --- a/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml +++ b/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml @@ -36,7 +36,7 @@ stages: - stage: Validation displayName: Static validation jobs: - - template: /.azuredevops/pipelineTemplates/module.jobs.validate.yml + - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - stage: Deployment displayName: Deployment validation From 436f8bbb6162d8c630ea3804d06c57fd5fad99fa Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 27 Jun 2022 10:05:43 +0200 Subject: [PATCH 010/274] Fixed pipeline reference --- .azuredevops/modulePipelines/ms.network.firewallpolicies.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml b/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml index 251c1eaa44..4fb1a0f264 100644 --- a/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml +++ b/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml @@ -41,7 +41,7 @@ stages: - stage: Deployment displayName: Deployment validation jobs: - - template: /.azuredevops/pipelineTemplates/module.jobs.deploy.yml + - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: From fda28c21884ebf4bbad1e7ae8b222b2bc14214ab Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 27 Jun 2022 10:12:20 +0200 Subject: [PATCH 011/274] Fixed pipeline title --- .azuredevops/modulePipelines/ms.network.virtualhubs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azuredevops/modulePipelines/ms.network.virtualhubs.yml b/.azuredevops/modulePipelines/ms.network.virtualhubs.yml index ff44ffc9cb..91fc5e736f 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualhubs.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualhubs.yml @@ -1,4 +1,4 @@ -name: 'Network: VirtualHubs' +name: 'Network - VirtualHubs' parameters: - name: removeDeployment From 80ba15b24cfd236f6fafc6ab45f6a1c91cc95dcc Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 27 Jun 2022 10:39:19 +0200 Subject: [PATCH 012/274] Fixed another typo --- .../ms.kubernetesconfiguration.fluxconfigurations.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml index 75b300c5b6..80d647d747 100644 --- a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml +++ b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml @@ -1,4 +1,4 @@ -name: 'KubernetesConfiguration: FluxConfigurations' +name: 'KubernetesConfiguration - FluxConfigurations' parameters: - name: removeDeployment From 7a2135094d8c377e7f8cedc89868015fc5e3f4a1 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 27 Jun 2022 10:45:05 +0200 Subject: [PATCH 013/274] Fixed another typo --- .azuredevops/modulePipelines/ms.network.vpngateways.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azuredevops/modulePipelines/ms.network.vpngateways.yml b/.azuredevops/modulePipelines/ms.network.vpngateways.yml index 5375efbf13..18743ce83b 100644 --- a/.azuredevops/modulePipelines/ms.network.vpngateways.yml +++ b/.azuredevops/modulePipelines/ms.network.vpngateways.yml @@ -1,4 +1,4 @@ -name: 'Network: VPNGateways' +name: 'Network - VPNGateways' parameters: - name: removeDeployment From 908a8ab2c1d5863de81429de068ae49aa02a93ff Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 27 Jun 2022 11:05:14 +0200 Subject: [PATCH 014/274] Fixed casing --- .azuredevops/modulePipelines/ms.network.firewallpolicies.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml b/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml index 4fb1a0f264..4e64acd136 100644 --- a/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml +++ b/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml @@ -21,7 +21,7 @@ trigger: include: - '/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml' - '/.azuredevops/pipelineTemplates/*.yml' - - '/modules/Microsoft.Network/firewallpolicies/*' + - '/modules/Microsoft.Network/firewallPolicies/*' - '/modules/.global/global.module.tests.ps1' exclude: - '/**/*.md' @@ -30,7 +30,7 @@ variables: - template: '../../global.variables.yml' - group: 'PLATFORM_VARIABLES' - name: modulePath - value: '/modules/Microsoft.Network/firewallpolicies' + value: '/modules/Microsoft.Network/firewallPolicies' stages: - stage: Validation From b7cee57c162f91f62916d35c445633af1e5a5d0c Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 27 Jun 2022 11:14:14 +0200 Subject: [PATCH 015/274] Fixed service fabric pipeline reference --- .azuredevops/modulePipelines/ms.servicefabric.clusters.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml b/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml index 45f197e830..60b8563841 100644 --- a/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml +++ b/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml @@ -36,12 +36,12 @@ stages: - stage: Validation displayName: Static validation jobs: - - template: /.azuredevops/pipelineTemplates/module.jobs.validate.yml + - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - stage: Deployment displayName: Deployment validation jobs: - - template: /.azuredevops/pipelineTemplates/module.jobs.deploy.yml + - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: From a2571f096bc71864f90521b438336dd5fc8dd7c5 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 27 Jun 2022 11:50:56 +0200 Subject: [PATCH 016/274] First batch of changes --- .../modulePipelines/ms.aad.domainservices.yml | 2 +- .../modulePipelines/ms.analysisservices.servers.yml | 6 +++--- .../modulePipelines/ms.apimanagement.service.yml | 6 +++--- .../ms.appconfiguration.configurationstores.yml | 4 ++-- .../modulePipelines/ms.authorization.locks.yml | 2 +- .../ms.authorization.policyassignments.yml | 12 ++++++------ .../ms.authorization.policydefinitions.yml | 8 ++++---- .../ms.authorization.policyexemptions.yml | 12 ++++++------ .../ms.authorization.policysetdefinitions.yml | 8 ++++---- .../ms.authorization.roleassignments.yml | 12 ++++++------ .../ms.authorization.roledefinitions.yml | 12 ++++++------ .../ms.automation.automationaccounts.yml | 6 +++--- .../modulePipelines/ms.batch.batchaccounts.yml | 4 ++-- .../ms.cognitiveservices.accounts.yml | 8 ++++---- .../modulePipelines/ms.compute.availabilitysets.yml | 2 +- .../ms.compute.diskencryptionsets.yml | 2 +- .azuredevops/modulePipelines/ms.compute.disks.yml | 8 ++++---- .../modulePipelines/ms.compute.galleries.yml | 8 ++++---- .azuredevops/modulePipelines/ms.compute.images.yml | 2 +- .../ms.compute.proximityplacementgroups.yml | 2 +- .../modulePipelines/ms.compute.virtualmachines.yml | 12 ++++++------ .../ms.compute.virtualmachinescalesets.yml | 8 ++++---- .../modulePipelines/ms.consumption.budgets.yml | 2 +- .../ms.containerinstance.containergroups.yml | 2 +- .../ms.containerregistry.registries.yml | 6 +++--- .../ms.containerservice.managedclusters.yml | 4 ++-- .../modulePipelines/ms.databricks.workspaces.yml | 2 +- .../modulePipelines/ms.datafactory.factories.yml | 2 +- .../ms.dataprotection.backupvaults.yml | 4 ++-- .../ms.desktopvirtualization.applicationgroups.yml | 4 ++-- .../ms.desktopvirtualization.hostpools.yml | 2 +- .../ms.desktopvirtualization.scalingplans.yml | 2 +- .../ms.desktopvirtualization.workspaces.yml | 2 +- .../ms.documentdb.databaseaccounts.yml | 6 +++--- .../modulePipelines/ms.eventgrid.systemtopics.yml | 4 ++-- .azuredevops/modulePipelines/ms.eventgrid.topics.yml | 2 +- .../modulePipelines/ms.eventhub.namespaces.yml | 4 ++-- .../modulePipelines/ms.healthbot.healthbots.yml | 2 +- .../modulePipelines/ms.insights.actiongroups.yml | 2 +- .../ms.insights.activitylogalerts.yml | 2 +- .../modulePipelines/ms.insights.components.yml | 2 +- .../ms.insights.diagnosticsettings.yml | 2 +- .../modulePipelines/ms.insights.metricalerts.yml | 2 +- .../ms.insights.privatelinkscopes.yml | 2 +- .../ms.insights.scheduledqueryrules.yml | 2 +- .azuredevops/modulePipelines/ms.keyvault.vaults.yml | 4 ++-- .../ms.kubernetesconfiguration.extensions.yml | 4 ++-- ...ms.kubernetesconfiguration.fluxconfigurations.yml | 4 ++-- .azuredevops/modulePipelines/ms.logic.workflows.yml | 2 +- .../ms.machinelearningservices.workspaces.yml | 4 ++-- .../ms.managedidentity.userassignedidentities.yml | 2 +- .../ms.managedservices.registrationdefinitions.yml | 4 ++-- .../ms.management.managementgroups.yml | 2 +- .../modulePipelines/ms.netapp.netappaccounts.yml | 6 +++--- .../ms.network.applicationgateways.yml | 2 +- .../ms.network.applicationsecuritygroups.yml | 2 +- .../modulePipelines/ms.network.azurefirewalls.yml | 2 +- .../modulePipelines/ms.network.bastionhosts.yml | 4 ++-- .../modulePipelines/ms.network.connections.yml | 2 +- .../ms.network.ddosprotectionplans.yml | 2 +- .../ms.network.expressroutecircuits.yml | 2 +- .../modulePipelines/ms.network.firewallpolicies.yml | 2 +- .../modulePipelines/ms.network.frontdoors.yml | 2 +- .azuredevops/modulePipelines/ms.network.ipgroups.yml | 2 +- .../modulePipelines/ms.network.loadbalancers.yml | 6 +++--- .../ms.network.localnetworkgateways.yml | 2 +- .../modulePipelines/ms.network.natgateways.yml | 2 +- .../modulePipelines/ms.network.networkinterfaces.yml | 4 ++-- .../ms.network.networksecuritygroups.yml | 4 ++-- .../modulePipelines/ms.network.networkwatchers.yml | 4 ++-- .../modulePipelines/ms.network.privatednszones.yml | 4 ++-- .../modulePipelines/ms.network.privateendpoints.yml | 4 ++-- .../modulePipelines/ms.network.publicipaddresses.yml | 2 +- .../modulePipelines/ms.network.publicipprefixes.yml | 2 +- .../modulePipelines/ms.network.routetables.yml | 2 +- .../ms.network.trafficmanagerprofiles.yml | 2 +- .../modulePipelines/ms.network.virtualhubs.yml | 4 ++-- .../ms.network.virtualnetworkgateways.yml | 4 ++-- .../modulePipelines/ms.network.virtualnetworks.yml | 4 ++-- .../modulePipelines/ms.network.virtualwans.yml | 4 ++-- .../modulePipelines/ms.network.vpngateways.yml | 4 ++-- .azuredevops/modulePipelines/ms.network.vpnsites.yml | 4 ++-- .../ms.operationalinsights.workspaces.yml | 4 ++-- .../ms.operationsmanagement.solutions.yml | 6 +++--- .../modulePipelines/ms.recoveryservices.vaults.yml | 6 +++--- .../ms.resources.deploymentscripts.yml | 4 ++-- .../modulePipelines/ms.resources.resourcegroups.yml | 2 +- .azuredevops/modulePipelines/ms.resources.tags.yml | 6 +++--- .../ms.security.azuresecuritycenter.yml | 2 +- .../modulePipelines/ms.servicebus.namespaces.yml | 4 ++-- .../modulePipelines/ms.servicefabric.clusters.yml | 6 +++--- .../modulePipelines/ms.sql.managedinstances.yml | 2 +- .azuredevops/modulePipelines/ms.sql.servers.yml | 4 ++-- .../modulePipelines/ms.storage.storageaccounts.yml | 10 +++++----- .../modulePipelines/ms.synapse.privatelinkhubs.yml | 4 ++-- .../ms.virtualmachineimages.imagetemplates.yml | 2 +- .azuredevops/modulePipelines/ms.web.connections.yml | 2 +- .../modulePipelines/ms.web.hostingenvironments.yml | 4 ++-- .azuredevops/modulePipelines/ms.web.serverfarms.yml | 2 +- .azuredevops/modulePipelines/ms.web.sites.yml | 8 ++++---- .azuredevops/modulePipelines/ms.web.staticsites.yml | 4 ++-- .../templates/validateModuleDeployment/action.yml | 2 +- .../linux.prefix.parameter.json | 0 .../linux.vmnames.parameter.json | 0 .../parameters.json | 0 .../max.parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../max.parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../rg.parameters.json | 0 .../mg.min.parameters.json | 0 .../mg.parameters.json | 0 .../rg.min.parameters.json | 0 .../rg.parameters.json | 0 .../sub.min.parameters.json | 0 .../sub.parameters.json | 0 .../mg.min.parameters.json | 0 .../mg.parameters.json | 0 .../sub.min.parameters.json | 0 .../sub.parameters.json | 0 .../mg.min.parameters.json | 0 .../mg.parameters.json | 0 .../rg.min.parameters.json | 0 .../rg.parameters.json | 0 .../sub.min.parameters.json | 0 .../sub.parameters.json | 0 .../mg.min.parameters.json | 0 .../mg.parameters.json | 0 .../sub.min.parameters.json | 0 .../sub.parameters.json | 0 .../mg.min.parameters.json | 0 .../mg.parameters.json | 0 .../rg.min.parameters.json | 0 .../rg.parameters.json | 0 .../sub.min.parameters.json | 0 .../sub.parameters.json | 0 .../mg.min.parameters.json | 0 .../mg.parameters.json | 0 .../rg.min.parameters.json | 0 .../rg.parameters.json | 0 .../sub.min.parameters.json | 0 .../sub.parameters.json | 0 .../encr.parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../encr.parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../speech.parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../image.parameters.json | 0 .../import.parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../images.parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../linux.min.parameters.json | 0 .../linux.parameters.json | 0 .../windows.min.parameters.json | 0 .../windows.parameters.json | 0 .../linux.autmg.parameters.json | 0 .../linux.min.parameters.json | 0 .../linux.parameters.json | 0 .../windows.autmg.parameters.json | 0 .../windows.min.parameters.json | 0 .../windows.parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../encr.parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../azure.parameters.json | 0 .../kubenet.parameters.json | 0 .../parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../mongodb.parameters.json | 0 .../plain.parameters.json | 0 .../sqldb.parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../rg.parameters.json | 0 .../parameters.json | 0 .../min.parameters.json | 0 .../nfs3.parameters.json | 0 .../nfs41.parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../addpip.parameters.json | 0 .../custompip.parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../addpip.parameters.json | 0 .../custompip.parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../vnet2vnet.parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../internal.parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../expressRoute.parameters.json | 0 .../vpn.parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../vnetPeering.parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../min.parameters.json | 0 .../ms.parameters.json | 0 .../nonms.parameters.json | 0 .../dr.parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../cli.parameters.json | 0 .../ps.parameters.json | 0 .../parameters.json | 0 .../min.parameters.json | 0 .../rg.parameters.json | 0 .../sub.parameters.json | 0 .../parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../cert.parameters.json | 0 .../full.parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../admin.parameters.json | 0 .../parameters.json | 0 .../encr.parameters.json | 0 .../min.parameters.json | 0 .../nfs.parameters.json | 0 .../parameters.json | 0 .../v1.parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../parameters.json | 0 .../asev2.parameters.json | 0 .../asev3.parameters.json | 0 .../parameters.json | 0 .../fa.min.parameters.json | 0 .../fa.parameters.json | 0 .../wa.min.parameters.json | 0 .../wa.parameters.json | 0 .../min.parameters.json | 0 .../parameters.json | 0 .../resourceDeployment/New-TemplateDeployment.ps1 | 6 +++--- .../resourceDeployment/Test-TemplateDeployment.ps1 | 4 ++-- 316 files changed, 210 insertions(+), 210 deletions(-) rename constructs/Microsoft.Compute/virtualMachinesMultiple/{.parameters => .deploymentTests}/linux.prefix.parameter.json (100%) rename constructs/Microsoft.Compute/virtualMachinesMultiple/{.parameters => .deploymentTests}/linux.vmnames.parameter.json (100%) rename modules/Microsoft.AAD/DomainServices/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.AnalysisServices/servers/{.parameters => .deploymentTests}/max.parameters.json (100%) rename modules/Microsoft.AnalysisServices/servers/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.AnalysisServices/servers/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.ApiManagement/service/{.parameters => .deploymentTests}/max.parameters.json (100%) rename modules/Microsoft.ApiManagement/service/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.ApiManagement/service/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.AppConfiguration/configurationStores/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.AppConfiguration/configurationStores/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Authorization/locks/{.parameters => .deploymentTests}/rg.parameters.json (100%) rename modules/Microsoft.Authorization/policyAssignments/{.parameters => .deploymentTests}/mg.min.parameters.json (100%) rename modules/Microsoft.Authorization/policyAssignments/{.parameters => .deploymentTests}/mg.parameters.json (100%) rename modules/Microsoft.Authorization/policyAssignments/{.parameters => .deploymentTests}/rg.min.parameters.json (100%) rename modules/Microsoft.Authorization/policyAssignments/{.parameters => .deploymentTests}/rg.parameters.json (100%) rename modules/Microsoft.Authorization/policyAssignments/{.parameters => .deploymentTests}/sub.min.parameters.json (100%) rename modules/Microsoft.Authorization/policyAssignments/{.parameters => .deploymentTests}/sub.parameters.json (100%) rename modules/Microsoft.Authorization/policyDefinitions/{.parameters => .deploymentTests}/mg.min.parameters.json (100%) rename modules/Microsoft.Authorization/policyDefinitions/{.parameters => .deploymentTests}/mg.parameters.json (100%) rename modules/Microsoft.Authorization/policyDefinitions/{.parameters => .deploymentTests}/sub.min.parameters.json (100%) rename modules/Microsoft.Authorization/policyDefinitions/{.parameters => .deploymentTests}/sub.parameters.json (100%) rename modules/Microsoft.Authorization/policyExemptions/{.parameters => .deploymentTests}/mg.min.parameters.json (100%) rename modules/Microsoft.Authorization/policyExemptions/{.parameters => .deploymentTests}/mg.parameters.json (100%) rename modules/Microsoft.Authorization/policyExemptions/{.parameters => .deploymentTests}/rg.min.parameters.json (100%) rename modules/Microsoft.Authorization/policyExemptions/{.parameters => .deploymentTests}/rg.parameters.json (100%) rename modules/Microsoft.Authorization/policyExemptions/{.parameters => .deploymentTests}/sub.min.parameters.json (100%) rename modules/Microsoft.Authorization/policyExemptions/{.parameters => .deploymentTests}/sub.parameters.json (100%) rename modules/Microsoft.Authorization/policySetDefinitions/{.parameters => .deploymentTests}/mg.min.parameters.json (100%) rename modules/Microsoft.Authorization/policySetDefinitions/{.parameters => .deploymentTests}/mg.parameters.json (100%) rename modules/Microsoft.Authorization/policySetDefinitions/{.parameters => .deploymentTests}/sub.min.parameters.json (100%) rename modules/Microsoft.Authorization/policySetDefinitions/{.parameters => .deploymentTests}/sub.parameters.json (100%) rename modules/Microsoft.Authorization/roleAssignments/{.parameters => .deploymentTests}/mg.min.parameters.json (100%) rename modules/Microsoft.Authorization/roleAssignments/{.parameters => .deploymentTests}/mg.parameters.json (100%) rename modules/Microsoft.Authorization/roleAssignments/{.parameters => .deploymentTests}/rg.min.parameters.json (100%) rename modules/Microsoft.Authorization/roleAssignments/{.parameters => .deploymentTests}/rg.parameters.json (100%) rename modules/Microsoft.Authorization/roleAssignments/{.parameters => .deploymentTests}/sub.min.parameters.json (100%) rename modules/Microsoft.Authorization/roleAssignments/{.parameters => .deploymentTests}/sub.parameters.json (100%) rename modules/Microsoft.Authorization/roleDefinitions/{.parameters => .deploymentTests}/mg.min.parameters.json (100%) rename modules/Microsoft.Authorization/roleDefinitions/{.parameters => .deploymentTests}/mg.parameters.json (100%) rename modules/Microsoft.Authorization/roleDefinitions/{.parameters => .deploymentTests}/rg.min.parameters.json (100%) rename modules/Microsoft.Authorization/roleDefinitions/{.parameters => .deploymentTests}/rg.parameters.json (100%) rename modules/Microsoft.Authorization/roleDefinitions/{.parameters => .deploymentTests}/sub.min.parameters.json (100%) rename modules/Microsoft.Authorization/roleDefinitions/{.parameters => .deploymentTests}/sub.parameters.json (100%) rename modules/Microsoft.Automation/automationAccounts/{.parameters => .deploymentTests}/encr.parameters.json (100%) rename modules/Microsoft.Automation/automationAccounts/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.Automation/automationAccounts/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Batch/batchAccounts/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.Batch/batchAccounts/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.CognitiveServices/accounts/{.parameters => .deploymentTests}/encr.parameters.json (100%) rename modules/Microsoft.CognitiveServices/accounts/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.CognitiveServices/accounts/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.CognitiveServices/accounts/{.parameters => .deploymentTests}/speech.parameters.json (100%) rename modules/Microsoft.Compute/availabilitySets/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.Compute/availabilitySets/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Compute/diskEncryptionSets/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Compute/disks/{.parameters => .deploymentTests}/image.parameters.json (100%) rename modules/Microsoft.Compute/disks/{.parameters => .deploymentTests}/import.parameters.json (100%) rename modules/Microsoft.Compute/disks/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.Compute/disks/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Compute/galleries/{.parameters => .deploymentTests}/images.parameters.json (100%) rename modules/Microsoft.Compute/galleries/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Compute/images/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Compute/proximityPlacementGroups/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Compute/virtualMachineScaleSets/{.parameters => .deploymentTests}/linux.min.parameters.json (100%) rename modules/Microsoft.Compute/virtualMachineScaleSets/{.parameters => .deploymentTests}/linux.parameters.json (100%) rename modules/Microsoft.Compute/virtualMachineScaleSets/{.parameters => .deploymentTests}/windows.min.parameters.json (100%) rename modules/Microsoft.Compute/virtualMachineScaleSets/{.parameters => .deploymentTests}/windows.parameters.json (100%) rename modules/Microsoft.Compute/virtualMachines/{.parameters => .deploymentTests}/linux.autmg.parameters.json (100%) rename modules/Microsoft.Compute/virtualMachines/{.parameters => .deploymentTests}/linux.min.parameters.json (100%) rename modules/Microsoft.Compute/virtualMachines/{.parameters => .deploymentTests}/linux.parameters.json (100%) rename modules/Microsoft.Compute/virtualMachines/{.parameters => .deploymentTests}/windows.autmg.parameters.json (100%) rename modules/Microsoft.Compute/virtualMachines/{.parameters => .deploymentTests}/windows.min.parameters.json (100%) rename modules/Microsoft.Compute/virtualMachines/{.parameters => .deploymentTests}/windows.parameters.json (100%) rename modules/Microsoft.Consumption/budgets/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.ContainerInstance/containerGroups/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.ContainerRegistry/registries/{.parameters => .deploymentTests}/encr.parameters.json (100%) rename modules/Microsoft.ContainerRegistry/registries/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.ContainerRegistry/registries/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.ContainerService/managedClusters/{.parameters => .deploymentTests}/azure.parameters.json (100%) rename modules/Microsoft.ContainerService/managedClusters/{.parameters => .deploymentTests}/kubenet.parameters.json (100%) rename modules/Microsoft.DataFactory/factories/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.DataProtection/backupVaults/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.DataProtection/backupVaults/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Databricks/workspaces/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.DesktopVirtualization/applicationgroups/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.DesktopVirtualization/applicationgroups/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.DesktopVirtualization/hostpools/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.DesktopVirtualization/scalingplans/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.DesktopVirtualization/workspaces/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.DocumentDB/databaseAccounts/{.parameters => .deploymentTests}/mongodb.parameters.json (100%) rename modules/Microsoft.DocumentDB/databaseAccounts/{.parameters => .deploymentTests}/plain.parameters.json (100%) rename modules/Microsoft.DocumentDB/databaseAccounts/{.parameters => .deploymentTests}/sqldb.parameters.json (100%) rename modules/Microsoft.EventGrid/systemTopics/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.EventGrid/systemTopics/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.EventGrid/topics/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.EventHub/namespaces/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.EventHub/namespaces/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.HealthBot/healthBots/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Insights/actionGroups/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Insights/activityLogAlerts/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Insights/components/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Insights/diagnosticSettings/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Insights/metricAlerts/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Insights/privateLinkScopes/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Insights/scheduledQueryRules/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.KeyVault/vaults/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.KeyVault/vaults/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.KubernetesConfiguration/extensions/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.KubernetesConfiguration/extensions/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.KubernetesConfiguration/fluxConfigurations/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.KubernetesConfiguration/fluxConfigurations/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Logic/workflows/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.MachineLearningServices/workspaces/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.MachineLearningServices/workspaces/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.ManagedIdentity/userAssignedIdentities/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.ManagedServices/registrationDefinitions/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.ManagedServices/registrationDefinitions/{.parameters => .deploymentTests}/rg.parameters.json (100%) rename modules/Microsoft.Management/managementGroups/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.NetApp/netAppAccounts/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.NetApp/netAppAccounts/{.parameters => .deploymentTests}/nfs3.parameters.json (100%) rename modules/Microsoft.NetApp/netAppAccounts/{.parameters => .deploymentTests}/nfs41.parameters.json (100%) rename modules/Microsoft.Network/applicationGateways/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/applicationSecurityGroups/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/azureFirewalls/{.parameters => .deploymentTests}/addpip.parameters.json (100%) rename modules/Microsoft.Network/azureFirewalls/{.parameters => .deploymentTests}/custompip.parameters.json (100%) rename modules/Microsoft.Network/azureFirewalls/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.Network/azureFirewalls/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/bastionHosts/{.parameters => .deploymentTests}/addpip.parameters.json (100%) rename modules/Microsoft.Network/bastionHosts/{.parameters => .deploymentTests}/custompip.parameters.json (100%) rename modules/Microsoft.Network/bastionHosts/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.Network/bastionHosts/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/connections/{.parameters => .deploymentTests}/vnet2vnet.parameters.json (100%) rename modules/Microsoft.Network/ddosProtectionPlans/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/expressRouteCircuits/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/firewallPolicies/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.Network/firewallPolicies/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/frontDoors/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/ipGroups/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/loadBalancers/{.parameters => .deploymentTests}/internal.parameters.json (100%) rename modules/Microsoft.Network/loadBalancers/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.Network/loadBalancers/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/localNetworkGateways/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/natGateways/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/networkInterfaces/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.Network/networkInterfaces/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/networkSecurityGroups/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.Network/networkSecurityGroups/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/networkWatchers/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.Network/networkWatchers/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/privateDnsZones/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.Network/privateDnsZones/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/privateEndpoints/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.Network/privateEndpoints/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/publicIPAddresses/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/publicIPPrefixes/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/routeTables/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/trafficmanagerprofiles/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/virtualHubs/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.Network/virtualHubs/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/virtualNetworkGateways/{.parameters => .deploymentTests}/expressRoute.parameters.json (100%) rename modules/Microsoft.Network/virtualNetworkGateways/{.parameters => .deploymentTests}/vpn.parameters.json (100%) rename modules/Microsoft.Network/virtualNetworks/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.Network/virtualNetworks/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/virtualNetworks/{.parameters => .deploymentTests}/vnetPeering.parameters.json (100%) rename modules/Microsoft.Network/virtualWans/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.Network/virtualWans/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/vpnGateways/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.Network/vpnGateways/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Network/vpnSites/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.Network/vpnSites/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.OperationalInsights/workspaces/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.OperationalInsights/workspaces/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.OperationsManagement/solutions/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.OperationsManagement/solutions/{.parameters => .deploymentTests}/ms.parameters.json (100%) rename modules/Microsoft.OperationsManagement/solutions/{.parameters => .deploymentTests}/nonms.parameters.json (100%) rename modules/Microsoft.RecoveryServices/vaults/{.parameters => .deploymentTests}/dr.parameters.json (100%) rename modules/Microsoft.RecoveryServices/vaults/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.RecoveryServices/vaults/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Resources/deploymentScripts/{.parameters => .deploymentTests}/cli.parameters.json (100%) rename modules/Microsoft.Resources/deploymentScripts/{.parameters => .deploymentTests}/ps.parameters.json (100%) rename modules/Microsoft.Resources/resourceGroups/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Resources/tags/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.Resources/tags/{.parameters => .deploymentTests}/rg.parameters.json (100%) rename modules/Microsoft.Resources/tags/{.parameters => .deploymentTests}/sub.parameters.json (100%) rename modules/Microsoft.Security/azureSecurityCenter/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.ServiceBus/namespaces/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.ServiceBus/namespaces/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.ServiceFabric/clusters/{.parameters => .deploymentTests}/cert.parameters.json (100%) rename modules/Microsoft.ServiceFabric/clusters/{.parameters => .deploymentTests}/full.parameters.json (100%) rename modules/Microsoft.ServiceFabric/clusters/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.Sql/managedInstances/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Sql/servers/{.parameters => .deploymentTests}/admin.parameters.json (100%) rename modules/Microsoft.Sql/servers/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Storage/storageAccounts/{.parameters => .deploymentTests}/encr.parameters.json (100%) rename modules/Microsoft.Storage/storageAccounts/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.Storage/storageAccounts/{.parameters => .deploymentTests}/nfs.parameters.json (100%) rename modules/Microsoft.Storage/storageAccounts/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Storage/storageAccounts/{.parameters => .deploymentTests}/v1.parameters.json (100%) rename modules/Microsoft.Synapse/privateLinkHubs/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.Synapse/privateLinkHubs/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.VirtualMachineImages/imageTemplates/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Web/connections/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Web/hostingEnvironments/{.parameters => .deploymentTests}/asev2.parameters.json (100%) rename modules/Microsoft.Web/hostingEnvironments/{.parameters => .deploymentTests}/asev3.parameters.json (100%) rename modules/Microsoft.Web/serverfarms/{.parameters => .deploymentTests}/parameters.json (100%) rename modules/Microsoft.Web/sites/{.parameters => .deploymentTests}/fa.min.parameters.json (100%) rename modules/Microsoft.Web/sites/{.parameters => .deploymentTests}/fa.parameters.json (100%) rename modules/Microsoft.Web/sites/{.parameters => .deploymentTests}/wa.min.parameters.json (100%) rename modules/Microsoft.Web/sites/{.parameters => .deploymentTests}/wa.parameters.json (100%) rename modules/Microsoft.Web/staticSites/{.parameters => .deploymentTests}/min.parameters.json (100%) rename modules/Microsoft.Web/staticSites/{.parameters => .deploymentTests}/parameters.json (100%) diff --git a/.azuredevops/modulePipelines/ms.aad.domainservices.yml b/.azuredevops/modulePipelines/ms.aad.domainservices.yml index 5d5aae952c..c6a5286cb9 100644 --- a/.azuredevops/modulePipelines/ms.aad.domainservices.yml +++ b/.azuredevops/modulePipelines/ms.aad.domainservices.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.analysisservices.servers.yml b/.azuredevops/modulePipelines/ms.analysisservices.servers.yml index e2352cfa4f..8dcdee1813 100644 --- a/.azuredevops/modulePipelines/ms.analysisservices.servers.yml +++ b/.azuredevops/modulePipelines/ms.analysisservices.servers.yml @@ -45,9 +45,9 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json - - path: $(modulePath)/.parameters/max.parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.deploymentTests/max.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.apimanagement.service.yml b/.azuredevops/modulePipelines/ms.apimanagement.service.yml index eb9597d02c..b01fa1f753 100644 --- a/.azuredevops/modulePipelines/ms.apimanagement.service.yml +++ b/.azuredevops/modulePipelines/ms.apimanagement.service.yml @@ -45,9 +45,9 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/max.parameters.json - - path: $(modulePath)/.parameters/parameters.json - - path: $(modulePath)/.parameters/min.parameters.json + - path: $(modulePath)/.deploymentTests/max.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml b/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml index 0feb981ff2..1a05fe60c1 100644 --- a/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml +++ b/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.authorization.locks.yml b/.azuredevops/modulePipelines/ms.authorization.locks.yml index 1422b4a4c6..d82db7ae5d 100644 --- a/.azuredevops/modulePipelines/ms.authorization.locks.yml +++ b/.azuredevops/modulePipelines/ms.authorization.locks.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/rg.parameters.json + - path: $(modulePath)/.deploymentTests/rg.parameters.json templateFilePath: $(modulePath)/deploy.bicep - stage: Publishing diff --git a/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml b/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml index c58331ead5..b3036c35be 100644 --- a/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml +++ b/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml @@ -45,17 +45,17 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/mg.min.parameters.json + - path: $(modulePath)/.deploymentTests/mg.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/mg.parameters.json + - path: $(modulePath)/.deploymentTests/mg.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/sub.min.parameters.json + - path: $(modulePath)/.deploymentTests/sub.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/sub.parameters.json + - path: $(modulePath)/.deploymentTests/sub.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/rg.min.parameters.json + - path: $(modulePath)/.deploymentTests/rg.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/rg.parameters.json + - path: $(modulePath)/.deploymentTests/rg.parameters.json templateFilePath: $(modulePath)/deploy.bicep - stage: Publishing diff --git a/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml b/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml index 93fd0f469f..a70b9ec8c4 100644 --- a/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml +++ b/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml @@ -45,13 +45,13 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/mg.min.parameters.json + - path: $(modulePath)/.deploymentTests/mg.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/mg.parameters.json + - path: $(modulePath)/.deploymentTests/mg.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/sub.min.parameters.json + - path: $(modulePath)/.deploymentTests/sub.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/sub.parameters.json + - path: $(modulePath)/.deploymentTests/sub.parameters.json templateFilePath: $(modulePath)/deploy.bicep - stage: Publishing diff --git a/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml b/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml index 50b00a7f08..2e59710782 100644 --- a/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml +++ b/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml @@ -45,17 +45,17 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/mg.min.parameters.json + - path: $(modulePath)/.deploymentTests/mg.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/mg.parameters.json + - path: $(modulePath)/.deploymentTests/mg.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/sub.min.parameters.json + - path: $(modulePath)/.deploymentTests/sub.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/sub.parameters.json + - path: $(modulePath)/.deploymentTests/sub.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/rg.min.parameters.json + - path: $(modulePath)/.deploymentTests/rg.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/rg.parameters.json + - path: $(modulePath)/.deploymentTests/rg.parameters.json templateFilePath: $(modulePath)/deploy.bicep - stage: Publishing diff --git a/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml b/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml index e4c77a27b4..7b15303495 100644 --- a/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml +++ b/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml @@ -45,13 +45,13 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/mg.min.parameters.json + - path: $(modulePath)/.deploymentTests/mg.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/mg.parameters.json + - path: $(modulePath)/.deploymentTests/mg.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/sub.min.parameters.json + - path: $(modulePath)/.deploymentTests/sub.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/sub.parameters.json + - path: $(modulePath)/.deploymentTests/sub.parameters.json templateFilePath: $(modulePath)/deploy.bicep - stage: Publishing diff --git a/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml b/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml index fb6bba1d74..e62c9db947 100644 --- a/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml +++ b/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml @@ -45,17 +45,17 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/mg.min.parameters.json + - path: $(modulePath)/.deploymentTests/mg.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/mg.parameters.json + - path: $(modulePath)/.deploymentTests/mg.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/sub.min.parameters.json + - path: $(modulePath)/.deploymentTests/sub.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/sub.parameters.json + - path: $(modulePath)/.deploymentTests/sub.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/rg.min.parameters.json + - path: $(modulePath)/.deploymentTests/rg.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/rg.parameters.json + - path: $(modulePath)/.deploymentTests/rg.parameters.json templateFilePath: $(modulePath)/deploy.bicep - stage: Publishing diff --git a/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml b/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml index 3129650057..dd7820dc95 100644 --- a/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml +++ b/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml @@ -45,17 +45,17 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/mg.min.parameters.json + - path: $(modulePath)/.deploymentTests/mg.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/mg.parameters.json + - path: $(modulePath)/.deploymentTests/mg.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/sub.min.parameters.json + - path: $(modulePath)/.deploymentTests/sub.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/sub.parameters.json + - path: $(modulePath)/.deploymentTests/sub.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/rg.min.parameters.json + - path: $(modulePath)/.deploymentTests/rg.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/rg.parameters.json + - path: $(modulePath)/.deploymentTests/rg.parameters.json templateFilePath: $(modulePath)/deploy.bicep - stage: Publishing diff --git a/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml b/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml index f4bc5e919f..1d756263a2 100644 --- a/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml +++ b/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml @@ -45,9 +45,9 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json - - path: $(modulePath)/.parameters/encr.parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.deploymentTests/encr.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml b/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml index 4013ce3b44..bd626999f3 100644 --- a/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml +++ b/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml b/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml index f14fc92495..1bb16a4346 100644 --- a/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml +++ b/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml @@ -45,10 +45,10 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json - - path: $(modulePath)/.parameters/speech.parameters.json - - path: $(modulePath)/.parameters/encr.parameters.json - - path: $(modulePath)/.parameters/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.deploymentTests/speech.parameters.json + - path: $(modulePath)/.deploymentTests/encr.parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml b/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml index edd9663f84..6e88d0794d 100644 --- a/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml +++ b/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml b/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml index 414b010e09..6b677414cb 100644 --- a/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml +++ b/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.compute.disks.yml b/.azuredevops/modulePipelines/ms.compute.disks.yml index 0aec061792..571805dddd 100644 --- a/.azuredevops/modulePipelines/ms.compute.disks.yml +++ b/.azuredevops/modulePipelines/ms.compute.disks.yml @@ -45,10 +45,10 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/image.parameters.json - - path: $(modulePath)/.parameters/import.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/image.parameters.json + - path: $(modulePath)/.deploymentTests/import.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.compute.galleries.yml b/.azuredevops/modulePipelines/ms.compute.galleries.yml index a20b15290c..ae2a381844 100644 --- a/.azuredevops/modulePipelines/ms.compute.galleries.yml +++ b/.azuredevops/modulePipelines/ms.compute.galleries.yml @@ -39,8 +39,8 @@ stages: - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml parameters: deploymentBlocks: - - path: $(modulePath)/.parameters/images.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/images.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Deployment displayName: Deployment validation @@ -49,8 +49,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/images.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/images.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.compute.images.yml b/.azuredevops/modulePipelines/ms.compute.images.yml index 6209ee2c2c..c2b70fd6a8 100644 --- a/.azuredevops/modulePipelines/ms.compute.images.yml +++ b/.azuredevops/modulePipelines/ms.compute.images.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml b/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml index d1371bccb5..6837787064 100644 --- a/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml +++ b/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml b/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml index 4358c822fc..f4598a4622 100644 --- a/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml +++ b/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml @@ -45,12 +45,12 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/linux.min.parameters.json - - path: $(modulePath)/.parameters/linux.parameters.json - - path: $(modulePath)/.parameters/linux.autmg.parameters.json - - path: $(modulePath)/.parameters/windows.min.parameters.json - - path: $(modulePath)/.parameters/windows.parameters.json - - path: $(modulePath)/.parameters/windows.autmg.parameters.json + - path: $(modulePath)/.deploymentTests/linux.min.parameters.json + - path: $(modulePath)/.deploymentTests/linux.parameters.json + - path: $(modulePath)/.deploymentTests/linux.autmg.parameters.json + - path: $(modulePath)/.deploymentTests/windows.min.parameters.json + - path: $(modulePath)/.deploymentTests/windows.parameters.json + - path: $(modulePath)/.deploymentTests/windows.autmg.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml b/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml index 22028b3495..8a235e6434 100644 --- a/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml +++ b/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml @@ -45,10 +45,10 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/linux.min.parameters.json - - path: $(modulePath)/.parameters/linux.parameters.json - - path: $(modulePath)/.parameters/windows.min.parameters.json - - path: $(modulePath)/.parameters/windows.parameters.json + - path: $(modulePath)/.deploymentTests/linux.min.parameters.json + - path: $(modulePath)/.deploymentTests/linux.parameters.json + - path: $(modulePath)/.deploymentTests/windows.min.parameters.json + - path: $(modulePath)/.deploymentTests/windows.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.consumption.budgets.yml b/.azuredevops/modulePipelines/ms.consumption.budgets.yml index 1c6a664daf..47edcbd603 100644 --- a/.azuredevops/modulePipelines/ms.consumption.budgets.yml +++ b/.azuredevops/modulePipelines/ms.consumption.budgets.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml b/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml index 855d7dd391..fc9cf784c6 100644 --- a/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml +++ b/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.containerregistry.registries.yml b/.azuredevops/modulePipelines/ms.containerregistry.registries.yml index 7995ba5e46..3833f24356 100644 --- a/.azuredevops/modulePipelines/ms.containerregistry.registries.yml +++ b/.azuredevops/modulePipelines/ms.containerregistry.registries.yml @@ -45,9 +45,9 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/encr.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/encr.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml b/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml index 963ee36755..14748f8b77 100644 --- a/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml +++ b/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/azure.parameters.json - - path: $(modulePath)/.parameters/kubenet.parameters.json + - path: $(modulePath)/.deploymentTests/azure.parameters.json + - path: $(modulePath)/.deploymentTests/kubenet.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.databricks.workspaces.yml b/.azuredevops/modulePipelines/ms.databricks.workspaces.yml index 5f4c9bf50c..ba0e52746c 100644 --- a/.azuredevops/modulePipelines/ms.databricks.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.databricks.workspaces.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.datafactory.factories.yml b/.azuredevops/modulePipelines/ms.datafactory.factories.yml index 97d4f2f0a6..02601e6748 100644 --- a/.azuredevops/modulePipelines/ms.datafactory.factories.yml +++ b/.azuredevops/modulePipelines/ms.datafactory.factories.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml b/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml index 82f6aa3685..aa1c74765e 100644 --- a/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml +++ b/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml b/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml index 7f866f9e57..c0c4958ef2 100644 --- a/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml +++ b/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml b/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml index 937f2f72b4..f7f724d63a 100644 --- a/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml +++ b/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml b/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml index 312bb14859..adf58c1395 100644 --- a/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml +++ b/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml b/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml index 36306e9943..a850a151b3 100644 --- a/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml b/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml index 07d69002ee..c7e13c5efe 100644 --- a/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml +++ b/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml @@ -45,9 +45,9 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/mongodb.parameters.json - - path: $(modulePath)/.parameters/plain.parameters.json - - path: $(modulePath)/.parameters/sqldb.parameters.json + - path: $(modulePath)/.deploymentTests/mongodb.parameters.json + - path: $(modulePath)/.deploymentTests/plain.parameters.json + - path: $(modulePath)/.deploymentTests/sqldb.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml b/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml index a5b5e4c51b..74b9ed4827 100644 --- a/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml +++ b/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.eventgrid.topics.yml b/.azuredevops/modulePipelines/ms.eventgrid.topics.yml index bce5557c01..618ee86540 100644 --- a/.azuredevops/modulePipelines/ms.eventgrid.topics.yml +++ b/.azuredevops/modulePipelines/ms.eventgrid.topics.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml b/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml index 35755a6eab..5f2b4d4a37 100644 --- a/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml +++ b/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml b/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml index 86e2587c59..08760e0264 100644 --- a/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml +++ b/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.insights.actiongroups.yml b/.azuredevops/modulePipelines/ms.insights.actiongroups.yml index 1d6b367fee..465d18b9d8 100644 --- a/.azuredevops/modulePipelines/ms.insights.actiongroups.yml +++ b/.azuredevops/modulePipelines/ms.insights.actiongroups.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml b/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml index 0290432eeb..cffda42bac 100644 --- a/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml +++ b/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.insights.components.yml b/.azuredevops/modulePipelines/ms.insights.components.yml index 2ebf16d0f5..77ced33898 100644 --- a/.azuredevops/modulePipelines/ms.insights.components.yml +++ b/.azuredevops/modulePipelines/ms.insights.components.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml b/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml index 68cbcd7a8b..aab087928e 100644 --- a/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml +++ b/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.insights.metricalerts.yml b/.azuredevops/modulePipelines/ms.insights.metricalerts.yml index e2c559ed99..5d3ca5ec25 100644 --- a/.azuredevops/modulePipelines/ms.insights.metricalerts.yml +++ b/.azuredevops/modulePipelines/ms.insights.metricalerts.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml b/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml index 15d793c90a..e4d8eb0f2a 100644 --- a/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml +++ b/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml b/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml index 3ec1537e46..8af9bffff7 100644 --- a/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml +++ b/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.keyvault.vaults.yml b/.azuredevops/modulePipelines/ms.keyvault.vaults.yml index 39f0e155c1..9defe0353a 100644 --- a/.azuredevops/modulePipelines/ms.keyvault.vaults.yml +++ b/.azuredevops/modulePipelines/ms.keyvault.vaults.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml index 7f53c0e67f..c638da8660 100644 --- a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml +++ b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml index 80d647d747..05c578d2e0 100644 --- a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml +++ b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.logic.workflows.yml b/.azuredevops/modulePipelines/ms.logic.workflows.yml index 0935dfc17e..869220d3e2 100644 --- a/.azuredevops/modulePipelines/ms.logic.workflows.yml +++ b/.azuredevops/modulePipelines/ms.logic.workflows.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml b/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml index 25d3dff698..79dfdc2be2 100644 --- a/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml b/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml index 1f00c7cfc7..05a656cf55 100644 --- a/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml +++ b/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml b/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml index f32c9014d9..39c68df3c5 100644 --- a/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml +++ b/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json - - path: $(modulePath)/.parameters/rg.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.deploymentTests/rg.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.management.managementgroups.yml b/.azuredevops/modulePipelines/ms.management.managementgroups.yml index 2b6835ee2b..3289daddc9 100644 --- a/.azuredevops/modulePipelines/ms.management.managementgroups.yml +++ b/.azuredevops/modulePipelines/ms.management.managementgroups.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml b/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml index 51301ce92e..7ef1d4cbb5 100644 --- a/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml +++ b/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml @@ -45,9 +45,9 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/nfs3.parameters.json - - path: $(modulePath)/.parameters/nfs41.parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/nfs3.parameters.json + - path: $(modulePath)/.deploymentTests/nfs41.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.applicationgateways.yml b/.azuredevops/modulePipelines/ms.network.applicationgateways.yml index 94f69382f6..da48d2dac5 100644 --- a/.azuredevops/modulePipelines/ms.network.applicationgateways.yml +++ b/.azuredevops/modulePipelines/ms.network.applicationgateways.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml b/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml index acd62eae47..f959c4795a 100644 --- a/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml +++ b/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml b/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml index 2f54d10839..64abfd6e64 100644 --- a/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml +++ b/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.bastionhosts.yml b/.azuredevops/modulePipelines/ms.network.bastionhosts.yml index ffdb3bcbd4..6746220362 100644 --- a/.azuredevops/modulePipelines/ms.network.bastionhosts.yml +++ b/.azuredevops/modulePipelines/ms.network.bastionhosts.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.connections.yml b/.azuredevops/modulePipelines/ms.network.connections.yml index fb94033d50..1642c73684 100644 --- a/.azuredevops/modulePipelines/ms.network.connections.yml +++ b/.azuredevops/modulePipelines/ms.network.connections.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/vnet2vnet.parameters.json + - path: $(modulePath)/.deploymentTests/vnet2vnet.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml b/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml index 0e31c7a082..4574f81457 100644 --- a/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml +++ b/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml b/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml index 8cf0e657b8..8f86baa36a 100644 --- a/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml +++ b/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml b/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml index 4e64acd136..51a75ecb68 100644 --- a/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml +++ b/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.frontdoors.yml b/.azuredevops/modulePipelines/ms.network.frontdoors.yml index 60ec3ae34b..ec107160d9 100644 --- a/.azuredevops/modulePipelines/ms.network.frontdoors.yml +++ b/.azuredevops/modulePipelines/ms.network.frontdoors.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.ipgroups.yml b/.azuredevops/modulePipelines/ms.network.ipgroups.yml index 68741237c9..47ac2b187a 100644 --- a/.azuredevops/modulePipelines/ms.network.ipgroups.yml +++ b/.azuredevops/modulePipelines/ms.network.ipgroups.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.loadbalancers.yml b/.azuredevops/modulePipelines/ms.network.loadbalancers.yml index 79a642a9a2..cc2769f764 100644 --- a/.azuredevops/modulePipelines/ms.network.loadbalancers.yml +++ b/.azuredevops/modulePipelines/ms.network.loadbalancers.yml @@ -45,9 +45,9 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/internal.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/internal.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml b/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml index 0ee1e4d5dc..862f64a093 100644 --- a/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml +++ b/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.natgateways.yml b/.azuredevops/modulePipelines/ms.network.natgateways.yml index c8c54a6b23..17cd3f4bee 100644 --- a/.azuredevops/modulePipelines/ms.network.natgateways.yml +++ b/.azuredevops/modulePipelines/ms.network.natgateways.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml b/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml index 774230b786..ed2ff73682 100644 --- a/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml +++ b/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml b/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml index 508abc9800..a592dbf8d3 100644 --- a/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml +++ b/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.networkwatchers.yml b/.azuredevops/modulePipelines/ms.network.networkwatchers.yml index 70dbbd7165..a032607be9 100644 --- a/.azuredevops/modulePipelines/ms.network.networkwatchers.yml +++ b/.azuredevops/modulePipelines/ms.network.networkwatchers.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.privatednszones.yml b/.azuredevops/modulePipelines/ms.network.privatednszones.yml index fbdae8dbbe..d4f53eb438 100644 --- a/.azuredevops/modulePipelines/ms.network.privatednszones.yml +++ b/.azuredevops/modulePipelines/ms.network.privatednszones.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.privateendpoints.yml b/.azuredevops/modulePipelines/ms.network.privateendpoints.yml index 08c0110f53..55be935211 100644 --- a/.azuredevops/modulePipelines/ms.network.privateendpoints.yml +++ b/.azuredevops/modulePipelines/ms.network.privateendpoints.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml b/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml index 8162834d2c..eff1b0250f 100644 --- a/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml +++ b/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml b/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml index 0f4ac763e0..05a7e35e48 100644 --- a/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml +++ b/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.routetables.yml b/.azuredevops/modulePipelines/ms.network.routetables.yml index 3e7285e19b..15aeb0fff2 100644 --- a/.azuredevops/modulePipelines/ms.network.routetables.yml +++ b/.azuredevops/modulePipelines/ms.network.routetables.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml b/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml index e3d4a02456..a064e45548 100644 --- a/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml +++ b/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.virtualhubs.yml b/.azuredevops/modulePipelines/ms.network.virtualhubs.yml index 91fc5e736f..671a6d9457 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualhubs.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualhubs.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml b/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml index f83662a85b..7d5fa11d44 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/expressRoute.parameters.json - - path: $(modulePath)/.parameters/vpn.parameters.json + - path: $(modulePath)/.deploymentTests/expressRoute.parameters.json + - path: $(modulePath)/.deploymentTests/vpn.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml b/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml index 3afcc78e93..c4b4a3ea0a 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json - - path: $(modulePath)/.parameters/vnetPeering.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.deploymentTests/vnetPeering.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.virtualwans.yml b/.azuredevops/modulePipelines/ms.network.virtualwans.yml index 2f2aa5d2ab..32bfa7afd2 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualwans.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualwans.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.vpngateways.yml b/.azuredevops/modulePipelines/ms.network.vpngateways.yml index 18743ce83b..ee7ce830e8 100644 --- a/.azuredevops/modulePipelines/ms.network.vpngateways.yml +++ b/.azuredevops/modulePipelines/ms.network.vpngateways.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.vpnsites.yml b/.azuredevops/modulePipelines/ms.network.vpnsites.yml index 1671947a58..c6054542cc 100644 --- a/.azuredevops/modulePipelines/ms.network.vpnsites.yml +++ b/.azuredevops/modulePipelines/ms.network.vpnsites.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml b/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml index 8b4b67de7d..f3b4863863 100644 --- a/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml b/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml index ba8cdae0b1..05d4dae6cb 100644 --- a/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml +++ b/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml @@ -45,9 +45,9 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/nonms.parameters.json - - path: $(modulePath)/.parameters/ms.parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/nonms.parameters.json + - path: $(modulePath)/.deploymentTests/ms.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml b/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml index cba2c234be..416413054e 100644 --- a/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml +++ b/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml @@ -45,11 +45,11 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/min.parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.parameters/dr.parameters.json + - path: $(modulePath)/.deploymentTests/dr.parameters.json templateFilePath: $(modulePath)/deploy.bicep - stage: Publishing diff --git a/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml b/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml index d22921db65..2f5a850bea 100644 --- a/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml +++ b/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/cli.parameters.json - - path: $(modulePath)/.parameters/ps.parameters.json + - path: $(modulePath)/.deploymentTests/cli.parameters.json + - path: $(modulePath)/.deploymentTests/ps.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml b/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml index d9dda35a3c..03b074bdb2 100644 --- a/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml +++ b/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.resources.tags.yml b/.azuredevops/modulePipelines/ms.resources.tags.yml index 2a63417b98..98316cfcfd 100644 --- a/.azuredevops/modulePipelines/ms.resources.tags.yml +++ b/.azuredevops/modulePipelines/ms.resources.tags.yml @@ -45,9 +45,9 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/rg.parameters.json - - path: $(modulePath)/.parameters/sub.parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/rg.parameters.json + - path: $(modulePath)/.deploymentTests/sub.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml b/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml index ab25a3a0d5..4b6046d2e8 100644 --- a/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml +++ b/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml b/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml index 8f7a938e6b..626e23d613 100644 --- a/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml +++ b/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml b/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml index 60b8563841..c7e516692f 100644 --- a/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml +++ b/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml @@ -45,9 +45,9 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/full.parameters.json - - path: $(modulePath)/.parameters/cert.parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/full.parameters.json + - path: $(modulePath)/.deploymentTests/cert.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.sql.managedinstances.yml b/.azuredevops/modulePipelines/ms.sql.managedinstances.yml index 8d238daff1..9d49a71ba7 100644 --- a/.azuredevops/modulePipelines/ms.sql.managedinstances.yml +++ b/.azuredevops/modulePipelines/ms.sql.managedinstances.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json defaultJobTimeoutInMinutes: 360 - stage: Publishing diff --git a/.azuredevops/modulePipelines/ms.sql.servers.yml b/.azuredevops/modulePipelines/ms.sql.servers.yml index ed0125f637..32d9b5e535 100644 --- a/.azuredevops/modulePipelines/ms.sql.servers.yml +++ b/.azuredevops/modulePipelines/ms.sql.servers.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json - - path: $(modulePath)/.parameters/admin.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.deploymentTests/admin.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml b/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml index 5b4e07ed3b..62f98d6d33 100644 --- a/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml +++ b/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml @@ -45,11 +45,11 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/nfs.parameters.json - - path: $(modulePath)/.parameters/parameters.json - - path: $(modulePath)/.parameters/v1.parameters.json - - path: $(modulePath)/.parameters/encr.parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/nfs.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.deploymentTests/v1.parameters.json + - path: $(modulePath)/.deploymentTests/encr.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml b/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml index 246865319c..295f5beb67 100644 --- a/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml +++ b/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml b/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml index 818ab369d5..8169a7e43d 100644 --- a/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml +++ b/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.web.connections.yml b/.azuredevops/modulePipelines/ms.web.connections.yml index ffba362d13..4a126a0ee8 100644 --- a/.azuredevops/modulePipelines/ms.web.connections.yml +++ b/.azuredevops/modulePipelines/ms.web.connections.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml b/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml index 1cdbca5b71..a3b6da3f80 100644 --- a/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml +++ b/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/asev2.parameters.json - - path: $(modulePath)/.parameters/asev3.parameters.json + - path: $(modulePath)/.deploymentTests/asev2.parameters.json + - path: $(modulePath)/.deploymentTests/asev3.parameters.json defaultJobTimeoutInMinutes: 180 - stage: Publishing diff --git a/.azuredevops/modulePipelines/ms.web.serverfarms.yml b/.azuredevops/modulePipelines/ms.web.serverfarms.yml index 4288d2a1e3..48d906fedc 100644 --- a/.azuredevops/modulePipelines/ms.web.serverfarms.yml +++ b/.azuredevops/modulePipelines/ms.web.serverfarms.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.web.sites.yml b/.azuredevops/modulePipelines/ms.web.sites.yml index 28173a7c34..e56f5c75eb 100644 --- a/.azuredevops/modulePipelines/ms.web.sites.yml +++ b/.azuredevops/modulePipelines/ms.web.sites.yml @@ -45,10 +45,10 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/fa.min.parameters.json - - path: $(modulePath)/.parameters/fa.parameters.json - - path: $(modulePath)/.parameters/wa.min.parameters.json - - path: $(modulePath)/.parameters/wa.parameters.json + - path: $(modulePath)/.deploymentTests/fa.min.parameters.json + - path: $(modulePath)/.deploymentTests/fa.parameters.json + - path: $(modulePath)/.deploymentTests/wa.min.parameters.json + - path: $(modulePath)/.deploymentTests/wa.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.web.staticsites.yml b/.azuredevops/modulePipelines/ms.web.staticsites.yml index 23fed47790..e408ebbb15 100644 --- a/.azuredevops/modulePipelines/ms.web.staticsites.yml +++ b/.azuredevops/modulePipelines/ms.web.staticsites.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/min.parameters.json - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.deploymentTests/parameters.json - stage: Publishing displayName: Publishing diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 9addde2a80..634e751be7 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -15,7 +15,7 @@ ## | Parameter | Required | Default | Description | Example | ## |---------------------------|----------|---------|-------------------------------------------------------|-----------------------------------------------------------------------| ## | templateFilePath | true | '' | The path to the template file to use for deployment | 'modules/Microsoft.ApiManagement/service/deploy.bicep' | -## | parameterFilePath | true | '' | The path to the parameter file to use for deployment | 'modules/Microsoft.ApiManagement/service/.parameters/parameters.json' | +## | parameterFilePath | true | '' | The path to the parameter file to use for deployment | 'modules/Microsoft.ApiManagement/service/.deploymentTests/parameters.json' | ## | location | true | '' | The location to use for deployment | 'WestEurope' | ## | resourceGroupName | false | '' | The resource group to deploy to | 'validation-rg' | ## | subscriptionId | false | '' | The subscriptionId to deploy to | '1a97b80a-4dda-4f50-ab53-349e29344654' | diff --git a/constructs/Microsoft.Compute/virtualMachinesMultiple/.parameters/linux.prefix.parameter.json b/constructs/Microsoft.Compute/virtualMachinesMultiple/.deploymentTests/linux.prefix.parameter.json similarity index 100% rename from constructs/Microsoft.Compute/virtualMachinesMultiple/.parameters/linux.prefix.parameter.json rename to constructs/Microsoft.Compute/virtualMachinesMultiple/.deploymentTests/linux.prefix.parameter.json diff --git a/constructs/Microsoft.Compute/virtualMachinesMultiple/.parameters/linux.vmnames.parameter.json b/constructs/Microsoft.Compute/virtualMachinesMultiple/.deploymentTests/linux.vmnames.parameter.json similarity index 100% rename from constructs/Microsoft.Compute/virtualMachinesMultiple/.parameters/linux.vmnames.parameter.json rename to constructs/Microsoft.Compute/virtualMachinesMultiple/.deploymentTests/linux.vmnames.parameter.json diff --git a/modules/Microsoft.AAD/DomainServices/.parameters/parameters.json b/modules/Microsoft.AAD/DomainServices/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.AAD/DomainServices/.parameters/parameters.json rename to modules/Microsoft.AAD/DomainServices/.deploymentTests/parameters.json diff --git a/modules/Microsoft.AnalysisServices/servers/.parameters/max.parameters.json b/modules/Microsoft.AnalysisServices/servers/.deploymentTests/max.parameters.json similarity index 100% rename from modules/Microsoft.AnalysisServices/servers/.parameters/max.parameters.json rename to modules/Microsoft.AnalysisServices/servers/.deploymentTests/max.parameters.json diff --git a/modules/Microsoft.AnalysisServices/servers/.parameters/min.parameters.json b/modules/Microsoft.AnalysisServices/servers/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.AnalysisServices/servers/.parameters/min.parameters.json rename to modules/Microsoft.AnalysisServices/servers/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.AnalysisServices/servers/.parameters/parameters.json b/modules/Microsoft.AnalysisServices/servers/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.AnalysisServices/servers/.parameters/parameters.json rename to modules/Microsoft.AnalysisServices/servers/.deploymentTests/parameters.json diff --git a/modules/Microsoft.ApiManagement/service/.parameters/max.parameters.json b/modules/Microsoft.ApiManagement/service/.deploymentTests/max.parameters.json similarity index 100% rename from modules/Microsoft.ApiManagement/service/.parameters/max.parameters.json rename to modules/Microsoft.ApiManagement/service/.deploymentTests/max.parameters.json diff --git a/modules/Microsoft.ApiManagement/service/.parameters/min.parameters.json b/modules/Microsoft.ApiManagement/service/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.ApiManagement/service/.parameters/min.parameters.json rename to modules/Microsoft.ApiManagement/service/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.ApiManagement/service/.parameters/parameters.json b/modules/Microsoft.ApiManagement/service/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.ApiManagement/service/.parameters/parameters.json rename to modules/Microsoft.ApiManagement/service/.deploymentTests/parameters.json diff --git a/modules/Microsoft.AppConfiguration/configurationStores/.parameters/min.parameters.json b/modules/Microsoft.AppConfiguration/configurationStores/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.AppConfiguration/configurationStores/.parameters/min.parameters.json rename to modules/Microsoft.AppConfiguration/configurationStores/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.AppConfiguration/configurationStores/.parameters/parameters.json b/modules/Microsoft.AppConfiguration/configurationStores/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.AppConfiguration/configurationStores/.parameters/parameters.json rename to modules/Microsoft.AppConfiguration/configurationStores/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Authorization/locks/.parameters/rg.parameters.json b/modules/Microsoft.Authorization/locks/.deploymentTests/rg.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/locks/.parameters/rg.parameters.json rename to modules/Microsoft.Authorization/locks/.deploymentTests/rg.parameters.json diff --git a/modules/Microsoft.Authorization/policyAssignments/.parameters/mg.min.parameters.json b/modules/Microsoft.Authorization/policyAssignments/.deploymentTests/mg.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyAssignments/.parameters/mg.min.parameters.json rename to modules/Microsoft.Authorization/policyAssignments/.deploymentTests/mg.min.parameters.json diff --git a/modules/Microsoft.Authorization/policyAssignments/.parameters/mg.parameters.json b/modules/Microsoft.Authorization/policyAssignments/.deploymentTests/mg.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyAssignments/.parameters/mg.parameters.json rename to modules/Microsoft.Authorization/policyAssignments/.deploymentTests/mg.parameters.json diff --git a/modules/Microsoft.Authorization/policyAssignments/.parameters/rg.min.parameters.json b/modules/Microsoft.Authorization/policyAssignments/.deploymentTests/rg.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyAssignments/.parameters/rg.min.parameters.json rename to modules/Microsoft.Authorization/policyAssignments/.deploymentTests/rg.min.parameters.json diff --git a/modules/Microsoft.Authorization/policyAssignments/.parameters/rg.parameters.json b/modules/Microsoft.Authorization/policyAssignments/.deploymentTests/rg.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyAssignments/.parameters/rg.parameters.json rename to modules/Microsoft.Authorization/policyAssignments/.deploymentTests/rg.parameters.json diff --git a/modules/Microsoft.Authorization/policyAssignments/.parameters/sub.min.parameters.json b/modules/Microsoft.Authorization/policyAssignments/.deploymentTests/sub.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyAssignments/.parameters/sub.min.parameters.json rename to modules/Microsoft.Authorization/policyAssignments/.deploymentTests/sub.min.parameters.json diff --git a/modules/Microsoft.Authorization/policyAssignments/.parameters/sub.parameters.json b/modules/Microsoft.Authorization/policyAssignments/.deploymentTests/sub.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyAssignments/.parameters/sub.parameters.json rename to modules/Microsoft.Authorization/policyAssignments/.deploymentTests/sub.parameters.json diff --git a/modules/Microsoft.Authorization/policyDefinitions/.parameters/mg.min.parameters.json b/modules/Microsoft.Authorization/policyDefinitions/.deploymentTests/mg.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyDefinitions/.parameters/mg.min.parameters.json rename to modules/Microsoft.Authorization/policyDefinitions/.deploymentTests/mg.min.parameters.json diff --git a/modules/Microsoft.Authorization/policyDefinitions/.parameters/mg.parameters.json b/modules/Microsoft.Authorization/policyDefinitions/.deploymentTests/mg.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyDefinitions/.parameters/mg.parameters.json rename to modules/Microsoft.Authorization/policyDefinitions/.deploymentTests/mg.parameters.json diff --git a/modules/Microsoft.Authorization/policyDefinitions/.parameters/sub.min.parameters.json b/modules/Microsoft.Authorization/policyDefinitions/.deploymentTests/sub.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyDefinitions/.parameters/sub.min.parameters.json rename to modules/Microsoft.Authorization/policyDefinitions/.deploymentTests/sub.min.parameters.json diff --git a/modules/Microsoft.Authorization/policyDefinitions/.parameters/sub.parameters.json b/modules/Microsoft.Authorization/policyDefinitions/.deploymentTests/sub.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyDefinitions/.parameters/sub.parameters.json rename to modules/Microsoft.Authorization/policyDefinitions/.deploymentTests/sub.parameters.json diff --git a/modules/Microsoft.Authorization/policyExemptions/.parameters/mg.min.parameters.json b/modules/Microsoft.Authorization/policyExemptions/.deploymentTests/mg.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyExemptions/.parameters/mg.min.parameters.json rename to modules/Microsoft.Authorization/policyExemptions/.deploymentTests/mg.min.parameters.json diff --git a/modules/Microsoft.Authorization/policyExemptions/.parameters/mg.parameters.json b/modules/Microsoft.Authorization/policyExemptions/.deploymentTests/mg.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyExemptions/.parameters/mg.parameters.json rename to modules/Microsoft.Authorization/policyExemptions/.deploymentTests/mg.parameters.json diff --git a/modules/Microsoft.Authorization/policyExemptions/.parameters/rg.min.parameters.json b/modules/Microsoft.Authorization/policyExemptions/.deploymentTests/rg.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyExemptions/.parameters/rg.min.parameters.json rename to modules/Microsoft.Authorization/policyExemptions/.deploymentTests/rg.min.parameters.json diff --git a/modules/Microsoft.Authorization/policyExemptions/.parameters/rg.parameters.json b/modules/Microsoft.Authorization/policyExemptions/.deploymentTests/rg.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyExemptions/.parameters/rg.parameters.json rename to modules/Microsoft.Authorization/policyExemptions/.deploymentTests/rg.parameters.json diff --git a/modules/Microsoft.Authorization/policyExemptions/.parameters/sub.min.parameters.json b/modules/Microsoft.Authorization/policyExemptions/.deploymentTests/sub.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyExemptions/.parameters/sub.min.parameters.json rename to modules/Microsoft.Authorization/policyExemptions/.deploymentTests/sub.min.parameters.json diff --git a/modules/Microsoft.Authorization/policyExemptions/.parameters/sub.parameters.json b/modules/Microsoft.Authorization/policyExemptions/.deploymentTests/sub.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyExemptions/.parameters/sub.parameters.json rename to modules/Microsoft.Authorization/policyExemptions/.deploymentTests/sub.parameters.json diff --git a/modules/Microsoft.Authorization/policySetDefinitions/.parameters/mg.min.parameters.json b/modules/Microsoft.Authorization/policySetDefinitions/.deploymentTests/mg.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policySetDefinitions/.parameters/mg.min.parameters.json rename to modules/Microsoft.Authorization/policySetDefinitions/.deploymentTests/mg.min.parameters.json diff --git a/modules/Microsoft.Authorization/policySetDefinitions/.parameters/mg.parameters.json b/modules/Microsoft.Authorization/policySetDefinitions/.deploymentTests/mg.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policySetDefinitions/.parameters/mg.parameters.json rename to modules/Microsoft.Authorization/policySetDefinitions/.deploymentTests/mg.parameters.json diff --git a/modules/Microsoft.Authorization/policySetDefinitions/.parameters/sub.min.parameters.json b/modules/Microsoft.Authorization/policySetDefinitions/.deploymentTests/sub.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policySetDefinitions/.parameters/sub.min.parameters.json rename to modules/Microsoft.Authorization/policySetDefinitions/.deploymentTests/sub.min.parameters.json diff --git a/modules/Microsoft.Authorization/policySetDefinitions/.parameters/sub.parameters.json b/modules/Microsoft.Authorization/policySetDefinitions/.deploymentTests/sub.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policySetDefinitions/.parameters/sub.parameters.json rename to modules/Microsoft.Authorization/policySetDefinitions/.deploymentTests/sub.parameters.json diff --git a/modules/Microsoft.Authorization/roleAssignments/.parameters/mg.min.parameters.json b/modules/Microsoft.Authorization/roleAssignments/.deploymentTests/mg.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/roleAssignments/.parameters/mg.min.parameters.json rename to modules/Microsoft.Authorization/roleAssignments/.deploymentTests/mg.min.parameters.json diff --git a/modules/Microsoft.Authorization/roleAssignments/.parameters/mg.parameters.json b/modules/Microsoft.Authorization/roleAssignments/.deploymentTests/mg.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/roleAssignments/.parameters/mg.parameters.json rename to modules/Microsoft.Authorization/roleAssignments/.deploymentTests/mg.parameters.json diff --git a/modules/Microsoft.Authorization/roleAssignments/.parameters/rg.min.parameters.json b/modules/Microsoft.Authorization/roleAssignments/.deploymentTests/rg.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/roleAssignments/.parameters/rg.min.parameters.json rename to modules/Microsoft.Authorization/roleAssignments/.deploymentTests/rg.min.parameters.json diff --git a/modules/Microsoft.Authorization/roleAssignments/.parameters/rg.parameters.json b/modules/Microsoft.Authorization/roleAssignments/.deploymentTests/rg.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/roleAssignments/.parameters/rg.parameters.json rename to modules/Microsoft.Authorization/roleAssignments/.deploymentTests/rg.parameters.json diff --git a/modules/Microsoft.Authorization/roleAssignments/.parameters/sub.min.parameters.json b/modules/Microsoft.Authorization/roleAssignments/.deploymentTests/sub.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/roleAssignments/.parameters/sub.min.parameters.json rename to modules/Microsoft.Authorization/roleAssignments/.deploymentTests/sub.min.parameters.json diff --git a/modules/Microsoft.Authorization/roleAssignments/.parameters/sub.parameters.json b/modules/Microsoft.Authorization/roleAssignments/.deploymentTests/sub.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/roleAssignments/.parameters/sub.parameters.json rename to modules/Microsoft.Authorization/roleAssignments/.deploymentTests/sub.parameters.json diff --git a/modules/Microsoft.Authorization/roleDefinitions/.parameters/mg.min.parameters.json b/modules/Microsoft.Authorization/roleDefinitions/.deploymentTests/mg.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/roleDefinitions/.parameters/mg.min.parameters.json rename to modules/Microsoft.Authorization/roleDefinitions/.deploymentTests/mg.min.parameters.json diff --git a/modules/Microsoft.Authorization/roleDefinitions/.parameters/mg.parameters.json b/modules/Microsoft.Authorization/roleDefinitions/.deploymentTests/mg.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/roleDefinitions/.parameters/mg.parameters.json rename to modules/Microsoft.Authorization/roleDefinitions/.deploymentTests/mg.parameters.json diff --git a/modules/Microsoft.Authorization/roleDefinitions/.parameters/rg.min.parameters.json b/modules/Microsoft.Authorization/roleDefinitions/.deploymentTests/rg.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/roleDefinitions/.parameters/rg.min.parameters.json rename to modules/Microsoft.Authorization/roleDefinitions/.deploymentTests/rg.min.parameters.json diff --git a/modules/Microsoft.Authorization/roleDefinitions/.parameters/rg.parameters.json b/modules/Microsoft.Authorization/roleDefinitions/.deploymentTests/rg.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/roleDefinitions/.parameters/rg.parameters.json rename to modules/Microsoft.Authorization/roleDefinitions/.deploymentTests/rg.parameters.json diff --git a/modules/Microsoft.Authorization/roleDefinitions/.parameters/sub.min.parameters.json b/modules/Microsoft.Authorization/roleDefinitions/.deploymentTests/sub.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/roleDefinitions/.parameters/sub.min.parameters.json rename to modules/Microsoft.Authorization/roleDefinitions/.deploymentTests/sub.min.parameters.json diff --git a/modules/Microsoft.Authorization/roleDefinitions/.parameters/sub.parameters.json b/modules/Microsoft.Authorization/roleDefinitions/.deploymentTests/sub.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/roleDefinitions/.parameters/sub.parameters.json rename to modules/Microsoft.Authorization/roleDefinitions/.deploymentTests/sub.parameters.json diff --git a/modules/Microsoft.Automation/automationAccounts/.parameters/encr.parameters.json b/modules/Microsoft.Automation/automationAccounts/.deploymentTests/encr.parameters.json similarity index 100% rename from modules/Microsoft.Automation/automationAccounts/.parameters/encr.parameters.json rename to modules/Microsoft.Automation/automationAccounts/.deploymentTests/encr.parameters.json diff --git a/modules/Microsoft.Automation/automationAccounts/.parameters/min.parameters.json b/modules/Microsoft.Automation/automationAccounts/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.Automation/automationAccounts/.parameters/min.parameters.json rename to modules/Microsoft.Automation/automationAccounts/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.Automation/automationAccounts/.parameters/parameters.json b/modules/Microsoft.Automation/automationAccounts/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Automation/automationAccounts/.parameters/parameters.json rename to modules/Microsoft.Automation/automationAccounts/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Batch/batchAccounts/.parameters/min.parameters.json b/modules/Microsoft.Batch/batchAccounts/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.Batch/batchAccounts/.parameters/min.parameters.json rename to modules/Microsoft.Batch/batchAccounts/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.Batch/batchAccounts/.parameters/parameters.json b/modules/Microsoft.Batch/batchAccounts/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Batch/batchAccounts/.parameters/parameters.json rename to modules/Microsoft.Batch/batchAccounts/.deploymentTests/parameters.json diff --git a/modules/Microsoft.CognitiveServices/accounts/.parameters/encr.parameters.json b/modules/Microsoft.CognitiveServices/accounts/.deploymentTests/encr.parameters.json similarity index 100% rename from modules/Microsoft.CognitiveServices/accounts/.parameters/encr.parameters.json rename to modules/Microsoft.CognitiveServices/accounts/.deploymentTests/encr.parameters.json diff --git a/modules/Microsoft.CognitiveServices/accounts/.parameters/min.parameters.json b/modules/Microsoft.CognitiveServices/accounts/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.CognitiveServices/accounts/.parameters/min.parameters.json rename to modules/Microsoft.CognitiveServices/accounts/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.CognitiveServices/accounts/.parameters/parameters.json b/modules/Microsoft.CognitiveServices/accounts/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.CognitiveServices/accounts/.parameters/parameters.json rename to modules/Microsoft.CognitiveServices/accounts/.deploymentTests/parameters.json diff --git a/modules/Microsoft.CognitiveServices/accounts/.parameters/speech.parameters.json b/modules/Microsoft.CognitiveServices/accounts/.deploymentTests/speech.parameters.json similarity index 100% rename from modules/Microsoft.CognitiveServices/accounts/.parameters/speech.parameters.json rename to modules/Microsoft.CognitiveServices/accounts/.deploymentTests/speech.parameters.json diff --git a/modules/Microsoft.Compute/availabilitySets/.parameters/min.parameters.json b/modules/Microsoft.Compute/availabilitySets/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.Compute/availabilitySets/.parameters/min.parameters.json rename to modules/Microsoft.Compute/availabilitySets/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.Compute/availabilitySets/.parameters/parameters.json b/modules/Microsoft.Compute/availabilitySets/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Compute/availabilitySets/.parameters/parameters.json rename to modules/Microsoft.Compute/availabilitySets/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Compute/diskEncryptionSets/.parameters/parameters.json b/modules/Microsoft.Compute/diskEncryptionSets/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Compute/diskEncryptionSets/.parameters/parameters.json rename to modules/Microsoft.Compute/diskEncryptionSets/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Compute/disks/.parameters/image.parameters.json b/modules/Microsoft.Compute/disks/.deploymentTests/image.parameters.json similarity index 100% rename from modules/Microsoft.Compute/disks/.parameters/image.parameters.json rename to modules/Microsoft.Compute/disks/.deploymentTests/image.parameters.json diff --git a/modules/Microsoft.Compute/disks/.parameters/import.parameters.json b/modules/Microsoft.Compute/disks/.deploymentTests/import.parameters.json similarity index 100% rename from modules/Microsoft.Compute/disks/.parameters/import.parameters.json rename to modules/Microsoft.Compute/disks/.deploymentTests/import.parameters.json diff --git a/modules/Microsoft.Compute/disks/.parameters/min.parameters.json b/modules/Microsoft.Compute/disks/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.Compute/disks/.parameters/min.parameters.json rename to modules/Microsoft.Compute/disks/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.Compute/disks/.parameters/parameters.json b/modules/Microsoft.Compute/disks/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Compute/disks/.parameters/parameters.json rename to modules/Microsoft.Compute/disks/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Compute/galleries/.parameters/images.parameters.json b/modules/Microsoft.Compute/galleries/.deploymentTests/images.parameters.json similarity index 100% rename from modules/Microsoft.Compute/galleries/.parameters/images.parameters.json rename to modules/Microsoft.Compute/galleries/.deploymentTests/images.parameters.json diff --git a/modules/Microsoft.Compute/galleries/.parameters/parameters.json b/modules/Microsoft.Compute/galleries/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Compute/galleries/.parameters/parameters.json rename to modules/Microsoft.Compute/galleries/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Compute/images/.parameters/parameters.json b/modules/Microsoft.Compute/images/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Compute/images/.parameters/parameters.json rename to modules/Microsoft.Compute/images/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Compute/proximityPlacementGroups/.parameters/parameters.json b/modules/Microsoft.Compute/proximityPlacementGroups/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Compute/proximityPlacementGroups/.parameters/parameters.json rename to modules/Microsoft.Compute/proximityPlacementGroups/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.min.parameters.json b/modules/Microsoft.Compute/virtualMachineScaleSets/.deploymentTests/linux.min.parameters.json similarity index 100% rename from modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.min.parameters.json rename to modules/Microsoft.Compute/virtualMachineScaleSets/.deploymentTests/linux.min.parameters.json diff --git a/modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.parameters.json b/modules/Microsoft.Compute/virtualMachineScaleSets/.deploymentTests/linux.parameters.json similarity index 100% rename from modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.parameters.json rename to modules/Microsoft.Compute/virtualMachineScaleSets/.deploymentTests/linux.parameters.json diff --git a/modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.min.parameters.json b/modules/Microsoft.Compute/virtualMachineScaleSets/.deploymentTests/windows.min.parameters.json similarity index 100% rename from modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.min.parameters.json rename to modules/Microsoft.Compute/virtualMachineScaleSets/.deploymentTests/windows.min.parameters.json diff --git a/modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.parameters.json b/modules/Microsoft.Compute/virtualMachineScaleSets/.deploymentTests/windows.parameters.json similarity index 100% rename from modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.parameters.json rename to modules/Microsoft.Compute/virtualMachineScaleSets/.deploymentTests/windows.parameters.json diff --git a/modules/Microsoft.Compute/virtualMachines/.parameters/linux.autmg.parameters.json b/modules/Microsoft.Compute/virtualMachines/.deploymentTests/linux.autmg.parameters.json similarity index 100% rename from modules/Microsoft.Compute/virtualMachines/.parameters/linux.autmg.parameters.json rename to modules/Microsoft.Compute/virtualMachines/.deploymentTests/linux.autmg.parameters.json diff --git a/modules/Microsoft.Compute/virtualMachines/.parameters/linux.min.parameters.json b/modules/Microsoft.Compute/virtualMachines/.deploymentTests/linux.min.parameters.json similarity index 100% rename from modules/Microsoft.Compute/virtualMachines/.parameters/linux.min.parameters.json rename to modules/Microsoft.Compute/virtualMachines/.deploymentTests/linux.min.parameters.json diff --git a/modules/Microsoft.Compute/virtualMachines/.parameters/linux.parameters.json b/modules/Microsoft.Compute/virtualMachines/.deploymentTests/linux.parameters.json similarity index 100% rename from modules/Microsoft.Compute/virtualMachines/.parameters/linux.parameters.json rename to modules/Microsoft.Compute/virtualMachines/.deploymentTests/linux.parameters.json diff --git a/modules/Microsoft.Compute/virtualMachines/.parameters/windows.autmg.parameters.json b/modules/Microsoft.Compute/virtualMachines/.deploymentTests/windows.autmg.parameters.json similarity index 100% rename from modules/Microsoft.Compute/virtualMachines/.parameters/windows.autmg.parameters.json rename to modules/Microsoft.Compute/virtualMachines/.deploymentTests/windows.autmg.parameters.json diff --git a/modules/Microsoft.Compute/virtualMachines/.parameters/windows.min.parameters.json b/modules/Microsoft.Compute/virtualMachines/.deploymentTests/windows.min.parameters.json similarity index 100% rename from modules/Microsoft.Compute/virtualMachines/.parameters/windows.min.parameters.json rename to modules/Microsoft.Compute/virtualMachines/.deploymentTests/windows.min.parameters.json diff --git a/modules/Microsoft.Compute/virtualMachines/.parameters/windows.parameters.json b/modules/Microsoft.Compute/virtualMachines/.deploymentTests/windows.parameters.json similarity index 100% rename from modules/Microsoft.Compute/virtualMachines/.parameters/windows.parameters.json rename to modules/Microsoft.Compute/virtualMachines/.deploymentTests/windows.parameters.json diff --git a/modules/Microsoft.Consumption/budgets/.parameters/parameters.json b/modules/Microsoft.Consumption/budgets/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Consumption/budgets/.parameters/parameters.json rename to modules/Microsoft.Consumption/budgets/.deploymentTests/parameters.json diff --git a/modules/Microsoft.ContainerInstance/containerGroups/.parameters/parameters.json b/modules/Microsoft.ContainerInstance/containerGroups/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.ContainerInstance/containerGroups/.parameters/parameters.json rename to modules/Microsoft.ContainerInstance/containerGroups/.deploymentTests/parameters.json diff --git a/modules/Microsoft.ContainerRegistry/registries/.parameters/encr.parameters.json b/modules/Microsoft.ContainerRegistry/registries/.deploymentTests/encr.parameters.json similarity index 100% rename from modules/Microsoft.ContainerRegistry/registries/.parameters/encr.parameters.json rename to modules/Microsoft.ContainerRegistry/registries/.deploymentTests/encr.parameters.json diff --git a/modules/Microsoft.ContainerRegistry/registries/.parameters/min.parameters.json b/modules/Microsoft.ContainerRegistry/registries/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.ContainerRegistry/registries/.parameters/min.parameters.json rename to modules/Microsoft.ContainerRegistry/registries/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.ContainerRegistry/registries/.parameters/parameters.json b/modules/Microsoft.ContainerRegistry/registries/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.ContainerRegistry/registries/.parameters/parameters.json rename to modules/Microsoft.ContainerRegistry/registries/.deploymentTests/parameters.json diff --git a/modules/Microsoft.ContainerService/managedClusters/.parameters/azure.parameters.json b/modules/Microsoft.ContainerService/managedClusters/.deploymentTests/azure.parameters.json similarity index 100% rename from modules/Microsoft.ContainerService/managedClusters/.parameters/azure.parameters.json rename to modules/Microsoft.ContainerService/managedClusters/.deploymentTests/azure.parameters.json diff --git a/modules/Microsoft.ContainerService/managedClusters/.parameters/kubenet.parameters.json b/modules/Microsoft.ContainerService/managedClusters/.deploymentTests/kubenet.parameters.json similarity index 100% rename from modules/Microsoft.ContainerService/managedClusters/.parameters/kubenet.parameters.json rename to modules/Microsoft.ContainerService/managedClusters/.deploymentTests/kubenet.parameters.json diff --git a/modules/Microsoft.DataFactory/factories/.parameters/parameters.json b/modules/Microsoft.DataFactory/factories/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.DataFactory/factories/.parameters/parameters.json rename to modules/Microsoft.DataFactory/factories/.deploymentTests/parameters.json diff --git a/modules/Microsoft.DataProtection/backupVaults/.parameters/min.parameters.json b/modules/Microsoft.DataProtection/backupVaults/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.DataProtection/backupVaults/.parameters/min.parameters.json rename to modules/Microsoft.DataProtection/backupVaults/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.DataProtection/backupVaults/.parameters/parameters.json b/modules/Microsoft.DataProtection/backupVaults/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.DataProtection/backupVaults/.parameters/parameters.json rename to modules/Microsoft.DataProtection/backupVaults/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Databricks/workspaces/.parameters/parameters.json b/modules/Microsoft.Databricks/workspaces/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Databricks/workspaces/.parameters/parameters.json rename to modules/Microsoft.Databricks/workspaces/.deploymentTests/parameters.json diff --git a/modules/Microsoft.DesktopVirtualization/applicationgroups/.parameters/min.parameters.json b/modules/Microsoft.DesktopVirtualization/applicationgroups/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.DesktopVirtualization/applicationgroups/.parameters/min.parameters.json rename to modules/Microsoft.DesktopVirtualization/applicationgroups/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.DesktopVirtualization/applicationgroups/.parameters/parameters.json b/modules/Microsoft.DesktopVirtualization/applicationgroups/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.DesktopVirtualization/applicationgroups/.parameters/parameters.json rename to modules/Microsoft.DesktopVirtualization/applicationgroups/.deploymentTests/parameters.json diff --git a/modules/Microsoft.DesktopVirtualization/hostpools/.parameters/parameters.json b/modules/Microsoft.DesktopVirtualization/hostpools/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.DesktopVirtualization/hostpools/.parameters/parameters.json rename to modules/Microsoft.DesktopVirtualization/hostpools/.deploymentTests/parameters.json diff --git a/modules/Microsoft.DesktopVirtualization/scalingplans/.parameters/min.parameters.json b/modules/Microsoft.DesktopVirtualization/scalingplans/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.DesktopVirtualization/scalingplans/.parameters/min.parameters.json rename to modules/Microsoft.DesktopVirtualization/scalingplans/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.DesktopVirtualization/workspaces/.parameters/parameters.json b/modules/Microsoft.DesktopVirtualization/workspaces/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.DesktopVirtualization/workspaces/.parameters/parameters.json rename to modules/Microsoft.DesktopVirtualization/workspaces/.deploymentTests/parameters.json diff --git a/modules/Microsoft.DocumentDB/databaseAccounts/.parameters/mongodb.parameters.json b/modules/Microsoft.DocumentDB/databaseAccounts/.deploymentTests/mongodb.parameters.json similarity index 100% rename from modules/Microsoft.DocumentDB/databaseAccounts/.parameters/mongodb.parameters.json rename to modules/Microsoft.DocumentDB/databaseAccounts/.deploymentTests/mongodb.parameters.json diff --git a/modules/Microsoft.DocumentDB/databaseAccounts/.parameters/plain.parameters.json b/modules/Microsoft.DocumentDB/databaseAccounts/.deploymentTests/plain.parameters.json similarity index 100% rename from modules/Microsoft.DocumentDB/databaseAccounts/.parameters/plain.parameters.json rename to modules/Microsoft.DocumentDB/databaseAccounts/.deploymentTests/plain.parameters.json diff --git a/modules/Microsoft.DocumentDB/databaseAccounts/.parameters/sqldb.parameters.json b/modules/Microsoft.DocumentDB/databaseAccounts/.deploymentTests/sqldb.parameters.json similarity index 100% rename from modules/Microsoft.DocumentDB/databaseAccounts/.parameters/sqldb.parameters.json rename to modules/Microsoft.DocumentDB/databaseAccounts/.deploymentTests/sqldb.parameters.json diff --git a/modules/Microsoft.EventGrid/systemTopics/.parameters/min.parameters.json b/modules/Microsoft.EventGrid/systemTopics/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.EventGrid/systemTopics/.parameters/min.parameters.json rename to modules/Microsoft.EventGrid/systemTopics/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.EventGrid/systemTopics/.parameters/parameters.json b/modules/Microsoft.EventGrid/systemTopics/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.EventGrid/systemTopics/.parameters/parameters.json rename to modules/Microsoft.EventGrid/systemTopics/.deploymentTests/parameters.json diff --git a/modules/Microsoft.EventGrid/topics/.parameters/parameters.json b/modules/Microsoft.EventGrid/topics/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.EventGrid/topics/.parameters/parameters.json rename to modules/Microsoft.EventGrid/topics/.deploymentTests/parameters.json diff --git a/modules/Microsoft.EventHub/namespaces/.parameters/min.parameters.json b/modules/Microsoft.EventHub/namespaces/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.EventHub/namespaces/.parameters/min.parameters.json rename to modules/Microsoft.EventHub/namespaces/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.EventHub/namespaces/.parameters/parameters.json b/modules/Microsoft.EventHub/namespaces/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.EventHub/namespaces/.parameters/parameters.json rename to modules/Microsoft.EventHub/namespaces/.deploymentTests/parameters.json diff --git a/modules/Microsoft.HealthBot/healthBots/.parameters/parameters.json b/modules/Microsoft.HealthBot/healthBots/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.HealthBot/healthBots/.parameters/parameters.json rename to modules/Microsoft.HealthBot/healthBots/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Insights/actionGroups/.parameters/parameters.json b/modules/Microsoft.Insights/actionGroups/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Insights/actionGroups/.parameters/parameters.json rename to modules/Microsoft.Insights/actionGroups/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Insights/activityLogAlerts/.parameters/parameters.json b/modules/Microsoft.Insights/activityLogAlerts/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Insights/activityLogAlerts/.parameters/parameters.json rename to modules/Microsoft.Insights/activityLogAlerts/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Insights/components/.parameters/parameters.json b/modules/Microsoft.Insights/components/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Insights/components/.parameters/parameters.json rename to modules/Microsoft.Insights/components/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Insights/diagnosticSettings/.parameters/parameters.json b/modules/Microsoft.Insights/diagnosticSettings/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Insights/diagnosticSettings/.parameters/parameters.json rename to modules/Microsoft.Insights/diagnosticSettings/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Insights/metricAlerts/.parameters/parameters.json b/modules/Microsoft.Insights/metricAlerts/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Insights/metricAlerts/.parameters/parameters.json rename to modules/Microsoft.Insights/metricAlerts/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Insights/privateLinkScopes/.parameters/parameters.json b/modules/Microsoft.Insights/privateLinkScopes/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Insights/privateLinkScopes/.parameters/parameters.json rename to modules/Microsoft.Insights/privateLinkScopes/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Insights/scheduledQueryRules/.parameters/parameters.json b/modules/Microsoft.Insights/scheduledQueryRules/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Insights/scheduledQueryRules/.parameters/parameters.json rename to modules/Microsoft.Insights/scheduledQueryRules/.deploymentTests/parameters.json diff --git a/modules/Microsoft.KeyVault/vaults/.parameters/min.parameters.json b/modules/Microsoft.KeyVault/vaults/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.KeyVault/vaults/.parameters/min.parameters.json rename to modules/Microsoft.KeyVault/vaults/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.KeyVault/vaults/.parameters/parameters.json b/modules/Microsoft.KeyVault/vaults/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.KeyVault/vaults/.parameters/parameters.json rename to modules/Microsoft.KeyVault/vaults/.deploymentTests/parameters.json diff --git a/modules/Microsoft.KubernetesConfiguration/extensions/.parameters/min.parameters.json b/modules/Microsoft.KubernetesConfiguration/extensions/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.KubernetesConfiguration/extensions/.parameters/min.parameters.json rename to modules/Microsoft.KubernetesConfiguration/extensions/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.KubernetesConfiguration/extensions/.parameters/parameters.json b/modules/Microsoft.KubernetesConfiguration/extensions/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.KubernetesConfiguration/extensions/.parameters/parameters.json rename to modules/Microsoft.KubernetesConfiguration/extensions/.deploymentTests/parameters.json diff --git a/modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.parameters/min.parameters.json b/modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.parameters/min.parameters.json rename to modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.parameters/parameters.json b/modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.parameters/parameters.json rename to modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Logic/workflows/.parameters/parameters.json b/modules/Microsoft.Logic/workflows/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Logic/workflows/.parameters/parameters.json rename to modules/Microsoft.Logic/workflows/.deploymentTests/parameters.json diff --git a/modules/Microsoft.MachineLearningServices/workspaces/.parameters/min.parameters.json b/modules/Microsoft.MachineLearningServices/workspaces/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.MachineLearningServices/workspaces/.parameters/min.parameters.json rename to modules/Microsoft.MachineLearningServices/workspaces/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.MachineLearningServices/workspaces/.parameters/parameters.json b/modules/Microsoft.MachineLearningServices/workspaces/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.MachineLearningServices/workspaces/.parameters/parameters.json rename to modules/Microsoft.MachineLearningServices/workspaces/.deploymentTests/parameters.json diff --git a/modules/Microsoft.ManagedIdentity/userAssignedIdentities/.parameters/parameters.json b/modules/Microsoft.ManagedIdentity/userAssignedIdentities/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.ManagedIdentity/userAssignedIdentities/.parameters/parameters.json rename to modules/Microsoft.ManagedIdentity/userAssignedIdentities/.deploymentTests/parameters.json diff --git a/modules/Microsoft.ManagedServices/registrationDefinitions/.parameters/parameters.json b/modules/Microsoft.ManagedServices/registrationDefinitions/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.ManagedServices/registrationDefinitions/.parameters/parameters.json rename to modules/Microsoft.ManagedServices/registrationDefinitions/.deploymentTests/parameters.json diff --git a/modules/Microsoft.ManagedServices/registrationDefinitions/.parameters/rg.parameters.json b/modules/Microsoft.ManagedServices/registrationDefinitions/.deploymentTests/rg.parameters.json similarity index 100% rename from modules/Microsoft.ManagedServices/registrationDefinitions/.parameters/rg.parameters.json rename to modules/Microsoft.ManagedServices/registrationDefinitions/.deploymentTests/rg.parameters.json diff --git a/modules/Microsoft.Management/managementGroups/.parameters/parameters.json b/modules/Microsoft.Management/managementGroups/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Management/managementGroups/.parameters/parameters.json rename to modules/Microsoft.Management/managementGroups/.deploymentTests/parameters.json diff --git a/modules/Microsoft.NetApp/netAppAccounts/.parameters/min.parameters.json b/modules/Microsoft.NetApp/netAppAccounts/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.NetApp/netAppAccounts/.parameters/min.parameters.json rename to modules/Microsoft.NetApp/netAppAccounts/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.NetApp/netAppAccounts/.parameters/nfs3.parameters.json b/modules/Microsoft.NetApp/netAppAccounts/.deploymentTests/nfs3.parameters.json similarity index 100% rename from modules/Microsoft.NetApp/netAppAccounts/.parameters/nfs3.parameters.json rename to modules/Microsoft.NetApp/netAppAccounts/.deploymentTests/nfs3.parameters.json diff --git a/modules/Microsoft.NetApp/netAppAccounts/.parameters/nfs41.parameters.json b/modules/Microsoft.NetApp/netAppAccounts/.deploymentTests/nfs41.parameters.json similarity index 100% rename from modules/Microsoft.NetApp/netAppAccounts/.parameters/nfs41.parameters.json rename to modules/Microsoft.NetApp/netAppAccounts/.deploymentTests/nfs41.parameters.json diff --git a/modules/Microsoft.Network/applicationGateways/.parameters/parameters.json b/modules/Microsoft.Network/applicationGateways/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/applicationGateways/.parameters/parameters.json rename to modules/Microsoft.Network/applicationGateways/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/applicationSecurityGroups/.parameters/parameters.json b/modules/Microsoft.Network/applicationSecurityGroups/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/applicationSecurityGroups/.parameters/parameters.json rename to modules/Microsoft.Network/applicationSecurityGroups/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/azureFirewalls/.parameters/addpip.parameters.json b/modules/Microsoft.Network/azureFirewalls/.deploymentTests/addpip.parameters.json similarity index 100% rename from modules/Microsoft.Network/azureFirewalls/.parameters/addpip.parameters.json rename to modules/Microsoft.Network/azureFirewalls/.deploymentTests/addpip.parameters.json diff --git a/modules/Microsoft.Network/azureFirewalls/.parameters/custompip.parameters.json b/modules/Microsoft.Network/azureFirewalls/.deploymentTests/custompip.parameters.json similarity index 100% rename from modules/Microsoft.Network/azureFirewalls/.parameters/custompip.parameters.json rename to modules/Microsoft.Network/azureFirewalls/.deploymentTests/custompip.parameters.json diff --git a/modules/Microsoft.Network/azureFirewalls/.parameters/min.parameters.json b/modules/Microsoft.Network/azureFirewalls/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/azureFirewalls/.parameters/min.parameters.json rename to modules/Microsoft.Network/azureFirewalls/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.Network/azureFirewalls/.parameters/parameters.json b/modules/Microsoft.Network/azureFirewalls/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/azureFirewalls/.parameters/parameters.json rename to modules/Microsoft.Network/azureFirewalls/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/bastionHosts/.parameters/addpip.parameters.json b/modules/Microsoft.Network/bastionHosts/.deploymentTests/addpip.parameters.json similarity index 100% rename from modules/Microsoft.Network/bastionHosts/.parameters/addpip.parameters.json rename to modules/Microsoft.Network/bastionHosts/.deploymentTests/addpip.parameters.json diff --git a/modules/Microsoft.Network/bastionHosts/.parameters/custompip.parameters.json b/modules/Microsoft.Network/bastionHosts/.deploymentTests/custompip.parameters.json similarity index 100% rename from modules/Microsoft.Network/bastionHosts/.parameters/custompip.parameters.json rename to modules/Microsoft.Network/bastionHosts/.deploymentTests/custompip.parameters.json diff --git a/modules/Microsoft.Network/bastionHosts/.parameters/min.parameters.json b/modules/Microsoft.Network/bastionHosts/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/bastionHosts/.parameters/min.parameters.json rename to modules/Microsoft.Network/bastionHosts/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.Network/bastionHosts/.parameters/parameters.json b/modules/Microsoft.Network/bastionHosts/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/bastionHosts/.parameters/parameters.json rename to modules/Microsoft.Network/bastionHosts/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/connections/.parameters/vnet2vnet.parameters.json b/modules/Microsoft.Network/connections/.deploymentTests/vnet2vnet.parameters.json similarity index 100% rename from modules/Microsoft.Network/connections/.parameters/vnet2vnet.parameters.json rename to modules/Microsoft.Network/connections/.deploymentTests/vnet2vnet.parameters.json diff --git a/modules/Microsoft.Network/ddosProtectionPlans/.parameters/parameters.json b/modules/Microsoft.Network/ddosProtectionPlans/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/ddosProtectionPlans/.parameters/parameters.json rename to modules/Microsoft.Network/ddosProtectionPlans/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/expressRouteCircuits/.parameters/parameters.json b/modules/Microsoft.Network/expressRouteCircuits/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/expressRouteCircuits/.parameters/parameters.json rename to modules/Microsoft.Network/expressRouteCircuits/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/firewallPolicies/.parameters/min.parameters.json b/modules/Microsoft.Network/firewallPolicies/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/firewallPolicies/.parameters/min.parameters.json rename to modules/Microsoft.Network/firewallPolicies/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.Network/firewallPolicies/.parameters/parameters.json b/modules/Microsoft.Network/firewallPolicies/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/firewallPolicies/.parameters/parameters.json rename to modules/Microsoft.Network/firewallPolicies/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/frontDoors/.parameters/parameters.json b/modules/Microsoft.Network/frontDoors/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/frontDoors/.parameters/parameters.json rename to modules/Microsoft.Network/frontDoors/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/ipGroups/.parameters/parameters.json b/modules/Microsoft.Network/ipGroups/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/ipGroups/.parameters/parameters.json rename to modules/Microsoft.Network/ipGroups/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/loadBalancers/.parameters/internal.parameters.json b/modules/Microsoft.Network/loadBalancers/.deploymentTests/internal.parameters.json similarity index 100% rename from modules/Microsoft.Network/loadBalancers/.parameters/internal.parameters.json rename to modules/Microsoft.Network/loadBalancers/.deploymentTests/internal.parameters.json diff --git a/modules/Microsoft.Network/loadBalancers/.parameters/min.parameters.json b/modules/Microsoft.Network/loadBalancers/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/loadBalancers/.parameters/min.parameters.json rename to modules/Microsoft.Network/loadBalancers/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.Network/loadBalancers/.parameters/parameters.json b/modules/Microsoft.Network/loadBalancers/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/loadBalancers/.parameters/parameters.json rename to modules/Microsoft.Network/loadBalancers/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/localNetworkGateways/.parameters/parameters.json b/modules/Microsoft.Network/localNetworkGateways/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/localNetworkGateways/.parameters/parameters.json rename to modules/Microsoft.Network/localNetworkGateways/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/natGateways/.parameters/parameters.json b/modules/Microsoft.Network/natGateways/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/natGateways/.parameters/parameters.json rename to modules/Microsoft.Network/natGateways/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/networkInterfaces/.parameters/min.parameters.json b/modules/Microsoft.Network/networkInterfaces/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/networkInterfaces/.parameters/min.parameters.json rename to modules/Microsoft.Network/networkInterfaces/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.Network/networkInterfaces/.parameters/parameters.json b/modules/Microsoft.Network/networkInterfaces/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/networkInterfaces/.parameters/parameters.json rename to modules/Microsoft.Network/networkInterfaces/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/networkSecurityGroups/.parameters/min.parameters.json b/modules/Microsoft.Network/networkSecurityGroups/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/networkSecurityGroups/.parameters/min.parameters.json rename to modules/Microsoft.Network/networkSecurityGroups/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.Network/networkSecurityGroups/.parameters/parameters.json b/modules/Microsoft.Network/networkSecurityGroups/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/networkSecurityGroups/.parameters/parameters.json rename to modules/Microsoft.Network/networkSecurityGroups/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/networkWatchers/.parameters/min.parameters.json b/modules/Microsoft.Network/networkWatchers/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/networkWatchers/.parameters/min.parameters.json rename to modules/Microsoft.Network/networkWatchers/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.Network/networkWatchers/.parameters/parameters.json b/modules/Microsoft.Network/networkWatchers/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/networkWatchers/.parameters/parameters.json rename to modules/Microsoft.Network/networkWatchers/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/privateDnsZones/.parameters/min.parameters.json b/modules/Microsoft.Network/privateDnsZones/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/privateDnsZones/.parameters/min.parameters.json rename to modules/Microsoft.Network/privateDnsZones/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.Network/privateDnsZones/.parameters/parameters.json b/modules/Microsoft.Network/privateDnsZones/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/privateDnsZones/.parameters/parameters.json rename to modules/Microsoft.Network/privateDnsZones/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/privateEndpoints/.parameters/min.parameters.json b/modules/Microsoft.Network/privateEndpoints/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/privateEndpoints/.parameters/min.parameters.json rename to modules/Microsoft.Network/privateEndpoints/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.Network/privateEndpoints/.parameters/parameters.json b/modules/Microsoft.Network/privateEndpoints/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/privateEndpoints/.parameters/parameters.json rename to modules/Microsoft.Network/privateEndpoints/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/publicIPAddresses/.parameters/parameters.json b/modules/Microsoft.Network/publicIPAddresses/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/publicIPAddresses/.parameters/parameters.json rename to modules/Microsoft.Network/publicIPAddresses/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/publicIPPrefixes/.parameters/parameters.json b/modules/Microsoft.Network/publicIPPrefixes/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/publicIPPrefixes/.parameters/parameters.json rename to modules/Microsoft.Network/publicIPPrefixes/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/routeTables/.parameters/parameters.json b/modules/Microsoft.Network/routeTables/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/routeTables/.parameters/parameters.json rename to modules/Microsoft.Network/routeTables/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/trafficmanagerprofiles/.parameters/parameters.json b/modules/Microsoft.Network/trafficmanagerprofiles/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/trafficmanagerprofiles/.parameters/parameters.json rename to modules/Microsoft.Network/trafficmanagerprofiles/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/virtualHubs/.parameters/min.parameters.json b/modules/Microsoft.Network/virtualHubs/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/virtualHubs/.parameters/min.parameters.json rename to modules/Microsoft.Network/virtualHubs/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.Network/virtualHubs/.parameters/parameters.json b/modules/Microsoft.Network/virtualHubs/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/virtualHubs/.parameters/parameters.json rename to modules/Microsoft.Network/virtualHubs/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/virtualNetworkGateways/.parameters/expressRoute.parameters.json b/modules/Microsoft.Network/virtualNetworkGateways/.deploymentTests/expressRoute.parameters.json similarity index 100% rename from modules/Microsoft.Network/virtualNetworkGateways/.parameters/expressRoute.parameters.json rename to modules/Microsoft.Network/virtualNetworkGateways/.deploymentTests/expressRoute.parameters.json diff --git a/modules/Microsoft.Network/virtualNetworkGateways/.parameters/vpn.parameters.json b/modules/Microsoft.Network/virtualNetworkGateways/.deploymentTests/vpn.parameters.json similarity index 100% rename from modules/Microsoft.Network/virtualNetworkGateways/.parameters/vpn.parameters.json rename to modules/Microsoft.Network/virtualNetworkGateways/.deploymentTests/vpn.parameters.json diff --git a/modules/Microsoft.Network/virtualNetworks/.parameters/min.parameters.json b/modules/Microsoft.Network/virtualNetworks/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/virtualNetworks/.parameters/min.parameters.json rename to modules/Microsoft.Network/virtualNetworks/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.Network/virtualNetworks/.parameters/parameters.json b/modules/Microsoft.Network/virtualNetworks/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/virtualNetworks/.parameters/parameters.json rename to modules/Microsoft.Network/virtualNetworks/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/virtualNetworks/.parameters/vnetPeering.parameters.json b/modules/Microsoft.Network/virtualNetworks/.deploymentTests/vnetPeering.parameters.json similarity index 100% rename from modules/Microsoft.Network/virtualNetworks/.parameters/vnetPeering.parameters.json rename to modules/Microsoft.Network/virtualNetworks/.deploymentTests/vnetPeering.parameters.json diff --git a/modules/Microsoft.Network/virtualWans/.parameters/min.parameters.json b/modules/Microsoft.Network/virtualWans/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/virtualWans/.parameters/min.parameters.json rename to modules/Microsoft.Network/virtualWans/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.Network/virtualWans/.parameters/parameters.json b/modules/Microsoft.Network/virtualWans/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/virtualWans/.parameters/parameters.json rename to modules/Microsoft.Network/virtualWans/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/vpnGateways/.parameters/min.parameters.json b/modules/Microsoft.Network/vpnGateways/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/vpnGateways/.parameters/min.parameters.json rename to modules/Microsoft.Network/vpnGateways/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.Network/vpnGateways/.parameters/parameters.json b/modules/Microsoft.Network/vpnGateways/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/vpnGateways/.parameters/parameters.json rename to modules/Microsoft.Network/vpnGateways/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Network/vpnSites/.parameters/min.parameters.json b/modules/Microsoft.Network/vpnSites/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/vpnSites/.parameters/min.parameters.json rename to modules/Microsoft.Network/vpnSites/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.Network/vpnSites/.parameters/parameters.json b/modules/Microsoft.Network/vpnSites/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Network/vpnSites/.parameters/parameters.json rename to modules/Microsoft.Network/vpnSites/.deploymentTests/parameters.json diff --git a/modules/Microsoft.OperationalInsights/workspaces/.parameters/min.parameters.json b/modules/Microsoft.OperationalInsights/workspaces/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.OperationalInsights/workspaces/.parameters/min.parameters.json rename to modules/Microsoft.OperationalInsights/workspaces/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.OperationalInsights/workspaces/.parameters/parameters.json b/modules/Microsoft.OperationalInsights/workspaces/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.OperationalInsights/workspaces/.parameters/parameters.json rename to modules/Microsoft.OperationalInsights/workspaces/.deploymentTests/parameters.json diff --git a/modules/Microsoft.OperationsManagement/solutions/.parameters/min.parameters.json b/modules/Microsoft.OperationsManagement/solutions/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.OperationsManagement/solutions/.parameters/min.parameters.json rename to modules/Microsoft.OperationsManagement/solutions/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.OperationsManagement/solutions/.parameters/ms.parameters.json b/modules/Microsoft.OperationsManagement/solutions/.deploymentTests/ms.parameters.json similarity index 100% rename from modules/Microsoft.OperationsManagement/solutions/.parameters/ms.parameters.json rename to modules/Microsoft.OperationsManagement/solutions/.deploymentTests/ms.parameters.json diff --git a/modules/Microsoft.OperationsManagement/solutions/.parameters/nonms.parameters.json b/modules/Microsoft.OperationsManagement/solutions/.deploymentTests/nonms.parameters.json similarity index 100% rename from modules/Microsoft.OperationsManagement/solutions/.parameters/nonms.parameters.json rename to modules/Microsoft.OperationsManagement/solutions/.deploymentTests/nonms.parameters.json diff --git a/modules/Microsoft.RecoveryServices/vaults/.parameters/dr.parameters.json b/modules/Microsoft.RecoveryServices/vaults/.deploymentTests/dr.parameters.json similarity index 100% rename from modules/Microsoft.RecoveryServices/vaults/.parameters/dr.parameters.json rename to modules/Microsoft.RecoveryServices/vaults/.deploymentTests/dr.parameters.json diff --git a/modules/Microsoft.RecoveryServices/vaults/.parameters/min.parameters.json b/modules/Microsoft.RecoveryServices/vaults/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.RecoveryServices/vaults/.parameters/min.parameters.json rename to modules/Microsoft.RecoveryServices/vaults/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json b/modules/Microsoft.RecoveryServices/vaults/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json rename to modules/Microsoft.RecoveryServices/vaults/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Resources/deploymentScripts/.parameters/cli.parameters.json b/modules/Microsoft.Resources/deploymentScripts/.deploymentTests/cli.parameters.json similarity index 100% rename from modules/Microsoft.Resources/deploymentScripts/.parameters/cli.parameters.json rename to modules/Microsoft.Resources/deploymentScripts/.deploymentTests/cli.parameters.json diff --git a/modules/Microsoft.Resources/deploymentScripts/.parameters/ps.parameters.json b/modules/Microsoft.Resources/deploymentScripts/.deploymentTests/ps.parameters.json similarity index 100% rename from modules/Microsoft.Resources/deploymentScripts/.parameters/ps.parameters.json rename to modules/Microsoft.Resources/deploymentScripts/.deploymentTests/ps.parameters.json diff --git a/modules/Microsoft.Resources/resourceGroups/.parameters/parameters.json b/modules/Microsoft.Resources/resourceGroups/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Resources/resourceGroups/.parameters/parameters.json rename to modules/Microsoft.Resources/resourceGroups/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Resources/tags/.parameters/min.parameters.json b/modules/Microsoft.Resources/tags/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.Resources/tags/.parameters/min.parameters.json rename to modules/Microsoft.Resources/tags/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.Resources/tags/.parameters/rg.parameters.json b/modules/Microsoft.Resources/tags/.deploymentTests/rg.parameters.json similarity index 100% rename from modules/Microsoft.Resources/tags/.parameters/rg.parameters.json rename to modules/Microsoft.Resources/tags/.deploymentTests/rg.parameters.json diff --git a/modules/Microsoft.Resources/tags/.parameters/sub.parameters.json b/modules/Microsoft.Resources/tags/.deploymentTests/sub.parameters.json similarity index 100% rename from modules/Microsoft.Resources/tags/.parameters/sub.parameters.json rename to modules/Microsoft.Resources/tags/.deploymentTests/sub.parameters.json diff --git a/modules/Microsoft.Security/azureSecurityCenter/.parameters/parameters.json b/modules/Microsoft.Security/azureSecurityCenter/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Security/azureSecurityCenter/.parameters/parameters.json rename to modules/Microsoft.Security/azureSecurityCenter/.deploymentTests/parameters.json diff --git a/modules/Microsoft.ServiceBus/namespaces/.parameters/min.parameters.json b/modules/Microsoft.ServiceBus/namespaces/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.ServiceBus/namespaces/.parameters/min.parameters.json rename to modules/Microsoft.ServiceBus/namespaces/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.ServiceBus/namespaces/.parameters/parameters.json b/modules/Microsoft.ServiceBus/namespaces/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.ServiceBus/namespaces/.parameters/parameters.json rename to modules/Microsoft.ServiceBus/namespaces/.deploymentTests/parameters.json diff --git a/modules/Microsoft.ServiceFabric/clusters/.parameters/cert.parameters.json b/modules/Microsoft.ServiceFabric/clusters/.deploymentTests/cert.parameters.json similarity index 100% rename from modules/Microsoft.ServiceFabric/clusters/.parameters/cert.parameters.json rename to modules/Microsoft.ServiceFabric/clusters/.deploymentTests/cert.parameters.json diff --git a/modules/Microsoft.ServiceFabric/clusters/.parameters/full.parameters.json b/modules/Microsoft.ServiceFabric/clusters/.deploymentTests/full.parameters.json similarity index 100% rename from modules/Microsoft.ServiceFabric/clusters/.parameters/full.parameters.json rename to modules/Microsoft.ServiceFabric/clusters/.deploymentTests/full.parameters.json diff --git a/modules/Microsoft.ServiceFabric/clusters/.parameters/min.parameters.json b/modules/Microsoft.ServiceFabric/clusters/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.ServiceFabric/clusters/.parameters/min.parameters.json rename to modules/Microsoft.ServiceFabric/clusters/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.Sql/managedInstances/.parameters/parameters.json b/modules/Microsoft.Sql/managedInstances/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Sql/managedInstances/.parameters/parameters.json rename to modules/Microsoft.Sql/managedInstances/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Sql/servers/.parameters/admin.parameters.json b/modules/Microsoft.Sql/servers/.deploymentTests/admin.parameters.json similarity index 100% rename from modules/Microsoft.Sql/servers/.parameters/admin.parameters.json rename to modules/Microsoft.Sql/servers/.deploymentTests/admin.parameters.json diff --git a/modules/Microsoft.Sql/servers/.parameters/parameters.json b/modules/Microsoft.Sql/servers/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Sql/servers/.parameters/parameters.json rename to modules/Microsoft.Sql/servers/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Storage/storageAccounts/.parameters/encr.parameters.json b/modules/Microsoft.Storage/storageAccounts/.deploymentTests/encr.parameters.json similarity index 100% rename from modules/Microsoft.Storage/storageAccounts/.parameters/encr.parameters.json rename to modules/Microsoft.Storage/storageAccounts/.deploymentTests/encr.parameters.json diff --git a/modules/Microsoft.Storage/storageAccounts/.parameters/min.parameters.json b/modules/Microsoft.Storage/storageAccounts/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.Storage/storageAccounts/.parameters/min.parameters.json rename to modules/Microsoft.Storage/storageAccounts/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.Storage/storageAccounts/.parameters/nfs.parameters.json b/modules/Microsoft.Storage/storageAccounts/.deploymentTests/nfs.parameters.json similarity index 100% rename from modules/Microsoft.Storage/storageAccounts/.parameters/nfs.parameters.json rename to modules/Microsoft.Storage/storageAccounts/.deploymentTests/nfs.parameters.json diff --git a/modules/Microsoft.Storage/storageAccounts/.parameters/parameters.json b/modules/Microsoft.Storage/storageAccounts/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Storage/storageAccounts/.parameters/parameters.json rename to modules/Microsoft.Storage/storageAccounts/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Storage/storageAccounts/.parameters/v1.parameters.json b/modules/Microsoft.Storage/storageAccounts/.deploymentTests/v1.parameters.json similarity index 100% rename from modules/Microsoft.Storage/storageAccounts/.parameters/v1.parameters.json rename to modules/Microsoft.Storage/storageAccounts/.deploymentTests/v1.parameters.json diff --git a/modules/Microsoft.Synapse/privateLinkHubs/.parameters/min.parameters.json b/modules/Microsoft.Synapse/privateLinkHubs/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.Synapse/privateLinkHubs/.parameters/min.parameters.json rename to modules/Microsoft.Synapse/privateLinkHubs/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.Synapse/privateLinkHubs/.parameters/parameters.json b/modules/Microsoft.Synapse/privateLinkHubs/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Synapse/privateLinkHubs/.parameters/parameters.json rename to modules/Microsoft.Synapse/privateLinkHubs/.deploymentTests/parameters.json diff --git a/modules/Microsoft.VirtualMachineImages/imageTemplates/.parameters/parameters.json b/modules/Microsoft.VirtualMachineImages/imageTemplates/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.VirtualMachineImages/imageTemplates/.parameters/parameters.json rename to modules/Microsoft.VirtualMachineImages/imageTemplates/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Web/connections/.parameters/parameters.json b/modules/Microsoft.Web/connections/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Web/connections/.parameters/parameters.json rename to modules/Microsoft.Web/connections/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Web/hostingEnvironments/.parameters/asev2.parameters.json b/modules/Microsoft.Web/hostingEnvironments/.deploymentTests/asev2.parameters.json similarity index 100% rename from modules/Microsoft.Web/hostingEnvironments/.parameters/asev2.parameters.json rename to modules/Microsoft.Web/hostingEnvironments/.deploymentTests/asev2.parameters.json diff --git a/modules/Microsoft.Web/hostingEnvironments/.parameters/asev3.parameters.json b/modules/Microsoft.Web/hostingEnvironments/.deploymentTests/asev3.parameters.json similarity index 100% rename from modules/Microsoft.Web/hostingEnvironments/.parameters/asev3.parameters.json rename to modules/Microsoft.Web/hostingEnvironments/.deploymentTests/asev3.parameters.json diff --git a/modules/Microsoft.Web/serverfarms/.parameters/parameters.json b/modules/Microsoft.Web/serverfarms/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Web/serverfarms/.parameters/parameters.json rename to modules/Microsoft.Web/serverfarms/.deploymentTests/parameters.json diff --git a/modules/Microsoft.Web/sites/.parameters/fa.min.parameters.json b/modules/Microsoft.Web/sites/.deploymentTests/fa.min.parameters.json similarity index 100% rename from modules/Microsoft.Web/sites/.parameters/fa.min.parameters.json rename to modules/Microsoft.Web/sites/.deploymentTests/fa.min.parameters.json diff --git a/modules/Microsoft.Web/sites/.parameters/fa.parameters.json b/modules/Microsoft.Web/sites/.deploymentTests/fa.parameters.json similarity index 100% rename from modules/Microsoft.Web/sites/.parameters/fa.parameters.json rename to modules/Microsoft.Web/sites/.deploymentTests/fa.parameters.json diff --git a/modules/Microsoft.Web/sites/.parameters/wa.min.parameters.json b/modules/Microsoft.Web/sites/.deploymentTests/wa.min.parameters.json similarity index 100% rename from modules/Microsoft.Web/sites/.parameters/wa.min.parameters.json rename to modules/Microsoft.Web/sites/.deploymentTests/wa.min.parameters.json diff --git a/modules/Microsoft.Web/sites/.parameters/wa.parameters.json b/modules/Microsoft.Web/sites/.deploymentTests/wa.parameters.json similarity index 100% rename from modules/Microsoft.Web/sites/.parameters/wa.parameters.json rename to modules/Microsoft.Web/sites/.deploymentTests/wa.parameters.json diff --git a/modules/Microsoft.Web/staticSites/.parameters/min.parameters.json b/modules/Microsoft.Web/staticSites/.deploymentTests/min.parameters.json similarity index 100% rename from modules/Microsoft.Web/staticSites/.parameters/min.parameters.json rename to modules/Microsoft.Web/staticSites/.deploymentTests/min.parameters.json diff --git a/modules/Microsoft.Web/staticSites/.parameters/parameters.json b/modules/Microsoft.Web/staticSites/.deploymentTests/parameters.json similarity index 100% rename from modules/Microsoft.Web/staticSites/.parameters/parameters.json rename to modules/Microsoft.Web/staticSites/.deploymentTests/parameters.json diff --git a/utilities/pipelines/resourceDeployment/New-TemplateDeployment.ps1 b/utilities/pipelines/resourceDeployment/New-TemplateDeployment.ps1 index c5fdb5244e..4aac14ad91 100644 --- a/utilities/pipelines/resourceDeployment/New-TemplateDeployment.ps1 +++ b/utilities/pipelines/resourceDeployment/New-TemplateDeployment.ps1 @@ -102,7 +102,7 @@ Optional. Maximum retry limit if the deployment fails. Default is 3. Optional. Do not throw an exception if it failed. Still returns the error message though .EXAMPLE -New-DeploymentWithParameterFile -templateFilePath 'C:/KeyVault/deploy.json' -parameterFilePath 'C:/KeyVault/.parameters/parameters.json' -location 'WestEurope' -resourceGroupName 'aLegendaryRg' +New-DeploymentWithParameterFile -templateFilePath 'C:/KeyVault/deploy.json' -parameterFilePath 'C:/KeyVault/.deploymentTests/parameters.json' -location 'WestEurope' -resourceGroupName 'aLegendaryRg' Deploy the deploy.json of the KeyVault module with the parameter file 'parameters.json' using the resource group 'aLegendaryRg' in location 'WestEurope' @@ -341,7 +341,7 @@ Optional. Maximum retry limit if the deployment fails. Default is 3. Optional. Do not throw an exception if it failed. Still returns the error message though .EXAMPLE -New-TemplateDeployment -templateFilePath 'C:/KeyVault/deploy.bicep' -parameterFilePath 'C:/KeyVault/.parameters/parameters.json' -location 'WestEurope' -resourceGroupName 'aLegendaryRg' +New-TemplateDeployment -templateFilePath 'C:/KeyVault/deploy.bicep' -parameterFilePath 'C:/KeyVault/.deploymentTests/parameters.json' -location 'WestEurope' -resourceGroupName 'aLegendaryRg' Deploy the deploy.bicep of the KeyVault module with the parameter file 'parameters.json' using the resource group 'aLegendaryRg' in location 'WestEurope' @@ -351,7 +351,7 @@ New-TemplateDeployment -templateFilePath 'C:/ResourceGroup/deploy.bicep' -locati Deploy the deploy.json of the ResourceGroup module in location 'WestEurope' .EXAMPLE -New-TemplateDeployment -templateFilePath 'C:/ResourceGroup/deploy.json' -parameterFilePath 'C:/ResourceGroup/.parameters/parameters.json' -location 'WestEurope' +New-TemplateDeployment -templateFilePath 'C:/ResourceGroup/deploy.json' -parameterFilePath 'C:/ResourceGroup/.deploymentTests/parameters.json' -location 'WestEurope' Deploy the deploy.json of the ResourceGroup module with the parameter file 'parameters.json' in location 'WestEurope' #> diff --git a/utilities/pipelines/resourceDeployment/Test-TemplateDeployment.ps1 b/utilities/pipelines/resourceDeployment/Test-TemplateDeployment.ps1 index 7ac7afeb97..ed5f56d23e 100644 --- a/utilities/pipelines/resourceDeployment/Test-TemplateDeployment.ps1 +++ b/utilities/pipelines/resourceDeployment/Test-TemplateDeployment.ps1 @@ -31,7 +31,7 @@ Optional. Name of the management group to deploy into. Mandatory if deploying in Optional. Additional parameters you can provide with the deployment. E.g. @{ resourceGroupName = 'myResourceGroup' } .EXAMPLE -Test-TemplateDeployment -templateFilePath 'C:/KeyVault/deploy.bicep' -parameterFilePath 'C:/KeyVault/.parameters/parameters.json' -location 'WestEurope' -resourceGroupName 'aLegendaryRg' +Test-TemplateDeployment -templateFilePath 'C:/KeyVault/deploy.bicep' -parameterFilePath 'C:/KeyVault/.deploymentTests/parameters.json' -location 'WestEurope' -resourceGroupName 'aLegendaryRg' Test the deploy.bicep of the KeyVault module with the parameter file 'parameters.json' using the resource group 'aLegendaryRg' in location 'WestEurope' @@ -41,7 +41,7 @@ Test-TemplateDeployment -templateFilePath 'C:/KeyVault/deploy.bicep' -location ' Test the deploy.bicep of the KeyVault module using the resource group 'aLegendaryRg' in location 'WestEurope' .EXAMPLE -Test-TemplateDeployment -templateFilePath 'C:/ResourceGroup/deploy.json' -parameterFilePath 'C:/ResourceGroup/.parameters/parameters.json' -location 'WestEurope' +Test-TemplateDeployment -templateFilePath 'C:/ResourceGroup/deploy.json' -parameterFilePath 'C:/ResourceGroup/.deploymentTests/parameters.json' -location 'WestEurope' Test the deploy.json of the ResourceGroup module with the parameter file 'parameters.json' in location 'WestEurope' #> From a2681ccf7a4d801781ec7fddcd0c5743aef014d1 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 27 Jun 2022 11:57:10 +0200 Subject: [PATCH 017/274] Further renames --- ...board module library and CI environment.md | 20 +++++++++---------- ... CI environment - Deployment validation.md | 2 +- docs/wiki/The library - Module design.md | 4 ++-- modules/.global/global.module.tests.ps1 | 18 ++++++++--------- .../Get-ModuleParameterFiles.ps1 | 2 +- utilities/tools/Set-ModuleReadMe.ps1 | 2 +- utilities/tools/Test-ModuleLocally.ps1 | 6 +++--- .../helper/Get-ModulesAsMarkdownTable.ps1 | 16 +++++++-------- 8 files changed, 35 insertions(+), 35 deletions(-) diff --git a/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md b/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md index 52a5377a93..4bfa507ab4 100644 --- a/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md +++ b/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md @@ -379,16 +379,16 @@ For this reason, make sure to update the references in the following modules onc | File | Parameter | Notes | | - | - | - | -| `modules\Microsoft.Compute\diskEncryptionSets\.parameters\parameters.json` |`keyUrl.value` | | -| `modules\Microsoft.Compute\virtualMachines\.parameters\linux.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | -| `modules\Microsoft.Compute\virtualMachines\.parameters\windows.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | -| `modules\Microsoft.Compute\virtualMachineScaleSets\.parameters\linux.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | -| `modules\Microsoft.Compute\virtualMachineScaleSets\.parameters\windows.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | -| `modules\Microsoft.Sql\managedInstances\.parameters\parameters.json` | `keys.value.uri` | | -| `modules\Microsoft.Network\applicationGateways\.parameters\parameters.json` | `sslCertificates.value.properties.keyVaultSecretId` | | -| `modules\Microsoft.Web\sites\.parameters\fa.parameters.json` | `appSettingsKeyValuePairs.value.EASYAUTH_SECRET` | Key Vault secret URI without version | -| `modules\Microsoft.Web\sites\.parameters\fa.parameters.json` | `authSettingV2Configuration.value.identityProviders.azureActiveDirectory.registration.clientId` | App ID from the Azure Active Directory App | -| `modules\Microsoft.Web\sites\.parameters\fa.parameters.json` | `authSettingV2Configuration.value.identityProviders.azureActiveDirectory.validation.allowedAudiences` | API endpoint from the Azure Active Directory app | +| `modules\Microsoft.Compute\diskEncryptionSets\.deploymentTests\parameters.json` |`keyUrl.value` | | +| `modules\Microsoft.Compute\virtualMachines\.deploymentTests\linux.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | +| `modules\Microsoft.Compute\virtualMachines\.deploymentTests\windows.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | +| `modules\Microsoft.Compute\virtualMachineScaleSets\.deploymentTests\linux.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | +| `modules\Microsoft.Compute\virtualMachineScaleSets\.deploymentTests\windows.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | +| `modules\Microsoft.Sql\managedInstances\.deploymentTests\parameters.json` | `keys.value.uri` | | +| `modules\Microsoft.Network\applicationGateways\.deploymentTests\parameters.json` | `sslCertificates.value.properties.keyVaultSecretId` | | +| `modules\Microsoft.Web\sites\.deploymentTests\fa.parameters.json` | `appSettingsKeyValuePairs.value.EASYAUTH_SECRET` | Key Vault secret URI without version | +| `modules\Microsoft.Web\sites\.deploymentTests\fa.parameters.json` | `authSettingV2Configuration.value.identityProviders.azureActiveDirectory.registration.clientId` | App ID from the Azure Active Directory App | +| `modules\Microsoft.Web\sites\.deploymentTests\fa.parameters.json` | `authSettingV2Configuration.value.identityProviders.azureActiveDirectory.validation.allowedAudiences` | API endpoint from the Azure Active Directory app | diff --git a/docs/wiki/The CI environment - Deployment validation.md b/docs/wiki/The CI environment - Deployment validation.md index 25d45a3e34..76daa109f7 100644 --- a/docs/wiki/The CI environment - Deployment validation.md +++ b/docs/wiki/The CI environment - Deployment validation.md @@ -21,7 +21,7 @@ The deployment validation phase can be divided into three steps, running in sequ # Template validation -The template validation step performs a dry-run with each parameter file in the module's `'.parameters'` folder +The template validation step performs a dry-run with each parameter file in the module's `'.deploymentTests'` folder In particular, the step runs a `Test-AzDeployment` cmdlet (_the command may vary based on the template schema_) for each provided module parameter file to verify if the template could be deployed using them. diff --git a/docs/wiki/The library - Module design.md b/docs/wiki/The library - Module design.md index 714282abff..2d9ade1b5e 100644 --- a/docs/wiki/The library - Module design.md +++ b/docs/wiki/The library - Module design.md @@ -109,7 +109,7 @@ Use the following naming standard for module files and folders: └─ ├─ .bicep | ├─ nested_extensionResource1.bicep - ├─ .parameters + ├─ .deploymentTests | └─ parameters.json ├─ deploy.bicep └─ readme.md @@ -121,7 +121,7 @@ Use the following naming standard for module files and folders: >└─ sites > ├─ .bicep > | └─ nested_roleAssignments.bicep - > ├─ .parameters + > ├─ .deploymentTests > | └─ parameters.json > ├─ deploy.bicep > └─ readme.md diff --git a/modules/.global/global.module.tests.ps1 b/modules/.global/global.module.tests.ps1 index 389efe3eb4..bc962c4e48 100644 --- a/modules/.global/global.module.tests.ps1 +++ b/modules/.global/global.module.tests.ps1 @@ -89,10 +89,10 @@ Describe 'File/folder tests' -Tag Modules { (Test-Path (Join-Path -Path $moduleFolderPath 'readme.md')) | Should -Be $true } - It '[] Module should contain a [.parameters] folder' -TestCases ($moduleFolderTestCases | Where-Object { $_.isTopLevelModule }) { + It '[] Module should contain a [.deploymentTests] folder' -TestCases ($moduleFolderTestCases | Where-Object { $_.isTopLevelModule }) { param( [string] $moduleFolderPath ) - Test-Path (Join-Path -Path $moduleFolderPath '.parameters') | Should -Be $true + Test-Path (Join-Path -Path $moduleFolderPath '.deploymentTests') | Should -Be $true } It '[] Module should contain a [version.json] file' -TestCases $moduleFolderTestCases { @@ -106,7 +106,7 @@ Describe 'File/folder tests' -Tag Modules { $folderTestCases = [System.Collections.ArrayList]@() foreach ($moduleFolderPath in $moduleFolderPaths) { - if (Test-Path (Join-Path $moduleFolderPath '.parameters')) { + if (Test-Path (Join-Path $moduleFolderPath '.deploymentTests')) { $folderTestCases += @{ moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1] moduleFolderPath = $moduleFolderPath @@ -120,13 +120,13 @@ Describe 'File/folder tests' -Tag Modules { [string] $moduleFolderName, $moduleFolderPath ) - $parameterFolderPath = Join-Path $moduleFolderPath '.parameters' + $parameterFolderPath = Join-Path $moduleFolderPath '.deploymentTests' (Get-ChildItem $parameterFolderPath -Filter '*parameters.json' -Force).Count | Should -BeGreaterThan 0 } $parameterFolderFilesTestCases = [System.Collections.ArrayList] @() foreach ($moduleFolderPath in $moduleFolderPaths) { - $parameterFolderPath = Join-Path $moduleFolderPath '.parameters' + $parameterFolderPath = Join-Path $moduleFolderPath '.deploymentTests' if (Test-Path $parameterFolderPath) { foreach ($parameterFile in (Get-ChildItem $parameterFolderPath -Filter '*parameters.json' -Force)) { $parameterFolderFilesTestCases += @{ @@ -505,8 +505,8 @@ Describe 'Deployment template tests' -Tag Template { $TemplateFile_AllParameterNames = $templateFile_Parameters.Keys | Sort-Object $TemplateFile_RequiredParametersNames = ($templateFile_Parameters.Keys | Where-Object { -not $templateFile_Parameters[$_].ContainsKey('defaultValue') }) | Sort-Object - if (Test-Path (Join-Path $moduleFolderPath '.parameters')) { - $ParameterFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.parameters' -AdditionalChildPath '*parameters.json') -Recurse -Force).FullName + if (Test-Path (Join-Path $moduleFolderPath '.deploymentTests')) { + $ParameterFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.deploymentTests' -AdditionalChildPath '*parameters.json') -Recurse -Force).FullName foreach ($ParameterFilePath in $ParameterFilePaths) { $parameterFile_AllParameterNames = ((Get-Content $ParameterFilePath) | ConvertFrom-Json -AsHashtable).parameters.Keys | Sort-Object $parameterFileTestCases += @{ @@ -917,8 +917,8 @@ Describe 'Deployment template tests' -Tag Template { $parameterFileTokenTestCases = @() foreach ($moduleFolderPath in $moduleFolderPaths) { - if (Test-Path (Join-Path $moduleFolderPath '.parameters')) { - $ParameterFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.parameters' -AdditionalChildPath '*parameters.json') -Recurse -Force).FullName + if (Test-Path (Join-Path $moduleFolderPath '.deploymentTests')) { + $ParameterFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.deploymentTests' -AdditionalChildPath '*parameters.json') -Recurse -Force).FullName foreach ($ParameterFilePath in $ParameterFilePaths) { foreach ($token in $enforcedTokenList.Keys) { $parameterFileTokenTestCases += @{ diff --git a/utilities/pipelines/sharedScripts/Get-ModuleParameterFiles.ps1 b/utilities/pipelines/sharedScripts/Get-ModuleParameterFiles.ps1 index b13d619e7b..79ffb5ca87 100644 --- a/utilities/pipelines/sharedScripts/Get-ModuleParameterFiles.ps1 +++ b/utilities/pipelines/sharedScripts/Get-ModuleParameterFiles.ps1 @@ -25,7 +25,7 @@ function Get-ModuleParameterFiles { # Note: Should be 'recurse', but is not working with powershell 7.2.1 on GitHub hosted agents but needs 7.2.2 # $parameterFilePaths = (Get-ChildItem -Recurse -Path $ModulePath -Filter '*parameters.json' -File).FullName - $parameterFilePaths = (Get-ChildItem -Path "$ModulePath/.parameters" -Filter '*parameters.json' -File).FullName + $parameterFilePaths = (Get-ChildItem -Path "$ModulePath/.deploymentTests" -Filter '*parameters.json' -File).FullName if (-not $parameterFilePaths) { throw "No parameter files found for module [$ModulePath]" diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index cb564db51a..5b48b09872 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -351,7 +351,7 @@ function Set-DeploymentExamplesSection { $moduleRoot = Split-Path $TemplateFilePath -Parent $resourceTypeIdentifier = $moduleRoot.Replace('\', '/').Split('/modules/')[1].TrimStart('/') - $parameterFiles = Get-ChildItem (Join-Path $moduleRoot '.parameters') -Filter '*parameters.json' -Recurse + $parameterFiles = Get-ChildItem (Join-Path $moduleRoot '.deploymentTests') -Filter '*parameters.json' -Recurse $index = 1 foreach ($parameterFilePath in $parameterFiles.FullName) { diff --git a/utilities/tools/Test-ModuleLocally.ps1 b/utilities/tools/Test-ModuleLocally.ps1 index 081762ab77..92fe992e96 100644 --- a/utilities/tools/Test-ModuleLocally.ps1 +++ b/utilities/tools/Test-ModuleLocally.ps1 @@ -35,7 +35,7 @@ Optional. A hashtable parameter that contains custom tokens to be replaced in th $TestModuleLocallyInput = @{ TemplateFilePath = 'C:\Microsoft.Network\routeTables\deploy.bicep' - ParameterFilePath = 'C:\Microsoft.Network\routeTables\.parameters\parameters.json' + ParameterFilePath = 'C:\Microsoft.Network\routeTables\.deploymentTests\parameters.json' PesterTest = $false DeploymentTest = $false ValidationTest = $true @@ -115,7 +115,7 @@ function Test-ModuleLocally { [string] $TemplateFilePath, [Parameter(Mandatory = $false)] - [string] $parameterFilePath = (Join-Path (Split-Path $TemplateFilePath -Parent) '.parameters'), + [string] $parameterFilePath = (Join-Path (Split-Path $TemplateFilePath -Parent) '.deploymentTests'), [Parameter(Mandatory = $false)] [Psobject] $ValidateOrDeployParameters = @{}, @@ -166,7 +166,7 @@ function Test-ModuleLocally { Invoke-Pester -Configuration @{ Run = @{ - Container = New-PesterContainer -Path (Join-Path (Get-Item $PSScriptRoot).Parent.Parent 'modules/.global/global.module.tests.ps1') -Data @{ + Container = New-PesterContainer -Path (Join-Path (Get-Item $PSScriptRoot).Parent.Parent 'araobal/global.module.tests.ps1') -Data @{ moduleFolderPaths = Split-Path $TemplateFilePath -Parent enforcedTokenList = $enforcedTokenList } diff --git a/utilities/tools/helper/Get-ModulesAsMarkdownTable.ps1 b/utilities/tools/helper/Get-ModulesAsMarkdownTable.ps1 index fb41024aaf..eedb1c4fa6 100644 --- a/utilities/tools/helper/Get-ModulesAsMarkdownTable.ps1 +++ b/utilities/tools/helper/Get-ModulesAsMarkdownTable.ps1 @@ -214,8 +214,8 @@ Check for the existens of any nested module levels .DESCRIPTION Check for the existens of any nested module levels. -A module is identified by folders that do not contain module-specific folders such as '.parameters'. -In other words, a module would contain a folder with e.g. a '.parameters' folder and would hence not count towards the hierarchy of parent folders. +A module is identified by folders that do not contain module-specific folders such as '.deploymentTests'. +In other words, a module would contain a folder with e.g. a '.deploymentTests' folder and would hence not count towards the hierarchy of parent folders. .PARAMETER path Mandatory. The path to search in. @@ -234,10 +234,10 @@ function Measure-FolderHasNestedModule { [string] $Path ) - # Get all folder paths that exist in the given path as long as they are not '.bicep' or '.parameters' folders + # Get all folder paths that exist in the given path as long as they are not '.bicep' or '.deploymentTests' folders # This works as long as the folder structure is consistent (e.g. no empty folders are created etc.) - $rawFoundFolders = Get-ChildItem $Path -Directory -Recurse -Exclude @('.bicep', '.parameters') -Force - $foundFolders = $rawFoundFolders | Where-Object { (Get-ChildItem $_.FullName -Directory -Depth 0 -Include '.parameters' -Force).count -gt 0 } + $rawFoundFolders = Get-ChildItem $Path -Directory -Recurse -Exclude @('.bicep', '.deploymentTests') -Force + $foundFolders = $rawFoundFolders | Where-Object { (Get-ChildItem $_.FullName -Directory -Depth 0 -Include '.deploymentTests' -Force).count -gt 0 } if ($foundFolders) { return $true } else { @@ -323,9 +323,9 @@ function Get-ResolvedSubServiceRow { [string]$ProjectName = '' ) - $rawSubFolders = Get-ChildItem -Path $subPath -Directory -Recurse -Exclude @('.bicep', '.parameters') -Force + $rawSubFolders = Get-ChildItem -Path $subPath -Directory -Recurse -Exclude @('.bicep', '.deploymentTests') -Force # Only consider those folders that have their own parameters, i.e. are top-level modules and not child-resource modules - $subFolders = $rawSubFolders | Where-Object { (Get-ChildItem $_.FullName -Directory -Depth 0 -Include '.parameters' -Force).count -gt 0 } + $subFolders = $rawSubFolders | Where-Object { (Get-ChildItem $_.FullName -Directory -Depth 0 -Include '.deploymentTests' -Force).count -gt 0 } foreach ($subfolder in $subFolders.FullName) { @@ -517,7 +517,7 @@ function Get-ModulesAsMarkdownTable { foreach ($topLevelFolder in $topLevelFolders) { $provider = Split-Path $topLevelFolder -Leaf - $containedFolders = Get-ChildItem -Path $topLevelFolder -Directory -Recurse -Exclude @('.bicep', '.parameters') -Depth 0 -Force + $containedFolders = Get-ChildItem -Path $topLevelFolder -Directory -Recurse -Exclude @('.bicep', '.deploymentTests') -Depth 0 -Force foreach ($containedFolder in $containedFolders.FullName) { $containedFolderName = (Split-Path $containedFolder -Leaf) From aa43dfad245fe93c166d12e84e5e0be83816bf16 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 27 Jun 2022 12:05:19 +0200 Subject: [PATCH 018/274] Updated parameter fetch function --- .../templates/getParameterFiles/action.yml | 4 +- .../Get-DeploymentTestFileList.ps1 | 42 +++++++++++++++++++ .../Get-ModuleParameterFiles.ps1 | 42 ------------------- 3 files changed, 44 insertions(+), 44 deletions(-) create mode 100644 utilities/pipelines/sharedScripts/Get-DeploymentTestFileList.ps1 delete mode 100644 utilities/pipelines/sharedScripts/Get-ModuleParameterFiles.ps1 diff --git a/.github/actions/templates/getParameterFiles/action.yml b/.github/actions/templates/getParameterFiles/action.yml index cde9b10525..1bcb50e607 100644 --- a/.github/actions/templates/getParameterFiles/action.yml +++ b/.github/actions/templates/getParameterFiles/action.yml @@ -21,14 +21,14 @@ runs: # Grouping task logs Write-Output "::group::Get parameter files" # Load used functions - . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'sharedScripts' 'Get-ModuleParameterFiles.ps1') + . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'sharedScripts' 'Get-DeploymentTestFileList.ps1') $functionInput = @{ ModulePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.modulePath }}' } Write-Verbose "Invoke task with" -Verbose Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose # Get the list of parameter file paths - $parameterFilePaths = Get-ModuleParameterFiles @functionInput -Verbose + $parameterFilePaths = Get-DeploymentTestFileList @functionInput -Verbose # Output values to be accessed by next jobs $compressedOutput = $parameterFilePaths | ConvertTo-Json -Compress if($compressedOutput -notmatch "\[.*\]") { diff --git a/utilities/pipelines/sharedScripts/Get-DeploymentTestFileList.ps1 b/utilities/pipelines/sharedScripts/Get-DeploymentTestFileList.ps1 new file mode 100644 index 0000000000..426d5efd81 --- /dev/null +++ b/utilities/pipelines/sharedScripts/Get-DeploymentTestFileList.ps1 @@ -0,0 +1,42 @@ +<# +.SYNOPSIS +Get the relative file paths of all parameter files in the given module. + +.DESCRIPTION +Get the relative file paths of all parameter files in the given module. +The relative path is returned instead of the full one to make paths easier to read in the pipeline. + +.PARAMETER ModulePath +Mandatory. The module path to search in. + +.EXAMPLE +Get-DeploymentTestFileList -ModulePath 'C:\ResourceModules\arm\Microsoft.Compute\virtualMachines' + +Returns the relative file paths of all parameter files of the virtual machines module. +#> +function Get-DeploymentTestFileList { + + [CmdletBinding()] + param ( + [Parameter(Mandatory)] + [string] $ModulePath + ) + + $deploymentTests = @() + if (Test-Path (Join-Path $ModulePath '.deploymentTests')) { + $deploymentTests += (Get-ChildItem -Path (Join-Path $ModulePath '.deploymentTests') -Depth 0 -Include ('*.json', '*.bicep') -File).FullName + } + + if (-not $deploymentTests) { + throw "No deployment test files found for module [$ModulePath]" + } + + $deploymentTests = $deploymentTests | ForEach-Object { + $_.Replace($ModulePath, '').Trim('\').Trim('/') + } + + Write-Verbose 'Found parameter files' + $deploymentTests | ForEach-Object { Write-Verbose "- $_" } + + return $deploymentTests +} diff --git a/utilities/pipelines/sharedScripts/Get-ModuleParameterFiles.ps1 b/utilities/pipelines/sharedScripts/Get-ModuleParameterFiles.ps1 deleted file mode 100644 index 79ffb5ca87..0000000000 --- a/utilities/pipelines/sharedScripts/Get-ModuleParameterFiles.ps1 +++ /dev/null @@ -1,42 +0,0 @@ -<# -.SYNOPSIS -Get the relative file paths of all parameter files in the given module. - -.DESCRIPTION -Get the relative file paths of all parameter files in the given module. -The relative path is returned instead of the full one to make paths easier to read in the pipeline. - -.PARAMETER ModulePath -Mandatory. The module path to search in. - -.EXAMPLE -Get-ModuleParameterFiles -ModulePath 'C:\ResourceModules\modules\Microsoft.Compute\virtualMachines' - -Returns the relative file paths of all parameter files of the virtual machines module. -#> -function Get-ModuleParameterFiles { - - [CmdletBinding()] - param ( - [Parameter(Mandatory)] - [string] $ModulePath - ) - - # Note: Should be 'recurse', but is not working with powershell 7.2.1 on GitHub hosted agents but needs 7.2.2 - # $parameterFilePaths = (Get-ChildItem -Recurse -Path $ModulePath -Filter '*parameters.json' -File).FullName - - $parameterFilePaths = (Get-ChildItem -Path "$ModulePath/.deploymentTests" -Filter '*parameters.json' -File).FullName - - if (-not $parameterFilePaths) { - throw "No parameter files found for module [$ModulePath]" - } - - $parameterFilePaths = $parameterFilePaths | ForEach-Object { - $_.Replace($ModulePath, '').Trim('\').Trim('/') - } - - Write-Verbose 'Found parameter files' - $parameterFilePaths | ForEach-Object { Write-Verbose "- $_" } - - return $parameterFilePaths -} From 58cddcdce15e2819db849dc360c102e309312f63 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 27 Jun 2022 12:05:48 +0200 Subject: [PATCH 019/274] Updated docs --- docs/wiki/The library - Module design.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/wiki/The library - Module design.md b/docs/wiki/The library - Module design.md index 2d9ade1b5e..0f5358a739 100644 --- a/docs/wiki/The library - Module design.md +++ b/docs/wiki/The library - Module design.md @@ -60,7 +60,7 @@ They can be deployed in different configurations just by changing the input para A **CARML module** consists of - The Bicep template deployment file (`deploy.bicep`). -- One or multiple template parameters files (`*parameters.json`) that will be used for testing, located in the `.parameters` subfolder. +- One or multiple template parameters files (`*parameters.json`) that will be used for testing, located in the `.deploymentTests` subfolder. - A `readme.md` file which describes the module itself. A module usually represents a single resource or a set of closely related resources. For example, a storage account and the associated lock or virtual machine and network interfaces. Modules are located in the `modules` folder. From c8d442380cfbcdea2a0264d9ffc19ed753ab5d53 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 27 Jun 2022 12:07:05 +0200 Subject: [PATCH 020/274] Further rename --- modules/.global/global.module.tests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/.global/global.module.tests.ps1 b/modules/.global/global.module.tests.ps1 index bc962c4e48..11507d46ca 100644 --- a/modules/.global/global.module.tests.ps1 +++ b/modules/.global/global.module.tests.ps1 @@ -102,7 +102,7 @@ Describe 'File/folder tests' -Tag Modules { } } - Context '.parameters folder' { + Context '.deploymentTests folder' { $folderTestCases = [System.Collections.ArrayList]@() foreach ($moduleFolderPath in $moduleFolderPaths) { From 1c80d109088bfef78d50f0746846bd0d1a66d179 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Tue, 28 Jun 2022 09:45:53 +0200 Subject: [PATCH 021/274] Resolved conflicts --- .../validateModuleDeployment/action.yml | 26 ++++++++----------- README.md | 4 --- ...board module library and CI environment.md | 14 ---------- utilities/tools/Test-ModuleLocally.ps1 | 4 --- 4 files changed, 11 insertions(+), 37 deletions(-) diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 528d87f957..8f19453838 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -11,22 +11,18 @@ ## ACTION PARAMETERS ## ##-------------------------------------------## ## -## |================================================================================================================================================================================| -## | Parameter | Required | Default | Description | Example | -## |---------------------------|----------|---------|-------------------------------------------------------|-----------------------------------------------------------------------| -## | templateFilePath | true | '' | The path to the template file to use for deployment | 'modules/Microsoft.ApiManagement/service/deploy.bicep' | -<<<<<<< HEAD +## |=====================================================================================================================================================================================| +## | Parameter | Required | Default | Description | Example | +## |---------------------------|----------|---------|-------------------------------------------------------|----------------------------------------------------------------------------| +## | templateFilePath | true | '' | The path to the template file to use for deployment | 'modules/Microsoft.ApiManagement/service/deploy.bicep' | ## | parameterFilePath | true | '' | The path to the parameter file to use for deployment | 'modules/Microsoft.ApiManagement/service/.deploymentTests/parameters.json' | -======= -## | parameterFilePath | true | '' | The path to the parameter file to use for deployment | 'modules/Microsoft.ApiManagement/service/.parameters/parameters.json' | ->>>>>>> main -## | location | true | '' | The location to use for deployment | 'WestEurope' | -## | resourceGroupName | false | '' | The resource group to deploy to | 'validation-rg' | -## | subscriptionId | false | '' | The subscriptionId to deploy to | '1a97b80a-4dda-4f50-ab53-349e29344654' | -## | managementGroupId | false | '' | The managementGroupId to deploy to | '1a97b80a-4dda-4f50-ab53-349e29344654' | -## | customParameterFileTokens | false | '' | Additional parameter file token pairs in json format. | '{"tokenName":"tokenValue"}' | -## | removeDeployment | false | 'true' | Set "true" to set module up for removal | 'true' | -## |================================================================================================================================================================================| +## | location | true | '' | The location to use for deployment | 'WestEurope' | +## | resourceGroupName | false | '' | The resource group to deploy to | 'validation-rg' | +## | subscriptionId | false | '' | The subscriptionId to deploy to | '1a97b80a-4dda-4f50-ab53-349e29344654' | +## | managementGroupId | false | '' | The managementGroupId to deploy to | '1a97b80a-4dda-4f50-ab53-349e29344654' | +## | customParameterFileTokens | false | '' | Additional parameter file token pairs in json format. | '{"tokenName":"tokenValue"}' | +## | removeDeployment | false | 'true' | Set "true" to set module up for removal | 'true' | +## |=====================================================================================================================================================================================| ## ######################################################### ## diff --git a/README.md b/README.md index e8eec4c07e..69b56395ad 100644 --- a/README.md +++ b/README.md @@ -65,11 +65,7 @@ The CI environment supports both ARM and Bicep and can be leveraged using GitHub | [Container Instances](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ContainerInstance/containerGroups) | [!['ContainerInstance: ContainerGroups'](https://github.com/Azure/ResourceModules/workflows/ContainerInstance:%20ContainerGroups/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.containerinstance.containergroups.yml) | | [Container Registries](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ContainerRegistry/registries) | [!['ContainerRegistry: Registries'](https://github.com/Azure/ResourceModules/workflows/ContainerRegistry:%20Registries/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.containerregistry.registries.yml) | | [Data Factories](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DataFactory/factories) | [!['DataFactory: Factories'](https://github.com/Azure/ResourceModules/workflows/DataFactory:%20Factories/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.datafactory.factories.yml) | -<<<<<<< HEAD -| [DataProtection BackupVaults](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DataProtection/backupVaults) | [![DataProtection: BackupVaults](https://github.com/Azure/ResourceModules/workflows/DataProtection:%20BackupVaults/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.dataprotection.backupvaults.yml) | -======= | [DataProtection BackupVaults](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DataProtection/backupVaults) | [!['DataProtection: BackupVaults'](https://github.com/Azure/ResourceModules/workflows/DataProtection:%20BackupVaults/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.dataprotection.backupvaults.yml) | ->>>>>>> main | [DDoS Protection Plans](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/ddosProtectionPlans) | [!['Network: DdosProtectionPlans'](https://github.com/Azure/ResourceModules/workflows/Network:%20DdosProtectionPlans/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.ddosprotectionplans.yml) | | [Deployment Scripts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Resources/deploymentScripts) | [!['Resources: DeploymentScripts'](https://github.com/Azure/ResourceModules/workflows/Resources:%20DeploymentScripts/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.resources.deploymentscripts.yml) | | [Disk Encryption Sets](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/diskEncryptionSets) | [!['Compute: DiskEncryptionSets'](https://github.com/Azure/ResourceModules/workflows/Compute:%20DiskEncryptionSets/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.compute.diskencryptionsets.yml) | diff --git a/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md b/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md index a268e2868c..d578072844 100644 --- a/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md +++ b/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md @@ -379,8 +379,6 @@ For this reason, make sure to update the references in the following modules onc | File | Parameter | Notes | | - | - | - | -<<<<<<< HEAD -| `modules\Microsoft.Compute\diskEncryptionSets\.deploymentTests\parameters.json` |`keyUrl.value` | | | `modules\Microsoft.Compute\virtualMachines\.deploymentTests\linux.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | | `modules\Microsoft.Compute\virtualMachines\.deploymentTests\windows.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | | `modules\Microsoft.Compute\virtualMachineScaleSets\.deploymentTests\linux.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | @@ -390,18 +388,6 @@ For this reason, make sure to update the references in the following modules onc | `modules\Microsoft.Web\sites\.deploymentTests\fa.parameters.json` | `appSettingsKeyValuePairs.value.EASYAUTH_SECRET` | Key Vault secret URI without version | | `modules\Microsoft.Web\sites\.deploymentTests\fa.parameters.json` | `authSettingV2Configuration.value.identityProviders.azureActiveDirectory.registration.clientId` | App ID from the Azure Active Directory App | | `modules\Microsoft.Web\sites\.deploymentTests\fa.parameters.json` | `authSettingV2Configuration.value.identityProviders.azureActiveDirectory.validation.allowedAudiences` | API endpoint from the Azure Active Directory app | -======= -| `modules\Microsoft.Compute\diskEncryptionSets\.parameters\parameters.json` |`keyUrl.value` | | -| `modules\Microsoft.Compute\virtualMachines\.parameters\linux.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | -| `modules\Microsoft.Compute\virtualMachines\.parameters\windows.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | -| `modules\Microsoft.Compute\virtualMachineScaleSets\.parameters\linux.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | -| `modules\Microsoft.Compute\virtualMachineScaleSets\.parameters\windows.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | -| `modules\Microsoft.Sql\managedInstances\.parameters\parameters.json` | `keys.value.uri` | | -| `modules\Microsoft.Network\applicationGateways\.parameters\parameters.json` | `sslCertificates.value.properties.keyVaultSecretId` | | -| `modules\Microsoft.Web\sites\.parameters\fa.parameters.json` | `appSettingsKeyValuePairs.value.EASYAUTH_SECRET` | Key Vault secret URI without version | -| `modules\Microsoft.Web\sites\.parameters\fa.parameters.json` | `authSettingV2Configuration.value.identityProviders.azureActiveDirectory.registration.clientId` | App ID from the Azure Active Directory App | -| `modules\Microsoft.Web\sites\.parameters\fa.parameters.json` | `authSettingV2Configuration.value.identityProviders.azureActiveDirectory.validation.allowedAudiences` | API endpoint from the Azure Active Directory app | ->>>>>>> main diff --git a/utilities/tools/Test-ModuleLocally.ps1 b/utilities/tools/Test-ModuleLocally.ps1 index 4f010b112c..aaa2461a04 100644 --- a/utilities/tools/Test-ModuleLocally.ps1 +++ b/utilities/tools/Test-ModuleLocally.ps1 @@ -166,11 +166,7 @@ function Test-ModuleLocally { Invoke-Pester -Configuration @{ Run = @{ -<<<<<<< HEAD - Container = New-PesterContainer -Path (Join-Path (Get-Item $PSScriptRoot).Parent.Parent 'araobal/global.module.tests.ps1') -Data @{ -======= Container = New-PesterContainer -Path (Join-Path (Get-Item $PSScriptRoot).Parent.Parent 'modules/.global/global.module.tests.ps1') -Data @{ ->>>>>>> main moduleFolderPaths = Split-Path $TemplateFilePath -Parent enforcedTokenList = $enforcedTokenList } From 7471ec4d4f2592f7c7db1921a7fe8eebaecbb272 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Tue, 28 Jun 2022 14:36:37 +0200 Subject: [PATCH 022/274] Resolved conflict --- utilities/tools/Set-ModuleReadMe.ps1 | 4 ---- 1 file changed, 4 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index 26c241328a..5b48b09872 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -351,11 +351,7 @@ function Set-DeploymentExamplesSection { $moduleRoot = Split-Path $TemplateFilePath -Parent $resourceTypeIdentifier = $moduleRoot.Replace('\', '/').Split('/modules/')[1].TrimStart('/') -<<<<<<< HEAD $parameterFiles = Get-ChildItem (Join-Path $moduleRoot '.deploymentTests') -Filter '*parameters.json' -Recurse -======= - $parameterFiles = Get-ChildItem (Join-Path $moduleRoot '.parameters') -Filter '*parameters.json' -Recurse ->>>>>>> main $index = 1 foreach ($parameterFilePath in $parameterFiles.FullName) { From 80c8d3c968fdec9ecba939f6c568202cccdea0d2 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Tue, 28 Jun 2022 14:43:23 +0200 Subject: [PATCH 023/274] Adjusted verbosity --- utilities/tools/Invoke-PipelinesForBranch.ps1 | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/utilities/tools/Invoke-PipelinesForBranch.ps1 b/utilities/tools/Invoke-PipelinesForBranch.ps1 index 143c017c68..09e2c5badd 100644 --- a/utilities/tools/Invoke-PipelinesForBranch.ps1 +++ b/utilities/tools/Invoke-PipelinesForBranch.ps1 @@ -51,7 +51,7 @@ function Invoke-GitHubWorkflow { . (Join-Path (Split-Path $PSScriptRoot -Parent) 'pipelines' 'sharedScripts' 'Get-GitHubWorkflowDefaultInput.ps1') $workflowFileName = Split-Path $WorkflowFilePath -Leaf - $workflowParameters = Get-GitHubWorkflowDefaultInput -workflowPath $WorkflowFilePath -Verbose + $workflowParameters = Get-GitHubWorkflowDefaultInput -workflowPath $WorkflowFilePath $removeDeploymentFlag = $workflowParameters.removeDeployment $requestInputObject = @{ @@ -69,7 +69,7 @@ function Invoke-GitHubWorkflow { } | ConvertTo-Json } if ($PSCmdlet.ShouldProcess("GitHub workflow [$workflowFileName] for branch [$TargetBranch]", 'Invoke')) { - $response = Invoke-RestMethod @requestInputObject + $response = Invoke-RestMethod @requestInputObject -Verbose:$false if ($response) { Write-Error "Request failed. Reponse: [$response]" @@ -257,8 +257,12 @@ function Invoke-PipelinesForBranch { $workflowFilePath = $workflow.path $WorkflowFileName = Split-Path $Workflow.path -Leaf - if ($PSCmdlet.ShouldProcess("GitHub workflow [$WorkflowFileName] for branch [$TargetBranch]", 'Invoke')) { - $null = Invoke-GitHubWorkflow @baseInputObject -TargetBranch $TargetBranch -WorkflowFilePath (Join-Path $RepositoryRoot $workflowFilePath) + if (Test-Path (Join-Path $RepositoryRoot $workflowFilePath)) { + if ($PSCmdlet.ShouldProcess("GitHub workflow [$WorkflowFileName] for branch [$TargetBranch]", 'Invoke')) { + $null = Invoke-GitHubWorkflow @baseInputObject -TargetBranch $TargetBranch -WorkflowFilePath (Join-Path $RepositoryRoot $workflowFilePath) + } + } else { + Write-Warning ('Warning: Workflow [{0}] is registered, but no workflow file in the target branch [{1}] available' -f (Join-Path $RepositoryRoot $workflowFilePath), $TargetBranch) -Verbose } # Generate pipeline badges From 3c373ced5fd09cff6c477c2a78ef6dffbcd877cc Mon Sep 17 00:00:00 2001 From: MrMCake Date: Tue, 28 Jun 2022 22:36:00 +0200 Subject: [PATCH 024/274] Renamed [.deploymentTests] to [.test] --- .../modulePipelines/ms.aad.domainservices.yml | 2 +- .../ms.analysisservices.servers.yml | 6 ++--- .../ms.apimanagement.service.yml | 6 ++--- ...s.appconfiguration.configurationstores.yml | 4 ++-- .../ms.authorization.locks.yml | 2 +- .../ms.authorization.policyassignments.yml | 12 +++++----- .../ms.authorization.policydefinitions.yml | 8 +++---- .../ms.authorization.policyexemptions.yml | 12 +++++----- .../ms.authorization.policysetdefinitions.yml | 8 +++---- .../ms.authorization.roleassignments.yml | 12 +++++----- .../ms.authorization.roledefinitions.yml | 12 +++++----- .../ms.automation.automationaccounts.yml | 6 ++--- .../ms.batch.batchaccounts.yml | 4 ++-- .../ms.cognitiveservices.accounts.yml | 8 +++---- .../ms.compute.availabilitysets.yml | 2 +- .../ms.compute.diskencryptionsets.yml | 2 +- .../modulePipelines/ms.compute.disks.yml | 8 +++---- .../modulePipelines/ms.compute.galleries.yml | 8 +++---- .../modulePipelines/ms.compute.images.yml | 2 +- .../ms.compute.proximityplacementgroups.yml | 2 +- .../ms.compute.virtualmachines.yml | 12 +++++----- .../ms.compute.virtualmachinescalesets.yml | 8 +++---- .../ms.consumption.budgets.yml | 2 +- .../ms.containerinstance.containergroups.yml | 2 +- .../ms.containerregistry.registries.yml | 6 ++--- .../ms.containerservice.managedclusters.yml | 4 ++-- .../ms.databricks.workspaces.yml | 2 +- .../ms.datafactory.factories.yml | 2 +- .../ms.dataprotection.backupvaults.yml | 4 ++-- ...esktopvirtualization.applicationgroups.yml | 4 ++-- .../ms.desktopvirtualization.hostpools.yml | 2 +- .../ms.desktopvirtualization.scalingplans.yml | 2 +- .../ms.desktopvirtualization.workspaces.yml | 2 +- .../ms.documentdb.databaseaccounts.yml | 6 ++--- .../ms.eventgrid.systemtopics.yml | 4 ++-- .../modulePipelines/ms.eventgrid.topics.yml | 2 +- .../ms.eventhub.namespaces.yml | 4 ++-- .../ms.healthbot.healthbots.yml | 2 +- .../ms.insights.actiongroups.yml | 2 +- .../ms.insights.activitylogalerts.yml | 2 +- .../ms.insights.components.yml | 2 +- .../ms.insights.diagnosticsettings.yml | 2 +- .../ms.insights.metricalerts.yml | 2 +- .../ms.insights.privatelinkscopes.yml | 2 +- .../ms.insights.scheduledqueryrules.yml | 2 +- .../modulePipelines/ms.keyvault.vaults.yml | 4 ++-- .../ms.kubernetesconfiguration.extensions.yml | 4 ++-- ...rnetesconfiguration.fluxconfigurations.yml | 4 ++-- .../modulePipelines/ms.logic.workflows.yml | 2 +- .../ms.machinelearningservices.workspaces.yml | 4 ++-- ...managedidentity.userassignedidentities.yml | 2 +- ...anagedservices.registrationdefinitions.yml | 4 ++-- .../ms.management.managementgroups.yml | 2 +- .../ms.netapp.netappaccounts.yml | 6 ++--- .../ms.network.applicationgateways.yml | 2 +- .../ms.network.applicationsecuritygroups.yml | 2 +- .../ms.network.azurefirewalls.yml | 2 +- .../ms.network.bastionhosts.yml | 4 ++-- .../ms.network.connections.yml | 2 +- .../ms.network.ddosprotectionplans.yml | 2 +- .../ms.network.expressroutecircuits.yml | 2 +- .../ms.network.firewallpolicies.yml | 2 +- .../modulePipelines/ms.network.frontdoors.yml | 2 +- .../modulePipelines/ms.network.ipgroups.yml | 2 +- .../ms.network.loadbalancers.yml | 6 ++--- .../ms.network.localnetworkgateways.yml | 2 +- .../ms.network.natgateways.yml | 2 +- .../ms.network.networkinterfaces.yml | 4 ++-- .../ms.network.networksecuritygroups.yml | 4 ++-- .../ms.network.networkwatchers.yml | 4 ++-- .../ms.network.privatednszones.yml | 4 ++-- .../ms.network.privateendpoints.yml | 4 ++-- .../ms.network.publicipaddresses.yml | 2 +- .../ms.network.publicipprefixes.yml | 2 +- .../ms.network.routetables.yml | 2 +- .../ms.network.trafficmanagerprofiles.yml | 2 +- .../ms.network.virtualhubs.yml | 4 ++-- .../ms.network.virtualnetworkgateways.yml | 4 ++-- .../ms.network.virtualnetworks.yml | 4 ++-- .../ms.network.virtualwans.yml | 4 ++-- .../ms.network.vpngateways.yml | 4 ++-- .../modulePipelines/ms.network.vpnsites.yml | 4 ++-- .../ms.operationalinsights.workspaces.yml | 4 ++-- .../ms.operationsmanagement.solutions.yml | 6 ++--- .../ms.recoveryservices.vaults.yml | 6 ++--- .../ms.resources.deploymentscripts.yml | 4 ++-- .../ms.resources.resourcegroups.yml | 2 +- .../modulePipelines/ms.resources.tags.yml | 6 ++--- .../ms.security.azuresecuritycenter.yml | 2 +- .../ms.servicebus.namespaces.yml | 4 ++-- .../ms.servicefabric.clusters.yml | 6 ++--- .../ms.sql.managedinstances.yml | 2 +- .../modulePipelines/ms.sql.servers.yml | 4 ++-- .../ms.storage.storageaccounts.yml | 10 ++++---- .../ms.synapse.privatelinkhubs.yml | 4 ++-- ...ms.virtualmachineimages.imagetemplates.yml | 2 +- .../modulePipelines/ms.web.connections.yml | 2 +- .../ms.web.hostingenvironments.yml | 4 ++-- .../modulePipelines/ms.web.serverfarms.yml | 2 +- .azuredevops/modulePipelines/ms.web.sites.yml | 8 +++---- .../modulePipelines/ms.web.staticsites.yml | 4 ++-- .../validateModuleDeployment/action.yml | 2 +- ...board module library and CI environment.md | 18 +++++++------- ... CI environment - Deployment validation.md | 2 +- docs/wiki/The library - Module design.md | 6 ++--- modules/.global/global.module.tests.ps1 | 24 +++++++++---------- .../New-TemplateDeployment.ps1 | 6 ++--- .../Test-TemplateDeployment.ps1 | 4 ++-- .../Get-DeploymentTestFileList.ps1 | 4 ++-- utilities/tools/Set-ModuleReadMe.ps1 | 2 +- utilities/tools/Test-ModuleLocally.ps1 | 4 ++-- .../helper/Get-ModulesAsMarkdownTable.ps1 | 16 ++++++------- 112 files changed, 248 insertions(+), 248 deletions(-) diff --git a/.azuredevops/modulePipelines/ms.aad.domainservices.yml b/.azuredevops/modulePipelines/ms.aad.domainservices.yml index c6a5286cb9..f501cb6c38 100644 --- a/.azuredevops/modulePipelines/ms.aad.domainservices.yml +++ b/.azuredevops/modulePipelines/ms.aad.domainservices.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.analysisservices.servers.yml b/.azuredevops/modulePipelines/ms.analysisservices.servers.yml index 8dcdee1813..d48caba9c9 100644 --- a/.azuredevops/modulePipelines/ms.analysisservices.servers.yml +++ b/.azuredevops/modulePipelines/ms.analysisservices.servers.yml @@ -45,9 +45,9 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json - - path: $(modulePath)/.deploymentTests/max.parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json + - path: $(modulePath)/.test/max.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.apimanagement.service.yml b/.azuredevops/modulePipelines/ms.apimanagement.service.yml index b01fa1f753..601c5433c8 100644 --- a/.azuredevops/modulePipelines/ms.apimanagement.service.yml +++ b/.azuredevops/modulePipelines/ms.apimanagement.service.yml @@ -45,9 +45,9 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/max.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json - - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.test/max.parameters.json + - path: $(modulePath)/.test/parameters.json + - path: $(modulePath)/.test/min.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml b/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml index 1a05fe60c1..9c3a6400a0 100644 --- a/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml +++ b/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.authorization.locks.yml b/.azuredevops/modulePipelines/ms.authorization.locks.yml index d82db7ae5d..6f65bba089 100644 --- a/.azuredevops/modulePipelines/ms.authorization.locks.yml +++ b/.azuredevops/modulePipelines/ms.authorization.locks.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/rg.parameters.json + - path: $(modulePath)/.test/rg.parameters.json templateFilePath: $(modulePath)/deploy.bicep - stage: Publishing diff --git a/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml b/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml index b3036c35be..5bd90b5ec0 100644 --- a/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml +++ b/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml @@ -45,17 +45,17 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/mg.min.parameters.json + - path: $(modulePath)/.test/mg.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/mg.parameters.json + - path: $(modulePath)/.test/mg.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/sub.min.parameters.json + - path: $(modulePath)/.test/sub.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/sub.parameters.json + - path: $(modulePath)/.test/sub.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/rg.min.parameters.json + - path: $(modulePath)/.test/rg.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/rg.parameters.json + - path: $(modulePath)/.test/rg.parameters.json templateFilePath: $(modulePath)/deploy.bicep - stage: Publishing diff --git a/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml b/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml index a70b9ec8c4..1c8e2fb3b3 100644 --- a/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml +++ b/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml @@ -45,13 +45,13 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/mg.min.parameters.json + - path: $(modulePath)/.test/mg.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/mg.parameters.json + - path: $(modulePath)/.test/mg.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/sub.min.parameters.json + - path: $(modulePath)/.test/sub.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/sub.parameters.json + - path: $(modulePath)/.test/sub.parameters.json templateFilePath: $(modulePath)/deploy.bicep - stage: Publishing diff --git a/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml b/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml index 2e59710782..55a78f36bd 100644 --- a/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml +++ b/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml @@ -45,17 +45,17 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/mg.min.parameters.json + - path: $(modulePath)/.test/mg.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/mg.parameters.json + - path: $(modulePath)/.test/mg.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/sub.min.parameters.json + - path: $(modulePath)/.test/sub.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/sub.parameters.json + - path: $(modulePath)/.test/sub.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/rg.min.parameters.json + - path: $(modulePath)/.test/rg.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/rg.parameters.json + - path: $(modulePath)/.test/rg.parameters.json templateFilePath: $(modulePath)/deploy.bicep - stage: Publishing diff --git a/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml b/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml index 7b15303495..04fdf2cb3f 100644 --- a/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml +++ b/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml @@ -45,13 +45,13 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/mg.min.parameters.json + - path: $(modulePath)/.test/mg.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/mg.parameters.json + - path: $(modulePath)/.test/mg.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/sub.min.parameters.json + - path: $(modulePath)/.test/sub.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/sub.parameters.json + - path: $(modulePath)/.test/sub.parameters.json templateFilePath: $(modulePath)/deploy.bicep - stage: Publishing diff --git a/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml b/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml index e62c9db947..8fd83f7541 100644 --- a/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml +++ b/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml @@ -45,17 +45,17 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/mg.min.parameters.json + - path: $(modulePath)/.test/mg.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/mg.parameters.json + - path: $(modulePath)/.test/mg.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/sub.min.parameters.json + - path: $(modulePath)/.test/sub.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/sub.parameters.json + - path: $(modulePath)/.test/sub.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/rg.min.parameters.json + - path: $(modulePath)/.test/rg.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/rg.parameters.json + - path: $(modulePath)/.test/rg.parameters.json templateFilePath: $(modulePath)/deploy.bicep - stage: Publishing diff --git a/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml b/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml index dd7820dc95..90141a1dd7 100644 --- a/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml +++ b/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml @@ -45,17 +45,17 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/mg.min.parameters.json + - path: $(modulePath)/.test/mg.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/mg.parameters.json + - path: $(modulePath)/.test/mg.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/sub.min.parameters.json + - path: $(modulePath)/.test/sub.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/sub.parameters.json + - path: $(modulePath)/.test/sub.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/rg.min.parameters.json + - path: $(modulePath)/.test/rg.min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/rg.parameters.json + - path: $(modulePath)/.test/rg.parameters.json templateFilePath: $(modulePath)/deploy.bicep - stage: Publishing diff --git a/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml b/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml index 1d756263a2..aa3802eb39 100644 --- a/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml +++ b/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml @@ -45,9 +45,9 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json - - path: $(modulePath)/.deploymentTests/encr.parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json + - path: $(modulePath)/.test/encr.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml b/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml index bd626999f3..ff3b0a08ae 100644 --- a/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml +++ b/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml b/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml index 1bb16a4346..9284b05c62 100644 --- a/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml +++ b/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml @@ -45,10 +45,10 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json - - path: $(modulePath)/.deploymentTests/speech.parameters.json - - path: $(modulePath)/.deploymentTests/encr.parameters.json - - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.test/parameters.json + - path: $(modulePath)/.test/speech.parameters.json + - path: $(modulePath)/.test/encr.parameters.json + - path: $(modulePath)/.test/min.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml b/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml index 6e88d0794d..d4e8f41d2e 100644 --- a/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml +++ b/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml b/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml index 6b677414cb..1b85b43193 100644 --- a/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml +++ b/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.compute.disks.yml b/.azuredevops/modulePipelines/ms.compute.disks.yml index 571805dddd..55f92369e0 100644 --- a/.azuredevops/modulePipelines/ms.compute.disks.yml +++ b/.azuredevops/modulePipelines/ms.compute.disks.yml @@ -45,10 +45,10 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/image.parameters.json - - path: $(modulePath)/.deploymentTests/import.parameters.json + - path: $(modulePath)/.test/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/image.parameters.json + - path: $(modulePath)/.test/import.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.compute.galleries.yml b/.azuredevops/modulePipelines/ms.compute.galleries.yml index ae2a381844..69ebcc84b9 100644 --- a/.azuredevops/modulePipelines/ms.compute.galleries.yml +++ b/.azuredevops/modulePipelines/ms.compute.galleries.yml @@ -39,8 +39,8 @@ stages: - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml parameters: deploymentBlocks: - - path: $(modulePath)/.deploymentTests/images.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/images.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Deployment displayName: Deployment validation @@ -49,8 +49,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/images.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/images.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.compute.images.yml b/.azuredevops/modulePipelines/ms.compute.images.yml index c2b70fd6a8..bde31a29cf 100644 --- a/.azuredevops/modulePipelines/ms.compute.images.yml +++ b/.azuredevops/modulePipelines/ms.compute.images.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml b/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml index 6837787064..ca01061c07 100644 --- a/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml +++ b/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml b/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml index f4598a4622..a055b1ecd9 100644 --- a/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml +++ b/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml @@ -45,12 +45,12 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/linux.min.parameters.json - - path: $(modulePath)/.deploymentTests/linux.parameters.json - - path: $(modulePath)/.deploymentTests/linux.autmg.parameters.json - - path: $(modulePath)/.deploymentTests/windows.min.parameters.json - - path: $(modulePath)/.deploymentTests/windows.parameters.json - - path: $(modulePath)/.deploymentTests/windows.autmg.parameters.json + - path: $(modulePath)/.test/linux.min.parameters.json + - path: $(modulePath)/.test/linux.parameters.json + - path: $(modulePath)/.test/linux.autmg.parameters.json + - path: $(modulePath)/.test/windows.min.parameters.json + - path: $(modulePath)/.test/windows.parameters.json + - path: $(modulePath)/.test/windows.autmg.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml b/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml index 8a235e6434..90540c28b1 100644 --- a/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml +++ b/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml @@ -45,10 +45,10 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/linux.min.parameters.json - - path: $(modulePath)/.deploymentTests/linux.parameters.json - - path: $(modulePath)/.deploymentTests/windows.min.parameters.json - - path: $(modulePath)/.deploymentTests/windows.parameters.json + - path: $(modulePath)/.test/linux.min.parameters.json + - path: $(modulePath)/.test/linux.parameters.json + - path: $(modulePath)/.test/windows.min.parameters.json + - path: $(modulePath)/.test/windows.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.consumption.budgets.yml b/.azuredevops/modulePipelines/ms.consumption.budgets.yml index 47edcbd603..3f75d14d30 100644 --- a/.azuredevops/modulePipelines/ms.consumption.budgets.yml +++ b/.azuredevops/modulePipelines/ms.consumption.budgets.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml b/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml index fc9cf784c6..2f65ddba10 100644 --- a/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml +++ b/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.containerregistry.registries.yml b/.azuredevops/modulePipelines/ms.containerregistry.registries.yml index 3833f24356..b9a8bde689 100644 --- a/.azuredevops/modulePipelines/ms.containerregistry.registries.yml +++ b/.azuredevops/modulePipelines/ms.containerregistry.registries.yml @@ -45,9 +45,9 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/encr.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/encr.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml b/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml index 14748f8b77..80e5050d53 100644 --- a/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml +++ b/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/azure.parameters.json - - path: $(modulePath)/.deploymentTests/kubenet.parameters.json + - path: $(modulePath)/.test/azure.parameters.json + - path: $(modulePath)/.test/kubenet.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.databricks.workspaces.yml b/.azuredevops/modulePipelines/ms.databricks.workspaces.yml index ba0e52746c..787a630cb1 100644 --- a/.azuredevops/modulePipelines/ms.databricks.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.databricks.workspaces.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.datafactory.factories.yml b/.azuredevops/modulePipelines/ms.datafactory.factories.yml index 02601e6748..a785ec79b4 100644 --- a/.azuredevops/modulePipelines/ms.datafactory.factories.yml +++ b/.azuredevops/modulePipelines/ms.datafactory.factories.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml b/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml index aa1c74765e..2812fd99b5 100644 --- a/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml +++ b/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml b/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml index c0c4958ef2..4970f874b9 100644 --- a/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml +++ b/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml b/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml index f7f724d63a..33858c1424 100644 --- a/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml +++ b/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml b/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml index adf58c1395..99d4959d81 100644 --- a/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml +++ b/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.test/min.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml b/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml index a850a151b3..7be7bc6201 100644 --- a/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml b/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml index c7e13c5efe..d9f7603fdd 100644 --- a/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml +++ b/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml @@ -45,9 +45,9 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/mongodb.parameters.json - - path: $(modulePath)/.deploymentTests/plain.parameters.json - - path: $(modulePath)/.deploymentTests/sqldb.parameters.json + - path: $(modulePath)/.test/mongodb.parameters.json + - path: $(modulePath)/.test/plain.parameters.json + - path: $(modulePath)/.test/sqldb.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml b/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml index 74b9ed4827..5a1a19937c 100644 --- a/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml +++ b/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.eventgrid.topics.yml b/.azuredevops/modulePipelines/ms.eventgrid.topics.yml index 618ee86540..5602476795 100644 --- a/.azuredevops/modulePipelines/ms.eventgrid.topics.yml +++ b/.azuredevops/modulePipelines/ms.eventgrid.topics.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml b/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml index 5f2b4d4a37..131a512a12 100644 --- a/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml +++ b/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml b/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml index 08760e0264..327557c8ec 100644 --- a/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml +++ b/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.insights.actiongroups.yml b/.azuredevops/modulePipelines/ms.insights.actiongroups.yml index 465d18b9d8..8b328c6807 100644 --- a/.azuredevops/modulePipelines/ms.insights.actiongroups.yml +++ b/.azuredevops/modulePipelines/ms.insights.actiongroups.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml b/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml index cffda42bac..1b2978f4de 100644 --- a/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml +++ b/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.insights.components.yml b/.azuredevops/modulePipelines/ms.insights.components.yml index 77ced33898..8a446df9d0 100644 --- a/.azuredevops/modulePipelines/ms.insights.components.yml +++ b/.azuredevops/modulePipelines/ms.insights.components.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml b/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml index aab087928e..16f12fd4cd 100644 --- a/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml +++ b/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.insights.metricalerts.yml b/.azuredevops/modulePipelines/ms.insights.metricalerts.yml index 5d3ca5ec25..0bc39c3303 100644 --- a/.azuredevops/modulePipelines/ms.insights.metricalerts.yml +++ b/.azuredevops/modulePipelines/ms.insights.metricalerts.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml b/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml index e4d8eb0f2a..20366954cd 100644 --- a/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml +++ b/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml b/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml index 8af9bffff7..2ef79850c1 100644 --- a/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml +++ b/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.keyvault.vaults.yml b/.azuredevops/modulePipelines/ms.keyvault.vaults.yml index 9defe0353a..dbb8d08af1 100644 --- a/.azuredevops/modulePipelines/ms.keyvault.vaults.yml +++ b/.azuredevops/modulePipelines/ms.keyvault.vaults.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml index c638da8660..5db8205c19 100644 --- a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml +++ b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml index 05c578d2e0..1eb78653cc 100644 --- a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml +++ b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.logic.workflows.yml b/.azuredevops/modulePipelines/ms.logic.workflows.yml index 869220d3e2..b714053664 100644 --- a/.azuredevops/modulePipelines/ms.logic.workflows.yml +++ b/.azuredevops/modulePipelines/ms.logic.workflows.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml b/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml index 79dfdc2be2..b4b74f62f2 100644 --- a/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml b/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml index 05a656cf55..95af46c4a4 100644 --- a/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml +++ b/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml b/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml index 39c68df3c5..c09372673e 100644 --- a/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml +++ b/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json - - path: $(modulePath)/.deploymentTests/rg.parameters.json + - path: $(modulePath)/.test/parameters.json + - path: $(modulePath)/.test/rg.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.management.managementgroups.yml b/.azuredevops/modulePipelines/ms.management.managementgroups.yml index 3289daddc9..1421222565 100644 --- a/.azuredevops/modulePipelines/ms.management.managementgroups.yml +++ b/.azuredevops/modulePipelines/ms.management.managementgroups.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml b/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml index 7ef1d4cbb5..fc9cd95f0c 100644 --- a/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml +++ b/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml @@ -45,9 +45,9 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/nfs3.parameters.json - - path: $(modulePath)/.deploymentTests/nfs41.parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/nfs3.parameters.json + - path: $(modulePath)/.test/nfs41.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.applicationgateways.yml b/.azuredevops/modulePipelines/ms.network.applicationgateways.yml index da48d2dac5..1bb3ca433e 100644 --- a/.azuredevops/modulePipelines/ms.network.applicationgateways.yml +++ b/.azuredevops/modulePipelines/ms.network.applicationgateways.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml b/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml index f959c4795a..41234d8952 100644 --- a/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml +++ b/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml b/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml index 64abfd6e64..18869e1829 100644 --- a/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml +++ b/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.bastionhosts.yml b/.azuredevops/modulePipelines/ms.network.bastionhosts.yml index 6746220362..3b23931433 100644 --- a/.azuredevops/modulePipelines/ms.network.bastionhosts.yml +++ b/.azuredevops/modulePipelines/ms.network.bastionhosts.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.connections.yml b/.azuredevops/modulePipelines/ms.network.connections.yml index 1642c73684..8829c6f4f8 100644 --- a/.azuredevops/modulePipelines/ms.network.connections.yml +++ b/.azuredevops/modulePipelines/ms.network.connections.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/vnet2vnet.parameters.json + - path: $(modulePath)/.test/vnet2vnet.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml b/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml index 4574f81457..0048290316 100644 --- a/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml +++ b/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml b/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml index 8f86baa36a..67952d5124 100644 --- a/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml +++ b/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml b/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml index 51a75ecb68..d21c7e7891 100644 --- a/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml +++ b/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.frontdoors.yml b/.azuredevops/modulePipelines/ms.network.frontdoors.yml index ec107160d9..ef7e06e4d6 100644 --- a/.azuredevops/modulePipelines/ms.network.frontdoors.yml +++ b/.azuredevops/modulePipelines/ms.network.frontdoors.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.ipgroups.yml b/.azuredevops/modulePipelines/ms.network.ipgroups.yml index 47ac2b187a..a669614273 100644 --- a/.azuredevops/modulePipelines/ms.network.ipgroups.yml +++ b/.azuredevops/modulePipelines/ms.network.ipgroups.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.loadbalancers.yml b/.azuredevops/modulePipelines/ms.network.loadbalancers.yml index cc2769f764..f2031b3c25 100644 --- a/.azuredevops/modulePipelines/ms.network.loadbalancers.yml +++ b/.azuredevops/modulePipelines/ms.network.loadbalancers.yml @@ -45,9 +45,9 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/internal.parameters.json + - path: $(modulePath)/.test/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/internal.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml b/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml index 862f64a093..b1cc96a7fa 100644 --- a/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml +++ b/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.natgateways.yml b/.azuredevops/modulePipelines/ms.network.natgateways.yml index 17cd3f4bee..2cdbdc925b 100644 --- a/.azuredevops/modulePipelines/ms.network.natgateways.yml +++ b/.azuredevops/modulePipelines/ms.network.natgateways.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml b/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml index ed2ff73682..3abd5d8e1b 100644 --- a/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml +++ b/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml b/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml index a592dbf8d3..79922a2bff 100644 --- a/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml +++ b/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.networkwatchers.yml b/.azuredevops/modulePipelines/ms.network.networkwatchers.yml index a032607be9..d0c9d12bdd 100644 --- a/.azuredevops/modulePipelines/ms.network.networkwatchers.yml +++ b/.azuredevops/modulePipelines/ms.network.networkwatchers.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.privatednszones.yml b/.azuredevops/modulePipelines/ms.network.privatednszones.yml index d4f53eb438..910a3db3fc 100644 --- a/.azuredevops/modulePipelines/ms.network.privatednszones.yml +++ b/.azuredevops/modulePipelines/ms.network.privatednszones.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.privateendpoints.yml b/.azuredevops/modulePipelines/ms.network.privateendpoints.yml index 55be935211..03a09207a2 100644 --- a/.azuredevops/modulePipelines/ms.network.privateendpoints.yml +++ b/.azuredevops/modulePipelines/ms.network.privateendpoints.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml b/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml index eff1b0250f..a6444b9ba0 100644 --- a/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml +++ b/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml b/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml index 05a7e35e48..a52f085e9b 100644 --- a/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml +++ b/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.routetables.yml b/.azuredevops/modulePipelines/ms.network.routetables.yml index 15aeb0fff2..358639097d 100644 --- a/.azuredevops/modulePipelines/ms.network.routetables.yml +++ b/.azuredevops/modulePipelines/ms.network.routetables.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml b/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml index a064e45548..bcc9147522 100644 --- a/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml +++ b/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.virtualhubs.yml b/.azuredevops/modulePipelines/ms.network.virtualhubs.yml index 671a6d9457..f04ecd43ca 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualhubs.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualhubs.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml b/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml index 7d5fa11d44..761f2a5ea2 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/expressRoute.parameters.json - - path: $(modulePath)/.deploymentTests/vpn.parameters.json + - path: $(modulePath)/.test/expressRoute.parameters.json + - path: $(modulePath)/.test/vpn.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml b/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml index c4b4a3ea0a..ef1e55e526 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json - - path: $(modulePath)/.deploymentTests/vnetPeering.parameters.json + - path: $(modulePath)/.test/parameters.json + - path: $(modulePath)/.test/vnetPeering.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.virtualwans.yml b/.azuredevops/modulePipelines/ms.network.virtualwans.yml index 32bfa7afd2..708578f3e8 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualwans.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualwans.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.vpngateways.yml b/.azuredevops/modulePipelines/ms.network.vpngateways.yml index ee7ce830e8..9c5ad45b58 100644 --- a/.azuredevops/modulePipelines/ms.network.vpngateways.yml +++ b/.azuredevops/modulePipelines/ms.network.vpngateways.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.network.vpnsites.yml b/.azuredevops/modulePipelines/ms.network.vpnsites.yml index c6054542cc..7f6c140d5d 100644 --- a/.azuredevops/modulePipelines/ms.network.vpnsites.yml +++ b/.azuredevops/modulePipelines/ms.network.vpnsites.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml b/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml index f3b4863863..00787f4534 100644 --- a/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml b/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml index 05d4dae6cb..be56cbbb71 100644 --- a/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml +++ b/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml @@ -45,9 +45,9 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/nonms.parameters.json - - path: $(modulePath)/.deploymentTests/ms.parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/nonms.parameters.json + - path: $(modulePath)/.test/ms.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml b/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml index 416413054e..bde801688a 100644 --- a/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml +++ b/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml @@ -45,11 +45,11 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/min.parameters.json + - path: $(modulePath)/.test/min.parameters.json templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.deploymentTests/dr.parameters.json + - path: $(modulePath)/.test/dr.parameters.json templateFilePath: $(modulePath)/deploy.bicep - stage: Publishing diff --git a/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml b/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml index 2f5a850bea..274443cc66 100644 --- a/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml +++ b/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/cli.parameters.json - - path: $(modulePath)/.deploymentTests/ps.parameters.json + - path: $(modulePath)/.test/cli.parameters.json + - path: $(modulePath)/.test/ps.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml b/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml index 03b074bdb2..658da84eec 100644 --- a/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml +++ b/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.resources.tags.yml b/.azuredevops/modulePipelines/ms.resources.tags.yml index 98316cfcfd..a0f4452171 100644 --- a/.azuredevops/modulePipelines/ms.resources.tags.yml +++ b/.azuredevops/modulePipelines/ms.resources.tags.yml @@ -45,9 +45,9 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/rg.parameters.json - - path: $(modulePath)/.deploymentTests/sub.parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/rg.parameters.json + - path: $(modulePath)/.test/sub.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml b/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml index 4b6046d2e8..40df763f2c 100644 --- a/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml +++ b/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml b/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml index 626e23d613..d4d9f1515c 100644 --- a/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml +++ b/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml b/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml index c7e516692f..75b496efb3 100644 --- a/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml +++ b/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml @@ -45,9 +45,9 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/full.parameters.json - - path: $(modulePath)/.deploymentTests/cert.parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/full.parameters.json + - path: $(modulePath)/.test/cert.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.sql.managedinstances.yml b/.azuredevops/modulePipelines/ms.sql.managedinstances.yml index 9d49a71ba7..5ac8c060d1 100644 --- a/.azuredevops/modulePipelines/ms.sql.managedinstances.yml +++ b/.azuredevops/modulePipelines/ms.sql.managedinstances.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json defaultJobTimeoutInMinutes: 360 - stage: Publishing diff --git a/.azuredevops/modulePipelines/ms.sql.servers.yml b/.azuredevops/modulePipelines/ms.sql.servers.yml index 32d9b5e535..68d627a3b8 100644 --- a/.azuredevops/modulePipelines/ms.sql.servers.yml +++ b/.azuredevops/modulePipelines/ms.sql.servers.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json - - path: $(modulePath)/.deploymentTests/admin.parameters.json + - path: $(modulePath)/.test/parameters.json + - path: $(modulePath)/.test/admin.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml b/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml index 62f98d6d33..ee4f3a4065 100644 --- a/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml +++ b/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml @@ -45,11 +45,11 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/nfs.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json - - path: $(modulePath)/.deploymentTests/v1.parameters.json - - path: $(modulePath)/.deploymentTests/encr.parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/nfs.parameters.json + - path: $(modulePath)/.test/parameters.json + - path: $(modulePath)/.test/v1.parameters.json + - path: $(modulePath)/.test/encr.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml b/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml index 295f5beb67..6006a313e5 100644 --- a/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml +++ b/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml b/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml index 8169a7e43d..93aeaacb48 100644 --- a/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml +++ b/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.web.connections.yml b/.azuredevops/modulePipelines/ms.web.connections.yml index 4a126a0ee8..b19b3f5b70 100644 --- a/.azuredevops/modulePipelines/ms.web.connections.yml +++ b/.azuredevops/modulePipelines/ms.web.connections.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml b/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml index a3b6da3f80..6595728739 100644 --- a/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml +++ b/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/asev2.parameters.json - - path: $(modulePath)/.deploymentTests/asev3.parameters.json + - path: $(modulePath)/.test/asev2.parameters.json + - path: $(modulePath)/.test/asev3.parameters.json defaultJobTimeoutInMinutes: 180 - stage: Publishing diff --git a/.azuredevops/modulePipelines/ms.web.serverfarms.yml b/.azuredevops/modulePipelines/ms.web.serverfarms.yml index 48d906fedc..aee87bf599 100644 --- a/.azuredevops/modulePipelines/ms.web.serverfarms.yml +++ b/.azuredevops/modulePipelines/ms.web.serverfarms.yml @@ -45,7 +45,7 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.web.sites.yml b/.azuredevops/modulePipelines/ms.web.sites.yml index e56f5c75eb..9d96269e76 100644 --- a/.azuredevops/modulePipelines/ms.web.sites.yml +++ b/.azuredevops/modulePipelines/ms.web.sites.yml @@ -45,10 +45,10 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/fa.min.parameters.json - - path: $(modulePath)/.deploymentTests/fa.parameters.json - - path: $(modulePath)/.deploymentTests/wa.min.parameters.json - - path: $(modulePath)/.deploymentTests/wa.parameters.json + - path: $(modulePath)/.test/fa.min.parameters.json + - path: $(modulePath)/.test/fa.parameters.json + - path: $(modulePath)/.test/wa.min.parameters.json + - path: $(modulePath)/.test/wa.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.web.staticsites.yml b/.azuredevops/modulePipelines/ms.web.staticsites.yml index e408ebbb15..26c5b88e54 100644 --- a/.azuredevops/modulePipelines/ms.web.staticsites.yml +++ b/.azuredevops/modulePipelines/ms.web.staticsites.yml @@ -45,8 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.deploymentTests/min.parameters.json - - path: $(modulePath)/.deploymentTests/parameters.json + - path: $(modulePath)/.test/min.parameters.json + - path: $(modulePath)/.test/parameters.json - stage: Publishing displayName: Publishing diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 8f19453838..5474bd2cb7 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -15,7 +15,7 @@ ## | Parameter | Required | Default | Description | Example | ## |---------------------------|----------|---------|-------------------------------------------------------|----------------------------------------------------------------------------| ## | templateFilePath | true | '' | The path to the template file to use for deployment | 'modules/Microsoft.ApiManagement/service/deploy.bicep' | -## | parameterFilePath | true | '' | The path to the parameter file to use for deployment | 'modules/Microsoft.ApiManagement/service/.deploymentTests/parameters.json' | +## | parameterFilePath | true | '' | The path to the parameter file to use for deployment | 'modules/Microsoft.ApiManagement/service/.test/parameters.json' | ## | location | true | '' | The location to use for deployment | 'WestEurope' | ## | resourceGroupName | false | '' | The resource group to deploy to | 'validation-rg' | ## | subscriptionId | false | '' | The subscriptionId to deploy to | '1a97b80a-4dda-4f50-ab53-349e29344654' | diff --git a/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md b/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md index 69c6e62ff5..6ab4b95586 100644 --- a/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md +++ b/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md @@ -379,15 +379,15 @@ For this reason, make sure to update the references in the following modules onc | File | Parameter | Notes | | - | - | - | -| `modules\Microsoft.Compute\virtualMachines\.deploymentTests\linux.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | -| `modules\Microsoft.Compute\virtualMachines\.deploymentTests\windows.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | -| `modules\Microsoft.Compute\virtualMachineScaleSets\.deploymentTests\linux.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | -| `modules\Microsoft.Compute\virtualMachineScaleSets\.deploymentTests\windows.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | -| `modules\Microsoft.Sql\managedInstances\.deploymentTests\parameters.json` | `keys.value.uri` | | -| `modules\Microsoft.Network\applicationGateways\.deploymentTests\parameters.json` | `sslCertificates.value.properties.keyVaultSecretId` | | -| `modules\Microsoft.Web\sites\.deploymentTests\fa.parameters.json` | `appSettingsKeyValuePairs.value.EASYAUTH_SECRET` | Key Vault secret URI without version | -| `modules\Microsoft.Web\sites\.deploymentTests\fa.parameters.json` | `authSettingV2Configuration.value.identityProviders.azureActiveDirectory.registration.clientId` | App ID from the Azure Active Directory App | -| `modules\Microsoft.Web\sites\.deploymentTests\fa.parameters.json` | `authSettingV2Configuration.value.identityProviders.azureActiveDirectory.validation.allowedAudiences` | API endpoint from the Azure Active Directory app | +| `modules\Microsoft.Compute\virtualMachines\.test\linux.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | +| `modules\Microsoft.Compute\virtualMachines\.test\windows.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | +| `modules\Microsoft.Compute\virtualMachineScaleSets\.test\linux.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | +| `modules\Microsoft.Compute\virtualMachineScaleSets\.test\windows.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | +| `modules\Microsoft.Sql\managedInstances\.test\parameters.json` | `keys.value.uri` | | +| `modules\Microsoft.Network\applicationGateways\.test\parameters.json` | `sslCertificates.value.properties.keyVaultSecretId` | | +| `modules\Microsoft.Web\sites\.test\fa.parameters.json` | `appSettingsKeyValuePairs.value.EASYAUTH_SECRET` | Key Vault secret URI without version | +| `modules\Microsoft.Web\sites\.test\fa.parameters.json` | `authSettingV2Configuration.value.identityProviders.azureActiveDirectory.registration.clientId` | App ID from the Azure Active Directory App | +| `modules\Microsoft.Web\sites\.test\fa.parameters.json` | `authSettingV2Configuration.value.identityProviders.azureActiveDirectory.validation.allowedAudiences` | API endpoint from the Azure Active Directory app | diff --git a/docs/wiki/The CI environment - Deployment validation.md b/docs/wiki/The CI environment - Deployment validation.md index bb21183146..f4cba6334b 100644 --- a/docs/wiki/The CI environment - Deployment validation.md +++ b/docs/wiki/The CI environment - Deployment validation.md @@ -21,7 +21,7 @@ The deployment validation phase can be divided into three steps, running in sequ # Template validation -The template validation step performs a dry-run with each parameter file in the module's `'.deploymentTests'` folder +The template validation step performs a dry-run with each parameter file in the module's `'.test'` folder In particular, the step runs a `Test-AzDeployment` cmdlet (_the command may vary based on the template schema_) for each provided module parameter file to verify if the template could be deployed using them. diff --git a/docs/wiki/The library - Module design.md b/docs/wiki/The library - Module design.md index 0f5358a739..1143c16a5a 100644 --- a/docs/wiki/The library - Module design.md +++ b/docs/wiki/The library - Module design.md @@ -60,7 +60,7 @@ They can be deployed in different configurations just by changing the input para A **CARML module** consists of - The Bicep template deployment file (`deploy.bicep`). -- One or multiple template parameters files (`*parameters.json`) that will be used for testing, located in the `.deploymentTests` subfolder. +- One or multiple template parameters files (`*parameters.json`) that will be used for testing, located in the `.test` subfolder. - A `readme.md` file which describes the module itself. A module usually represents a single resource or a set of closely related resources. For example, a storage account and the associated lock or virtual machine and network interfaces. Modules are located in the `modules` folder. @@ -109,7 +109,7 @@ Use the following naming standard for module files and folders: └─ ├─ .bicep | ├─ nested_extensionResource1.bicep - ├─ .deploymentTests + ├─ .test | └─ parameters.json ├─ deploy.bicep └─ readme.md @@ -121,7 +121,7 @@ Use the following naming standard for module files and folders: >└─ sites > ├─ .bicep > | └─ nested_roleAssignments.bicep - > ├─ .deploymentTests + > ├─ .test > | └─ parameters.json > ├─ deploy.bicep > └─ readme.md diff --git a/modules/.global/global.module.tests.ps1 b/modules/.global/global.module.tests.ps1 index 11507d46ca..7a36c7b56f 100644 --- a/modules/.global/global.module.tests.ps1 +++ b/modules/.global/global.module.tests.ps1 @@ -89,10 +89,10 @@ Describe 'File/folder tests' -Tag Modules { (Test-Path (Join-Path -Path $moduleFolderPath 'readme.md')) | Should -Be $true } - It '[] Module should contain a [.deploymentTests] folder' -TestCases ($moduleFolderTestCases | Where-Object { $_.isTopLevelModule }) { + It '[] Module should contain a [.test] folder' -TestCases ($moduleFolderTestCases | Where-Object { $_.isTopLevelModule }) { param( [string] $moduleFolderPath ) - Test-Path (Join-Path -Path $moduleFolderPath '.deploymentTests') | Should -Be $true + Test-Path (Join-Path -Path $moduleFolderPath '.test') | Should -Be $true } It '[] Module should contain a [version.json] file' -TestCases $moduleFolderTestCases { @@ -102,11 +102,11 @@ Describe 'File/folder tests' -Tag Modules { } } - Context '.deploymentTests folder' { + Context '.test folder' { $folderTestCases = [System.Collections.ArrayList]@() foreach ($moduleFolderPath in $moduleFolderPaths) { - if (Test-Path (Join-Path $moduleFolderPath '.deploymentTests')) { + if (Test-Path (Join-Path $moduleFolderPath '.test')) { $folderTestCases += @{ moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1] moduleFolderPath = $moduleFolderPath @@ -120,13 +120,13 @@ Describe 'File/folder tests' -Tag Modules { [string] $moduleFolderName, $moduleFolderPath ) - $parameterFolderPath = Join-Path $moduleFolderPath '.deploymentTests' + $parameterFolderPath = Join-Path $moduleFolderPath '.test' (Get-ChildItem $parameterFolderPath -Filter '*parameters.json' -Force).Count | Should -BeGreaterThan 0 } $parameterFolderFilesTestCases = [System.Collections.ArrayList] @() foreach ($moduleFolderPath in $moduleFolderPaths) { - $parameterFolderPath = Join-Path $moduleFolderPath '.deploymentTests' + $parameterFolderPath = Join-Path $moduleFolderPath '.test' if (Test-Path $parameterFolderPath) { foreach ($parameterFile in (Get-ChildItem $parameterFolderPath -Filter '*parameters.json' -Force)) { $parameterFolderFilesTestCases += @{ @@ -505,8 +505,8 @@ Describe 'Deployment template tests' -Tag Template { $TemplateFile_AllParameterNames = $templateFile_Parameters.Keys | Sort-Object $TemplateFile_RequiredParametersNames = ($templateFile_Parameters.Keys | Where-Object { -not $templateFile_Parameters[$_].ContainsKey('defaultValue') }) | Sort-Object - if (Test-Path (Join-Path $moduleFolderPath '.deploymentTests')) { - $ParameterFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.deploymentTests' -AdditionalChildPath '*parameters.json') -Recurse -Force).FullName + if (Test-Path (Join-Path $moduleFolderPath '.test')) { + $ParameterFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test' -AdditionalChildPath '*parameters.json') -Recurse -Force).FullName foreach ($ParameterFilePath in $ParameterFilePaths) { $parameterFile_AllParameterNames = ((Get-Content $ParameterFilePath) | ConvertFrom-Json -AsHashtable).parameters.Keys | Sort-Object $parameterFileTestCases += @{ @@ -917,8 +917,8 @@ Describe 'Deployment template tests' -Tag Template { $parameterFileTokenTestCases = @() foreach ($moduleFolderPath in $moduleFolderPaths) { - if (Test-Path (Join-Path $moduleFolderPath '.deploymentTests')) { - $ParameterFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.deploymentTests' -AdditionalChildPath '*parameters.json') -Recurse -Force).FullName + if (Test-Path (Join-Path $moduleFolderPath '.test')) { + $ParameterFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.testeters.json') -Recurse -Force).FullName foreach ($ParameterFilePath in $ParameterFilePaths) { foreach ($token in $enforcedTokenList.Keys) { $parameterFileTokenTestCases += @{ @@ -948,7 +948,7 @@ Describe 'Deployment template tests' -Tag Template { $incorrectReferencesFound = $ParameterFileContent | Select-String -Pattern $tokenValue -AllMatches if ($incorrectReferencesFound.Matches) { - $incorrectReferencesFound.Matches.Count | Should -Be 0 -Because ('Parameter file should not contain the [{0}] value, instead should reference the token value [{1}]. Please check the {2} lines: [{3}]' -f $tokenName, $ParameterFileTokenName, $incorrectReferencesFound.Matches.Count, ($incorrectReferencesFound.Line.Trim() -join ",`n")) + $incorrectReferencesFound.Matches.Count | Should -Be 0 -Because ('Parameter file should not contain the [ { 0 }] value, instead should reference the token value [ { 1 }]. Please check the { 2 } lines: [ { 3 }]' -f $tokenName, $ParameterFileTokenName, $incorrectReferencesFound.Matches.Count, ($incorrectReferencesFound.Line.Trim() -join ",`n")) } } } @@ -1067,7 +1067,7 @@ Describe "API version tests [All apiVersions in the template should be 'recent'] $resourceTypeApiVersions = ($namespaceResourceTypes | Where-Object { $_.ResourceTypeName -eq $resourceType }).ApiVersions if (-not $resourceTypeApiVersions) { - Write-Warning ('[API Test] We are currently unable to determine the available API versions for resource type [{0}/{1}]' -f $ProviderNamespace, $resourceType) + Write-Warning ('[API Test] We are currently unable to determine the available API versions for resource type [ { 0 }/ { 1 }]' -f $ProviderNamespace, $resourceType) continue } diff --git a/utilities/pipelines/resourceDeployment/New-TemplateDeployment.ps1 b/utilities/pipelines/resourceDeployment/New-TemplateDeployment.ps1 index 4aac14ad91..ea77202a1c 100644 --- a/utilities/pipelines/resourceDeployment/New-TemplateDeployment.ps1 +++ b/utilities/pipelines/resourceDeployment/New-TemplateDeployment.ps1 @@ -102,7 +102,7 @@ Optional. Maximum retry limit if the deployment fails. Default is 3. Optional. Do not throw an exception if it failed. Still returns the error message though .EXAMPLE -New-DeploymentWithParameterFile -templateFilePath 'C:/KeyVault/deploy.json' -parameterFilePath 'C:/KeyVault/.deploymentTests/parameters.json' -location 'WestEurope' -resourceGroupName 'aLegendaryRg' +New-DeploymentWithParameterFile -templateFilePath 'C:/KeyVault/deploy.json' -parameterFilePath 'C:/KeyVault/.test/parameters.json' -location 'WestEurope' -resourceGroupName 'aLegendaryRg' Deploy the deploy.json of the KeyVault module with the parameter file 'parameters.json' using the resource group 'aLegendaryRg' in location 'WestEurope' @@ -341,7 +341,7 @@ Optional. Maximum retry limit if the deployment fails. Default is 3. Optional. Do not throw an exception if it failed. Still returns the error message though .EXAMPLE -New-TemplateDeployment -templateFilePath 'C:/KeyVault/deploy.bicep' -parameterFilePath 'C:/KeyVault/.deploymentTests/parameters.json' -location 'WestEurope' -resourceGroupName 'aLegendaryRg' +New-TemplateDeployment -templateFilePath 'C:/KeyVault/deploy.bicep' -parameterFilePath 'C:/KeyVault/.test/parameters.json' -location 'WestEurope' -resourceGroupName 'aLegendaryRg' Deploy the deploy.bicep of the KeyVault module with the parameter file 'parameters.json' using the resource group 'aLegendaryRg' in location 'WestEurope' @@ -351,7 +351,7 @@ New-TemplateDeployment -templateFilePath 'C:/ResourceGroup/deploy.bicep' -locati Deploy the deploy.json of the ResourceGroup module in location 'WestEurope' .EXAMPLE -New-TemplateDeployment -templateFilePath 'C:/ResourceGroup/deploy.json' -parameterFilePath 'C:/ResourceGroup/.deploymentTests/parameters.json' -location 'WestEurope' +New-TemplateDeployment -templateFilePath 'C:/ResourceGroup/deploy.json' -parameterFilePath 'C:/ResourceGroup/.test/parameters.json' -location 'WestEurope' Deploy the deploy.json of the ResourceGroup module with the parameter file 'parameters.json' in location 'WestEurope' #> diff --git a/utilities/pipelines/resourceDeployment/Test-TemplateDeployment.ps1 b/utilities/pipelines/resourceDeployment/Test-TemplateDeployment.ps1 index ed5f56d23e..0601075f47 100644 --- a/utilities/pipelines/resourceDeployment/Test-TemplateDeployment.ps1 +++ b/utilities/pipelines/resourceDeployment/Test-TemplateDeployment.ps1 @@ -31,7 +31,7 @@ Optional. Name of the management group to deploy into. Mandatory if deploying in Optional. Additional parameters you can provide with the deployment. E.g. @{ resourceGroupName = 'myResourceGroup' } .EXAMPLE -Test-TemplateDeployment -templateFilePath 'C:/KeyVault/deploy.bicep' -parameterFilePath 'C:/KeyVault/.deploymentTests/parameters.json' -location 'WestEurope' -resourceGroupName 'aLegendaryRg' +Test-TemplateDeployment -templateFilePath 'C:/KeyVault/deploy.bicep' -parameterFilePath 'C:/KeyVault/.test/parameters.json' -location 'WestEurope' -resourceGroupName 'aLegendaryRg' Test the deploy.bicep of the KeyVault module with the parameter file 'parameters.json' using the resource group 'aLegendaryRg' in location 'WestEurope' @@ -41,7 +41,7 @@ Test-TemplateDeployment -templateFilePath 'C:/KeyVault/deploy.bicep' -location ' Test the deploy.bicep of the KeyVault module using the resource group 'aLegendaryRg' in location 'WestEurope' .EXAMPLE -Test-TemplateDeployment -templateFilePath 'C:/ResourceGroup/deploy.json' -parameterFilePath 'C:/ResourceGroup/.deploymentTests/parameters.json' -location 'WestEurope' +Test-TemplateDeployment -templateFilePath 'C:/ResourceGroup/deploy.json' -parameterFilePath 'C:/ResourceGroup/.test/parameters.json' -location 'WestEurope' Test the deploy.json of the ResourceGroup module with the parameter file 'parameters.json' in location 'WestEurope' #> diff --git a/utilities/pipelines/sharedScripts/Get-DeploymentTestFileList.ps1 b/utilities/pipelines/sharedScripts/Get-DeploymentTestFileList.ps1 index 426d5efd81..e9a68bd65d 100644 --- a/utilities/pipelines/sharedScripts/Get-DeploymentTestFileList.ps1 +++ b/utilities/pipelines/sharedScripts/Get-DeploymentTestFileList.ps1 @@ -23,8 +23,8 @@ function Get-DeploymentTestFileList { ) $deploymentTests = @() - if (Test-Path (Join-Path $ModulePath '.deploymentTests')) { - $deploymentTests += (Get-ChildItem -Path (Join-Path $ModulePath '.deploymentTests') -Depth 0 -Include ('*.json', '*.bicep') -File).FullName + if (Test-Path (Join-Path $ModulePath '.test')) { + $deploymentTests += (Get-ChildItem -Path (Join-Path $ModulePath '.test') -Depth 0 -Include ('*.json', '*.bicep') -File).FullName } if (-not $deploymentTests) { diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index 5b48b09872..390ec2413c 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -351,7 +351,7 @@ function Set-DeploymentExamplesSection { $moduleRoot = Split-Path $TemplateFilePath -Parent $resourceTypeIdentifier = $moduleRoot.Replace('\', '/').Split('/modules/')[1].TrimStart('/') - $parameterFiles = Get-ChildItem (Join-Path $moduleRoot '.deploymentTests') -Filter '*parameters.json' -Recurse + $parameterFiles = Get-ChildItem (Join-Path $moduleRoot '.test') -Filter '*parameters.json' -Recurse $index = 1 foreach ($parameterFilePath in $parameterFiles.FullName) { diff --git a/utilities/tools/Test-ModuleLocally.ps1 b/utilities/tools/Test-ModuleLocally.ps1 index aaa2461a04..34c40d59cd 100644 --- a/utilities/tools/Test-ModuleLocally.ps1 +++ b/utilities/tools/Test-ModuleLocally.ps1 @@ -35,7 +35,7 @@ Optional. A hashtable parameter that contains custom tokens to be replaced in th $TestModuleLocallyInput = @{ TemplateFilePath = 'C:\Microsoft.Network\routeTables\deploy.bicep' - ParameterFilePath = 'C:\Microsoft.Network\routeTables\.deploymentTests\parameters.json' + ParameterFilePath = 'C:\Microsoft.Network\routeTables\.test\parameters.json' PesterTest = $false DeploymentTest = $false ValidationTest = $true @@ -115,7 +115,7 @@ function Test-ModuleLocally { [string] $TemplateFilePath, [Parameter(Mandatory = $false)] - [string] $parameterFilePath = (Join-Path (Split-Path $TemplateFilePath -Parent) '.deploymentTests'), + [string] $parameterFilePath = (Join-Path (Split-Path $TemplateFilePath -Parent) '.test'), [Parameter(Mandatory = $false)] [Psobject] $ValidateOrDeployParameters = @{}, diff --git a/utilities/tools/helper/Get-ModulesAsMarkdownTable.ps1 b/utilities/tools/helper/Get-ModulesAsMarkdownTable.ps1 index eedb1c4fa6..b91c4e356a 100644 --- a/utilities/tools/helper/Get-ModulesAsMarkdownTable.ps1 +++ b/utilities/tools/helper/Get-ModulesAsMarkdownTable.ps1 @@ -214,8 +214,8 @@ Check for the existens of any nested module levels .DESCRIPTION Check for the existens of any nested module levels. -A module is identified by folders that do not contain module-specific folders such as '.deploymentTests'. -In other words, a module would contain a folder with e.g. a '.deploymentTests' folder and would hence not count towards the hierarchy of parent folders. +A module is identified by folders that do not contain module-specific folders such as '.test'. +In other words, a module would contain a folder with e.g. a '.test' folder and would hence not count towards the hierarchy of parent folders. .PARAMETER path Mandatory. The path to search in. @@ -234,10 +234,10 @@ function Measure-FolderHasNestedModule { [string] $Path ) - # Get all folder paths that exist in the given path as long as they are not '.bicep' or '.deploymentTests' folders + # Get all folder paths that exist in the given path as long as they are not '.bicep' or '.test' folders # This works as long as the folder structure is consistent (e.g. no empty folders are created etc.) - $rawFoundFolders = Get-ChildItem $Path -Directory -Recurse -Exclude @('.bicep', '.deploymentTests') -Force - $foundFolders = $rawFoundFolders | Where-Object { (Get-ChildItem $_.FullName -Directory -Depth 0 -Include '.deploymentTests' -Force).count -gt 0 } + $rawFoundFolders = Get-ChildItem $Path -Directory -Recurse -Exclude @('.bicep', '.test') -Force + $foundFolders = $rawFoundFolders | Where-Object { (Get-ChildItem $_.FullName -Directory -Depth 0 -Include '.test' -Force).count -gt 0 } if ($foundFolders) { return $true } else { @@ -323,9 +323,9 @@ function Get-ResolvedSubServiceRow { [string]$ProjectName = '' ) - $rawSubFolders = Get-ChildItem -Path $subPath -Directory -Recurse -Exclude @('.bicep', '.deploymentTests') -Force + $rawSubFolders = Get-ChildItem -Path $subPath -Directory -Recurse -Exclude @('.bicep', '.test') -Force # Only consider those folders that have their own parameters, i.e. are top-level modules and not child-resource modules - $subFolders = $rawSubFolders | Where-Object { (Get-ChildItem $_.FullName -Directory -Depth 0 -Include '.deploymentTests' -Force).count -gt 0 } + $subFolders = $rawSubFolders | Where-Object { (Get-ChildItem $_.FullName -Directory -Depth 0 -Include '.test' -Force).count -gt 0 } foreach ($subfolder in $subFolders.FullName) { @@ -517,7 +517,7 @@ function Get-ModulesAsMarkdownTable { foreach ($topLevelFolder in $topLevelFolders) { $provider = Split-Path $topLevelFolder -Leaf - $containedFolders = Get-ChildItem -Path $topLevelFolder -Directory -Recurse -Exclude @('.bicep', '.deploymentTests') -Depth 0 -Force + $containedFolders = Get-ChildItem -Path $topLevelFolder -Directory -Recurse -Exclude @('.bicep', '.test') -Depth 0 -Force foreach ($containedFolder in $containedFolders.FullName) { $containedFolderName = (Split-Path $containedFolder -Leaf) From 22f46a4045102fb4225bdcca8c94615f21aba2bf Mon Sep 17 00:00:00 2001 From: MrMCake Date: Tue, 28 Jun 2022 23:55:19 +0200 Subject: [PATCH 025/274] Renamed folders --- .../DomainServices/{.deploymentTests => .test}/parameters.json | 0 .../servers/{.deploymentTests => .test}/max.parameters.json | 0 .../servers/{.deploymentTests => .test}/min.parameters.json | 0 .../servers/{.deploymentTests => .test}/parameters.json | 0 .../service/{.deploymentTests => .test}/max.parameters.json | 0 .../service/{.deploymentTests => .test}/min.parameters.json | 0 .../service/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/min.parameters.json | 0 .../{.deploymentTests => .test}/parameters.json | 0 .../locks/{.deploymentTests => .test}/rg.parameters.json | 0 .../{.deploymentTests => .test}/mg.min.parameters.json | 0 .../{.deploymentTests => .test}/mg.parameters.json | 0 .../{.deploymentTests => .test}/rg.min.parameters.json | 0 .../{.deploymentTests => .test}/rg.parameters.json | 0 .../{.deploymentTests => .test}/sub.min.parameters.json | 0 .../{.deploymentTests => .test}/sub.parameters.json | 0 .../{.deploymentTests => .test}/mg.min.parameters.json | 0 .../{.deploymentTests => .test}/mg.parameters.json | 0 .../{.deploymentTests => .test}/sub.min.parameters.json | 0 .../{.deploymentTests => .test}/sub.parameters.json | 0 .../{.deploymentTests => .test}/mg.min.parameters.json | 0 .../{.deploymentTests => .test}/mg.parameters.json | 0 .../{.deploymentTests => .test}/rg.min.parameters.json | 0 .../{.deploymentTests => .test}/rg.parameters.json | 0 .../{.deploymentTests => .test}/sub.min.parameters.json | 0 .../{.deploymentTests => .test}/sub.parameters.json | 0 .../{.deploymentTests => .test}/mg.min.parameters.json | 0 .../{.deploymentTests => .test}/mg.parameters.json | 0 .../{.deploymentTests => .test}/sub.min.parameters.json | 0 .../{.deploymentTests => .test}/sub.parameters.json | 0 .../{.deploymentTests => .test}/mg.min.parameters.json | 0 .../{.deploymentTests => .test}/mg.parameters.json | 0 .../{.deploymentTests => .test}/rg.min.parameters.json | 0 .../{.deploymentTests => .test}/rg.parameters.json | 0 .../{.deploymentTests => .test}/sub.min.parameters.json | 0 .../{.deploymentTests => .test}/sub.parameters.json | 0 .../{.deploymentTests => .test}/mg.min.parameters.json | 0 .../{.deploymentTests => .test}/mg.parameters.json | 0 .../{.deploymentTests => .test}/rg.min.parameters.json | 0 .../{.deploymentTests => .test}/rg.parameters.json | 0 .../{.deploymentTests => .test}/sub.min.parameters.json | 0 .../{.deploymentTests => .test}/sub.parameters.json | 0 .../{.deploymentTests => .test}/encr.parameters.json | 0 .../{.deploymentTests => .test}/min.parameters.json | 0 .../{.deploymentTests => .test}/parameters.json | 0 .../batchAccounts/{.deploymentTests => .test}/min.parameters.json | 0 .../batchAccounts/{.deploymentTests => .test}/parameters.json | 0 .../accounts/{.deploymentTests => .test}/encr.parameters.json | 0 .../accounts/{.deploymentTests => .test}/min.parameters.json | 0 .../accounts/{.deploymentTests => .test}/parameters.json | 0 .../accounts/{.deploymentTests => .test}/speech.parameters.json | 0 .../{.deploymentTests => .test}/min.parameters.json | 0 .../availabilitySets/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/parameters.json | 0 .../disks/{.deploymentTests => .test}/image.parameters.json | 0 .../disks/{.deploymentTests => .test}/import.parameters.json | 0 .../disks/{.deploymentTests => .test}/min.parameters.json | 0 .../disks/{.deploymentTests => .test}/parameters.json | 0 .../galleries/{.deploymentTests => .test}/images.parameters.json | 0 .../galleries/{.deploymentTests => .test}/parameters.json | 0 .../images/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/linux.min.parameters.json | 0 .../{.deploymentTests => .test}/linux.parameters.json | 0 .../{.deploymentTests => .test}/windows.min.parameters.json | 0 .../{.deploymentTests => .test}/windows.parameters.json | 0 .../{.deploymentTests => .test}/linux.autmg.parameters.json | 0 .../{.deploymentTests => .test}/linux.min.parameters.json | 0 .../{.deploymentTests => .test}/linux.parameters.json | 0 .../{.deploymentTests => .test}/windows.autmg.parameters.json | 0 .../{.deploymentTests => .test}/windows.min.parameters.json | 0 .../{.deploymentTests => .test}/windows.parameters.json | 0 .../budgets/{.deploymentTests => .test}/parameters.json | 0 .../containerGroups/{.deploymentTests => .test}/parameters.json | 0 .../registries/{.deploymentTests => .test}/encr.parameters.json | 0 .../registries/{.deploymentTests => .test}/min.parameters.json | 0 .../registries/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/azure.parameters.json | 0 .../{.deploymentTests => .test}/kubenet.parameters.json | 0 .../factories/{.deploymentTests => .test}/parameters.json | 0 .../backupVaults/{.deploymentTests => .test}/min.parameters.json | 0 .../backupVaults/{.deploymentTests => .test}/parameters.json | 0 .../workspaces/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/min.parameters.json | 0 .../applicationgroups/{.deploymentTests => .test}/parameters.json | 0 .../hostpools/{.deploymentTests => .test}/parameters.json | 0 .../scalingplans/{.deploymentTests => .test}/min.parameters.json | 0 .../workspaces/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/mongodb.parameters.json | 0 .../{.deploymentTests => .test}/plain.parameters.json | 0 .../{.deploymentTests => .test}/sqldb.parameters.json | 0 .../systemTopics/{.deploymentTests => .test}/min.parameters.json | 0 .../systemTopics/{.deploymentTests => .test}/parameters.json | 0 .../topics/{.deploymentTests => .test}/parameters.json | 0 .../namespaces/{.deploymentTests => .test}/min.parameters.json | 0 .../namespaces/{.deploymentTests => .test}/parameters.json | 0 .../healthBots/{.deploymentTests => .test}/parameters.json | 0 .../actionGroups/{.deploymentTests => .test}/parameters.json | 0 .../activityLogAlerts/{.deploymentTests => .test}/parameters.json | 0 .../components/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/parameters.json | 0 .../metricAlerts/{.deploymentTests => .test}/parameters.json | 0 .../privateLinkScopes/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/parameters.json | 0 .../vaults/{.deploymentTests => .test}/min.parameters.json | 0 .../vaults/{.deploymentTests => .test}/parameters.json | 0 .../extensions/{.deploymentTests => .test}/min.parameters.json | 0 .../extensions/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/min.parameters.json | 0 .../{.deploymentTests => .test}/parameters.json | 0 .../workflows/{.deploymentTests => .test}/parameters.json | 0 .../workspaces/{.deploymentTests => .test}/min.parameters.json | 0 .../workspaces/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/rg.parameters.json | 0 .../managementGroups/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/min.parameters.json | 0 .../{.deploymentTests => .test}/nfs3.parameters.json | 0 .../{.deploymentTests => .test}/nfs41.parameters.json | 0 .../{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/addpip.parameters.json | 0 .../{.deploymentTests => .test}/custompip.parameters.json | 0 .../{.deploymentTests => .test}/min.parameters.json | 0 .../azureFirewalls/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/addpip.parameters.json | 0 .../{.deploymentTests => .test}/custompip.parameters.json | 0 .../bastionHosts/{.deploymentTests => .test}/min.parameters.json | 0 .../bastionHosts/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/vnet2vnet.parameters.json | 0 .../{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/min.parameters.json | 0 .../firewallPolicies/{.deploymentTests => .test}/parameters.json | 0 .../frontDoors/{.deploymentTests => .test}/parameters.json | 0 .../ipGroups/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/internal.parameters.json | 0 .../loadBalancers/{.deploymentTests => .test}/min.parameters.json | 0 .../loadBalancers/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/parameters.json | 0 .../natGateways/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/min.parameters.json | 0 .../networkInterfaces/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/min.parameters.json | 0 .../{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/min.parameters.json | 0 .../networkWatchers/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/min.parameters.json | 0 .../privateDnsZones/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/min.parameters.json | 0 .../privateEndpoints/{.deploymentTests => .test}/parameters.json | 0 .../publicIPAddresses/{.deploymentTests => .test}/parameters.json | 0 .../publicIPPrefixes/{.deploymentTests => .test}/parameters.json | 0 .../routeTables/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/parameters.json | 0 .../virtualHubs/{.deploymentTests => .test}/min.parameters.json | 0 .../virtualHubs/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/expressRoute.parameters.json | 0 .../{.deploymentTests => .test}/vpn.parameters.json | 0 .../{.deploymentTests => .test}/min.parameters.json | 0 .../virtualNetworks/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/vnetPeering.parameters.json | 0 .../virtualWans/{.deploymentTests => .test}/min.parameters.json | 0 .../virtualWans/{.deploymentTests => .test}/parameters.json | 0 .../vpnGateways/{.deploymentTests => .test}/min.parameters.json | 0 .../vpnGateways/{.deploymentTests => .test}/parameters.json | 0 .../vpnSites/{.deploymentTests => .test}/min.parameters.json | 0 .../vpnSites/{.deploymentTests => .test}/parameters.json | 0 .../workspaces/{.deploymentTests => .test}/min.parameters.json | 0 .../workspaces/{.deploymentTests => .test}/parameters.json | 0 .../solutions/{.deploymentTests => .test}/min.parameters.json | 0 .../solutions/{.deploymentTests => .test}/ms.parameters.json | 0 .../solutions/{.deploymentTests => .test}/nonms.parameters.json | 0 .../vaults/{.deploymentTests => .test}/dr.parameters.json | 0 .../vaults/{.deploymentTests => .test}/min.parameters.json | 0 .../vaults/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/cli.parameters.json | 0 .../{.deploymentTests => .test}/ps.parameters.json | 0 .../resourceGroups/{.deploymentTests => .test}/parameters.json | 0 .../tags/{.deploymentTests => .test}/min.parameters.json | 0 .../tags/{.deploymentTests => .test}/rg.parameters.json | 0 .../tags/{.deploymentTests => .test}/sub.parameters.json | 0 .../{.deploymentTests => .test}/parameters.json | 0 .../namespaces/{.deploymentTests => .test}/min.parameters.json | 0 .../namespaces/{.deploymentTests => .test}/parameters.json | 0 .../clusters/{.deploymentTests => .test}/cert.parameters.json | 0 .../clusters/{.deploymentTests => .test}/full.parameters.json | 0 .../clusters/{.deploymentTests => .test}/min.parameters.json | 0 .../managedInstances/{.deploymentTests => .test}/parameters.json | 0 .../servers/{.deploymentTests => .test}/admin.parameters.json | 0 .../servers/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/encr.parameters.json | 0 .../{.deploymentTests => .test}/min.parameters.json | 0 .../{.deploymentTests => .test}/nfs.parameters.json | 0 .../storageAccounts/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/v1.parameters.json | 0 .../{.deploymentTests => .test}/min.parameters.json | 0 .../privateLinkHubs/{.deploymentTests => .test}/parameters.json | 0 .../imageTemplates/{.deploymentTests => .test}/parameters.json | 0 .../connections/{.deploymentTests => .test}/parameters.json | 0 .../{.deploymentTests => .test}/asev2.parameters.json | 0 .../{.deploymentTests => .test}/asev3.parameters.json | 0 .../serverfarms/{.deploymentTests => .test}/parameters.json | 0 .../sites/{.deploymentTests => .test}/fa.min.parameters.json | 0 .../sites/{.deploymentTests => .test}/fa.parameters.json | 0 .../sites/{.deploymentTests => .test}/wa.min.parameters.json | 0 .../sites/{.deploymentTests => .test}/wa.parameters.json | 0 .../staticSites/{.deploymentTests => .test}/min.parameters.json | 0 .../staticSites/{.deploymentTests => .test}/parameters.json | 0 210 files changed, 0 insertions(+), 0 deletions(-) rename modules/Microsoft.AAD/DomainServices/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.AnalysisServices/servers/{.deploymentTests => .test}/max.parameters.json (100%) rename modules/Microsoft.AnalysisServices/servers/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.AnalysisServices/servers/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.ApiManagement/service/{.deploymentTests => .test}/max.parameters.json (100%) rename modules/Microsoft.ApiManagement/service/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.ApiManagement/service/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.AppConfiguration/configurationStores/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.AppConfiguration/configurationStores/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Authorization/locks/{.deploymentTests => .test}/rg.parameters.json (100%) rename modules/Microsoft.Authorization/policyAssignments/{.deploymentTests => .test}/mg.min.parameters.json (100%) rename modules/Microsoft.Authorization/policyAssignments/{.deploymentTests => .test}/mg.parameters.json (100%) rename modules/Microsoft.Authorization/policyAssignments/{.deploymentTests => .test}/rg.min.parameters.json (100%) rename modules/Microsoft.Authorization/policyAssignments/{.deploymentTests => .test}/rg.parameters.json (100%) rename modules/Microsoft.Authorization/policyAssignments/{.deploymentTests => .test}/sub.min.parameters.json (100%) rename modules/Microsoft.Authorization/policyAssignments/{.deploymentTests => .test}/sub.parameters.json (100%) rename modules/Microsoft.Authorization/policyDefinitions/{.deploymentTests => .test}/mg.min.parameters.json (100%) rename modules/Microsoft.Authorization/policyDefinitions/{.deploymentTests => .test}/mg.parameters.json (100%) rename modules/Microsoft.Authorization/policyDefinitions/{.deploymentTests => .test}/sub.min.parameters.json (100%) rename modules/Microsoft.Authorization/policyDefinitions/{.deploymentTests => .test}/sub.parameters.json (100%) rename modules/Microsoft.Authorization/policyExemptions/{.deploymentTests => .test}/mg.min.parameters.json (100%) rename modules/Microsoft.Authorization/policyExemptions/{.deploymentTests => .test}/mg.parameters.json (100%) rename modules/Microsoft.Authorization/policyExemptions/{.deploymentTests => .test}/rg.min.parameters.json (100%) rename modules/Microsoft.Authorization/policyExemptions/{.deploymentTests => .test}/rg.parameters.json (100%) rename modules/Microsoft.Authorization/policyExemptions/{.deploymentTests => .test}/sub.min.parameters.json (100%) rename modules/Microsoft.Authorization/policyExemptions/{.deploymentTests => .test}/sub.parameters.json (100%) rename modules/Microsoft.Authorization/policySetDefinitions/{.deploymentTests => .test}/mg.min.parameters.json (100%) rename modules/Microsoft.Authorization/policySetDefinitions/{.deploymentTests => .test}/mg.parameters.json (100%) rename modules/Microsoft.Authorization/policySetDefinitions/{.deploymentTests => .test}/sub.min.parameters.json (100%) rename modules/Microsoft.Authorization/policySetDefinitions/{.deploymentTests => .test}/sub.parameters.json (100%) rename modules/Microsoft.Authorization/roleAssignments/{.deploymentTests => .test}/mg.min.parameters.json (100%) rename modules/Microsoft.Authorization/roleAssignments/{.deploymentTests => .test}/mg.parameters.json (100%) rename modules/Microsoft.Authorization/roleAssignments/{.deploymentTests => .test}/rg.min.parameters.json (100%) rename modules/Microsoft.Authorization/roleAssignments/{.deploymentTests => .test}/rg.parameters.json (100%) rename modules/Microsoft.Authorization/roleAssignments/{.deploymentTests => .test}/sub.min.parameters.json (100%) rename modules/Microsoft.Authorization/roleAssignments/{.deploymentTests => .test}/sub.parameters.json (100%) rename modules/Microsoft.Authorization/roleDefinitions/{.deploymentTests => .test}/mg.min.parameters.json (100%) rename modules/Microsoft.Authorization/roleDefinitions/{.deploymentTests => .test}/mg.parameters.json (100%) rename modules/Microsoft.Authorization/roleDefinitions/{.deploymentTests => .test}/rg.min.parameters.json (100%) rename modules/Microsoft.Authorization/roleDefinitions/{.deploymentTests => .test}/rg.parameters.json (100%) rename modules/Microsoft.Authorization/roleDefinitions/{.deploymentTests => .test}/sub.min.parameters.json (100%) rename modules/Microsoft.Authorization/roleDefinitions/{.deploymentTests => .test}/sub.parameters.json (100%) rename modules/Microsoft.Automation/automationAccounts/{.deploymentTests => .test}/encr.parameters.json (100%) rename modules/Microsoft.Automation/automationAccounts/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.Automation/automationAccounts/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Batch/batchAccounts/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.Batch/batchAccounts/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.CognitiveServices/accounts/{.deploymentTests => .test}/encr.parameters.json (100%) rename modules/Microsoft.CognitiveServices/accounts/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.CognitiveServices/accounts/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.CognitiveServices/accounts/{.deploymentTests => .test}/speech.parameters.json (100%) rename modules/Microsoft.Compute/availabilitySets/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.Compute/availabilitySets/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Compute/diskEncryptionSets/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Compute/disks/{.deploymentTests => .test}/image.parameters.json (100%) rename modules/Microsoft.Compute/disks/{.deploymentTests => .test}/import.parameters.json (100%) rename modules/Microsoft.Compute/disks/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.Compute/disks/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Compute/galleries/{.deploymentTests => .test}/images.parameters.json (100%) rename modules/Microsoft.Compute/galleries/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Compute/images/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Compute/proximityPlacementGroups/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Compute/virtualMachineScaleSets/{.deploymentTests => .test}/linux.min.parameters.json (100%) rename modules/Microsoft.Compute/virtualMachineScaleSets/{.deploymentTests => .test}/linux.parameters.json (100%) rename modules/Microsoft.Compute/virtualMachineScaleSets/{.deploymentTests => .test}/windows.min.parameters.json (100%) rename modules/Microsoft.Compute/virtualMachineScaleSets/{.deploymentTests => .test}/windows.parameters.json (100%) rename modules/Microsoft.Compute/virtualMachines/{.deploymentTests => .test}/linux.autmg.parameters.json (100%) rename modules/Microsoft.Compute/virtualMachines/{.deploymentTests => .test}/linux.min.parameters.json (100%) rename modules/Microsoft.Compute/virtualMachines/{.deploymentTests => .test}/linux.parameters.json (100%) rename modules/Microsoft.Compute/virtualMachines/{.deploymentTests => .test}/windows.autmg.parameters.json (100%) rename modules/Microsoft.Compute/virtualMachines/{.deploymentTests => .test}/windows.min.parameters.json (100%) rename modules/Microsoft.Compute/virtualMachines/{.deploymentTests => .test}/windows.parameters.json (100%) rename modules/Microsoft.Consumption/budgets/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.ContainerInstance/containerGroups/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.ContainerRegistry/registries/{.deploymentTests => .test}/encr.parameters.json (100%) rename modules/Microsoft.ContainerRegistry/registries/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.ContainerRegistry/registries/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.ContainerService/managedClusters/{.deploymentTests => .test}/azure.parameters.json (100%) rename modules/Microsoft.ContainerService/managedClusters/{.deploymentTests => .test}/kubenet.parameters.json (100%) rename modules/Microsoft.DataFactory/factories/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.DataProtection/backupVaults/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.DataProtection/backupVaults/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Databricks/workspaces/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.DesktopVirtualization/applicationgroups/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.DesktopVirtualization/applicationgroups/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.DesktopVirtualization/hostpools/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.DesktopVirtualization/scalingplans/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.DesktopVirtualization/workspaces/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.DocumentDB/databaseAccounts/{.deploymentTests => .test}/mongodb.parameters.json (100%) rename modules/Microsoft.DocumentDB/databaseAccounts/{.deploymentTests => .test}/plain.parameters.json (100%) rename modules/Microsoft.DocumentDB/databaseAccounts/{.deploymentTests => .test}/sqldb.parameters.json (100%) rename modules/Microsoft.EventGrid/systemTopics/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.EventGrid/systemTopics/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.EventGrid/topics/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.EventHub/namespaces/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.EventHub/namespaces/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.HealthBot/healthBots/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Insights/actionGroups/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Insights/activityLogAlerts/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Insights/components/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Insights/diagnosticSettings/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Insights/metricAlerts/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Insights/privateLinkScopes/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Insights/scheduledQueryRules/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.KeyVault/vaults/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.KeyVault/vaults/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.KubernetesConfiguration/extensions/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.KubernetesConfiguration/extensions/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.KubernetesConfiguration/fluxConfigurations/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.KubernetesConfiguration/fluxConfigurations/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Logic/workflows/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.MachineLearningServices/workspaces/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.MachineLearningServices/workspaces/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.ManagedIdentity/userAssignedIdentities/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.ManagedServices/registrationDefinitions/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.ManagedServices/registrationDefinitions/{.deploymentTests => .test}/rg.parameters.json (100%) rename modules/Microsoft.Management/managementGroups/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.NetApp/netAppAccounts/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.NetApp/netAppAccounts/{.deploymentTests => .test}/nfs3.parameters.json (100%) rename modules/Microsoft.NetApp/netAppAccounts/{.deploymentTests => .test}/nfs41.parameters.json (100%) rename modules/Microsoft.Network/applicationGateways/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/applicationSecurityGroups/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/azureFirewalls/{.deploymentTests => .test}/addpip.parameters.json (100%) rename modules/Microsoft.Network/azureFirewalls/{.deploymentTests => .test}/custompip.parameters.json (100%) rename modules/Microsoft.Network/azureFirewalls/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.Network/azureFirewalls/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/bastionHosts/{.deploymentTests => .test}/addpip.parameters.json (100%) rename modules/Microsoft.Network/bastionHosts/{.deploymentTests => .test}/custompip.parameters.json (100%) rename modules/Microsoft.Network/bastionHosts/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.Network/bastionHosts/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/connections/{.deploymentTests => .test}/vnet2vnet.parameters.json (100%) rename modules/Microsoft.Network/ddosProtectionPlans/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/expressRouteCircuits/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/firewallPolicies/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.Network/firewallPolicies/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/frontDoors/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/ipGroups/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/loadBalancers/{.deploymentTests => .test}/internal.parameters.json (100%) rename modules/Microsoft.Network/loadBalancers/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.Network/loadBalancers/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/localNetworkGateways/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/natGateways/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/networkInterfaces/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.Network/networkInterfaces/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/networkSecurityGroups/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.Network/networkSecurityGroups/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/networkWatchers/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.Network/networkWatchers/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/privateDnsZones/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.Network/privateDnsZones/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/privateEndpoints/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.Network/privateEndpoints/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/publicIPAddresses/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/publicIPPrefixes/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/routeTables/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/trafficmanagerprofiles/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/virtualHubs/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.Network/virtualHubs/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/virtualNetworkGateways/{.deploymentTests => .test}/expressRoute.parameters.json (100%) rename modules/Microsoft.Network/virtualNetworkGateways/{.deploymentTests => .test}/vpn.parameters.json (100%) rename modules/Microsoft.Network/virtualNetworks/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.Network/virtualNetworks/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/virtualNetworks/{.deploymentTests => .test}/vnetPeering.parameters.json (100%) rename modules/Microsoft.Network/virtualWans/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.Network/virtualWans/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/vpnGateways/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.Network/vpnGateways/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Network/vpnSites/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.Network/vpnSites/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.OperationalInsights/workspaces/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.OperationalInsights/workspaces/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.OperationsManagement/solutions/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.OperationsManagement/solutions/{.deploymentTests => .test}/ms.parameters.json (100%) rename modules/Microsoft.OperationsManagement/solutions/{.deploymentTests => .test}/nonms.parameters.json (100%) rename modules/Microsoft.RecoveryServices/vaults/{.deploymentTests => .test}/dr.parameters.json (100%) rename modules/Microsoft.RecoveryServices/vaults/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.RecoveryServices/vaults/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Resources/deploymentScripts/{.deploymentTests => .test}/cli.parameters.json (100%) rename modules/Microsoft.Resources/deploymentScripts/{.deploymentTests => .test}/ps.parameters.json (100%) rename modules/Microsoft.Resources/resourceGroups/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Resources/tags/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.Resources/tags/{.deploymentTests => .test}/rg.parameters.json (100%) rename modules/Microsoft.Resources/tags/{.deploymentTests => .test}/sub.parameters.json (100%) rename modules/Microsoft.Security/azureSecurityCenter/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.ServiceBus/namespaces/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.ServiceBus/namespaces/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.ServiceFabric/clusters/{.deploymentTests => .test}/cert.parameters.json (100%) rename modules/Microsoft.ServiceFabric/clusters/{.deploymentTests => .test}/full.parameters.json (100%) rename modules/Microsoft.ServiceFabric/clusters/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.Sql/managedInstances/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Sql/servers/{.deploymentTests => .test}/admin.parameters.json (100%) rename modules/Microsoft.Sql/servers/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Storage/storageAccounts/{.deploymentTests => .test}/encr.parameters.json (100%) rename modules/Microsoft.Storage/storageAccounts/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.Storage/storageAccounts/{.deploymentTests => .test}/nfs.parameters.json (100%) rename modules/Microsoft.Storage/storageAccounts/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Storage/storageAccounts/{.deploymentTests => .test}/v1.parameters.json (100%) rename modules/Microsoft.Synapse/privateLinkHubs/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.Synapse/privateLinkHubs/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.VirtualMachineImages/imageTemplates/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Web/connections/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Web/hostingEnvironments/{.deploymentTests => .test}/asev2.parameters.json (100%) rename modules/Microsoft.Web/hostingEnvironments/{.deploymentTests => .test}/asev3.parameters.json (100%) rename modules/Microsoft.Web/serverfarms/{.deploymentTests => .test}/parameters.json (100%) rename modules/Microsoft.Web/sites/{.deploymentTests => .test}/fa.min.parameters.json (100%) rename modules/Microsoft.Web/sites/{.deploymentTests => .test}/fa.parameters.json (100%) rename modules/Microsoft.Web/sites/{.deploymentTests => .test}/wa.min.parameters.json (100%) rename modules/Microsoft.Web/sites/{.deploymentTests => .test}/wa.parameters.json (100%) rename modules/Microsoft.Web/staticSites/{.deploymentTests => .test}/min.parameters.json (100%) rename modules/Microsoft.Web/staticSites/{.deploymentTests => .test}/parameters.json (100%) diff --git a/modules/Microsoft.AAD/DomainServices/.deploymentTests/parameters.json b/modules/Microsoft.AAD/DomainServices/.test/parameters.json similarity index 100% rename from modules/Microsoft.AAD/DomainServices/.deploymentTests/parameters.json rename to modules/Microsoft.AAD/DomainServices/.test/parameters.json diff --git a/modules/Microsoft.AnalysisServices/servers/.deploymentTests/max.parameters.json b/modules/Microsoft.AnalysisServices/servers/.test/max.parameters.json similarity index 100% rename from modules/Microsoft.AnalysisServices/servers/.deploymentTests/max.parameters.json rename to modules/Microsoft.AnalysisServices/servers/.test/max.parameters.json diff --git a/modules/Microsoft.AnalysisServices/servers/.deploymentTests/min.parameters.json b/modules/Microsoft.AnalysisServices/servers/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.AnalysisServices/servers/.deploymentTests/min.parameters.json rename to modules/Microsoft.AnalysisServices/servers/.test/min.parameters.json diff --git a/modules/Microsoft.AnalysisServices/servers/.deploymentTests/parameters.json b/modules/Microsoft.AnalysisServices/servers/.test/parameters.json similarity index 100% rename from modules/Microsoft.AnalysisServices/servers/.deploymentTests/parameters.json rename to modules/Microsoft.AnalysisServices/servers/.test/parameters.json diff --git a/modules/Microsoft.ApiManagement/service/.deploymentTests/max.parameters.json b/modules/Microsoft.ApiManagement/service/.test/max.parameters.json similarity index 100% rename from modules/Microsoft.ApiManagement/service/.deploymentTests/max.parameters.json rename to modules/Microsoft.ApiManagement/service/.test/max.parameters.json diff --git a/modules/Microsoft.ApiManagement/service/.deploymentTests/min.parameters.json b/modules/Microsoft.ApiManagement/service/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.ApiManagement/service/.deploymentTests/min.parameters.json rename to modules/Microsoft.ApiManagement/service/.test/min.parameters.json diff --git a/modules/Microsoft.ApiManagement/service/.deploymentTests/parameters.json b/modules/Microsoft.ApiManagement/service/.test/parameters.json similarity index 100% rename from modules/Microsoft.ApiManagement/service/.deploymentTests/parameters.json rename to modules/Microsoft.ApiManagement/service/.test/parameters.json diff --git a/modules/Microsoft.AppConfiguration/configurationStores/.deploymentTests/min.parameters.json b/modules/Microsoft.AppConfiguration/configurationStores/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.AppConfiguration/configurationStores/.deploymentTests/min.parameters.json rename to modules/Microsoft.AppConfiguration/configurationStores/.test/min.parameters.json diff --git a/modules/Microsoft.AppConfiguration/configurationStores/.deploymentTests/parameters.json b/modules/Microsoft.AppConfiguration/configurationStores/.test/parameters.json similarity index 100% rename from modules/Microsoft.AppConfiguration/configurationStores/.deploymentTests/parameters.json rename to modules/Microsoft.AppConfiguration/configurationStores/.test/parameters.json diff --git a/modules/Microsoft.Authorization/locks/.deploymentTests/rg.parameters.json b/modules/Microsoft.Authorization/locks/.test/rg.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/locks/.deploymentTests/rg.parameters.json rename to modules/Microsoft.Authorization/locks/.test/rg.parameters.json diff --git a/modules/Microsoft.Authorization/policyAssignments/.deploymentTests/mg.min.parameters.json b/modules/Microsoft.Authorization/policyAssignments/.test/mg.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyAssignments/.deploymentTests/mg.min.parameters.json rename to modules/Microsoft.Authorization/policyAssignments/.test/mg.min.parameters.json diff --git a/modules/Microsoft.Authorization/policyAssignments/.deploymentTests/mg.parameters.json b/modules/Microsoft.Authorization/policyAssignments/.test/mg.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyAssignments/.deploymentTests/mg.parameters.json rename to modules/Microsoft.Authorization/policyAssignments/.test/mg.parameters.json diff --git a/modules/Microsoft.Authorization/policyAssignments/.deploymentTests/rg.min.parameters.json b/modules/Microsoft.Authorization/policyAssignments/.test/rg.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyAssignments/.deploymentTests/rg.min.parameters.json rename to modules/Microsoft.Authorization/policyAssignments/.test/rg.min.parameters.json diff --git a/modules/Microsoft.Authorization/policyAssignments/.deploymentTests/rg.parameters.json b/modules/Microsoft.Authorization/policyAssignments/.test/rg.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyAssignments/.deploymentTests/rg.parameters.json rename to modules/Microsoft.Authorization/policyAssignments/.test/rg.parameters.json diff --git a/modules/Microsoft.Authorization/policyAssignments/.deploymentTests/sub.min.parameters.json b/modules/Microsoft.Authorization/policyAssignments/.test/sub.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyAssignments/.deploymentTests/sub.min.parameters.json rename to modules/Microsoft.Authorization/policyAssignments/.test/sub.min.parameters.json diff --git a/modules/Microsoft.Authorization/policyAssignments/.deploymentTests/sub.parameters.json b/modules/Microsoft.Authorization/policyAssignments/.test/sub.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyAssignments/.deploymentTests/sub.parameters.json rename to modules/Microsoft.Authorization/policyAssignments/.test/sub.parameters.json diff --git a/modules/Microsoft.Authorization/policyDefinitions/.deploymentTests/mg.min.parameters.json b/modules/Microsoft.Authorization/policyDefinitions/.test/mg.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyDefinitions/.deploymentTests/mg.min.parameters.json rename to modules/Microsoft.Authorization/policyDefinitions/.test/mg.min.parameters.json diff --git a/modules/Microsoft.Authorization/policyDefinitions/.deploymentTests/mg.parameters.json b/modules/Microsoft.Authorization/policyDefinitions/.test/mg.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyDefinitions/.deploymentTests/mg.parameters.json rename to modules/Microsoft.Authorization/policyDefinitions/.test/mg.parameters.json diff --git a/modules/Microsoft.Authorization/policyDefinitions/.deploymentTests/sub.min.parameters.json b/modules/Microsoft.Authorization/policyDefinitions/.test/sub.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyDefinitions/.deploymentTests/sub.min.parameters.json rename to modules/Microsoft.Authorization/policyDefinitions/.test/sub.min.parameters.json diff --git a/modules/Microsoft.Authorization/policyDefinitions/.deploymentTests/sub.parameters.json b/modules/Microsoft.Authorization/policyDefinitions/.test/sub.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyDefinitions/.deploymentTests/sub.parameters.json rename to modules/Microsoft.Authorization/policyDefinitions/.test/sub.parameters.json diff --git a/modules/Microsoft.Authorization/policyExemptions/.deploymentTests/mg.min.parameters.json b/modules/Microsoft.Authorization/policyExemptions/.test/mg.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyExemptions/.deploymentTests/mg.min.parameters.json rename to modules/Microsoft.Authorization/policyExemptions/.test/mg.min.parameters.json diff --git a/modules/Microsoft.Authorization/policyExemptions/.deploymentTests/mg.parameters.json b/modules/Microsoft.Authorization/policyExemptions/.test/mg.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyExemptions/.deploymentTests/mg.parameters.json rename to modules/Microsoft.Authorization/policyExemptions/.test/mg.parameters.json diff --git a/modules/Microsoft.Authorization/policyExemptions/.deploymentTests/rg.min.parameters.json b/modules/Microsoft.Authorization/policyExemptions/.test/rg.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyExemptions/.deploymentTests/rg.min.parameters.json rename to modules/Microsoft.Authorization/policyExemptions/.test/rg.min.parameters.json diff --git a/modules/Microsoft.Authorization/policyExemptions/.deploymentTests/rg.parameters.json b/modules/Microsoft.Authorization/policyExemptions/.test/rg.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyExemptions/.deploymentTests/rg.parameters.json rename to modules/Microsoft.Authorization/policyExemptions/.test/rg.parameters.json diff --git a/modules/Microsoft.Authorization/policyExemptions/.deploymentTests/sub.min.parameters.json b/modules/Microsoft.Authorization/policyExemptions/.test/sub.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyExemptions/.deploymentTests/sub.min.parameters.json rename to modules/Microsoft.Authorization/policyExemptions/.test/sub.min.parameters.json diff --git a/modules/Microsoft.Authorization/policyExemptions/.deploymentTests/sub.parameters.json b/modules/Microsoft.Authorization/policyExemptions/.test/sub.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policyExemptions/.deploymentTests/sub.parameters.json rename to modules/Microsoft.Authorization/policyExemptions/.test/sub.parameters.json diff --git a/modules/Microsoft.Authorization/policySetDefinitions/.deploymentTests/mg.min.parameters.json b/modules/Microsoft.Authorization/policySetDefinitions/.test/mg.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policySetDefinitions/.deploymentTests/mg.min.parameters.json rename to modules/Microsoft.Authorization/policySetDefinitions/.test/mg.min.parameters.json diff --git a/modules/Microsoft.Authorization/policySetDefinitions/.deploymentTests/mg.parameters.json b/modules/Microsoft.Authorization/policySetDefinitions/.test/mg.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policySetDefinitions/.deploymentTests/mg.parameters.json rename to modules/Microsoft.Authorization/policySetDefinitions/.test/mg.parameters.json diff --git a/modules/Microsoft.Authorization/policySetDefinitions/.deploymentTests/sub.min.parameters.json b/modules/Microsoft.Authorization/policySetDefinitions/.test/sub.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policySetDefinitions/.deploymentTests/sub.min.parameters.json rename to modules/Microsoft.Authorization/policySetDefinitions/.test/sub.min.parameters.json diff --git a/modules/Microsoft.Authorization/policySetDefinitions/.deploymentTests/sub.parameters.json b/modules/Microsoft.Authorization/policySetDefinitions/.test/sub.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/policySetDefinitions/.deploymentTests/sub.parameters.json rename to modules/Microsoft.Authorization/policySetDefinitions/.test/sub.parameters.json diff --git a/modules/Microsoft.Authorization/roleAssignments/.deploymentTests/mg.min.parameters.json b/modules/Microsoft.Authorization/roleAssignments/.test/mg.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/roleAssignments/.deploymentTests/mg.min.parameters.json rename to modules/Microsoft.Authorization/roleAssignments/.test/mg.min.parameters.json diff --git a/modules/Microsoft.Authorization/roleAssignments/.deploymentTests/mg.parameters.json b/modules/Microsoft.Authorization/roleAssignments/.test/mg.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/roleAssignments/.deploymentTests/mg.parameters.json rename to modules/Microsoft.Authorization/roleAssignments/.test/mg.parameters.json diff --git a/modules/Microsoft.Authorization/roleAssignments/.deploymentTests/rg.min.parameters.json b/modules/Microsoft.Authorization/roleAssignments/.test/rg.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/roleAssignments/.deploymentTests/rg.min.parameters.json rename to modules/Microsoft.Authorization/roleAssignments/.test/rg.min.parameters.json diff --git a/modules/Microsoft.Authorization/roleAssignments/.deploymentTests/rg.parameters.json b/modules/Microsoft.Authorization/roleAssignments/.test/rg.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/roleAssignments/.deploymentTests/rg.parameters.json rename to modules/Microsoft.Authorization/roleAssignments/.test/rg.parameters.json diff --git a/modules/Microsoft.Authorization/roleAssignments/.deploymentTests/sub.min.parameters.json b/modules/Microsoft.Authorization/roleAssignments/.test/sub.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/roleAssignments/.deploymentTests/sub.min.parameters.json rename to modules/Microsoft.Authorization/roleAssignments/.test/sub.min.parameters.json diff --git a/modules/Microsoft.Authorization/roleAssignments/.deploymentTests/sub.parameters.json b/modules/Microsoft.Authorization/roleAssignments/.test/sub.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/roleAssignments/.deploymentTests/sub.parameters.json rename to modules/Microsoft.Authorization/roleAssignments/.test/sub.parameters.json diff --git a/modules/Microsoft.Authorization/roleDefinitions/.deploymentTests/mg.min.parameters.json b/modules/Microsoft.Authorization/roleDefinitions/.test/mg.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/roleDefinitions/.deploymentTests/mg.min.parameters.json rename to modules/Microsoft.Authorization/roleDefinitions/.test/mg.min.parameters.json diff --git a/modules/Microsoft.Authorization/roleDefinitions/.deploymentTests/mg.parameters.json b/modules/Microsoft.Authorization/roleDefinitions/.test/mg.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/roleDefinitions/.deploymentTests/mg.parameters.json rename to modules/Microsoft.Authorization/roleDefinitions/.test/mg.parameters.json diff --git a/modules/Microsoft.Authorization/roleDefinitions/.deploymentTests/rg.min.parameters.json b/modules/Microsoft.Authorization/roleDefinitions/.test/rg.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/roleDefinitions/.deploymentTests/rg.min.parameters.json rename to modules/Microsoft.Authorization/roleDefinitions/.test/rg.min.parameters.json diff --git a/modules/Microsoft.Authorization/roleDefinitions/.deploymentTests/rg.parameters.json b/modules/Microsoft.Authorization/roleDefinitions/.test/rg.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/roleDefinitions/.deploymentTests/rg.parameters.json rename to modules/Microsoft.Authorization/roleDefinitions/.test/rg.parameters.json diff --git a/modules/Microsoft.Authorization/roleDefinitions/.deploymentTests/sub.min.parameters.json b/modules/Microsoft.Authorization/roleDefinitions/.test/sub.min.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/roleDefinitions/.deploymentTests/sub.min.parameters.json rename to modules/Microsoft.Authorization/roleDefinitions/.test/sub.min.parameters.json diff --git a/modules/Microsoft.Authorization/roleDefinitions/.deploymentTests/sub.parameters.json b/modules/Microsoft.Authorization/roleDefinitions/.test/sub.parameters.json similarity index 100% rename from modules/Microsoft.Authorization/roleDefinitions/.deploymentTests/sub.parameters.json rename to modules/Microsoft.Authorization/roleDefinitions/.test/sub.parameters.json diff --git a/modules/Microsoft.Automation/automationAccounts/.deploymentTests/encr.parameters.json b/modules/Microsoft.Automation/automationAccounts/.test/encr.parameters.json similarity index 100% rename from modules/Microsoft.Automation/automationAccounts/.deploymentTests/encr.parameters.json rename to modules/Microsoft.Automation/automationAccounts/.test/encr.parameters.json diff --git a/modules/Microsoft.Automation/automationAccounts/.deploymentTests/min.parameters.json b/modules/Microsoft.Automation/automationAccounts/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.Automation/automationAccounts/.deploymentTests/min.parameters.json rename to modules/Microsoft.Automation/automationAccounts/.test/min.parameters.json diff --git a/modules/Microsoft.Automation/automationAccounts/.deploymentTests/parameters.json b/modules/Microsoft.Automation/automationAccounts/.test/parameters.json similarity index 100% rename from modules/Microsoft.Automation/automationAccounts/.deploymentTests/parameters.json rename to modules/Microsoft.Automation/automationAccounts/.test/parameters.json diff --git a/modules/Microsoft.Batch/batchAccounts/.deploymentTests/min.parameters.json b/modules/Microsoft.Batch/batchAccounts/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.Batch/batchAccounts/.deploymentTests/min.parameters.json rename to modules/Microsoft.Batch/batchAccounts/.test/min.parameters.json diff --git a/modules/Microsoft.Batch/batchAccounts/.deploymentTests/parameters.json b/modules/Microsoft.Batch/batchAccounts/.test/parameters.json similarity index 100% rename from modules/Microsoft.Batch/batchAccounts/.deploymentTests/parameters.json rename to modules/Microsoft.Batch/batchAccounts/.test/parameters.json diff --git a/modules/Microsoft.CognitiveServices/accounts/.deploymentTests/encr.parameters.json b/modules/Microsoft.CognitiveServices/accounts/.test/encr.parameters.json similarity index 100% rename from modules/Microsoft.CognitiveServices/accounts/.deploymentTests/encr.parameters.json rename to modules/Microsoft.CognitiveServices/accounts/.test/encr.parameters.json diff --git a/modules/Microsoft.CognitiveServices/accounts/.deploymentTests/min.parameters.json b/modules/Microsoft.CognitiveServices/accounts/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.CognitiveServices/accounts/.deploymentTests/min.parameters.json rename to modules/Microsoft.CognitiveServices/accounts/.test/min.parameters.json diff --git a/modules/Microsoft.CognitiveServices/accounts/.deploymentTests/parameters.json b/modules/Microsoft.CognitiveServices/accounts/.test/parameters.json similarity index 100% rename from modules/Microsoft.CognitiveServices/accounts/.deploymentTests/parameters.json rename to modules/Microsoft.CognitiveServices/accounts/.test/parameters.json diff --git a/modules/Microsoft.CognitiveServices/accounts/.deploymentTests/speech.parameters.json b/modules/Microsoft.CognitiveServices/accounts/.test/speech.parameters.json similarity index 100% rename from modules/Microsoft.CognitiveServices/accounts/.deploymentTests/speech.parameters.json rename to modules/Microsoft.CognitiveServices/accounts/.test/speech.parameters.json diff --git a/modules/Microsoft.Compute/availabilitySets/.deploymentTests/min.parameters.json b/modules/Microsoft.Compute/availabilitySets/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.Compute/availabilitySets/.deploymentTests/min.parameters.json rename to modules/Microsoft.Compute/availabilitySets/.test/min.parameters.json diff --git a/modules/Microsoft.Compute/availabilitySets/.deploymentTests/parameters.json b/modules/Microsoft.Compute/availabilitySets/.test/parameters.json similarity index 100% rename from modules/Microsoft.Compute/availabilitySets/.deploymentTests/parameters.json rename to modules/Microsoft.Compute/availabilitySets/.test/parameters.json diff --git a/modules/Microsoft.Compute/diskEncryptionSets/.deploymentTests/parameters.json b/modules/Microsoft.Compute/diskEncryptionSets/.test/parameters.json similarity index 100% rename from modules/Microsoft.Compute/diskEncryptionSets/.deploymentTests/parameters.json rename to modules/Microsoft.Compute/diskEncryptionSets/.test/parameters.json diff --git a/modules/Microsoft.Compute/disks/.deploymentTests/image.parameters.json b/modules/Microsoft.Compute/disks/.test/image.parameters.json similarity index 100% rename from modules/Microsoft.Compute/disks/.deploymentTests/image.parameters.json rename to modules/Microsoft.Compute/disks/.test/image.parameters.json diff --git a/modules/Microsoft.Compute/disks/.deploymentTests/import.parameters.json b/modules/Microsoft.Compute/disks/.test/import.parameters.json similarity index 100% rename from modules/Microsoft.Compute/disks/.deploymentTests/import.parameters.json rename to modules/Microsoft.Compute/disks/.test/import.parameters.json diff --git a/modules/Microsoft.Compute/disks/.deploymentTests/min.parameters.json b/modules/Microsoft.Compute/disks/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.Compute/disks/.deploymentTests/min.parameters.json rename to modules/Microsoft.Compute/disks/.test/min.parameters.json diff --git a/modules/Microsoft.Compute/disks/.deploymentTests/parameters.json b/modules/Microsoft.Compute/disks/.test/parameters.json similarity index 100% rename from modules/Microsoft.Compute/disks/.deploymentTests/parameters.json rename to modules/Microsoft.Compute/disks/.test/parameters.json diff --git a/modules/Microsoft.Compute/galleries/.deploymentTests/images.parameters.json b/modules/Microsoft.Compute/galleries/.test/images.parameters.json similarity index 100% rename from modules/Microsoft.Compute/galleries/.deploymentTests/images.parameters.json rename to modules/Microsoft.Compute/galleries/.test/images.parameters.json diff --git a/modules/Microsoft.Compute/galleries/.deploymentTests/parameters.json b/modules/Microsoft.Compute/galleries/.test/parameters.json similarity index 100% rename from modules/Microsoft.Compute/galleries/.deploymentTests/parameters.json rename to modules/Microsoft.Compute/galleries/.test/parameters.json diff --git a/modules/Microsoft.Compute/images/.deploymentTests/parameters.json b/modules/Microsoft.Compute/images/.test/parameters.json similarity index 100% rename from modules/Microsoft.Compute/images/.deploymentTests/parameters.json rename to modules/Microsoft.Compute/images/.test/parameters.json diff --git a/modules/Microsoft.Compute/proximityPlacementGroups/.deploymentTests/parameters.json b/modules/Microsoft.Compute/proximityPlacementGroups/.test/parameters.json similarity index 100% rename from modules/Microsoft.Compute/proximityPlacementGroups/.deploymentTests/parameters.json rename to modules/Microsoft.Compute/proximityPlacementGroups/.test/parameters.json diff --git a/modules/Microsoft.Compute/virtualMachineScaleSets/.deploymentTests/linux.min.parameters.json b/modules/Microsoft.Compute/virtualMachineScaleSets/.test/linux.min.parameters.json similarity index 100% rename from modules/Microsoft.Compute/virtualMachineScaleSets/.deploymentTests/linux.min.parameters.json rename to modules/Microsoft.Compute/virtualMachineScaleSets/.test/linux.min.parameters.json diff --git a/modules/Microsoft.Compute/virtualMachineScaleSets/.deploymentTests/linux.parameters.json b/modules/Microsoft.Compute/virtualMachineScaleSets/.test/linux.parameters.json similarity index 100% rename from modules/Microsoft.Compute/virtualMachineScaleSets/.deploymentTests/linux.parameters.json rename to modules/Microsoft.Compute/virtualMachineScaleSets/.test/linux.parameters.json diff --git a/modules/Microsoft.Compute/virtualMachineScaleSets/.deploymentTests/windows.min.parameters.json b/modules/Microsoft.Compute/virtualMachineScaleSets/.test/windows.min.parameters.json similarity index 100% rename from modules/Microsoft.Compute/virtualMachineScaleSets/.deploymentTests/windows.min.parameters.json rename to modules/Microsoft.Compute/virtualMachineScaleSets/.test/windows.min.parameters.json diff --git a/modules/Microsoft.Compute/virtualMachineScaleSets/.deploymentTests/windows.parameters.json b/modules/Microsoft.Compute/virtualMachineScaleSets/.test/windows.parameters.json similarity index 100% rename from modules/Microsoft.Compute/virtualMachineScaleSets/.deploymentTests/windows.parameters.json rename to modules/Microsoft.Compute/virtualMachineScaleSets/.test/windows.parameters.json diff --git a/modules/Microsoft.Compute/virtualMachines/.deploymentTests/linux.autmg.parameters.json b/modules/Microsoft.Compute/virtualMachines/.test/linux.autmg.parameters.json similarity index 100% rename from modules/Microsoft.Compute/virtualMachines/.deploymentTests/linux.autmg.parameters.json rename to modules/Microsoft.Compute/virtualMachines/.test/linux.autmg.parameters.json diff --git a/modules/Microsoft.Compute/virtualMachines/.deploymentTests/linux.min.parameters.json b/modules/Microsoft.Compute/virtualMachines/.test/linux.min.parameters.json similarity index 100% rename from modules/Microsoft.Compute/virtualMachines/.deploymentTests/linux.min.parameters.json rename to modules/Microsoft.Compute/virtualMachines/.test/linux.min.parameters.json diff --git a/modules/Microsoft.Compute/virtualMachines/.deploymentTests/linux.parameters.json b/modules/Microsoft.Compute/virtualMachines/.test/linux.parameters.json similarity index 100% rename from modules/Microsoft.Compute/virtualMachines/.deploymentTests/linux.parameters.json rename to modules/Microsoft.Compute/virtualMachines/.test/linux.parameters.json diff --git a/modules/Microsoft.Compute/virtualMachines/.deploymentTests/windows.autmg.parameters.json b/modules/Microsoft.Compute/virtualMachines/.test/windows.autmg.parameters.json similarity index 100% rename from modules/Microsoft.Compute/virtualMachines/.deploymentTests/windows.autmg.parameters.json rename to modules/Microsoft.Compute/virtualMachines/.test/windows.autmg.parameters.json diff --git a/modules/Microsoft.Compute/virtualMachines/.deploymentTests/windows.min.parameters.json b/modules/Microsoft.Compute/virtualMachines/.test/windows.min.parameters.json similarity index 100% rename from modules/Microsoft.Compute/virtualMachines/.deploymentTests/windows.min.parameters.json rename to modules/Microsoft.Compute/virtualMachines/.test/windows.min.parameters.json diff --git a/modules/Microsoft.Compute/virtualMachines/.deploymentTests/windows.parameters.json b/modules/Microsoft.Compute/virtualMachines/.test/windows.parameters.json similarity index 100% rename from modules/Microsoft.Compute/virtualMachines/.deploymentTests/windows.parameters.json rename to modules/Microsoft.Compute/virtualMachines/.test/windows.parameters.json diff --git a/modules/Microsoft.Consumption/budgets/.deploymentTests/parameters.json b/modules/Microsoft.Consumption/budgets/.test/parameters.json similarity index 100% rename from modules/Microsoft.Consumption/budgets/.deploymentTests/parameters.json rename to modules/Microsoft.Consumption/budgets/.test/parameters.json diff --git a/modules/Microsoft.ContainerInstance/containerGroups/.deploymentTests/parameters.json b/modules/Microsoft.ContainerInstance/containerGroups/.test/parameters.json similarity index 100% rename from modules/Microsoft.ContainerInstance/containerGroups/.deploymentTests/parameters.json rename to modules/Microsoft.ContainerInstance/containerGroups/.test/parameters.json diff --git a/modules/Microsoft.ContainerRegistry/registries/.deploymentTests/encr.parameters.json b/modules/Microsoft.ContainerRegistry/registries/.test/encr.parameters.json similarity index 100% rename from modules/Microsoft.ContainerRegistry/registries/.deploymentTests/encr.parameters.json rename to modules/Microsoft.ContainerRegistry/registries/.test/encr.parameters.json diff --git a/modules/Microsoft.ContainerRegistry/registries/.deploymentTests/min.parameters.json b/modules/Microsoft.ContainerRegistry/registries/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.ContainerRegistry/registries/.deploymentTests/min.parameters.json rename to modules/Microsoft.ContainerRegistry/registries/.test/min.parameters.json diff --git a/modules/Microsoft.ContainerRegistry/registries/.deploymentTests/parameters.json b/modules/Microsoft.ContainerRegistry/registries/.test/parameters.json similarity index 100% rename from modules/Microsoft.ContainerRegistry/registries/.deploymentTests/parameters.json rename to modules/Microsoft.ContainerRegistry/registries/.test/parameters.json diff --git a/modules/Microsoft.ContainerService/managedClusters/.deploymentTests/azure.parameters.json b/modules/Microsoft.ContainerService/managedClusters/.test/azure.parameters.json similarity index 100% rename from modules/Microsoft.ContainerService/managedClusters/.deploymentTests/azure.parameters.json rename to modules/Microsoft.ContainerService/managedClusters/.test/azure.parameters.json diff --git a/modules/Microsoft.ContainerService/managedClusters/.deploymentTests/kubenet.parameters.json b/modules/Microsoft.ContainerService/managedClusters/.test/kubenet.parameters.json similarity index 100% rename from modules/Microsoft.ContainerService/managedClusters/.deploymentTests/kubenet.parameters.json rename to modules/Microsoft.ContainerService/managedClusters/.test/kubenet.parameters.json diff --git a/modules/Microsoft.DataFactory/factories/.deploymentTests/parameters.json b/modules/Microsoft.DataFactory/factories/.test/parameters.json similarity index 100% rename from modules/Microsoft.DataFactory/factories/.deploymentTests/parameters.json rename to modules/Microsoft.DataFactory/factories/.test/parameters.json diff --git a/modules/Microsoft.DataProtection/backupVaults/.deploymentTests/min.parameters.json b/modules/Microsoft.DataProtection/backupVaults/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.DataProtection/backupVaults/.deploymentTests/min.parameters.json rename to modules/Microsoft.DataProtection/backupVaults/.test/min.parameters.json diff --git a/modules/Microsoft.DataProtection/backupVaults/.deploymentTests/parameters.json b/modules/Microsoft.DataProtection/backupVaults/.test/parameters.json similarity index 100% rename from modules/Microsoft.DataProtection/backupVaults/.deploymentTests/parameters.json rename to modules/Microsoft.DataProtection/backupVaults/.test/parameters.json diff --git a/modules/Microsoft.Databricks/workspaces/.deploymentTests/parameters.json b/modules/Microsoft.Databricks/workspaces/.test/parameters.json similarity index 100% rename from modules/Microsoft.Databricks/workspaces/.deploymentTests/parameters.json rename to modules/Microsoft.Databricks/workspaces/.test/parameters.json diff --git a/modules/Microsoft.DesktopVirtualization/applicationgroups/.deploymentTests/min.parameters.json b/modules/Microsoft.DesktopVirtualization/applicationgroups/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.DesktopVirtualization/applicationgroups/.deploymentTests/min.parameters.json rename to modules/Microsoft.DesktopVirtualization/applicationgroups/.test/min.parameters.json diff --git a/modules/Microsoft.DesktopVirtualization/applicationgroups/.deploymentTests/parameters.json b/modules/Microsoft.DesktopVirtualization/applicationgroups/.test/parameters.json similarity index 100% rename from modules/Microsoft.DesktopVirtualization/applicationgroups/.deploymentTests/parameters.json rename to modules/Microsoft.DesktopVirtualization/applicationgroups/.test/parameters.json diff --git a/modules/Microsoft.DesktopVirtualization/hostpools/.deploymentTests/parameters.json b/modules/Microsoft.DesktopVirtualization/hostpools/.test/parameters.json similarity index 100% rename from modules/Microsoft.DesktopVirtualization/hostpools/.deploymentTests/parameters.json rename to modules/Microsoft.DesktopVirtualization/hostpools/.test/parameters.json diff --git a/modules/Microsoft.DesktopVirtualization/scalingplans/.deploymentTests/min.parameters.json b/modules/Microsoft.DesktopVirtualization/scalingplans/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.DesktopVirtualization/scalingplans/.deploymentTests/min.parameters.json rename to modules/Microsoft.DesktopVirtualization/scalingplans/.test/min.parameters.json diff --git a/modules/Microsoft.DesktopVirtualization/workspaces/.deploymentTests/parameters.json b/modules/Microsoft.DesktopVirtualization/workspaces/.test/parameters.json similarity index 100% rename from modules/Microsoft.DesktopVirtualization/workspaces/.deploymentTests/parameters.json rename to modules/Microsoft.DesktopVirtualization/workspaces/.test/parameters.json diff --git a/modules/Microsoft.DocumentDB/databaseAccounts/.deploymentTests/mongodb.parameters.json b/modules/Microsoft.DocumentDB/databaseAccounts/.test/mongodb.parameters.json similarity index 100% rename from modules/Microsoft.DocumentDB/databaseAccounts/.deploymentTests/mongodb.parameters.json rename to modules/Microsoft.DocumentDB/databaseAccounts/.test/mongodb.parameters.json diff --git a/modules/Microsoft.DocumentDB/databaseAccounts/.deploymentTests/plain.parameters.json b/modules/Microsoft.DocumentDB/databaseAccounts/.test/plain.parameters.json similarity index 100% rename from modules/Microsoft.DocumentDB/databaseAccounts/.deploymentTests/plain.parameters.json rename to modules/Microsoft.DocumentDB/databaseAccounts/.test/plain.parameters.json diff --git a/modules/Microsoft.DocumentDB/databaseAccounts/.deploymentTests/sqldb.parameters.json b/modules/Microsoft.DocumentDB/databaseAccounts/.test/sqldb.parameters.json similarity index 100% rename from modules/Microsoft.DocumentDB/databaseAccounts/.deploymentTests/sqldb.parameters.json rename to modules/Microsoft.DocumentDB/databaseAccounts/.test/sqldb.parameters.json diff --git a/modules/Microsoft.EventGrid/systemTopics/.deploymentTests/min.parameters.json b/modules/Microsoft.EventGrid/systemTopics/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.EventGrid/systemTopics/.deploymentTests/min.parameters.json rename to modules/Microsoft.EventGrid/systemTopics/.test/min.parameters.json diff --git a/modules/Microsoft.EventGrid/systemTopics/.deploymentTests/parameters.json b/modules/Microsoft.EventGrid/systemTopics/.test/parameters.json similarity index 100% rename from modules/Microsoft.EventGrid/systemTopics/.deploymentTests/parameters.json rename to modules/Microsoft.EventGrid/systemTopics/.test/parameters.json diff --git a/modules/Microsoft.EventGrid/topics/.deploymentTests/parameters.json b/modules/Microsoft.EventGrid/topics/.test/parameters.json similarity index 100% rename from modules/Microsoft.EventGrid/topics/.deploymentTests/parameters.json rename to modules/Microsoft.EventGrid/topics/.test/parameters.json diff --git a/modules/Microsoft.EventHub/namespaces/.deploymentTests/min.parameters.json b/modules/Microsoft.EventHub/namespaces/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.EventHub/namespaces/.deploymentTests/min.parameters.json rename to modules/Microsoft.EventHub/namespaces/.test/min.parameters.json diff --git a/modules/Microsoft.EventHub/namespaces/.deploymentTests/parameters.json b/modules/Microsoft.EventHub/namespaces/.test/parameters.json similarity index 100% rename from modules/Microsoft.EventHub/namespaces/.deploymentTests/parameters.json rename to modules/Microsoft.EventHub/namespaces/.test/parameters.json diff --git a/modules/Microsoft.HealthBot/healthBots/.deploymentTests/parameters.json b/modules/Microsoft.HealthBot/healthBots/.test/parameters.json similarity index 100% rename from modules/Microsoft.HealthBot/healthBots/.deploymentTests/parameters.json rename to modules/Microsoft.HealthBot/healthBots/.test/parameters.json diff --git a/modules/Microsoft.Insights/actionGroups/.deploymentTests/parameters.json b/modules/Microsoft.Insights/actionGroups/.test/parameters.json similarity index 100% rename from modules/Microsoft.Insights/actionGroups/.deploymentTests/parameters.json rename to modules/Microsoft.Insights/actionGroups/.test/parameters.json diff --git a/modules/Microsoft.Insights/activityLogAlerts/.deploymentTests/parameters.json b/modules/Microsoft.Insights/activityLogAlerts/.test/parameters.json similarity index 100% rename from modules/Microsoft.Insights/activityLogAlerts/.deploymentTests/parameters.json rename to modules/Microsoft.Insights/activityLogAlerts/.test/parameters.json diff --git a/modules/Microsoft.Insights/components/.deploymentTests/parameters.json b/modules/Microsoft.Insights/components/.test/parameters.json similarity index 100% rename from modules/Microsoft.Insights/components/.deploymentTests/parameters.json rename to modules/Microsoft.Insights/components/.test/parameters.json diff --git a/modules/Microsoft.Insights/diagnosticSettings/.deploymentTests/parameters.json b/modules/Microsoft.Insights/diagnosticSettings/.test/parameters.json similarity index 100% rename from modules/Microsoft.Insights/diagnosticSettings/.deploymentTests/parameters.json rename to modules/Microsoft.Insights/diagnosticSettings/.test/parameters.json diff --git a/modules/Microsoft.Insights/metricAlerts/.deploymentTests/parameters.json b/modules/Microsoft.Insights/metricAlerts/.test/parameters.json similarity index 100% rename from modules/Microsoft.Insights/metricAlerts/.deploymentTests/parameters.json rename to modules/Microsoft.Insights/metricAlerts/.test/parameters.json diff --git a/modules/Microsoft.Insights/privateLinkScopes/.deploymentTests/parameters.json b/modules/Microsoft.Insights/privateLinkScopes/.test/parameters.json similarity index 100% rename from modules/Microsoft.Insights/privateLinkScopes/.deploymentTests/parameters.json rename to modules/Microsoft.Insights/privateLinkScopes/.test/parameters.json diff --git a/modules/Microsoft.Insights/scheduledQueryRules/.deploymentTests/parameters.json b/modules/Microsoft.Insights/scheduledQueryRules/.test/parameters.json similarity index 100% rename from modules/Microsoft.Insights/scheduledQueryRules/.deploymentTests/parameters.json rename to modules/Microsoft.Insights/scheduledQueryRules/.test/parameters.json diff --git a/modules/Microsoft.KeyVault/vaults/.deploymentTests/min.parameters.json b/modules/Microsoft.KeyVault/vaults/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.KeyVault/vaults/.deploymentTests/min.parameters.json rename to modules/Microsoft.KeyVault/vaults/.test/min.parameters.json diff --git a/modules/Microsoft.KeyVault/vaults/.deploymentTests/parameters.json b/modules/Microsoft.KeyVault/vaults/.test/parameters.json similarity index 100% rename from modules/Microsoft.KeyVault/vaults/.deploymentTests/parameters.json rename to modules/Microsoft.KeyVault/vaults/.test/parameters.json diff --git a/modules/Microsoft.KubernetesConfiguration/extensions/.deploymentTests/min.parameters.json b/modules/Microsoft.KubernetesConfiguration/extensions/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.KubernetesConfiguration/extensions/.deploymentTests/min.parameters.json rename to modules/Microsoft.KubernetesConfiguration/extensions/.test/min.parameters.json diff --git a/modules/Microsoft.KubernetesConfiguration/extensions/.deploymentTests/parameters.json b/modules/Microsoft.KubernetesConfiguration/extensions/.test/parameters.json similarity index 100% rename from modules/Microsoft.KubernetesConfiguration/extensions/.deploymentTests/parameters.json rename to modules/Microsoft.KubernetesConfiguration/extensions/.test/parameters.json diff --git a/modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.deploymentTests/min.parameters.json b/modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.deploymentTests/min.parameters.json rename to modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.test/min.parameters.json diff --git a/modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.deploymentTests/parameters.json b/modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.test/parameters.json similarity index 100% rename from modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.deploymentTests/parameters.json rename to modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.test/parameters.json diff --git a/modules/Microsoft.Logic/workflows/.deploymentTests/parameters.json b/modules/Microsoft.Logic/workflows/.test/parameters.json similarity index 100% rename from modules/Microsoft.Logic/workflows/.deploymentTests/parameters.json rename to modules/Microsoft.Logic/workflows/.test/parameters.json diff --git a/modules/Microsoft.MachineLearningServices/workspaces/.deploymentTests/min.parameters.json b/modules/Microsoft.MachineLearningServices/workspaces/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.MachineLearningServices/workspaces/.deploymentTests/min.parameters.json rename to modules/Microsoft.MachineLearningServices/workspaces/.test/min.parameters.json diff --git a/modules/Microsoft.MachineLearningServices/workspaces/.deploymentTests/parameters.json b/modules/Microsoft.MachineLearningServices/workspaces/.test/parameters.json similarity index 100% rename from modules/Microsoft.MachineLearningServices/workspaces/.deploymentTests/parameters.json rename to modules/Microsoft.MachineLearningServices/workspaces/.test/parameters.json diff --git a/modules/Microsoft.ManagedIdentity/userAssignedIdentities/.deploymentTests/parameters.json b/modules/Microsoft.ManagedIdentity/userAssignedIdentities/.test/parameters.json similarity index 100% rename from modules/Microsoft.ManagedIdentity/userAssignedIdentities/.deploymentTests/parameters.json rename to modules/Microsoft.ManagedIdentity/userAssignedIdentities/.test/parameters.json diff --git a/modules/Microsoft.ManagedServices/registrationDefinitions/.deploymentTests/parameters.json b/modules/Microsoft.ManagedServices/registrationDefinitions/.test/parameters.json similarity index 100% rename from modules/Microsoft.ManagedServices/registrationDefinitions/.deploymentTests/parameters.json rename to modules/Microsoft.ManagedServices/registrationDefinitions/.test/parameters.json diff --git a/modules/Microsoft.ManagedServices/registrationDefinitions/.deploymentTests/rg.parameters.json b/modules/Microsoft.ManagedServices/registrationDefinitions/.test/rg.parameters.json similarity index 100% rename from modules/Microsoft.ManagedServices/registrationDefinitions/.deploymentTests/rg.parameters.json rename to modules/Microsoft.ManagedServices/registrationDefinitions/.test/rg.parameters.json diff --git a/modules/Microsoft.Management/managementGroups/.deploymentTests/parameters.json b/modules/Microsoft.Management/managementGroups/.test/parameters.json similarity index 100% rename from modules/Microsoft.Management/managementGroups/.deploymentTests/parameters.json rename to modules/Microsoft.Management/managementGroups/.test/parameters.json diff --git a/modules/Microsoft.NetApp/netAppAccounts/.deploymentTests/min.parameters.json b/modules/Microsoft.NetApp/netAppAccounts/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.NetApp/netAppAccounts/.deploymentTests/min.parameters.json rename to modules/Microsoft.NetApp/netAppAccounts/.test/min.parameters.json diff --git a/modules/Microsoft.NetApp/netAppAccounts/.deploymentTests/nfs3.parameters.json b/modules/Microsoft.NetApp/netAppAccounts/.test/nfs3.parameters.json similarity index 100% rename from modules/Microsoft.NetApp/netAppAccounts/.deploymentTests/nfs3.parameters.json rename to modules/Microsoft.NetApp/netAppAccounts/.test/nfs3.parameters.json diff --git a/modules/Microsoft.NetApp/netAppAccounts/.deploymentTests/nfs41.parameters.json b/modules/Microsoft.NetApp/netAppAccounts/.test/nfs41.parameters.json similarity index 100% rename from modules/Microsoft.NetApp/netAppAccounts/.deploymentTests/nfs41.parameters.json rename to modules/Microsoft.NetApp/netAppAccounts/.test/nfs41.parameters.json diff --git a/modules/Microsoft.Network/applicationGateways/.deploymentTests/parameters.json b/modules/Microsoft.Network/applicationGateways/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/applicationGateways/.deploymentTests/parameters.json rename to modules/Microsoft.Network/applicationGateways/.test/parameters.json diff --git a/modules/Microsoft.Network/applicationSecurityGroups/.deploymentTests/parameters.json b/modules/Microsoft.Network/applicationSecurityGroups/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/applicationSecurityGroups/.deploymentTests/parameters.json rename to modules/Microsoft.Network/applicationSecurityGroups/.test/parameters.json diff --git a/modules/Microsoft.Network/azureFirewalls/.deploymentTests/addpip.parameters.json b/modules/Microsoft.Network/azureFirewalls/.test/addpip.parameters.json similarity index 100% rename from modules/Microsoft.Network/azureFirewalls/.deploymentTests/addpip.parameters.json rename to modules/Microsoft.Network/azureFirewalls/.test/addpip.parameters.json diff --git a/modules/Microsoft.Network/azureFirewalls/.deploymentTests/custompip.parameters.json b/modules/Microsoft.Network/azureFirewalls/.test/custompip.parameters.json similarity index 100% rename from modules/Microsoft.Network/azureFirewalls/.deploymentTests/custompip.parameters.json rename to modules/Microsoft.Network/azureFirewalls/.test/custompip.parameters.json diff --git a/modules/Microsoft.Network/azureFirewalls/.deploymentTests/min.parameters.json b/modules/Microsoft.Network/azureFirewalls/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/azureFirewalls/.deploymentTests/min.parameters.json rename to modules/Microsoft.Network/azureFirewalls/.test/min.parameters.json diff --git a/modules/Microsoft.Network/azureFirewalls/.deploymentTests/parameters.json b/modules/Microsoft.Network/azureFirewalls/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/azureFirewalls/.deploymentTests/parameters.json rename to modules/Microsoft.Network/azureFirewalls/.test/parameters.json diff --git a/modules/Microsoft.Network/bastionHosts/.deploymentTests/addpip.parameters.json b/modules/Microsoft.Network/bastionHosts/.test/addpip.parameters.json similarity index 100% rename from modules/Microsoft.Network/bastionHosts/.deploymentTests/addpip.parameters.json rename to modules/Microsoft.Network/bastionHosts/.test/addpip.parameters.json diff --git a/modules/Microsoft.Network/bastionHosts/.deploymentTests/custompip.parameters.json b/modules/Microsoft.Network/bastionHosts/.test/custompip.parameters.json similarity index 100% rename from modules/Microsoft.Network/bastionHosts/.deploymentTests/custompip.parameters.json rename to modules/Microsoft.Network/bastionHosts/.test/custompip.parameters.json diff --git a/modules/Microsoft.Network/bastionHosts/.deploymentTests/min.parameters.json b/modules/Microsoft.Network/bastionHosts/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/bastionHosts/.deploymentTests/min.parameters.json rename to modules/Microsoft.Network/bastionHosts/.test/min.parameters.json diff --git a/modules/Microsoft.Network/bastionHosts/.deploymentTests/parameters.json b/modules/Microsoft.Network/bastionHosts/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/bastionHosts/.deploymentTests/parameters.json rename to modules/Microsoft.Network/bastionHosts/.test/parameters.json diff --git a/modules/Microsoft.Network/connections/.deploymentTests/vnet2vnet.parameters.json b/modules/Microsoft.Network/connections/.test/vnet2vnet.parameters.json similarity index 100% rename from modules/Microsoft.Network/connections/.deploymentTests/vnet2vnet.parameters.json rename to modules/Microsoft.Network/connections/.test/vnet2vnet.parameters.json diff --git a/modules/Microsoft.Network/ddosProtectionPlans/.deploymentTests/parameters.json b/modules/Microsoft.Network/ddosProtectionPlans/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/ddosProtectionPlans/.deploymentTests/parameters.json rename to modules/Microsoft.Network/ddosProtectionPlans/.test/parameters.json diff --git a/modules/Microsoft.Network/expressRouteCircuits/.deploymentTests/parameters.json b/modules/Microsoft.Network/expressRouteCircuits/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/expressRouteCircuits/.deploymentTests/parameters.json rename to modules/Microsoft.Network/expressRouteCircuits/.test/parameters.json diff --git a/modules/Microsoft.Network/firewallPolicies/.deploymentTests/min.parameters.json b/modules/Microsoft.Network/firewallPolicies/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/firewallPolicies/.deploymentTests/min.parameters.json rename to modules/Microsoft.Network/firewallPolicies/.test/min.parameters.json diff --git a/modules/Microsoft.Network/firewallPolicies/.deploymentTests/parameters.json b/modules/Microsoft.Network/firewallPolicies/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/firewallPolicies/.deploymentTests/parameters.json rename to modules/Microsoft.Network/firewallPolicies/.test/parameters.json diff --git a/modules/Microsoft.Network/frontDoors/.deploymentTests/parameters.json b/modules/Microsoft.Network/frontDoors/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/frontDoors/.deploymentTests/parameters.json rename to modules/Microsoft.Network/frontDoors/.test/parameters.json diff --git a/modules/Microsoft.Network/ipGroups/.deploymentTests/parameters.json b/modules/Microsoft.Network/ipGroups/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/ipGroups/.deploymentTests/parameters.json rename to modules/Microsoft.Network/ipGroups/.test/parameters.json diff --git a/modules/Microsoft.Network/loadBalancers/.deploymentTests/internal.parameters.json b/modules/Microsoft.Network/loadBalancers/.test/internal.parameters.json similarity index 100% rename from modules/Microsoft.Network/loadBalancers/.deploymentTests/internal.parameters.json rename to modules/Microsoft.Network/loadBalancers/.test/internal.parameters.json diff --git a/modules/Microsoft.Network/loadBalancers/.deploymentTests/min.parameters.json b/modules/Microsoft.Network/loadBalancers/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/loadBalancers/.deploymentTests/min.parameters.json rename to modules/Microsoft.Network/loadBalancers/.test/min.parameters.json diff --git a/modules/Microsoft.Network/loadBalancers/.deploymentTests/parameters.json b/modules/Microsoft.Network/loadBalancers/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/loadBalancers/.deploymentTests/parameters.json rename to modules/Microsoft.Network/loadBalancers/.test/parameters.json diff --git a/modules/Microsoft.Network/localNetworkGateways/.deploymentTests/parameters.json b/modules/Microsoft.Network/localNetworkGateways/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/localNetworkGateways/.deploymentTests/parameters.json rename to modules/Microsoft.Network/localNetworkGateways/.test/parameters.json diff --git a/modules/Microsoft.Network/natGateways/.deploymentTests/parameters.json b/modules/Microsoft.Network/natGateways/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/natGateways/.deploymentTests/parameters.json rename to modules/Microsoft.Network/natGateways/.test/parameters.json diff --git a/modules/Microsoft.Network/networkInterfaces/.deploymentTests/min.parameters.json b/modules/Microsoft.Network/networkInterfaces/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/networkInterfaces/.deploymentTests/min.parameters.json rename to modules/Microsoft.Network/networkInterfaces/.test/min.parameters.json diff --git a/modules/Microsoft.Network/networkInterfaces/.deploymentTests/parameters.json b/modules/Microsoft.Network/networkInterfaces/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/networkInterfaces/.deploymentTests/parameters.json rename to modules/Microsoft.Network/networkInterfaces/.test/parameters.json diff --git a/modules/Microsoft.Network/networkSecurityGroups/.deploymentTests/min.parameters.json b/modules/Microsoft.Network/networkSecurityGroups/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/networkSecurityGroups/.deploymentTests/min.parameters.json rename to modules/Microsoft.Network/networkSecurityGroups/.test/min.parameters.json diff --git a/modules/Microsoft.Network/networkSecurityGroups/.deploymentTests/parameters.json b/modules/Microsoft.Network/networkSecurityGroups/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/networkSecurityGroups/.deploymentTests/parameters.json rename to modules/Microsoft.Network/networkSecurityGroups/.test/parameters.json diff --git a/modules/Microsoft.Network/networkWatchers/.deploymentTests/min.parameters.json b/modules/Microsoft.Network/networkWatchers/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/networkWatchers/.deploymentTests/min.parameters.json rename to modules/Microsoft.Network/networkWatchers/.test/min.parameters.json diff --git a/modules/Microsoft.Network/networkWatchers/.deploymentTests/parameters.json b/modules/Microsoft.Network/networkWatchers/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/networkWatchers/.deploymentTests/parameters.json rename to modules/Microsoft.Network/networkWatchers/.test/parameters.json diff --git a/modules/Microsoft.Network/privateDnsZones/.deploymentTests/min.parameters.json b/modules/Microsoft.Network/privateDnsZones/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/privateDnsZones/.deploymentTests/min.parameters.json rename to modules/Microsoft.Network/privateDnsZones/.test/min.parameters.json diff --git a/modules/Microsoft.Network/privateDnsZones/.deploymentTests/parameters.json b/modules/Microsoft.Network/privateDnsZones/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/privateDnsZones/.deploymentTests/parameters.json rename to modules/Microsoft.Network/privateDnsZones/.test/parameters.json diff --git a/modules/Microsoft.Network/privateEndpoints/.deploymentTests/min.parameters.json b/modules/Microsoft.Network/privateEndpoints/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/privateEndpoints/.deploymentTests/min.parameters.json rename to modules/Microsoft.Network/privateEndpoints/.test/min.parameters.json diff --git a/modules/Microsoft.Network/privateEndpoints/.deploymentTests/parameters.json b/modules/Microsoft.Network/privateEndpoints/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/privateEndpoints/.deploymentTests/parameters.json rename to modules/Microsoft.Network/privateEndpoints/.test/parameters.json diff --git a/modules/Microsoft.Network/publicIPAddresses/.deploymentTests/parameters.json b/modules/Microsoft.Network/publicIPAddresses/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/publicIPAddresses/.deploymentTests/parameters.json rename to modules/Microsoft.Network/publicIPAddresses/.test/parameters.json diff --git a/modules/Microsoft.Network/publicIPPrefixes/.deploymentTests/parameters.json b/modules/Microsoft.Network/publicIPPrefixes/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/publicIPPrefixes/.deploymentTests/parameters.json rename to modules/Microsoft.Network/publicIPPrefixes/.test/parameters.json diff --git a/modules/Microsoft.Network/routeTables/.deploymentTests/parameters.json b/modules/Microsoft.Network/routeTables/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/routeTables/.deploymentTests/parameters.json rename to modules/Microsoft.Network/routeTables/.test/parameters.json diff --git a/modules/Microsoft.Network/trafficmanagerprofiles/.deploymentTests/parameters.json b/modules/Microsoft.Network/trafficmanagerprofiles/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/trafficmanagerprofiles/.deploymentTests/parameters.json rename to modules/Microsoft.Network/trafficmanagerprofiles/.test/parameters.json diff --git a/modules/Microsoft.Network/virtualHubs/.deploymentTests/min.parameters.json b/modules/Microsoft.Network/virtualHubs/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/virtualHubs/.deploymentTests/min.parameters.json rename to modules/Microsoft.Network/virtualHubs/.test/min.parameters.json diff --git a/modules/Microsoft.Network/virtualHubs/.deploymentTests/parameters.json b/modules/Microsoft.Network/virtualHubs/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/virtualHubs/.deploymentTests/parameters.json rename to modules/Microsoft.Network/virtualHubs/.test/parameters.json diff --git a/modules/Microsoft.Network/virtualNetworkGateways/.deploymentTests/expressRoute.parameters.json b/modules/Microsoft.Network/virtualNetworkGateways/.test/expressRoute.parameters.json similarity index 100% rename from modules/Microsoft.Network/virtualNetworkGateways/.deploymentTests/expressRoute.parameters.json rename to modules/Microsoft.Network/virtualNetworkGateways/.test/expressRoute.parameters.json diff --git a/modules/Microsoft.Network/virtualNetworkGateways/.deploymentTests/vpn.parameters.json b/modules/Microsoft.Network/virtualNetworkGateways/.test/vpn.parameters.json similarity index 100% rename from modules/Microsoft.Network/virtualNetworkGateways/.deploymentTests/vpn.parameters.json rename to modules/Microsoft.Network/virtualNetworkGateways/.test/vpn.parameters.json diff --git a/modules/Microsoft.Network/virtualNetworks/.deploymentTests/min.parameters.json b/modules/Microsoft.Network/virtualNetworks/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/virtualNetworks/.deploymentTests/min.parameters.json rename to modules/Microsoft.Network/virtualNetworks/.test/min.parameters.json diff --git a/modules/Microsoft.Network/virtualNetworks/.deploymentTests/parameters.json b/modules/Microsoft.Network/virtualNetworks/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/virtualNetworks/.deploymentTests/parameters.json rename to modules/Microsoft.Network/virtualNetworks/.test/parameters.json diff --git a/modules/Microsoft.Network/virtualNetworks/.deploymentTests/vnetPeering.parameters.json b/modules/Microsoft.Network/virtualNetworks/.test/vnetPeering.parameters.json similarity index 100% rename from modules/Microsoft.Network/virtualNetworks/.deploymentTests/vnetPeering.parameters.json rename to modules/Microsoft.Network/virtualNetworks/.test/vnetPeering.parameters.json diff --git a/modules/Microsoft.Network/virtualWans/.deploymentTests/min.parameters.json b/modules/Microsoft.Network/virtualWans/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/virtualWans/.deploymentTests/min.parameters.json rename to modules/Microsoft.Network/virtualWans/.test/min.parameters.json diff --git a/modules/Microsoft.Network/virtualWans/.deploymentTests/parameters.json b/modules/Microsoft.Network/virtualWans/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/virtualWans/.deploymentTests/parameters.json rename to modules/Microsoft.Network/virtualWans/.test/parameters.json diff --git a/modules/Microsoft.Network/vpnGateways/.deploymentTests/min.parameters.json b/modules/Microsoft.Network/vpnGateways/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/vpnGateways/.deploymentTests/min.parameters.json rename to modules/Microsoft.Network/vpnGateways/.test/min.parameters.json diff --git a/modules/Microsoft.Network/vpnGateways/.deploymentTests/parameters.json b/modules/Microsoft.Network/vpnGateways/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/vpnGateways/.deploymentTests/parameters.json rename to modules/Microsoft.Network/vpnGateways/.test/parameters.json diff --git a/modules/Microsoft.Network/vpnSites/.deploymentTests/min.parameters.json b/modules/Microsoft.Network/vpnSites/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.Network/vpnSites/.deploymentTests/min.parameters.json rename to modules/Microsoft.Network/vpnSites/.test/min.parameters.json diff --git a/modules/Microsoft.Network/vpnSites/.deploymentTests/parameters.json b/modules/Microsoft.Network/vpnSites/.test/parameters.json similarity index 100% rename from modules/Microsoft.Network/vpnSites/.deploymentTests/parameters.json rename to modules/Microsoft.Network/vpnSites/.test/parameters.json diff --git a/modules/Microsoft.OperationalInsights/workspaces/.deploymentTests/min.parameters.json b/modules/Microsoft.OperationalInsights/workspaces/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.OperationalInsights/workspaces/.deploymentTests/min.parameters.json rename to modules/Microsoft.OperationalInsights/workspaces/.test/min.parameters.json diff --git a/modules/Microsoft.OperationalInsights/workspaces/.deploymentTests/parameters.json b/modules/Microsoft.OperationalInsights/workspaces/.test/parameters.json similarity index 100% rename from modules/Microsoft.OperationalInsights/workspaces/.deploymentTests/parameters.json rename to modules/Microsoft.OperationalInsights/workspaces/.test/parameters.json diff --git a/modules/Microsoft.OperationsManagement/solutions/.deploymentTests/min.parameters.json b/modules/Microsoft.OperationsManagement/solutions/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.OperationsManagement/solutions/.deploymentTests/min.parameters.json rename to modules/Microsoft.OperationsManagement/solutions/.test/min.parameters.json diff --git a/modules/Microsoft.OperationsManagement/solutions/.deploymentTests/ms.parameters.json b/modules/Microsoft.OperationsManagement/solutions/.test/ms.parameters.json similarity index 100% rename from modules/Microsoft.OperationsManagement/solutions/.deploymentTests/ms.parameters.json rename to modules/Microsoft.OperationsManagement/solutions/.test/ms.parameters.json diff --git a/modules/Microsoft.OperationsManagement/solutions/.deploymentTests/nonms.parameters.json b/modules/Microsoft.OperationsManagement/solutions/.test/nonms.parameters.json similarity index 100% rename from modules/Microsoft.OperationsManagement/solutions/.deploymentTests/nonms.parameters.json rename to modules/Microsoft.OperationsManagement/solutions/.test/nonms.parameters.json diff --git a/modules/Microsoft.RecoveryServices/vaults/.deploymentTests/dr.parameters.json b/modules/Microsoft.RecoveryServices/vaults/.test/dr.parameters.json similarity index 100% rename from modules/Microsoft.RecoveryServices/vaults/.deploymentTests/dr.parameters.json rename to modules/Microsoft.RecoveryServices/vaults/.test/dr.parameters.json diff --git a/modules/Microsoft.RecoveryServices/vaults/.deploymentTests/min.parameters.json b/modules/Microsoft.RecoveryServices/vaults/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.RecoveryServices/vaults/.deploymentTests/min.parameters.json rename to modules/Microsoft.RecoveryServices/vaults/.test/min.parameters.json diff --git a/modules/Microsoft.RecoveryServices/vaults/.deploymentTests/parameters.json b/modules/Microsoft.RecoveryServices/vaults/.test/parameters.json similarity index 100% rename from modules/Microsoft.RecoveryServices/vaults/.deploymentTests/parameters.json rename to modules/Microsoft.RecoveryServices/vaults/.test/parameters.json diff --git a/modules/Microsoft.Resources/deploymentScripts/.deploymentTests/cli.parameters.json b/modules/Microsoft.Resources/deploymentScripts/.test/cli.parameters.json similarity index 100% rename from modules/Microsoft.Resources/deploymentScripts/.deploymentTests/cli.parameters.json rename to modules/Microsoft.Resources/deploymentScripts/.test/cli.parameters.json diff --git a/modules/Microsoft.Resources/deploymentScripts/.deploymentTests/ps.parameters.json b/modules/Microsoft.Resources/deploymentScripts/.test/ps.parameters.json similarity index 100% rename from modules/Microsoft.Resources/deploymentScripts/.deploymentTests/ps.parameters.json rename to modules/Microsoft.Resources/deploymentScripts/.test/ps.parameters.json diff --git a/modules/Microsoft.Resources/resourceGroups/.deploymentTests/parameters.json b/modules/Microsoft.Resources/resourceGroups/.test/parameters.json similarity index 100% rename from modules/Microsoft.Resources/resourceGroups/.deploymentTests/parameters.json rename to modules/Microsoft.Resources/resourceGroups/.test/parameters.json diff --git a/modules/Microsoft.Resources/tags/.deploymentTests/min.parameters.json b/modules/Microsoft.Resources/tags/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.Resources/tags/.deploymentTests/min.parameters.json rename to modules/Microsoft.Resources/tags/.test/min.parameters.json diff --git a/modules/Microsoft.Resources/tags/.deploymentTests/rg.parameters.json b/modules/Microsoft.Resources/tags/.test/rg.parameters.json similarity index 100% rename from modules/Microsoft.Resources/tags/.deploymentTests/rg.parameters.json rename to modules/Microsoft.Resources/tags/.test/rg.parameters.json diff --git a/modules/Microsoft.Resources/tags/.deploymentTests/sub.parameters.json b/modules/Microsoft.Resources/tags/.test/sub.parameters.json similarity index 100% rename from modules/Microsoft.Resources/tags/.deploymentTests/sub.parameters.json rename to modules/Microsoft.Resources/tags/.test/sub.parameters.json diff --git a/modules/Microsoft.Security/azureSecurityCenter/.deploymentTests/parameters.json b/modules/Microsoft.Security/azureSecurityCenter/.test/parameters.json similarity index 100% rename from modules/Microsoft.Security/azureSecurityCenter/.deploymentTests/parameters.json rename to modules/Microsoft.Security/azureSecurityCenter/.test/parameters.json diff --git a/modules/Microsoft.ServiceBus/namespaces/.deploymentTests/min.parameters.json b/modules/Microsoft.ServiceBus/namespaces/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.ServiceBus/namespaces/.deploymentTests/min.parameters.json rename to modules/Microsoft.ServiceBus/namespaces/.test/min.parameters.json diff --git a/modules/Microsoft.ServiceBus/namespaces/.deploymentTests/parameters.json b/modules/Microsoft.ServiceBus/namespaces/.test/parameters.json similarity index 100% rename from modules/Microsoft.ServiceBus/namespaces/.deploymentTests/parameters.json rename to modules/Microsoft.ServiceBus/namespaces/.test/parameters.json diff --git a/modules/Microsoft.ServiceFabric/clusters/.deploymentTests/cert.parameters.json b/modules/Microsoft.ServiceFabric/clusters/.test/cert.parameters.json similarity index 100% rename from modules/Microsoft.ServiceFabric/clusters/.deploymentTests/cert.parameters.json rename to modules/Microsoft.ServiceFabric/clusters/.test/cert.parameters.json diff --git a/modules/Microsoft.ServiceFabric/clusters/.deploymentTests/full.parameters.json b/modules/Microsoft.ServiceFabric/clusters/.test/full.parameters.json similarity index 100% rename from modules/Microsoft.ServiceFabric/clusters/.deploymentTests/full.parameters.json rename to modules/Microsoft.ServiceFabric/clusters/.test/full.parameters.json diff --git a/modules/Microsoft.ServiceFabric/clusters/.deploymentTests/min.parameters.json b/modules/Microsoft.ServiceFabric/clusters/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.ServiceFabric/clusters/.deploymentTests/min.parameters.json rename to modules/Microsoft.ServiceFabric/clusters/.test/min.parameters.json diff --git a/modules/Microsoft.Sql/managedInstances/.deploymentTests/parameters.json b/modules/Microsoft.Sql/managedInstances/.test/parameters.json similarity index 100% rename from modules/Microsoft.Sql/managedInstances/.deploymentTests/parameters.json rename to modules/Microsoft.Sql/managedInstances/.test/parameters.json diff --git a/modules/Microsoft.Sql/servers/.deploymentTests/admin.parameters.json b/modules/Microsoft.Sql/servers/.test/admin.parameters.json similarity index 100% rename from modules/Microsoft.Sql/servers/.deploymentTests/admin.parameters.json rename to modules/Microsoft.Sql/servers/.test/admin.parameters.json diff --git a/modules/Microsoft.Sql/servers/.deploymentTests/parameters.json b/modules/Microsoft.Sql/servers/.test/parameters.json similarity index 100% rename from modules/Microsoft.Sql/servers/.deploymentTests/parameters.json rename to modules/Microsoft.Sql/servers/.test/parameters.json diff --git a/modules/Microsoft.Storage/storageAccounts/.deploymentTests/encr.parameters.json b/modules/Microsoft.Storage/storageAccounts/.test/encr.parameters.json similarity index 100% rename from modules/Microsoft.Storage/storageAccounts/.deploymentTests/encr.parameters.json rename to modules/Microsoft.Storage/storageAccounts/.test/encr.parameters.json diff --git a/modules/Microsoft.Storage/storageAccounts/.deploymentTests/min.parameters.json b/modules/Microsoft.Storage/storageAccounts/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.Storage/storageAccounts/.deploymentTests/min.parameters.json rename to modules/Microsoft.Storage/storageAccounts/.test/min.parameters.json diff --git a/modules/Microsoft.Storage/storageAccounts/.deploymentTests/nfs.parameters.json b/modules/Microsoft.Storage/storageAccounts/.test/nfs.parameters.json similarity index 100% rename from modules/Microsoft.Storage/storageAccounts/.deploymentTests/nfs.parameters.json rename to modules/Microsoft.Storage/storageAccounts/.test/nfs.parameters.json diff --git a/modules/Microsoft.Storage/storageAccounts/.deploymentTests/parameters.json b/modules/Microsoft.Storage/storageAccounts/.test/parameters.json similarity index 100% rename from modules/Microsoft.Storage/storageAccounts/.deploymentTests/parameters.json rename to modules/Microsoft.Storage/storageAccounts/.test/parameters.json diff --git a/modules/Microsoft.Storage/storageAccounts/.deploymentTests/v1.parameters.json b/modules/Microsoft.Storage/storageAccounts/.test/v1.parameters.json similarity index 100% rename from modules/Microsoft.Storage/storageAccounts/.deploymentTests/v1.parameters.json rename to modules/Microsoft.Storage/storageAccounts/.test/v1.parameters.json diff --git a/modules/Microsoft.Synapse/privateLinkHubs/.deploymentTests/min.parameters.json b/modules/Microsoft.Synapse/privateLinkHubs/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.Synapse/privateLinkHubs/.deploymentTests/min.parameters.json rename to modules/Microsoft.Synapse/privateLinkHubs/.test/min.parameters.json diff --git a/modules/Microsoft.Synapse/privateLinkHubs/.deploymentTests/parameters.json b/modules/Microsoft.Synapse/privateLinkHubs/.test/parameters.json similarity index 100% rename from modules/Microsoft.Synapse/privateLinkHubs/.deploymentTests/parameters.json rename to modules/Microsoft.Synapse/privateLinkHubs/.test/parameters.json diff --git a/modules/Microsoft.VirtualMachineImages/imageTemplates/.deploymentTests/parameters.json b/modules/Microsoft.VirtualMachineImages/imageTemplates/.test/parameters.json similarity index 100% rename from modules/Microsoft.VirtualMachineImages/imageTemplates/.deploymentTests/parameters.json rename to modules/Microsoft.VirtualMachineImages/imageTemplates/.test/parameters.json diff --git a/modules/Microsoft.Web/connections/.deploymentTests/parameters.json b/modules/Microsoft.Web/connections/.test/parameters.json similarity index 100% rename from modules/Microsoft.Web/connections/.deploymentTests/parameters.json rename to modules/Microsoft.Web/connections/.test/parameters.json diff --git a/modules/Microsoft.Web/hostingEnvironments/.deploymentTests/asev2.parameters.json b/modules/Microsoft.Web/hostingEnvironments/.test/asev2.parameters.json similarity index 100% rename from modules/Microsoft.Web/hostingEnvironments/.deploymentTests/asev2.parameters.json rename to modules/Microsoft.Web/hostingEnvironments/.test/asev2.parameters.json diff --git a/modules/Microsoft.Web/hostingEnvironments/.deploymentTests/asev3.parameters.json b/modules/Microsoft.Web/hostingEnvironments/.test/asev3.parameters.json similarity index 100% rename from modules/Microsoft.Web/hostingEnvironments/.deploymentTests/asev3.parameters.json rename to modules/Microsoft.Web/hostingEnvironments/.test/asev3.parameters.json diff --git a/modules/Microsoft.Web/serverfarms/.deploymentTests/parameters.json b/modules/Microsoft.Web/serverfarms/.test/parameters.json similarity index 100% rename from modules/Microsoft.Web/serverfarms/.deploymentTests/parameters.json rename to modules/Microsoft.Web/serverfarms/.test/parameters.json diff --git a/modules/Microsoft.Web/sites/.deploymentTests/fa.min.parameters.json b/modules/Microsoft.Web/sites/.test/fa.min.parameters.json similarity index 100% rename from modules/Microsoft.Web/sites/.deploymentTests/fa.min.parameters.json rename to modules/Microsoft.Web/sites/.test/fa.min.parameters.json diff --git a/modules/Microsoft.Web/sites/.deploymentTests/fa.parameters.json b/modules/Microsoft.Web/sites/.test/fa.parameters.json similarity index 100% rename from modules/Microsoft.Web/sites/.deploymentTests/fa.parameters.json rename to modules/Microsoft.Web/sites/.test/fa.parameters.json diff --git a/modules/Microsoft.Web/sites/.deploymentTests/wa.min.parameters.json b/modules/Microsoft.Web/sites/.test/wa.min.parameters.json similarity index 100% rename from modules/Microsoft.Web/sites/.deploymentTests/wa.min.parameters.json rename to modules/Microsoft.Web/sites/.test/wa.min.parameters.json diff --git a/modules/Microsoft.Web/sites/.deploymentTests/wa.parameters.json b/modules/Microsoft.Web/sites/.test/wa.parameters.json similarity index 100% rename from modules/Microsoft.Web/sites/.deploymentTests/wa.parameters.json rename to modules/Microsoft.Web/sites/.test/wa.parameters.json diff --git a/modules/Microsoft.Web/staticSites/.deploymentTests/min.parameters.json b/modules/Microsoft.Web/staticSites/.test/min.parameters.json similarity index 100% rename from modules/Microsoft.Web/staticSites/.deploymentTests/min.parameters.json rename to modules/Microsoft.Web/staticSites/.test/min.parameters.json diff --git a/modules/Microsoft.Web/staticSites/.deploymentTests/parameters.json b/modules/Microsoft.Web/staticSites/.test/parameters.json similarity index 100% rename from modules/Microsoft.Web/staticSites/.deploymentTests/parameters.json rename to modules/Microsoft.Web/staticSites/.test/parameters.json From e1b331268de401505e8032478201449dd77d9c29 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Tue, 28 Jun 2022 23:58:07 +0200 Subject: [PATCH 026/274] Adjusted verbosity --- .../pipelines/sharedScripts/Get-GitHubWorkflowDefaultInput.ps1 | 2 +- utilities/tools/Invoke-PipelinesForBranch.ps1 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/utilities/pipelines/sharedScripts/Get-GitHubWorkflowDefaultInput.ps1 b/utilities/pipelines/sharedScripts/Get-GitHubWorkflowDefaultInput.ps1 index 5449674308..2c8ba351a9 100644 --- a/utilities/pipelines/sharedScripts/Get-GitHubWorkflowDefaultInput.ps1 +++ b/utilities/pipelines/sharedScripts/Get-GitHubWorkflowDefaultInput.ps1 @@ -121,7 +121,7 @@ function Get-GitHubWorkflowDefaultInput { $workflowContent = Get-Content -Path $workflowPath -Raw $workflowParameters = @{ - removeDeployment = Get-DefaultValue -InputName 'removeDeployment' -Content $workflowContent -Verbose + removeDeployment = Get-DefaultValue -InputName 'removeDeployment' -Content $workflowContent } Write-Verbose 'Get workflow default input complete' diff --git a/utilities/tools/Invoke-PipelinesForBranch.ps1 b/utilities/tools/Invoke-PipelinesForBranch.ps1 index 09e2c5badd..9bd6059dd2 100644 --- a/utilities/tools/Invoke-PipelinesForBranch.ps1 +++ b/utilities/tools/Invoke-PipelinesForBranch.ps1 @@ -51,7 +51,7 @@ function Invoke-GitHubWorkflow { . (Join-Path (Split-Path $PSScriptRoot -Parent) 'pipelines' 'sharedScripts' 'Get-GitHubWorkflowDefaultInput.ps1') $workflowFileName = Split-Path $WorkflowFilePath -Leaf - $workflowParameters = Get-GitHubWorkflowDefaultInput -workflowPath $WorkflowFilePath + $workflowParameters = Get-GitHubWorkflowDefaultInput -workflowPath $WorkflowFilePath -Verbose:$false $removeDeploymentFlag = $workflowParameters.removeDeployment $requestInputObject = @{ From 5ed567b60df2d6c7e10f70c1d3fdf1195bd51e6b Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 00:26:58 +0200 Subject: [PATCH 027/274] Fixed format --- modules/.global/global.module.tests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/.global/global.module.tests.ps1 b/modules/.global/global.module.tests.ps1 index 7a36c7b56f..b44e87e8e7 100644 --- a/modules/.global/global.module.tests.ps1 +++ b/modules/.global/global.module.tests.ps1 @@ -1067,7 +1067,7 @@ Describe "API version tests [All apiVersions in the template should be 'recent'] $resourceTypeApiVersions = ($namespaceResourceTypes | Where-Object { $_.ResourceTypeName -eq $resourceType }).ApiVersions if (-not $resourceTypeApiVersions) { - Write-Warning ('[API Test] We are currently unable to determine the available API versions for resource type [ { 0 }/ { 1 }]' -f $ProviderNamespace, $resourceType) + Write-Warning ('[API Test] We are currently unable to determine the available API versions for resource type [{0}/{1}]' -f $ProviderNamespace, $resourceType) continue } From c6de8d7df904947f784372e1232d7198c6c56755 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 07:42:12 +0200 Subject: [PATCH 028/274] Cleanup param files --- .../.parameters/azure.parameters.json | 123 ------------------ .../.parameters/kubenet.parameters.json | 116 ----------------- .../.test/azure.parameters.json | 3 + .../servers/.parameters/admin.parameters.json | 18 --- .../servers/.parameters/parameters.json | 109 ---------------- .../servers/.test/parameters.json | 3 + 6 files changed, 6 insertions(+), 366 deletions(-) delete mode 100644 modules/Microsoft.ContainerService/managedClusters/.parameters/azure.parameters.json delete mode 100644 modules/Microsoft.ContainerService/managedClusters/.parameters/kubenet.parameters.json delete mode 100644 modules/Microsoft.Sql/servers/.parameters/admin.parameters.json delete mode 100644 modules/Microsoft.Sql/servers/.parameters/parameters.json diff --git a/modules/Microsoft.ContainerService/managedClusters/.parameters/azure.parameters.json b/modules/Microsoft.ContainerService/managedClusters/.parameters/azure.parameters.json deleted file mode 100644 index 327780a374..0000000000 --- a/modules/Microsoft.ContainerService/managedClusters/.parameters/azure.parameters.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-aks-azure-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "diskEncryptionSetID": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Compute/diskEncryptionSets/adp-<>-az-des-x-001" - }, - "primaryAgentPoolProfile": { - "value": [ - { - "name": "systempool", - "osDiskSizeGB": 0, - "count": 1, - "enableAutoScaling": true, - "minCount": 1, - "maxCount": 3, - "vmSize": "Standard_DS2_v2", - "osType": "Linux", - "storageProfile": "ManagedDisks", - "type": "VirtualMachineScaleSets", - "mode": "System", - "vnetSubnetID": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-aks/subnets/Primary", - "serviceCidr": "", - "maxPods": 30, - "availabilityZones": [ - "1" - ] - } - ] - }, - "aksClusterNetworkPlugin": { - "value": "azure" - }, - "agentPools": { - "value": [ - { - "name": "userpool1", - "vmSize": "Standard_DS2_v2", - "osDiskSizeGB": 128, - "count": 2, - "osType": "Linux", - "maxCount": 3, - "minCount": 1, - "enableAutoScaling": true, - "scaleSetPriority": "Regular", - "scaleSetEvictionPolicy": "Delete", - "nodeLabels": {}, - "nodeTaints": [ - "CriticalAddonsOnly=true:NoSchedule" - ], - "type": "VirtualMachineScaleSets", - "availabilityZones": [ - "1" - ], - "minPods": 2, - "maxPods": 30, - "storageProfile": "ManagedDisks", - "mode": "User", - "vnetSubnetID": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-aks/subnets/Secondary" - }, - { - "name": "userpool2", - "vmSize": "Standard_DS2_v2", - "osDiskSizeGB": 128, - "count": 2, - "osType": "Linux", - "maxCount": 3, - "minCount": 1, - "enableAutoScaling": true, - "scaleSetPriority": "Regular", - "scaleSetEvictionPolicy": "Delete", - "nodeLabels": {}, - "nodeTaints": [ - "CriticalAddonsOnly=true:NoSchedule" - ], - "type": "VirtualMachineScaleSets", - "availabilityZones": [ - "1" - ], - "minPods": 2, - "maxPods": 30, - "storageProfile": "ManagedDisks", - "mode": "User", - "vnetSubnetID": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-aks/subnets/Tertiary" - } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "systemAssignedIdentity": { - "value": true - } - } -} diff --git a/modules/Microsoft.ContainerService/managedClusters/.parameters/kubenet.parameters.json b/modules/Microsoft.ContainerService/managedClusters/.parameters/kubenet.parameters.json deleted file mode 100644 index 3e274f46ca..0000000000 --- a/modules/Microsoft.ContainerService/managedClusters/.parameters/kubenet.parameters.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-aks-kubenet-001" - }, - "primaryAgentPoolProfile": { - "value": [ - { - "name": "systempool", - "osDiskSizeGB": 0, - "count": 1, - "enableAutoScaling": true, - "minCount": 1, - "maxCount": 3, - "vmSize": "Standard_DS2_v2", - "osType": "Linux", - "storageProfile": "ManagedDisks", - "type": "VirtualMachineScaleSets", - "mode": "System", - "serviceCidr": "", - "maxPods": 30, - "availabilityZones": [ - "1" - ] - } - ] - }, - "aksClusterNetworkPlugin": { - "value": "kubenet" - }, - "agentPools": { - "value": [ - { - "name": "userpool1", - "vmSize": "Standard_DS2_v2", - "osDiskSizeGB": 128, - "count": 2, - "osType": "Linux", - "maxCount": 3, - "minCount": 1, - "enableAutoScaling": true, - "scaleSetPriority": "Regular", - "scaleSetEvictionPolicy": "Delete", - "nodeLabels": {}, - "nodeTaints": [ - "CriticalAddonsOnly=true:NoSchedule" - ], - "type": "VirtualMachineScaleSets", - "availabilityZones": [ - "1" - ], - "minPods": 2, - "maxPods": 30, - "storageProfile": "ManagedDisks", - "mode": "User" - }, - { - "name": "userpool2", - "vmSize": "Standard_DS2_v2", - "osDiskSizeGB": 128, - "count": 2, - "osType": "Linux", - "maxCount": 3, - "minCount": 1, - "enableAutoScaling": true, - "scaleSetPriority": "Regular", - "scaleSetEvictionPolicy": "Delete", - "nodeLabels": {}, - "nodeTaints": [ - "CriticalAddonsOnly=true:NoSchedule" - ], - "type": "VirtualMachineScaleSets", - "availabilityZones": [ - "1" - ], - "minPods": 2, - "maxPods": 30, - "storageProfile": "ManagedDisks", - "mode": "User" - } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - } - } -} diff --git a/modules/Microsoft.ContainerService/managedClusters/.test/azure.parameters.json b/modules/Microsoft.ContainerService/managedClusters/.test/azure.parameters.json index b9406ba122..327780a374 100644 --- a/modules/Microsoft.ContainerService/managedClusters/.test/azure.parameters.json +++ b/modules/Microsoft.ContainerService/managedClusters/.test/azure.parameters.json @@ -8,6 +8,9 @@ "lock": { "value": "CanNotDelete" }, + "diskEncryptionSetID": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Compute/diskEncryptionSets/adp-<>-az-des-x-001" + }, "primaryAgentPoolProfile": { "value": [ { diff --git a/modules/Microsoft.Sql/servers/.parameters/admin.parameters.json b/modules/Microsoft.Sql/servers/.parameters/admin.parameters.json deleted file mode 100644 index eadb38deec..0000000000 --- a/modules/Microsoft.Sql/servers/.parameters/admin.parameters.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-sqlsrv-admin-001" - }, - "administrators": { - "value": { - "azureADOnlyAuthentication": true, - "login": "myspn", - "sid": "<>", - "principalType": "Application", - "tenantId": "<>" - } - } - } -} diff --git a/modules/Microsoft.Sql/servers/.parameters/parameters.json b/modules/Microsoft.Sql/servers/.parameters/parameters.json deleted file mode 100644 index 13ec2f832b..0000000000 --- a/modules/Microsoft.Sql/servers/.parameters/parameters.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-sqlsrv-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "administratorLogin": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/<>/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "administratorLogin" - } - }, - "administratorLoginPassword": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/<>/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "administratorLoginPassword" - } - }, - "location": { - "value": "westeurope" - }, - "minimalTlsVersion": { - "value": "1.2" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "vulnerabilityAssessmentsObj": { - "value": { - "name": "default", - "emailSubscriptionAdmins": true, - "recurringScansIsEnabled": true, - "recurringScansEmails": [ - "test1@contoso.com", - "test2@contoso.com" - ], - "vulnerabilityAssessmentsStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - } - }, - "databases": { - "value": [ - { - "name": "<>-az-sqldb-x-001", - "collation": "SQL_Latin1_General_CP1_CI_AS", - "skuTier": "BusinessCritical", - "skuName": "BC_Gen5", - "skuCapacity": 12, - "skuFamily": "Gen5", - "maxSizeBytes": 34359738368, - "licenseType": "LicenseIncluded", - "diagnosticLogsRetentionInDays": 7, - "diagnosticStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", - "diagnosticWorkspaceId": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001", - "diagnosticEventHubAuthorizationRuleId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", - "diagnosticEventHubName": "adp-<>-az-evh-x-001" - } - ] - }, - "firewallRules": { - "value": [ - { - "name": "AllowAllWindowsAzureIps", - "endIpAddress": "0.0.0.0", - "startIpAddress": "0.0.0.0" - } - ] - }, - "securityAlertPolicies": { - "value": [ - { - "name": "Default", - "state": "Enabled", - "emailAccountAdmins": true - } - ] - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "privateEndpoints": { - "value": [ - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "sqlServer" - } - ] - } - } -} diff --git a/modules/Microsoft.Sql/servers/.test/parameters.json b/modules/Microsoft.Sql/servers/.test/parameters.json index 091333e683..13ec2f832b 100644 --- a/modules/Microsoft.Sql/servers/.test/parameters.json +++ b/modules/Microsoft.Sql/servers/.test/parameters.json @@ -27,6 +27,9 @@ "location": { "value": "westeurope" }, + "minimalTlsVersion": { + "value": "1.2" + }, "roleAssignments": { "value": [ { From f02256a218017ec1a19d0adaf9a3a83e4c52f15a Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 08:38:39 +0200 Subject: [PATCH 029/274] Removed outdated param file --- .../.parameters/parameters.json | 56 --- .../servers/.parameters/max.parameters.json | 66 ---- .../servers/.parameters/min.parameters.json | 9 - .../servers/.parameters/parameters.json | 40 -- .../service/.parameters/max.parameters.json | 177 --------- .../service/.parameters/min.parameters.json | 15 - .../service/.parameters/parameters.json | 56 --- .../.parameters/min.parameters.json | 9 - .../.parameters/parameters.json | 80 ---- .../locks/.parameters/rg.parameters.json | 15 - .../.parameters/mg.min.parameters.json | 12 - .../.parameters/mg.parameters.json | 59 --- .../.parameters/rg.min.parameters.json | 18 - .../.parameters/rg.parameters.json | 65 ---- .../.parameters/sub.min.parameters.json | 15 - .../.parameters/sub.parameters.json | 62 --- .../.parameters/mg.min.parameters.json | 35 -- .../.parameters/mg.parameters.json | 72 ---- .../.parameters/sub.min.parameters.json | 38 -- .../.parameters/sub.parameters.json | 72 ---- .../.parameters/mg.min.parameters.json | 12 - .../.parameters/mg.parameters.json | 29 -- .../.parameters/rg.min.parameters.json | 18 - .../.parameters/rg.parameters.json | 32 -- .../.parameters/sub.min.parameters.json | 15 - .../.parameters/sub.parameters.json | 29 -- .../.parameters/mg.min.parameters.json | 23 -- .../.parameters/mg.parameters.json | 66 ---- .../.parameters/sub.min.parameters.json | 26 -- .../.parameters/sub.parameters.json | 66 ---- .../.parameters/mg.min.parameters.json | 12 - .../.parameters/mg.parameters.json | 21 - .../.parameters/rg.min.parameters.json | 18 - .../.parameters/rg.parameters.json | 24 -- .../.parameters/sub.min.parameters.json | 15 - .../.parameters/sub.parameters.json | 21 - .../.parameters/mg.min.parameters.json | 15 - .../.parameters/mg.parameters.json | 43 -- .../.parameters/rg.min.parameters.json | 21 - .../.parameters/rg.parameters.json | 46 --- .../.parameters/sub.min.parameters.json | 18 - .../.parameters/sub.parameters.json | 43 -- .../.parameters/encr.parameters.json | 29 -- .../.parameters/min.parameters.json | 9 - .../.parameters/parameters.json | 199 ---------- .../.parameters/min.parameters.json | 12 - .../batchAccounts/.parameters/parameters.json | 42 -- .../accounts/.parameters/encr.parameters.json | 34 -- .../accounts/.parameters/min.parameters.json | 12 - .../accounts/.parameters/parameters.json | 65 ---- .../.parameters/speech.parameters.json | 34 -- .../.parameters/min.parameters.json | 9 - .../.parameters/parameters.json | 25 -- .../.parameters/parameters.json | 25 -- .../disks/.parameters/image.parameters.json | 28 -- .../disks/.parameters/import.parameters.json | 31 -- .../disks/.parameters/min.parameters.json | 25 -- .../disks/.parameters/parameters.json | 43 -- .../.parameters/images.parameters.json | 50 --- .../galleries/.parameters/parameters.json | 22 -- .../images/.parameters/parameters.json | 37 -- .../.parameters/parameters.json | 22 -- .../.parameters/linux.min.parameters.json | 63 --- .../.parameters/linux.parameters.json | 189 --------- .../.parameters/windows.min.parameters.json | 65 ---- .../.parameters/windows.parameters.json | 185 --------- .../.parameters/linux.autmg.parameters.json | 64 --- .../.parameters/linux.min.parameters.json | 61 --- .../.parameters/linux.parameters.json | 218 ----------- .../.parameters/windows.autmg.parameters.json | 58 --- .../.parameters/windows.min.parameters.json | 55 --- .../.parameters/windows.parameters.json | 235 ----------- .../budgets/.parameters/parameters.json | 23 -- .../.parameters/parameters.json | 38 -- .../.parameters/encr.parameters.json | 29 -- .../.parameters/min.parameters.json | 9 - .../registries/.parameters/parameters.json | 87 ----- .../factories/.parameters/parameters.json | 66 ---- .../.parameters/min.parameters.json | 9 - .../backupVaults/.parameters/parameters.json | 76 ---- .../workspaces/.parameters/parameters.json | 37 -- .../.parameters/min.parameters.json | 15 - .../.parameters/parameters.json | 72 ---- .../hostpools/.parameters/parameters.json | 80 ---- .../.parameters/min.parameters.json | 9 - .../workspaces/.parameters/parameters.json | 51 --- .../.parameters/mongodb.parameters.json | 240 ------------ .../.parameters/plain.parameters.json | 51 --- .../.parameters/sqldb.parameters.json | 76 ---- .../.parameters/min.parameters.json | 15 - .../systemTopics/.parameters/parameters.json | 43 -- .../topics/.parameters/parameters.json | 45 --- .../.parameters/min.parameters.json | 5 - .../namespaces/.parameters/parameters.json | 145 ------- .../healthBots/.parameters/parameters.json | 22 -- .../actionGroups/.parameters/parameters.json | 45 --- .../.parameters/parameters.json | 47 --- .../components/.parameters/parameters.json | 22 -- .../.parameters/parameters.json | 24 -- .../metricAlerts/.parameters/parameters.json | 49 --- .../.parameters/parameters.json | 38 -- .../.parameters/parameters.json | 71 ---- .../vaults/.parameters/min.parameters.json | 5 - .../vaults/.parameters/parameters.json | 133 ------- .../.parameters/min.parameters.json | 21 - .../extensions/.parameters/parameters.json | 34 -- .../.parameters/min.parameters.json | 32 -- .../.parameters/parameters.json | 44 --- .../workflows/.parameters/parameters.json | 78 ---- .../.parameters/min.parameters.json | 24 -- .../workspaces/.parameters/parameters.json | 119 ------ .../.parameters/parameters.json | 22 -- .../.parameters/parameters.json | 34 -- .../.parameters/rg.parameters.json | 37 -- .../.parameters/parameters.json | 15 - .../.parameters/min.parameters.json | 9 - .../.parameters/nfs3.parameters.json | 99 ----- .../.parameters/nfs41.parameters.json | 106 ----- .../.parameters/parameters.json | 367 ------------------ .../.parameters/parameters.json | 22 -- .../.parameters/addpip.parameters.json | 20 - .../.parameters/custompip.parameters.json | 37 -- .../.parameters/min.parameters.json | 12 - .../.parameters/parameters.json | 135 ------- .../.parameters/addpip.parameters.json | 20 - .../.parameters/custompip.parameters.json | 37 -- .../.parameters/min.parameters.json | 12 - .../bastionHosts/.parameters/parameters.json | 49 --- .../.parameters/vnet2vnet.parameters.json | 39 -- .../.parameters/parameters.json | 22 -- .../.parameters/parameters.json | 52 --- .../.parameters/min.parameters.json | 9 - .../.parameters/parameters.json | 49 --- .../frontDoors/.parameters/parameters.json | 115 ------ .../ipGroups/.parameters/parameters.json | 28 -- .../.parameters/internal.parameters.json | 101 ----- .../.parameters/min.parameters.json | 17 - .../loadBalancers/.parameters/parameters.json | 129 ------ .../.parameters/parameters.json | 36 -- .../natGateways/.parameters/parameters.json | 40 -- .../.parameters/min.parameters.json | 17 - .../.parameters/parameters.json | 55 --- .../.parameters/min.parameters.json | 9 - .../.parameters/parameters.json | 103 ----- .../.parameters/min.parameters.json | 9 - .../.parameters/parameters.json | 92 ----- .../.parameters/min.parameters.json | 9 - .../.parameters/parameters.json | 198 ---------- .../.parameters/min.parameters.json | 20 - .../.parameters/parameters.json | 42 -- .../.parameters/parameters.json | 50 --- .../.parameters/parameters.json | 25 -- .../routeTables/.parameters/parameters.json | 34 -- .../.parameters/parameters.json | 40 -- .../.parameters/min.parameters.json | 15 - .../virtualHubs/.parameters/parameters.json | 48 --- .../.parameters/expressRoute.parameters.json | 61 --- .../.parameters/vpn.parameters.json | 62 --- .../.parameters/min.parameters.json | 14 - .../.parameters/parameters.json | 96 ----- .../.parameters/vnetPeering.parameters.json | 52 --- .../.parameters/min.parameters.json | 9 - .../virtualWans/.parameters/parameters.json | 34 -- .../.parameters/min.parameters.json | 12 - .../vpnGateways/.parameters/parameters.json | 68 ---- .../vpnSites/.parameters/min.parameters.json | 20 - .../vpnSites/.parameters/parameters.json | 77 ---- .../.parameters/min.parameters.json | 9 - .../workspaces/.parameters/parameters.json | 171 -------- .../solutions/.parameters/min.parameters.json | 12 - .../solutions/.parameters/ms.parameters.json | 18 - .../.parameters/nonms.parameters.json | 18 - .../vaults/.parameters/dr.parameters.json | 68 ---- .../vaults/.parameters/min.parameters.json | 9 - .../vaults/.parameters/parameters.json | 289 -------------- .../.parameters/cli.parameters.json | 35 -- .../.parameters/ps.parameters.json | 38 -- .../.parameters/parameters.json | 27 -- .../tags/.parameters/min.parameters.json | 5 - .../tags/.parameters/rg.parameters.json | 18 - .../tags/.parameters/sub.parameters.json | 15 - .../.parameters/parameters.json | 20 - .../.parameters/min.parameters.json | 5 - .../namespaces/.parameters/parameters.json | 167 -------- .../clusters/.parameters/cert.parameters.json | 40 -- .../clusters/.parameters/full.parameters.json | 208 ---------- .../clusters/.parameters/min.parameters.json | 34 -- .../.parameters/parameters.json | 150 ------- .../.parameters/encr.parameters.json | 38 -- .../.parameters/min.parameters.json | 9 - .../.parameters/nfs.parameters.json | 64 --- .../.parameters/parameters.json | 192 --------- .../.parameters/v1.parameters.json | 12 - .../.parameters/min.parameters.json | 9 - .../.parameters/parameters.json | 36 -- .../.parameters/parameters.json | 69 ---- .../connections/.parameters/parameters.json | 30 -- .../.parameters/asev2.parameters.json | 54 --- .../.parameters/asev3.parameters.json | 48 --- .../serverfarms/.parameters/parameters.json | 46 --- .../sites/.parameters/fa.min.parameters.json | 20 - .../sites/.parameters/fa.parameters.json | 146 ------- .../sites/.parameters/wa.min.parameters.json | 15 - .../sites/.parameters/wa.parameters.json | 70 ---- .../.parameters/min.parameters.json | 9 - .../staticSites/.parameters/parameters.json | 50 --- 206 files changed, 10773 deletions(-) delete mode 100644 modules/Microsoft.AAD/DomainServices/.parameters/parameters.json delete mode 100644 modules/Microsoft.AnalysisServices/servers/.parameters/max.parameters.json delete mode 100644 modules/Microsoft.AnalysisServices/servers/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.AnalysisServices/servers/.parameters/parameters.json delete mode 100644 modules/Microsoft.ApiManagement/service/.parameters/max.parameters.json delete mode 100644 modules/Microsoft.ApiManagement/service/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.ApiManagement/service/.parameters/parameters.json delete mode 100644 modules/Microsoft.AppConfiguration/configurationStores/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.AppConfiguration/configurationStores/.parameters/parameters.json delete mode 100644 modules/Microsoft.Authorization/locks/.parameters/rg.parameters.json delete mode 100644 modules/Microsoft.Authorization/policyAssignments/.parameters/mg.min.parameters.json delete mode 100644 modules/Microsoft.Authorization/policyAssignments/.parameters/mg.parameters.json delete mode 100644 modules/Microsoft.Authorization/policyAssignments/.parameters/rg.min.parameters.json delete mode 100644 modules/Microsoft.Authorization/policyAssignments/.parameters/rg.parameters.json delete mode 100644 modules/Microsoft.Authorization/policyAssignments/.parameters/sub.min.parameters.json delete mode 100644 modules/Microsoft.Authorization/policyAssignments/.parameters/sub.parameters.json delete mode 100644 modules/Microsoft.Authorization/policyDefinitions/.parameters/mg.min.parameters.json delete mode 100644 modules/Microsoft.Authorization/policyDefinitions/.parameters/mg.parameters.json delete mode 100644 modules/Microsoft.Authorization/policyDefinitions/.parameters/sub.min.parameters.json delete mode 100644 modules/Microsoft.Authorization/policyDefinitions/.parameters/sub.parameters.json delete mode 100644 modules/Microsoft.Authorization/policyExemptions/.parameters/mg.min.parameters.json delete mode 100644 modules/Microsoft.Authorization/policyExemptions/.parameters/mg.parameters.json delete mode 100644 modules/Microsoft.Authorization/policyExemptions/.parameters/rg.min.parameters.json delete mode 100644 modules/Microsoft.Authorization/policyExemptions/.parameters/rg.parameters.json delete mode 100644 modules/Microsoft.Authorization/policyExemptions/.parameters/sub.min.parameters.json delete mode 100644 modules/Microsoft.Authorization/policyExemptions/.parameters/sub.parameters.json delete mode 100644 modules/Microsoft.Authorization/policySetDefinitions/.parameters/mg.min.parameters.json delete mode 100644 modules/Microsoft.Authorization/policySetDefinitions/.parameters/mg.parameters.json delete mode 100644 modules/Microsoft.Authorization/policySetDefinitions/.parameters/sub.min.parameters.json delete mode 100644 modules/Microsoft.Authorization/policySetDefinitions/.parameters/sub.parameters.json delete mode 100644 modules/Microsoft.Authorization/roleAssignments/.parameters/mg.min.parameters.json delete mode 100644 modules/Microsoft.Authorization/roleAssignments/.parameters/mg.parameters.json delete mode 100644 modules/Microsoft.Authorization/roleAssignments/.parameters/rg.min.parameters.json delete mode 100644 modules/Microsoft.Authorization/roleAssignments/.parameters/rg.parameters.json delete mode 100644 modules/Microsoft.Authorization/roleAssignments/.parameters/sub.min.parameters.json delete mode 100644 modules/Microsoft.Authorization/roleAssignments/.parameters/sub.parameters.json delete mode 100644 modules/Microsoft.Authorization/roleDefinitions/.parameters/mg.min.parameters.json delete mode 100644 modules/Microsoft.Authorization/roleDefinitions/.parameters/mg.parameters.json delete mode 100644 modules/Microsoft.Authorization/roleDefinitions/.parameters/rg.min.parameters.json delete mode 100644 modules/Microsoft.Authorization/roleDefinitions/.parameters/rg.parameters.json delete mode 100644 modules/Microsoft.Authorization/roleDefinitions/.parameters/sub.min.parameters.json delete mode 100644 modules/Microsoft.Authorization/roleDefinitions/.parameters/sub.parameters.json delete mode 100644 modules/Microsoft.Automation/automationAccounts/.parameters/encr.parameters.json delete mode 100644 modules/Microsoft.Automation/automationAccounts/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.Automation/automationAccounts/.parameters/parameters.json delete mode 100644 modules/Microsoft.Batch/batchAccounts/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.Batch/batchAccounts/.parameters/parameters.json delete mode 100644 modules/Microsoft.CognitiveServices/accounts/.parameters/encr.parameters.json delete mode 100644 modules/Microsoft.CognitiveServices/accounts/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.CognitiveServices/accounts/.parameters/parameters.json delete mode 100644 modules/Microsoft.CognitiveServices/accounts/.parameters/speech.parameters.json delete mode 100644 modules/Microsoft.Compute/availabilitySets/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.Compute/availabilitySets/.parameters/parameters.json delete mode 100644 modules/Microsoft.Compute/diskEncryptionSets/.parameters/parameters.json delete mode 100644 modules/Microsoft.Compute/disks/.parameters/image.parameters.json delete mode 100644 modules/Microsoft.Compute/disks/.parameters/import.parameters.json delete mode 100644 modules/Microsoft.Compute/disks/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.Compute/disks/.parameters/parameters.json delete mode 100644 modules/Microsoft.Compute/galleries/.parameters/images.parameters.json delete mode 100644 modules/Microsoft.Compute/galleries/.parameters/parameters.json delete mode 100644 modules/Microsoft.Compute/images/.parameters/parameters.json delete mode 100644 modules/Microsoft.Compute/proximityPlacementGroups/.parameters/parameters.json delete mode 100644 modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.min.parameters.json delete mode 100644 modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.parameters.json delete mode 100644 modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.min.parameters.json delete mode 100644 modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.parameters.json delete mode 100644 modules/Microsoft.Compute/virtualMachines/.parameters/linux.autmg.parameters.json delete mode 100644 modules/Microsoft.Compute/virtualMachines/.parameters/linux.min.parameters.json delete mode 100644 modules/Microsoft.Compute/virtualMachines/.parameters/linux.parameters.json delete mode 100644 modules/Microsoft.Compute/virtualMachines/.parameters/windows.autmg.parameters.json delete mode 100644 modules/Microsoft.Compute/virtualMachines/.parameters/windows.min.parameters.json delete mode 100644 modules/Microsoft.Compute/virtualMachines/.parameters/windows.parameters.json delete mode 100644 modules/Microsoft.Consumption/budgets/.parameters/parameters.json delete mode 100644 modules/Microsoft.ContainerInstance/containerGroups/.parameters/parameters.json delete mode 100644 modules/Microsoft.ContainerRegistry/registries/.parameters/encr.parameters.json delete mode 100644 modules/Microsoft.ContainerRegistry/registries/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.ContainerRegistry/registries/.parameters/parameters.json delete mode 100644 modules/Microsoft.DataFactory/factories/.parameters/parameters.json delete mode 100644 modules/Microsoft.DataProtection/backupVaults/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.DataProtection/backupVaults/.parameters/parameters.json delete mode 100644 modules/Microsoft.Databricks/workspaces/.parameters/parameters.json delete mode 100644 modules/Microsoft.DesktopVirtualization/applicationgroups/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.DesktopVirtualization/applicationgroups/.parameters/parameters.json delete mode 100644 modules/Microsoft.DesktopVirtualization/hostpools/.parameters/parameters.json delete mode 100644 modules/Microsoft.DesktopVirtualization/scalingplans/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.DesktopVirtualization/workspaces/.parameters/parameters.json delete mode 100644 modules/Microsoft.DocumentDB/databaseAccounts/.parameters/mongodb.parameters.json delete mode 100644 modules/Microsoft.DocumentDB/databaseAccounts/.parameters/plain.parameters.json delete mode 100644 modules/Microsoft.DocumentDB/databaseAccounts/.parameters/sqldb.parameters.json delete mode 100644 modules/Microsoft.EventGrid/systemTopics/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.EventGrid/systemTopics/.parameters/parameters.json delete mode 100644 modules/Microsoft.EventGrid/topics/.parameters/parameters.json delete mode 100644 modules/Microsoft.EventHub/namespaces/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.EventHub/namespaces/.parameters/parameters.json delete mode 100644 modules/Microsoft.HealthBot/healthBots/.parameters/parameters.json delete mode 100644 modules/Microsoft.Insights/actionGroups/.parameters/parameters.json delete mode 100644 modules/Microsoft.Insights/activityLogAlerts/.parameters/parameters.json delete mode 100644 modules/Microsoft.Insights/components/.parameters/parameters.json delete mode 100644 modules/Microsoft.Insights/diagnosticSettings/.parameters/parameters.json delete mode 100644 modules/Microsoft.Insights/metricAlerts/.parameters/parameters.json delete mode 100644 modules/Microsoft.Insights/privateLinkScopes/.parameters/parameters.json delete mode 100644 modules/Microsoft.Insights/scheduledQueryRules/.parameters/parameters.json delete mode 100644 modules/Microsoft.KeyVault/vaults/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.KeyVault/vaults/.parameters/parameters.json delete mode 100644 modules/Microsoft.KubernetesConfiguration/extensions/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.KubernetesConfiguration/extensions/.parameters/parameters.json delete mode 100644 modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.parameters/parameters.json delete mode 100644 modules/Microsoft.Logic/workflows/.parameters/parameters.json delete mode 100644 modules/Microsoft.MachineLearningServices/workspaces/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.MachineLearningServices/workspaces/.parameters/parameters.json delete mode 100644 modules/Microsoft.ManagedIdentity/userAssignedIdentities/.parameters/parameters.json delete mode 100644 modules/Microsoft.ManagedServices/registrationDefinitions/.parameters/parameters.json delete mode 100644 modules/Microsoft.ManagedServices/registrationDefinitions/.parameters/rg.parameters.json delete mode 100644 modules/Microsoft.Management/managementGroups/.parameters/parameters.json delete mode 100644 modules/Microsoft.NetApp/netAppAccounts/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.NetApp/netAppAccounts/.parameters/nfs3.parameters.json delete mode 100644 modules/Microsoft.NetApp/netAppAccounts/.parameters/nfs41.parameters.json delete mode 100644 modules/Microsoft.Network/applicationGateways/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/applicationSecurityGroups/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/azureFirewalls/.parameters/addpip.parameters.json delete mode 100644 modules/Microsoft.Network/azureFirewalls/.parameters/custompip.parameters.json delete mode 100644 modules/Microsoft.Network/azureFirewalls/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.Network/azureFirewalls/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/bastionHosts/.parameters/addpip.parameters.json delete mode 100644 modules/Microsoft.Network/bastionHosts/.parameters/custompip.parameters.json delete mode 100644 modules/Microsoft.Network/bastionHosts/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.Network/bastionHosts/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/connections/.parameters/vnet2vnet.parameters.json delete mode 100644 modules/Microsoft.Network/ddosProtectionPlans/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/expressRouteCircuits/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/firewallPolicies/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.Network/firewallPolicies/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/frontDoors/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/ipGroups/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/loadBalancers/.parameters/internal.parameters.json delete mode 100644 modules/Microsoft.Network/loadBalancers/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.Network/loadBalancers/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/localNetworkGateways/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/natGateways/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/networkInterfaces/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.Network/networkInterfaces/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/networkSecurityGroups/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.Network/networkSecurityGroups/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/networkWatchers/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.Network/networkWatchers/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/privateDnsZones/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.Network/privateDnsZones/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/privateEndpoints/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.Network/privateEndpoints/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/publicIPAddresses/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/publicIPPrefixes/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/routeTables/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/trafficmanagerprofiles/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/virtualHubs/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.Network/virtualHubs/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/virtualNetworkGateways/.parameters/expressRoute.parameters.json delete mode 100644 modules/Microsoft.Network/virtualNetworkGateways/.parameters/vpn.parameters.json delete mode 100644 modules/Microsoft.Network/virtualNetworks/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.Network/virtualNetworks/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/virtualNetworks/.parameters/vnetPeering.parameters.json delete mode 100644 modules/Microsoft.Network/virtualWans/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.Network/virtualWans/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/vpnGateways/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.Network/vpnGateways/.parameters/parameters.json delete mode 100644 modules/Microsoft.Network/vpnSites/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.Network/vpnSites/.parameters/parameters.json delete mode 100644 modules/Microsoft.OperationalInsights/workspaces/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.OperationalInsights/workspaces/.parameters/parameters.json delete mode 100644 modules/Microsoft.OperationsManagement/solutions/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.OperationsManagement/solutions/.parameters/ms.parameters.json delete mode 100644 modules/Microsoft.OperationsManagement/solutions/.parameters/nonms.parameters.json delete mode 100644 modules/Microsoft.RecoveryServices/vaults/.parameters/dr.parameters.json delete mode 100644 modules/Microsoft.RecoveryServices/vaults/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json delete mode 100644 modules/Microsoft.Resources/deploymentScripts/.parameters/cli.parameters.json delete mode 100644 modules/Microsoft.Resources/deploymentScripts/.parameters/ps.parameters.json delete mode 100644 modules/Microsoft.Resources/resourceGroups/.parameters/parameters.json delete mode 100644 modules/Microsoft.Resources/tags/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.Resources/tags/.parameters/rg.parameters.json delete mode 100644 modules/Microsoft.Resources/tags/.parameters/sub.parameters.json delete mode 100644 modules/Microsoft.Security/azureSecurityCenter/.parameters/parameters.json delete mode 100644 modules/Microsoft.ServiceBus/namespaces/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.ServiceBus/namespaces/.parameters/parameters.json delete mode 100644 modules/Microsoft.ServiceFabric/clusters/.parameters/cert.parameters.json delete mode 100644 modules/Microsoft.ServiceFabric/clusters/.parameters/full.parameters.json delete mode 100644 modules/Microsoft.ServiceFabric/clusters/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.Sql/managedInstances/.parameters/parameters.json delete mode 100644 modules/Microsoft.Storage/storageAccounts/.parameters/encr.parameters.json delete mode 100644 modules/Microsoft.Storage/storageAccounts/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.Storage/storageAccounts/.parameters/nfs.parameters.json delete mode 100644 modules/Microsoft.Storage/storageAccounts/.parameters/parameters.json delete mode 100644 modules/Microsoft.Storage/storageAccounts/.parameters/v1.parameters.json delete mode 100644 modules/Microsoft.Synapse/privateLinkHubs/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.Synapse/privateLinkHubs/.parameters/parameters.json delete mode 100644 modules/Microsoft.VirtualMachineImages/imageTemplates/.parameters/parameters.json delete mode 100644 modules/Microsoft.Web/connections/.parameters/parameters.json delete mode 100644 modules/Microsoft.Web/hostingEnvironments/.parameters/asev2.parameters.json delete mode 100644 modules/Microsoft.Web/hostingEnvironments/.parameters/asev3.parameters.json delete mode 100644 modules/Microsoft.Web/serverfarms/.parameters/parameters.json delete mode 100644 modules/Microsoft.Web/sites/.parameters/fa.min.parameters.json delete mode 100644 modules/Microsoft.Web/sites/.parameters/fa.parameters.json delete mode 100644 modules/Microsoft.Web/sites/.parameters/wa.min.parameters.json delete mode 100644 modules/Microsoft.Web/sites/.parameters/wa.parameters.json delete mode 100644 modules/Microsoft.Web/staticSites/.parameters/min.parameters.json delete mode 100644 modules/Microsoft.Web/staticSites/.parameters/parameters.json diff --git a/modules/Microsoft.AAD/DomainServices/.parameters/parameters.json b/modules/Microsoft.AAD/DomainServices/.parameters/parameters.json deleted file mode 100644 index 6166d322e2..0000000000 --- a/modules/Microsoft.AAD/DomainServices/.parameters/parameters.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "domainName": { - "value": "<>.onmicrosoft.com" - }, - "sku": { - "value": "Standard" - }, - "lock": { - "value": "CanNotDelete" - }, - "replicaSets": { - "value": [ - { - "location": "WestEurope", - "subnetId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-aadds-001/subnets/AADDSSubnet" - } - ] - }, - "pfxCertificate": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "pfxBase64Certificate" - } - }, - "pfxCertificatePassword": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "pfxCertificatePassword" - } - }, - "additionalRecipients": { - "value": [ - "<>@noreply.github.com" - ] - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.AnalysisServices/servers/.parameters/max.parameters.json b/modules/Microsoft.AnalysisServices/servers/.parameters/max.parameters.json deleted file mode 100644 index 54abf71cc2..0000000000 --- a/modules/Microsoft.AnalysisServices/servers/.parameters/max.parameters.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>azasweumax001" - }, - "lock": { - "value": "CanNotDelete" - }, - "skuName": { - "value": "S0" - }, - "skuCapacity": { - "value": 1 - }, - "firewallSettings": { - "value": { - "firewallRules": [ - { - "firewallRuleName": "AllowFromAll", - "rangeStart": "0.0.0.0", - "rangeEnd": "255.255.255.255" - } - ], - "enablePowerBIService": true - } - }, - "diagnosticLogsRetentionInDays": { - "value": 365 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogCategoriesToEnable": { - "value": [ - "Engine", - "Service" - ] - }, - "diagnosticMetricsToEnable": { - "value": [ - "AllMetrics" - ] - } - } -} diff --git a/modules/Microsoft.AnalysisServices/servers/.parameters/min.parameters.json b/modules/Microsoft.AnalysisServices/servers/.parameters/min.parameters.json deleted file mode 100644 index 33c06055de..0000000000 --- a/modules/Microsoft.AnalysisServices/servers/.parameters/min.parameters.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>azasweumin001" - } - } -} diff --git a/modules/Microsoft.AnalysisServices/servers/.parameters/parameters.json b/modules/Microsoft.AnalysisServices/servers/.parameters/parameters.json deleted file mode 100644 index 592ffff258..0000000000 --- a/modules/Microsoft.AnalysisServices/servers/.parameters/parameters.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>azasweux001" - }, - "lock": { - "value": "CanNotDelete" - }, - "skuName": { - "value": "S0" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.ApiManagement/service/.parameters/max.parameters.json b/modules/Microsoft.ApiManagement/service/.parameters/max.parameters.json deleted file mode 100644 index f760ecf1d4..0000000000 --- a/modules/Microsoft.ApiManagement/service/.parameters/max.parameters.json +++ /dev/null @@ -1,177 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-apim-max-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "publisherEmail": { - "value": "apimgmt-noreply@mail.windowsazure.com" - }, - "publisherName": { - "value": "<>-az-amorg-x-001" - }, - "apis": { - "value": [ - { - "name": "echo-api", - "displayName": "Echo API", - "path": "echo", - "serviceUrl": "http://echoapi.cloudapp.net/api", - "apiVersionSet": { - "name": "echo-version-set", - "properties": { - "description": "echo-version-set", - "displayName": "echo-version-set", - "versioningScheme": "Segment" - } - } - } - ] - }, - "authorizationServers": { - "value": [ - { - "name": "AuthServer1", - "authorizationEndpoint": "https://login.microsoftonline.com/651b43ce-ccb8-4301-b551-b04dd872d401/oauth2/v2.0/authorize", - "grantTypes": [ - "authorizationCode" - ], - "clientCredentialsKeyVaultId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", - "clientIdSecretName": "apimclientid", - "clientSecretSecretName": "apimclientsecret", - "clientRegistrationEndpoint": "http://localhost", - "tokenEndpoint": "https://login.microsoftonline.com/651b43ce-ccb8-4301-b551-b04dd872d401/oauth2/v2.0/token" - } - ] - }, - "backends": { - "value": [ - { - "name": "backend", - "url": "http://echoapi.cloudapp.net/api", - "tls": { - "validateCertificateChain": false, - "validateCertificateName": false - } - } - ] - }, - "caches": { - "value": [ - { - "name": "westeurope", - "connectionString": "connectionstringtest", - "useFromLocation": "westeurope" - } - ] - }, - "identityProviders": { - "value": [ - { - "name": "aadProvider" - } - ] - }, - "namedValues": { - "value": [ - { - "name": "apimkey", - "displayName": "apimkey", - "secret": true - } - ] - }, - "policies": { - "value": [ - { - "value": " ", - "format": "xml" - } - ] - }, - "portalSettings": { - "value": [ - { - "name": "signin", - "properties": { - "enabled": false - } - }, - { - "name": "signup", - "properties": { - "enabled": false, - "termsOfService": { - "enabled": false, - "consentRequired": false - } - } - } - ] - }, - "products": { - "value": [ - { - "name": "Starter", - "subscriptionRequired": false, - "approvalRequired": false, - "apis": [ - { - "name": "echo-api" - } - ], - "groups": [ - { - "name": "developers" - } - ] - } - ] - }, - "subscriptions": { - "value": [ - { - "scope": "/apis", - "name": "testArmSubscriptionAllApis" - } - ] - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.ApiManagement/service/.parameters/min.parameters.json b/modules/Microsoft.ApiManagement/service/.parameters/min.parameters.json deleted file mode 100644 index d71e822cc5..0000000000 --- a/modules/Microsoft.ApiManagement/service/.parameters/min.parameters.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-apim-min-001" - }, - "publisherEmail": { - "value": "apimgmt-noreply@mail.windowsazure.com" - }, - "publisherName": { - "value": "<>-az-amorg-x-001" - } - } -} diff --git a/modules/Microsoft.ApiManagement/service/.parameters/parameters.json b/modules/Microsoft.ApiManagement/service/.parameters/parameters.json deleted file mode 100644 index 8f73097f17..0000000000 --- a/modules/Microsoft.ApiManagement/service/.parameters/parameters.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-apim-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "publisherEmail": { - "value": "apimgmt-noreply@mail.windowsazure.com" - }, - "publisherName": { - "value": "<>-az-amorg-x-001" - }, - "portalSettings": { - "value": [ - { - "name": "signin", - "properties": { - "enabled": false - } - }, - { - "name": "signup", - "properties": { - "enabled": false, - "termsOfService": { - "enabled": false, - "consentRequired": false - } - } - } - ] - }, - "policies": { - "value": [ - { - "value": " ", - "format": "xml" - } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.AppConfiguration/configurationStores/.parameters/min.parameters.json b/modules/Microsoft.AppConfiguration/configurationStores/.parameters/min.parameters.json deleted file mode 100644 index d93330feb1..0000000000 --- a/modules/Microsoft.AppConfiguration/configurationStores/.parameters/min.parameters.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-appcs-min-001" - } - } -} diff --git a/modules/Microsoft.AppConfiguration/configurationStores/.parameters/parameters.json b/modules/Microsoft.AppConfiguration/configurationStores/.parameters/parameters.json deleted file mode 100644 index 81fee88944..0000000000 --- a/modules/Microsoft.AppConfiguration/configurationStores/.parameters/parameters.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-appcs-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "systemAssignedIdentity": { - "value": true - }, - "keyValues": { - "value": [ - { - "name": "keyName", - "value": "valueName", - "contentType": "contentType", - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "createMode": { - "value": "Default" - }, - "disableLocalAuth": { - "value": false - }, - "enablePurgeProtection": { - "value": false - }, - "publicNetworkAccess": { - "value": "Enabled" - }, - "softDeleteRetentionInDays": { - "value": 1 - }, - "privateEndpoints": { - "value": [ - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "configurationStores" - } - ] - } - } -} diff --git a/modules/Microsoft.Authorization/locks/.parameters/rg.parameters.json b/modules/Microsoft.Authorization/locks/.parameters/rg.parameters.json deleted file mode 100644 index dc4870ce99..0000000000 --- a/modules/Microsoft.Authorization/locks/.parameters/rg.parameters.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "level": { - "value": "CanNotDelete" - }, - "resourceGroupName": { - "value": "adp-<>-az-locks-rg-001" - }, - "subscriptionId": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/policyAssignments/.parameters/mg.min.parameters.json b/modules/Microsoft.Authorization/policyAssignments/.parameters/mg.min.parameters.json deleted file mode 100644 index 7271e1d839..0000000000 --- a/modules/Microsoft.Authorization/policyAssignments/.parameters/mg.min.parameters.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-min-mg-polAss" - }, - "policyDefinitionID": { - "value": "/providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a4d" - } - } -} diff --git a/modules/Microsoft.Authorization/policyAssignments/.parameters/mg.parameters.json b/modules/Microsoft.Authorization/policyAssignments/.parameters/mg.parameters.json deleted file mode 100644 index f140b8c7ed..0000000000 --- a/modules/Microsoft.Authorization/policyAssignments/.parameters/mg.parameters.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-mg-polAss" - }, - "displayName": { - "value": "[Display Name] Policy Assignment at the management group scope" - }, - "description": { - "value": "[Description] Policy Assignment at the management group scope" - }, - "policyDefinitionId": { - "value": "/providers/Microsoft.Authorization/policyDefinitions/4f9dc7db-30c1-420c-b61a-e1d640128d26" - }, - "parameters": { - "value": { - "tagName": { - "value": "env" - }, - "tagValue": { - "value": "prod" - } - } - }, - "nonComplianceMessage": { - "value": "Violated Policy Assignment - This is a Non Compliance Message" - }, - "enforcementMode": { - "value": "DoNotEnforce" - }, - "metadata": { - "value": { - "category": "Security", - "version": "1.0" - } - }, - "location": { - "value": "australiaeast" - }, - "notScopes": { - "value": [ - "/subscriptions/<>/resourceGroups/validation-rg" - ] - }, - "identity": { - "value": "SystemAssigned" - }, - "roleDefinitionIds": { - "value": [ - "/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c" - ] - }, - "managementGroupId": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/policyAssignments/.parameters/rg.min.parameters.json b/modules/Microsoft.Authorization/policyAssignments/.parameters/rg.min.parameters.json deleted file mode 100644 index 8dd48a8dd7..0000000000 --- a/modules/Microsoft.Authorization/policyAssignments/.parameters/rg.min.parameters.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-min-rg-polAss" - }, - "policyDefinitionID": { - "value": "/providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a4d" - }, - "subscriptionId": { - "value": "<>" - }, - "resourceGroupName": { - "value": "validation-rg" - } - } -} diff --git a/modules/Microsoft.Authorization/policyAssignments/.parameters/rg.parameters.json b/modules/Microsoft.Authorization/policyAssignments/.parameters/rg.parameters.json deleted file mode 100644 index f1f4a19d74..0000000000 --- a/modules/Microsoft.Authorization/policyAssignments/.parameters/rg.parameters.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-rg-polAss" - }, - "displayName": { - "value": "[Display Name] Policy Assignment at the resource group scope" - }, - "description": { - "value": "[Description] Policy Assignment at the resource group scope" - }, - "policyDefinitionId": { - "value": "/providers/Microsoft.Authorization/policyDefinitions/4f9dc7db-30c1-420c-b61a-e1d640128d26" - }, - "parameters": { - "value": { - "tagName": { - "value": "env" - }, - "tagValue": { - "value": "prod" - } - } - }, - "nonComplianceMessage": { - "value": "Violated Policy Assignment - This is a Non Compliance Message" - }, - "enforcementMode": { - "value": "DoNotEnforce" - }, - "metadata": { - "value": { - "category": "Security", - "version": "1.0" - } - }, - "location": { - "value": "australiaeast" - }, - "notScopes": { - "value": [ - "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - ] - }, - "identity": { - "value": "UserAssigned" - }, - "userAssignedIdentityId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001" - }, - "roleDefinitionIds": { - "value": [ - "/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c" - ] - }, - "subscriptionId": { - "value": "<>" - }, - "resourceGroupName": { - "value": "validation-rg" - } - } -} diff --git a/modules/Microsoft.Authorization/policyAssignments/.parameters/sub.min.parameters.json b/modules/Microsoft.Authorization/policyAssignments/.parameters/sub.min.parameters.json deleted file mode 100644 index ebadf2e43b..0000000000 --- a/modules/Microsoft.Authorization/policyAssignments/.parameters/sub.min.parameters.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-min-sub-polAss" - }, - "policyDefinitionID": { - "value": "/providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a4d" - }, - "subscriptionId": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/policyAssignments/.parameters/sub.parameters.json b/modules/Microsoft.Authorization/policyAssignments/.parameters/sub.parameters.json deleted file mode 100644 index 420a48df1d..0000000000 --- a/modules/Microsoft.Authorization/policyAssignments/.parameters/sub.parameters.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-sub-polAss" - }, - "displayName": { - "value": "[Display Name] Policy Assignment at the subscription scope" - }, - "description": { - "value": "[Description] Policy Assignment at the subscription scope" - }, - "policyDefinitionId": { - "value": "/providers/Microsoft.Authorization/policyDefinitions/4f9dc7db-30c1-420c-b61a-e1d640128d26" - }, - "parameters": { - "value": { - "tagName": { - "value": "env" - }, - "tagValue": { - "value": "prod" - } - } - }, - "nonComplianceMessage": { - "value": "Violated Policy Assignment - This is a Non Compliance Message" - }, - "enforcementMode": { - "value": "DoNotEnforce" - }, - "metadata": { - "value": { - "category": "Security", - "version": "1.0" - } - }, - "location": { - "value": "australiaeast" - }, - "notScopes": { - "value": [ - "/subscriptions/<>/resourceGroups/validation-rg" - ] - }, - "identity": { - "value": "UserAssigned" - }, - "userAssignedIdentityId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001" - }, - "roleDefinitionIds": { - "value": [ - "/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c" - ] - }, - "subscriptionId": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/policyDefinitions/.parameters/mg.min.parameters.json b/modules/Microsoft.Authorization/policyDefinitions/.parameters/mg.min.parameters.json deleted file mode 100644 index 431a0f6f5e..0000000000 --- a/modules/Microsoft.Authorization/policyDefinitions/.parameters/mg.min.parameters.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-mg-min-policyDef" - }, - "policyRule": { - "value": { - "if": { - "allOf": [ - { - "equals": "Microsoft.KeyVault/vaults", - "field": "type" - } - ] - }, - "then": { - "effect": "[parameters('effect')]" - } - } - }, - "parameters": { - "value": { - "effect": { - "allowedValues": [ - "Audit" - ], - "defaultValue": "Audit", - "type": "String" - } - } - } - } -} diff --git a/modules/Microsoft.Authorization/policyDefinitions/.parameters/mg.parameters.json b/modules/Microsoft.Authorization/policyDefinitions/.parameters/mg.parameters.json deleted file mode 100644 index 7196de6154..0000000000 --- a/modules/Microsoft.Authorization/policyDefinitions/.parameters/mg.parameters.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-mg-policyDef" - }, - "displayName": { - "value": "[DisplayName] This policy definition is deployed at the management group scope" - }, - "description": { - "value": "[Description] This policy definition is deployed at the management group scope" - }, - "policyRule": { - "value": { - "if": { - "allOf": [ - { - "field": "type", - "equals": "Microsoft.Resources/subscriptions" - }, - { - "field": "[concat('tags[', parameters('tagName'), ']')]", - "exists": "false" - } - ] - }, - "then": { - "effect": "modify", - "details": { - "roleDefinitionIds": [ - "/providers/microsoft.authorization/roleDefinitions/4a9ae827-6dc8-4573-8ac7-8239d42aa03f" - ], - "operations": [ - { - "operation": "add", - "field": "[concat('tags[', parameters('tagName'), ']')]", - "value": "[parameters('tagValue')]" - } - ] - } - } - } - }, - "parameters": { - "value": { - "tagName": { - "type": "String", - "metadata": { - "displayName": "Tag Name", - "description": "Name of the tag, such as 'environment'" - } - }, - "tagValue": { - "type": "String", - "metadata": { - "displayName": "Tag Value", - "description": "Value of the tag, such as 'production'" - } - } - } - }, - "metadata": { - "value": { - "category": "Security" - } - }, - "managementGroupId": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/policyDefinitions/.parameters/sub.min.parameters.json b/modules/Microsoft.Authorization/policyDefinitions/.parameters/sub.min.parameters.json deleted file mode 100644 index f2cd03cfb5..0000000000 --- a/modules/Microsoft.Authorization/policyDefinitions/.parameters/sub.min.parameters.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-sub-min-policyDef" - }, - "policyRule": { - "value": { - "if": { - "allOf": [ - { - "equals": "Microsoft.KeyVault/vaults", - "field": "type" - } - ] - }, - "then": { - "effect": "[parameters('effect')]" - } - } - }, - "parameters": { - "value": { - "effect": { - "allowedValues": [ - "Audit" - ], - "defaultValue": "Audit", - "type": "String" - } - } - }, - "subscriptionId": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/policyDefinitions/.parameters/sub.parameters.json b/modules/Microsoft.Authorization/policyDefinitions/.parameters/sub.parameters.json deleted file mode 100644 index e445127518..0000000000 --- a/modules/Microsoft.Authorization/policyDefinitions/.parameters/sub.parameters.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-sub-policyDef" - }, - "displayName": { - "value": "[DisplayName] This policy definition is deployed at subscription scope" - }, - "description": { - "value": "[Description] This policy definition is deployed at subscription scope" - }, - "policyRule": { - "value": { - "if": { - "allOf": [ - { - "field": "type", - "equals": "Microsoft.Resources/subscriptions" - }, - { - "field": "[concat('tags[', parameters('tagName'), ']')]", - "exists": "false" - } - ] - }, - "then": { - "effect": "modify", - "details": { - "roleDefinitionIds": [ - "/providers/microsoft.authorization/roleDefinitions/4a9ae827-6dc8-4573-8ac7-8239d42aa03f" - ], - "operations": [ - { - "operation": "add", - "field": "[concat('tags[', parameters('tagName'), ']')]", - "value": "[parameters('tagValue')]" - } - ] - } - } - } - }, - "parameters": { - "value": { - "tagName": { - "type": "String", - "metadata": { - "displayName": "Tag Name", - "description": "Name of the tag, such as 'environment'" - } - }, - "tagValue": { - "type": "String", - "metadata": { - "displayName": "Tag Value", - "description": "Value of the tag, such as 'production'" - } - } - } - }, - "metadata": { - "value": { - "category": "Security" - } - }, - "subscriptionId": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/policyExemptions/.parameters/mg.min.parameters.json b/modules/Microsoft.Authorization/policyExemptions/.parameters/mg.min.parameters.json deleted file mode 100644 index f5816fcd6d..0000000000 --- a/modules/Microsoft.Authorization/policyExemptions/.parameters/mg.min.parameters.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-min-mg-polexem" - }, - "policyAssignmentId": { - "value": "/providers/Microsoft.Management/managementGroups/<>/providers/Microsoft.Authorization/policyAssignments/adp-<>-mg-pass-loc-rg" - } - } -} diff --git a/modules/Microsoft.Authorization/policyExemptions/.parameters/mg.parameters.json b/modules/Microsoft.Authorization/policyExemptions/.parameters/mg.parameters.json deleted file mode 100644 index 2c76ecb64a..0000000000 --- a/modules/Microsoft.Authorization/policyExemptions/.parameters/mg.parameters.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-mg-polexem" - }, - "displayName": { - "value": "[Display Name] policy exempt (management group scope)" - }, - "policyAssignmentId": { - "value": "/providers/Microsoft.Management/managementGroups/<>/providers/Microsoft.Authorization/policyAssignments/adp-<>-mg-pass-loc-rg" - }, - "exemptionCategory": { - "value": "Waiver" - }, - "metadata": { - "value": { - "category": "Security" - } - }, - "expiresOn": { - "value": "2025-10-02T03:57:00.000Z" - }, - "managementGroupId": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/policyExemptions/.parameters/rg.min.parameters.json b/modules/Microsoft.Authorization/policyExemptions/.parameters/rg.min.parameters.json deleted file mode 100644 index 2573b17fe7..0000000000 --- a/modules/Microsoft.Authorization/policyExemptions/.parameters/rg.min.parameters.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-min-rg-polexem" - }, - "policyAssignmentId": { - "value": "/subscriptions/<>/providers/Microsoft.Authorization/policyAssignments/adp-<>-sb-pass-loc-rg" - }, - "subscriptionId": { - "value": "<>" - }, - "resourceGroupName": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/policyExemptions/.parameters/rg.parameters.json b/modules/Microsoft.Authorization/policyExemptions/.parameters/rg.parameters.json deleted file mode 100644 index 68fda77deb..0000000000 --- a/modules/Microsoft.Authorization/policyExemptions/.parameters/rg.parameters.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-rg-polexem" - }, - "displayName": { - "value": "[Display Name] policy exempt (resource group scope)" - }, - "policyAssignmentId": { - "value": "/subscriptions/<>/providers/Microsoft.Authorization/policyAssignments/adp-<>-sb-pass-loc-rg" - }, - "exemptionCategory": { - "value": "Waiver" - }, - "metadata": { - "value": { - "category": "Security" - } - }, - "expiresOn": { - "value": "2025-10-02T03:57:00.000Z" - }, - "subscriptionId": { - "value": "<>" - }, - "resourceGroupName": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/policyExemptions/.parameters/sub.min.parameters.json b/modules/Microsoft.Authorization/policyExemptions/.parameters/sub.min.parameters.json deleted file mode 100644 index 920e7d2add..0000000000 --- a/modules/Microsoft.Authorization/policyExemptions/.parameters/sub.min.parameters.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-min-sub-polexem" - }, - "policyAssignmentId": { - "value": "/subscriptions/<>/providers/Microsoft.Authorization/policyAssignments/adp-<>-sb-pass-loc-rg" - }, - "subscriptionId": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/policyExemptions/.parameters/sub.parameters.json b/modules/Microsoft.Authorization/policyExemptions/.parameters/sub.parameters.json deleted file mode 100644 index 02b3e9037c..0000000000 --- a/modules/Microsoft.Authorization/policyExemptions/.parameters/sub.parameters.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-sub-polexem" - }, - "displayName": { - "value": "[Display Name] policy exempt (subscription scope)" - }, - "policyAssignmentId": { - "value": "/subscriptions/<>/providers/Microsoft.Authorization/policyAssignments/adp-<>-sb-pass-loc-rg" - }, - "exemptionCategory": { - "value": "Waiver" - }, - "metadata": { - "value": { - "category": "Security" - } - }, - "expiresOn": { - "value": "2025-10-02T03:57:00.000Z" - }, - "subscriptionId": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/policySetDefinitions/.parameters/mg.min.parameters.json b/modules/Microsoft.Authorization/policySetDefinitions/.parameters/mg.min.parameters.json deleted file mode 100644 index 92f9d4ac2f..0000000000 --- a/modules/Microsoft.Authorization/policySetDefinitions/.parameters/mg.min.parameters.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-mg-min-policySet" - }, - "policyDefinitions": { - "value": [ - { - "parameters": { - "listOfAllowedLocations": { - "value": [ - "australiaeast" - ] - } - }, - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e56962a6-4747-49cd-b67b-bf8b01975c4c" - } - ] - } - } -} diff --git a/modules/Microsoft.Authorization/policySetDefinitions/.parameters/mg.parameters.json b/modules/Microsoft.Authorization/policySetDefinitions/.parameters/mg.parameters.json deleted file mode 100644 index 029e2d47c8..0000000000 --- a/modules/Microsoft.Authorization/policySetDefinitions/.parameters/mg.parameters.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-mg-policySet" - }, - "displayName": { - "value": "[DisplayName] This policy set definition is deployed at management group scope" - }, - "description": { - "value": "[Description] This policy set definition is deployed at management group scope" - }, - "policyDefinitionGroups": { - "value": [ - { - "name": "Network" - }, - { - "name": "ARM" - } - ] - }, - "policyDefinitions": { - "value": [ - { - "groupNames": [ - "ARM" - ], - "parameters": { - "listOfAllowedLocations": { - "value": [ - "australiaeast" - ] - } - }, - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e56962a6-4747-49cd-b67b-bf8b01975c4c", - "policyDefinitionReferenceId": "Allowed locations_1" - }, - { - "groupNames": [ - "ARM" - ], - "parameters": { - "listOfAllowedLocations": { - "value": [ - "australiaeast" - ] - } - }, - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e765b5de-1225-4ba3-bd56-1ac6695af988", - "policyDefinitionReferenceId": "Allowed locations for resource groups_1" - } - ] - }, - "metadata": { - "value": { - "category": "Security", - "version": "1" - } - }, - "managementGroupId": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/policySetDefinitions/.parameters/sub.min.parameters.json b/modules/Microsoft.Authorization/policySetDefinitions/.parameters/sub.min.parameters.json deleted file mode 100644 index f6a7e68f64..0000000000 --- a/modules/Microsoft.Authorization/policySetDefinitions/.parameters/sub.min.parameters.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-sub-min-policySet" - }, - "policyDefinitions": { - "value": [ - { - "parameters": { - "listOfAllowedLocations": { - "value": [ - "australiaeast" - ] - } - }, - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e56962a6-4747-49cd-b67b-bf8b01975c4c" - } - ] - }, - "subscriptionId": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/policySetDefinitions/.parameters/sub.parameters.json b/modules/Microsoft.Authorization/policySetDefinitions/.parameters/sub.parameters.json deleted file mode 100644 index 16a92428b1..0000000000 --- a/modules/Microsoft.Authorization/policySetDefinitions/.parameters/sub.parameters.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-sub-policySet" - }, - "displayName": { - "value": "[DisplayName] This policy set definition is deployed at subscription scope" - }, - "description": { - "value": "[Description] This policy set definition is deployed at subscription scope" - }, - "policyDefinitionGroups": { - "value": [ - { - "name": "Network" - }, - { - "name": "ARM" - } - ] - }, - "policyDefinitions": { - "value": [ - { - "groupNames": [ - "ARM" - ], - "parameters": { - "listOfAllowedLocations": { - "value": [ - "australiaeast" - ] - } - }, - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e56962a6-4747-49cd-b67b-bf8b01975c4c", - "policyDefinitionReferenceId": "Allowed locations_1" - }, - { - "groupNames": [ - "ARM" - ], - "parameters": { - "listOfAllowedLocations": { - "value": [ - "australiaeast" - ] - } - }, - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e765b5de-1225-4ba3-bd56-1ac6695af988", - "policyDefinitionReferenceId": "Allowed locations for resource groups_1" - } - ] - }, - "metadata": { - "value": { - "category": "Security", - "version": "1" - } - }, - "subscriptionId": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/roleAssignments/.parameters/mg.min.parameters.json b/modules/Microsoft.Authorization/roleAssignments/.parameters/mg.min.parameters.json deleted file mode 100644 index 02a409875c..0000000000 --- a/modules/Microsoft.Authorization/roleAssignments/.parameters/mg.min.parameters.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "roleDefinitionIdOrName": { - "value": "Storage Queue Data Reader" - }, - "principalId": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/roleAssignments/.parameters/mg.parameters.json b/modules/Microsoft.Authorization/roleAssignments/.parameters/mg.parameters.json deleted file mode 100644 index e6362b62aa..0000000000 --- a/modules/Microsoft.Authorization/roleAssignments/.parameters/mg.parameters.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "roleDefinitionIdOrName": { - "value": "Backup Reader" - }, - "description": { - "value": "Role Assignment (management group scope)" - }, - "principalId": { - "value": "<>" - }, - "principalType": { - "value": "ServicePrincipal" - }, - "managementGroupId": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/roleAssignments/.parameters/rg.min.parameters.json b/modules/Microsoft.Authorization/roleAssignments/.parameters/rg.min.parameters.json deleted file mode 100644 index 6011dc7e99..0000000000 --- a/modules/Microsoft.Authorization/roleAssignments/.parameters/rg.min.parameters.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "roleDefinitionIdOrName": { - "value": "Storage Queue Data Reader" - }, - "principalId": { - "value": "<>" - }, - "subscriptionId": { - "value": "<>" - }, - "resourceGroupName": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/roleAssignments/.parameters/rg.parameters.json b/modules/Microsoft.Authorization/roleAssignments/.parameters/rg.parameters.json deleted file mode 100644 index faf9fc3d90..0000000000 --- a/modules/Microsoft.Authorization/roleAssignments/.parameters/rg.parameters.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "roleDefinitionIdOrName": { - "value": "Backup Reader" - }, - "description": { - "value": "Role Assignment (resource group scope)" - }, - "principalId": { - "value": "<>" - }, - "principalType": { - "value": "ServicePrincipal" - }, - "subscriptionId": { - "value": "<>" - }, - "resourceGroupName": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/roleAssignments/.parameters/sub.min.parameters.json b/modules/Microsoft.Authorization/roleAssignments/.parameters/sub.min.parameters.json deleted file mode 100644 index 2a90f97fb7..0000000000 --- a/modules/Microsoft.Authorization/roleAssignments/.parameters/sub.min.parameters.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "roleDefinitionIdOrName": { - "value": "Storage Queue Data Reader" - }, - "principalId": { - "value": "<>" - }, - "subscriptionId": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/roleAssignments/.parameters/sub.parameters.json b/modules/Microsoft.Authorization/roleAssignments/.parameters/sub.parameters.json deleted file mode 100644 index 346ba64c04..0000000000 --- a/modules/Microsoft.Authorization/roleAssignments/.parameters/sub.parameters.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "roleDefinitionIdOrName": { - "value": "Backup Reader" - }, - "description": { - "value": "Role Assignment (subscription scope)" - }, - "principalId": { - "value": "<>" - }, - "principalType": { - "value": "ServicePrincipal" - }, - "subscriptionId": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/roleDefinitions/.parameters/mg.min.parameters.json b/modules/Microsoft.Authorization/roleDefinitions/.parameters/mg.min.parameters.json deleted file mode 100644 index c4a88ba9e8..0000000000 --- a/modules/Microsoft.Authorization/roleDefinitions/.parameters/mg.min.parameters.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "roleName": { - "value": "<>-az-testRole-mg-min" - }, - "actions": { - "value": [ - "Microsoft.Compute/galleries/read", - "Microsoft.Compute/galleries/images/read" - ] - } - } -} diff --git a/modules/Microsoft.Authorization/roleDefinitions/.parameters/mg.parameters.json b/modules/Microsoft.Authorization/roleDefinitions/.parameters/mg.parameters.json deleted file mode 100644 index d49ce1cae3..0000000000 --- a/modules/Microsoft.Authorization/roleDefinitions/.parameters/mg.parameters.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "roleName": { - "value": "<>-az-testRole-mg" - }, - "description": { - "value": "Test Custom Role Definition Standard (management group scope)" - }, - "actions": { - "value": [ - "Microsoft.Compute/galleries/*", - "Microsoft.Network/virtualNetworks/read" - ] - }, - "notActions": { - "value": [ - "Microsoft.Compute/images/write", - "Microsoft.Compute/images/delete", - "Microsoft.Network/virtualNetworks/subnets/join/action" - ] - }, - "dataActions": { - "value": [ - "Microsoft.Storage/storageAccounts/blobServices/*/read" - ] - }, - "notDataActions": { - "value": [ - "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read" - ] - }, - "assignableScopes": { - "value": [ - "/providers/Microsoft.Management/managementGroups/<>" - ] - }, - "managementGroupId": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/roleDefinitions/.parameters/rg.min.parameters.json b/modules/Microsoft.Authorization/roleDefinitions/.parameters/rg.min.parameters.json deleted file mode 100644 index cf6825cc02..0000000000 --- a/modules/Microsoft.Authorization/roleDefinitions/.parameters/rg.min.parameters.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "roleName": { - "value": "<>-az-testRole-rg-min" - }, - "actions": { - "value": [ - "Microsoft.Compute/galleries/read", - "Microsoft.Compute/galleries/images/read" - ] - }, - "subscriptionId": { - "value": "<>" - }, - "resourceGroupName": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/roleDefinitions/.parameters/rg.parameters.json b/modules/Microsoft.Authorization/roleDefinitions/.parameters/rg.parameters.json deleted file mode 100644 index c27ff2f862..0000000000 --- a/modules/Microsoft.Authorization/roleDefinitions/.parameters/rg.parameters.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "roleName": { - "value": "<>-az-testRole-rg" - }, - "description": { - "value": "Test Custom Role Definition Standard (resource group scope)" - }, - "actions": { - "value": [ - "Microsoft.Compute/galleries/*", - "Microsoft.Network/virtualNetworks/read" - ] - }, - "notActions": { - "value": [ - "Microsoft.Compute/images/write", - "Microsoft.Compute/images/delete", - "Microsoft.Network/virtualNetworks/subnets/join/action" - ] - }, - "dataActions": { - "value": [ - "Microsoft.Storage/storageAccounts/blobServices/*/read" - ] - }, - "notDataActions": { - "value": [ - "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read" - ] - }, - "assignableScopes": { - "value": [ - "/subscriptions/<>/resourceGroups/<>" - ] - }, - "subscriptionId": { - "value": "<>" - }, - "resourceGroupName": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/roleDefinitions/.parameters/sub.min.parameters.json b/modules/Microsoft.Authorization/roleDefinitions/.parameters/sub.min.parameters.json deleted file mode 100644 index 87bbbc20b7..0000000000 --- a/modules/Microsoft.Authorization/roleDefinitions/.parameters/sub.min.parameters.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "roleName": { - "value": "<>-az-testRole-sub-min" - }, - "actions": { - "value": [ - "Microsoft.Compute/galleries/read", - "Microsoft.Compute/galleries/images/read" - ] - }, - "subscriptionId": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Authorization/roleDefinitions/.parameters/sub.parameters.json b/modules/Microsoft.Authorization/roleDefinitions/.parameters/sub.parameters.json deleted file mode 100644 index 62e03ca98d..0000000000 --- a/modules/Microsoft.Authorization/roleDefinitions/.parameters/sub.parameters.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "roleName": { - "value": "<>-az-testRole-sub" - }, - "description": { - "value": "Test Custom Role Definition Standard (subscription scope)" - }, - "actions": { - "value": [ - "Microsoft.Compute/galleries/*", - "Microsoft.Network/virtualNetworks/read" - ] - }, - "notActions": { - "value": [ - "Microsoft.Compute/images/write", - "Microsoft.Compute/images/delete", - "Microsoft.Network/virtualNetworks/subnets/join/action" - ] - }, - "dataActions": { - "value": [ - "Microsoft.Storage/storageAccounts/blobServices/*/read" - ] - }, - "notDataActions": { - "value": [ - "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read" - ] - }, - "assignableScopes": { - "value": [ - "/subscriptions/<>" - ] - }, - "subscriptionId": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.Automation/automationAccounts/.parameters/encr.parameters.json b/modules/Microsoft.Automation/automationAccounts/.parameters/encr.parameters.json deleted file mode 100644 index de787fa3bb..0000000000 --- a/modules/Microsoft.Automation/automationAccounts/.parameters/encr.parameters.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-aut-encr-001" - }, - "encryptionKeySource": { - "value": "Microsoft.Keyvault" - }, - "encryptionUserAssignedIdentity": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001" // this identity needs to be one of the identities defined in userAssignedIdentities section - }, - "keyName": { - "value": "keyEncryptionKey" - }, - "keyvaultUri": { - "value": "https://adp-<>-az-kv-nopr-002.vault.azure.net/" - }, - "keyVersion": { - "value": "9917c14be51d4d93b37218de7d326f60" - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - } - } -} diff --git a/modules/Microsoft.Automation/automationAccounts/.parameters/min.parameters.json b/modules/Microsoft.Automation/automationAccounts/.parameters/min.parameters.json deleted file mode 100644 index c76e891806..0000000000 --- a/modules/Microsoft.Automation/automationAccounts/.parameters/min.parameters.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-aut-min-001" - } - } -} diff --git a/modules/Microsoft.Automation/automationAccounts/.parameters/parameters.json b/modules/Microsoft.Automation/automationAccounts/.parameters/parameters.json deleted file mode 100644 index ae5e51517b..0000000000 --- a/modules/Microsoft.Automation/automationAccounts/.parameters/parameters.json +++ /dev/null @@ -1,199 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-aut-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "schedules": { - "value": [ - { - "name": "TestSchedule", - "startTime": "", - "expiryTime": "9999-12-31T13:00", - "interval": 15, - "frequency": "Minute", - "timeZone": "Europe/Berlin", - "advancedSchedule": {} - } - ] - }, - "modules": { - "value": [ - { - "name": "PSWindowsUpdate", - "version": "latest", - "uri": "https://www.powershellgallery.com/api/v2/package" - } - ] - }, - "runbooks": { - "value": [ - { - "name": "TestRunbook", - "runbookType": "PowerShell", - "description": "Test runbook", - "uri": "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/scripts/AzureAutomationTutorial.ps1", - "version": "1.0.0.0" - } - ] - }, - "jobSchedules": { - "value": [ - { - "scheduleName": "TestSchedule", - "runbookName": "TestRunbook" - } - ] - }, - "variables": { - "value": [ - { - "name": "TestString", - "value": "\"TestString\"", - "description": "TestStringDescription" - }, - { - "name": "TestInteger", - "value": "500", - "description": "TestIntegerDescription" - }, - { - "name": "TestBoolean", - "value": "false", - "description": "TestBooleanDescription" - }, - { - "name": "TestDateTime", - "value": "\"\\/Date(1637934042656)\\/\"", - "description": "TestDateTimeDescription", - "isEncrypted": false - }, - { - "name": "TestEncryptedVariable", - "value": "\"TestEncryptedValue\"", - "description": "TestEncryptedDescription" - } - ] - }, - "linkedWorkspaceResourceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-aut-001" - }, - "gallerySolutions": { - "value": [ - { - "name": "Updates", - "product": "OMSGallery", - "publisher": "Microsoft" - } - ] - }, - "softwareUpdateConfigurations": { - "value": [ - { - "name": "Windows_ZeroDay", - "frequency": "Month", - "operatingSystem": "Windows", - "rebootSetting": "IfRequired", - "scopeByTags": { - "Update": [ - "Automatic-Wave1" - ] - }, - "maintenanceWindow": "PT4H", - "updateClassifications": [ - "Critical", - "Security", - "UpdateRollup", - "FeaturePack", - "ServicePack", - "Definition", - "Tools", - "Updates" - ], - "includeUpdates": [ - "654321" - ], - "excludeUpdates": [ - "123456" - ], - "interval": 1, - "monthlyOccurrences": [ - { - "occurrence": 3, - "day": "Friday" - } - ], - "startTime": "22:00" - }, - { - "name": "Linux_ZeroDay", - "frequency": "OneTime", - "operatingSystem": "Linux", - "rebootSetting": "IfRequired", - "maintenanceWindow": "PT4H", - "updateClassifications": [ - "Critical", - "Security", - "Other" - ], - "includeUpdates": [ - "kernel" - ], - "excludeUpdates": [ - "icacls" - ], - "startTime": "22:00" - } - ] - }, - "privateEndpoints": { - "value": [ - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "Webhook" - }, - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "DSCAndHybridWorker" - } - ] - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.Batch/batchAccounts/.parameters/min.parameters.json b/modules/Microsoft.Batch/batchAccounts/.parameters/min.parameters.json deleted file mode 100644 index 5528a0d14c..0000000000 --- a/modules/Microsoft.Batch/batchAccounts/.parameters/min.parameters.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>azbaweumin001" - }, - "storageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - } - } -} diff --git a/modules/Microsoft.Batch/batchAccounts/.parameters/parameters.json b/modules/Microsoft.Batch/batchAccounts/.parameters/parameters.json deleted file mode 100644 index d87ce3fd34..0000000000 --- a/modules/Microsoft.Batch/batchAccounts/.parameters/parameters.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>azbaweux001" - }, - "lock": { - "value": "CanNotDelete" - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "poolAllocationMode": { - "value": "BatchService" - }, - "storageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "systemAssignedIdentity": { - "value": true - }, - "storageAuthenticationMode": { - "value": "BatchAccountManagedIdentity" - }, - "storageAccessIdentity": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001" - } - } -} diff --git a/modules/Microsoft.CognitiveServices/accounts/.parameters/encr.parameters.json b/modules/Microsoft.CognitiveServices/accounts/.parameters/encr.parameters.json deleted file mode 100644 index 082120732a..0000000000 --- a/modules/Microsoft.CognitiveServices/accounts/.parameters/encr.parameters.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-cgs-encr-001" - }, - "kind": { - "value": "SpeechServices" - }, - "sku": { - "value": "S0" - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "publicNetworkAccess": { - "value": "Enabled" - }, - "encryption": { - "value": { - "keySource": "Microsoft.KeyVault", - "keyVaultProperties": { - "identityClientId": "c907a696-36f4-49fe-b926-39e3aabba814", // ID must be updated for new identity - "keyVaultUri": "https://adp-<>-az-kv-nopr-002.vault.azure.net/", - "keyName": "keyEncryptionKey", - "keyversion": "4570a207ec394a0bbbe4fc9adc663a51" // Version must be updated for new keys - } - } - } - } -} diff --git a/modules/Microsoft.CognitiveServices/accounts/.parameters/min.parameters.json b/modules/Microsoft.CognitiveServices/accounts/.parameters/min.parameters.json deleted file mode 100644 index 0f4f624c48..0000000000 --- a/modules/Microsoft.CognitiveServices/accounts/.parameters/min.parameters.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-cgs-min-001" - }, - "kind": { - "value": "SpeechServices" - } - } -} diff --git a/modules/Microsoft.CognitiveServices/accounts/.parameters/parameters.json b/modules/Microsoft.CognitiveServices/accounts/.parameters/parameters.json deleted file mode 100644 index c12f36aac5..0000000000 --- a/modules/Microsoft.CognitiveServices/accounts/.parameters/parameters.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-cgs-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "kind": { - "value": "Face" - }, - "sku": { - "value": "S0" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "networkAcls": { - "value": { - "defaultAction": "deny", - "virtualNetworkRules": [ - { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001", - "action": "Allow" - } - ] - } - }, - "customSubDomainName": { - "value": "<>xdomain" - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.CognitiveServices/accounts/.parameters/speech.parameters.json b/modules/Microsoft.CognitiveServices/accounts/.parameters/speech.parameters.json deleted file mode 100644 index 7903268ccd..0000000000 --- a/modules/Microsoft.CognitiveServices/accounts/.parameters/speech.parameters.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-cgs-speech-001" - }, - "kind": { - "value": "SpeechServices" - }, - "sku": { - "value": "S0" - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "customSubDomainName": { - "value": "<>speechdomain" - }, - "privateEndpoints": { - "value": [ - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "account" - } - ] - } - } -} diff --git a/modules/Microsoft.Compute/availabilitySets/.parameters/min.parameters.json b/modules/Microsoft.Compute/availabilitySets/.parameters/min.parameters.json deleted file mode 100644 index 99d2414f76..0000000000 --- a/modules/Microsoft.Compute/availabilitySets/.parameters/min.parameters.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-avs-min-001" - } - } -} diff --git a/modules/Microsoft.Compute/availabilitySets/.parameters/parameters.json b/modules/Microsoft.Compute/availabilitySets/.parameters/parameters.json deleted file mode 100644 index f7d8be50c6..0000000000 --- a/modules/Microsoft.Compute/availabilitySets/.parameters/parameters.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-avs-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "proximityPlacementGroupId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Compute/proximityPlacementGroups/adp-<>-az-ppg-x-001" - } - } -} diff --git a/modules/Microsoft.Compute/diskEncryptionSets/.parameters/parameters.json b/modules/Microsoft.Compute/diskEncryptionSets/.parameters/parameters.json deleted file mode 100644 index 58ec4d9a2a..0000000000 --- a/modules/Microsoft.Compute/diskEncryptionSets/.parameters/parameters.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-des-x-001" - }, - "keyVaultResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "keyName": { - "value": "keyEncryptionKey" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Compute/disks/.parameters/image.parameters.json b/modules/Microsoft.Compute/disks/.parameters/image.parameters.json deleted file mode 100644 index d6934ac643..0000000000 --- a/modules/Microsoft.Compute/disks/.parameters/image.parameters.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-disk-image-001" - }, - "sku": { - "value": "Standard_LRS" - }, - "createOption": { - "value": "FromImage" - }, - "imageReferenceId": { - "value": "/Subscriptions/<>/Providers/Microsoft.Compute/Locations/westeurope/Publishers/MicrosoftWindowsServer/ArtifactTypes/VMImage/Offers/WindowsServer/Skus/2016-Datacenter/Versions/14393.4906.2112080838" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Compute/disks/.parameters/import.parameters.json b/modules/Microsoft.Compute/disks/.parameters/import.parameters.json deleted file mode 100644 index a09908e110..0000000000 --- a/modules/Microsoft.Compute/disks/.parameters/import.parameters.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-disk-import-001" - }, - "sku": { - "value": "Standard_LRS" - }, - "createOption": { - "value": "Import" - }, - "sourceUri": { - "value": "https://adp<>azsax001.blob.core.windows.net/vhds/adp-<>-az-imgt-x-001.vhd" - }, - "storageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Compute/disks/.parameters/min.parameters.json b/modules/Microsoft.Compute/disks/.parameters/min.parameters.json deleted file mode 100644 index d19f33a37d..0000000000 --- a/modules/Microsoft.Compute/disks/.parameters/min.parameters.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-disk-min-001" - }, - "sku": { - "value": "Standard_LRS" - }, - "diskSizeGB": { - "value": 1 - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Compute/disks/.parameters/parameters.json b/modules/Microsoft.Compute/disks/.parameters/parameters.json deleted file mode 100644 index 833336ee1e..0000000000 --- a/modules/Microsoft.Compute/disks/.parameters/parameters.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-disk-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "sku": { - "value": "UltraSSD_LRS" - }, - "diskSizeGB": { - "value": 128 - }, - "logicalSectorSize": { - "value": 512 - }, - "diskIOPSReadWrite": { - "value": 500 - }, - "diskMBpsReadWrite": { - "value": 60 - }, - "osType": { - "value": "Windows" - }, - "publicNetworkAccess": { - "value": "Enabled" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Compute/galleries/.parameters/images.parameters.json b/modules/Microsoft.Compute/galleries/.parameters/images.parameters.json deleted file mode 100644 index 78a802c198..0000000000 --- a/modules/Microsoft.Compute/galleries/.parameters/images.parameters.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>azsigweuimages001" - }, - "images": { - "value": [ - { - "name": "<>-az-imgd-x-003" - }, - { - "name": "<>-az-imgd-x-001", - "osType": "Windows", - "osState": "Generalized", - "publisher": "MicrosoftWindowsServer", - "offer": "WindowsServer", - "sku": "2022-datacenter-azure-edition", - "minRecommendedvCPUs": 2, - "maxRecommendedvCPUs": 8, - "minRecommendedMemory": 4, - "maxRecommendedMemory": 16, - "hyperVGeneration": "V1", - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - { - "name": "<>-az-imgd-x-002", - "osType": "Linux", - "osState": "Generalized", - "publisher": "canonical", - "offer": "0001-com-ubuntu-server-focal", - "sku": "20_04-lts-gen2", - "minRecommendedvCPUs": 1, - "maxRecommendedvCPUs": 4, - "minRecommendedMemory": 4, - "maxRecommendedMemory": 32, - "hyperVGeneration": "V2" - } - ] - } - } -} diff --git a/modules/Microsoft.Compute/galleries/.parameters/parameters.json b/modules/Microsoft.Compute/galleries/.parameters/parameters.json deleted file mode 100644 index 960e0365b2..0000000000 --- a/modules/Microsoft.Compute/galleries/.parameters/parameters.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>azsigweux001" - }, - "lock": { - "value": "CanNotDelete" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Compute/images/.parameters/parameters.json b/modules/Microsoft.Compute/images/.parameters/parameters.json deleted file mode 100644 index 85e8b306ec..0000000000 --- a/modules/Microsoft.Compute/images/.parameters/parameters.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-img-x-001" - }, - "osAccountType": { - "value": "Premium_LRS" - }, - "osType": { - "value": "Windows" - }, - "osDiskBlobUri": { - "value": "https://adp<>azsax001.blob.core.windows.net/vhds/adp-<>-az-imgt-x-001.vhd" - }, - "osDiskCaching": { - "value": "ReadWrite" - }, - "zoneResilient": { - "value": true - }, - "hyperVGeneration": { - "value": "V1" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Compute/proximityPlacementGroups/.parameters/parameters.json b/modules/Microsoft.Compute/proximityPlacementGroups/.parameters/parameters.json deleted file mode 100644 index 48ab4ed9c9..0000000000 --- a/modules/Microsoft.Compute/proximityPlacementGroups/.parameters/parameters.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-ppg-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.min.parameters.json b/modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.min.parameters.json deleted file mode 100644 index 0c3f3189b9..0000000000 --- a/modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.min.parameters.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-scaleset-linux-min-001" - }, - "osDisk": { - "value": { - "createOption": "fromImage", - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - } - }, - "osType": { - "value": "Linux" - }, - "skuName": { - "value": "Standard_B2s" - }, - "imageReference": { - "value": { - "publisher": "Canonical", - "offer": "UbuntuServer", - "sku": "18.04-LTS", - "version": "latest" - } - }, - "adminUsername": { - "value": "scaleSetAdmin" - }, - "disablePasswordAuthentication": { - "value": true - }, - "publicKeys": { - "value": [ - { - "path": "/home/scaleSetAdmin/.ssh/authorized_keys", - "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure" - } - ] - }, - "nicConfigurations": { - "value": [ - { - "nicSuffix": "-nic01", - "ipConfigurations": [ - { - "name": "ipconfig1", - "properties": { - "subnet": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-002" - } - } - } - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.parameters.json b/modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.parameters.json deleted file mode 100644 index b17e54d583..0000000000 --- a/modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.parameters.json +++ /dev/null @@ -1,189 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-scaleset-linux-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "vmNamePrefix": { - "value": "vmsslinvm" - }, - "skuName": { - "value": "Standard_B2s" - }, - "skuCapacity": { - "value": 1 - }, - "upgradePolicyMode": { - "value": "Manual" - }, - "vmPriority": { - "value": "Regular" - }, - "osDisk": { - "value": { - "createOption": "fromImage", - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - } - }, - "availabilityZones": { - "value": [ - "2" - ] - }, - "scaleSetFaultDomain": { - "value": 1 - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "bootDiagnosticStorageAccountName": { - "value": "adp<>azsax001" - }, - "osType": { - "value": "Linux" - }, - "encryptionAtHost": { - "value": false - }, - "imageReference": { - "value": { - "publisher": "Canonical", - "offer": "UbuntuServer", - "sku": "18.04-LTS", - "version": "latest" - } - }, - "adminUsername": { - "value": "scaleSetAdmin" - }, - "disablePasswordAuthentication": { - "value": true - }, - "publicKeys": { - "value": [ - { - "path": "/home/scaleSetAdmin/.ssh/authorized_keys", - "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure" - } - ] - }, - "dataDisks": { - "value": [ - { - "caching": "ReadOnly", - "createOption": "Empty", - "diskSizeGB": "256", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - }, - { - "caching": "ReadOnly", - "createOption": "Empty", - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - } - ] - }, - "nicConfigurations": { - "value": [ - { - "nicSuffix": "-nic01", - "ipConfigurations": [ - { - "name": "ipconfig1", - "properties": { - "subnet": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-002" - } - } - } - ] - } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "extensionMonitoringAgentConfig": { - "value": { - "enabled": true - } - }, - "extensionDependencyAgentConfig": { - "value": { - "enabled": true - } - }, - "extensionNetworkWatcherAgentConfig": { - "value": { - "enabled": true - } - }, - "extensionDiskEncryptionConfig": { - "value": { - "enabled": true, - "settings": { - "EncryptionOperation": "EnableEncryption", - "KeyVaultURL": "https://adp-<>-az-kv-x-001.vault.azure.net/", - "KeyVaultResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", - "KeyEncryptionKeyURL": "https://adp-<>-az-kv-x-001.vault.azure.net/keys/keyEncryptionKey/bc3bb46d95c64367975d722f473eeae5", // ID must be updated for new keys - "KekVaultResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", - "KeyEncryptionAlgorithm": "RSA-OAEP", - "VolumeType": "All", - "ResizeOSDisk": "false" - } - } - }, - "extensionCustomScriptConfig": { - "value": { - "enabled": true, - "fileData": [ - { - "uri": "https://adp<>azsax001.blob.core.windows.net/scripts/scriptExtensionMasterInstaller.ps1", - "storageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - } - ], - "protectedSettings": { - "commandToExecute": "sudo apt-get update" - } - } - } - } -} diff --git a/modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.min.parameters.json b/modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.min.parameters.json deleted file mode 100644 index 5444ff7955..0000000000 --- a/modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.min.parameters.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-scaleset-win-min-001" - }, - "skuName": { - "value": "Standard_B2s" - }, - "osDisk": { - "value": { - "createOption": "fromImage", - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - } - }, - "osType": { - "value": "Windows" - }, - "imageReference": { - "value": { - "publisher": "MicrosoftWindowsServer", - "offer": "WindowsServer", - "sku": "2016-Datacenter", - "version": "latest" - } - }, - "adminUsername": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "adminUsername" - } - }, - "adminPassword": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "adminPassword" - } - }, - "nicConfigurations": { - "value": [ - { - "nicSuffix": "-nic01", - "ipConfigurations": [ - { - "name": "ipconfig1", - "properties": { - "subnet": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-002" - } - } - } - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.parameters.json b/modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.parameters.json deleted file mode 100644 index 6eed374c0f..0000000000 --- a/modules/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.parameters.json +++ /dev/null @@ -1,185 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-scaleset-win-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "vmNamePrefix": { - "value": "vmsswinvm" - }, - "skuName": { - "value": "Standard_B2s" - }, - "skuCapacity": { - "value": 1 - }, - "upgradePolicyMode": { - "value": "Manual" - }, - "vmPriority": { - "value": "Regular" - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "osDisk": { - "value": { - "createOption": "fromImage", - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - } - }, - "osType": { - "value": "Windows" - }, - "encryptionAtHost": { - "value": false - }, - "imageReference": { - "value": { - "publisher": "MicrosoftWindowsServer", - "offer": "WindowsServer", - "sku": "2016-Datacenter", - "version": "latest" - } - }, - "adminUsername": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "adminUsername" - } - }, - "adminPassword": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "adminPassword" - } - }, - "nicConfigurations": { - "value": [ - { - "nicSuffix": "-nic01", - "ipConfigurations": [ - { - "name": "ipconfig1", - "properties": { - "subnet": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-002" - } - } - } - ] - } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "extensionAntiMalwareConfig": { - "value": { - "enabled": true, - "settings": { - "AntimalwareEnabled": true, - "Exclusions": { - "Extensions": ".log;.ldf", - "Paths": "D:\\IISlogs;D:\\DatabaseLogs", - "Processes": "mssence.svc" - }, - "RealtimeProtectionEnabled": true, - "ScheduledScanSettings": { - "isEnabled": "true", - "scanType": "Quick", - "day": "7", - "time": "120" - } - } - } - }, - "extensionMonitoringAgentConfig": { - "value": { - "enabled": true - } - }, - "extensionDependencyAgentConfig": { - "value": { - "enabled": true - } - }, - "extensionNetworkWatcherAgentConfig": { - "value": { - "enabled": true - } - }, - "extensionDiskEncryptionConfig": { - "value": { - "enabled": true, - "settings": { - "EncryptionOperation": "EnableEncryption", - "KeyVaultURL": "https://adp-<>-az-kv-x-001.vault.azure.net/", - "KeyVaultResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", - "KeyEncryptionKeyURL": "https://adp-<>-az-kv-x-001.vault.azure.net/keys/keyEncryptionKey/bc3bb46d95c64367975d722f473eeae5", // ID must be updated for new keys - "KekVaultResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", - "KeyEncryptionAlgorithm": "RSA-OAEP", - "VolumeType": "All", - "ResizeOSDisk": "false" - } - } - }, - "extensionDSCConfig": { - "value": { - "enabled": true - } - }, - "extensionCustomScriptConfig": { - "value": { - "enabled": true, - "fileData": [ - { - "uri": "https://adp<>azsax001.blob.core.windows.net/scripts/scriptExtensionMasterInstaller.ps1", - "storageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - } - ], - "protectedSettings": { - "commandToExecute": "powershell -ExecutionPolicy Unrestricted -Command \"& .\\scriptExtensionMasterInstaller.ps1\"" - } - } - } - } -} diff --git a/modules/Microsoft.Compute/virtualMachines/.parameters/linux.autmg.parameters.json b/modules/Microsoft.Compute/virtualMachines/.parameters/linux.autmg.parameters.json deleted file mode 100644 index 0a90e2dfde..0000000000 --- a/modules/Microsoft.Compute/virtualMachines/.parameters/linux.autmg.parameters.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-vm-linux-autmg-01" - }, - "osType": { - "value": "Linux" - }, - "imageReference": { - "value": { - "publisher": "Canonical", - "offer": "UbuntuServer", - "sku": "18.04-LTS", - "version": "latest" - } - }, - "osDisk": { - "value": { - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - } - }, - "vmSize": { - "value": "Standard_B12ms" - }, - "adminUsername": { - "value": "localAdminUser" - }, - "disablePasswordAuthentication": { - "value": true - }, - "publicKeys": { - "value": [ - { - "path": "/home/localAdminUser/.ssh/authorized_keys", - "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure" - } - ] - }, - "nicConfigurations": { - "value": [ - { - "nicSuffix": "-nic-01", - "ipConfigurations": [ - { - "name": "ipconfig01", - "subnetId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001", - "pipConfiguration": { - "publicIpNameSuffix": "-pip-01" - } - } - ] - } - ] - }, - "configurationProfile": { - "value": "/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction" - } - } -} diff --git a/modules/Microsoft.Compute/virtualMachines/.parameters/linux.min.parameters.json b/modules/Microsoft.Compute/virtualMachines/.parameters/linux.min.parameters.json deleted file mode 100644 index 2faa09d2f9..0000000000 --- a/modules/Microsoft.Compute/virtualMachines/.parameters/linux.min.parameters.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-vm-linux-min-01" - }, - "osType": { - "value": "Linux" - }, - "imageReference": { - "value": { - "publisher": "Canonical", - "offer": "UbuntuServer", - "sku": "18.04-LTS", - "version": "latest" - } - }, - "osDisk": { - "value": { - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - } - }, - "vmSize": { - "value": "Standard_B12ms" - }, - "adminUsername": { - "value": "localAdminUser" - }, - "disablePasswordAuthentication": { - "value": true - }, - "publicKeys": { - "value": [ - { - "path": "/home/localAdminUser/.ssh/authorized_keys", - "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure" - } - ] - }, - "nicConfigurations": { - "value": [ - { - "nicSuffix": "-nic-01", - "ipConfigurations": [ - { - "name": "ipconfig01", - "subnetId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001", - "pipConfiguration": { - "publicIpNameSuffix": "-pip-01" - } - } - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Compute/virtualMachines/.parameters/linux.parameters.json b/modules/Microsoft.Compute/virtualMachines/.parameters/linux.parameters.json deleted file mode 100644 index 1c42eef982..0000000000 --- a/modules/Microsoft.Compute/virtualMachines/.parameters/linux.parameters.json +++ /dev/null @@ -1,218 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-vm-linux-01" - }, - "lock": { - "value": "CanNotDelete" - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "osType": { - "value": "Linux" - }, - "encryptionAtHost": { - "value": false - }, - "availabilityZone": { - "value": 1 - }, - "vmSize": { - "value": "Standard_B12ms" - }, - "imageReference": { - "value": { - "publisher": "Canonical", - "offer": "UbuntuServer", - "sku": "18.04-LTS", - "version": "latest" - } - }, - "osDisk": { - "value": { - "createOption": "fromImage", - "deleteOption": "Delete", - "caching": "ReadOnly", - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - } - }, - "dataDisks": { - "value": [ - { - "createOption": "Empty", - "deleteOption": "Delete", - "caching": "ReadWrite", - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - }, - { - "createOption": "Empty", - "deleteOption": "Delete", - "caching": "ReadWrite", - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - } - ] - }, - "adminUsername": { - "value": "localAdminUser" - }, - "disablePasswordAuthentication": { - "value": true - }, - "publicKeys": { - "value": [ - { - "path": "/home/localAdminUser/.ssh/authorized_keys", - "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure" - } - ] - }, - "nicConfigurations": { - "value": [ - { - "nicSuffix": "-nic-01", - "deleteOption": "Delete", - "ipConfigurations": [ - { - "name": "ipconfig01", - "subnetId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001", - "pipConfiguration": { - "publicIpNameSuffix": "-pip-01", - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "loadBalancerBackendAddressPools": [ - { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/loadBalancers/adp-<>-az-lb-internal-001/backendAddressPools/servers" - } - ], - "applicationSecurityGroups": [ - { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationSecurityGroups/adp-<>-az-asg-x-001" - } - ] - } - ], - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - ] - }, - "backupVaultName": { - "value": "adp-<>-az-rsv-x-001" - }, - "backupVaultResourceGroup": { - "value": "validation-rg" - }, - "backupPolicyName": { - "value": "VMpolicy" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "extensionMonitoringAgentConfig": { - "value": { - "enabled": true - } - }, - "monitoringWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "extensionDependencyAgentConfig": { - "value": { - "enabled": true - } - }, - "extensionNetworkWatcherAgentConfig": { - "value": { - "enabled": true - } - }, - "extensionDiskEncryptionConfig": { - "value": { - "enabled": true, - "settings": { - "EncryptionOperation": "EnableEncryption", - "KeyVaultURL": "https://adp-<>-az-kv-x-001.vault.azure.net/", - "KeyVaultResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", - "KeyEncryptionKeyURL": "https://adp-<>-az-kv-x-001.vault.azure.net/keys/keyEncryptionKey/bc3bb46d95c64367975d722f473eeae5", // ID must be updated for new keys - "KekVaultResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", - "KeyEncryptionAlgorithm": "RSA-OAEP", - "VolumeType": "All", - "ResizeOSDisk": "false" - } - } - }, - "extensionDSCConfig": { - "value": { - "enabled": false - } - }, - "extensionCustomScriptConfig": { - "value": { - "enabled": true, - "fileData": [ - { - "uri": "https://adp<>azsax001.blob.core.windows.net/scripts/scriptExtensionMasterInstaller.ps1", - "storageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - } - ] - } - }, - "extensionCustomScriptProtectedSetting": { - "value": { - "commandToExecute": "sudo apt-get update" - } - } - } -} diff --git a/modules/Microsoft.Compute/virtualMachines/.parameters/windows.autmg.parameters.json b/modules/Microsoft.Compute/virtualMachines/.parameters/windows.autmg.parameters.json deleted file mode 100644 index 29bbcb51ad..0000000000 --- a/modules/Microsoft.Compute/virtualMachines/.parameters/windows.autmg.parameters.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-vm-win-03" - }, - "imageReference": { - "value": { - "publisher": "MicrosoftWindowsServer", - "offer": "WindowsServer", - "sku": "2019-Datacenter", - "version": "latest" - } - }, - "osType": { - "value": "Windows" - }, - "vmSize": { - "value": "Standard_B12ms" - }, - "osDisk": { - "value": { - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - } - }, - "adminUsername": { - "value": "localAdminUser" - }, - "adminPassword": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "adminPassword" - } - }, - "nicConfigurations": { - "value": [ - { - "nicSuffix": "-nic-01", - "ipConfigurations": [ - { - "name": "ipconfig01", - "subnetId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001" - } - ] - } - ] - }, - "configurationProfile": { - "value": "/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction" - } - } -} diff --git a/modules/Microsoft.Compute/virtualMachines/.parameters/windows.min.parameters.json b/modules/Microsoft.Compute/virtualMachines/.parameters/windows.min.parameters.json deleted file mode 100644 index d181987411..0000000000 --- a/modules/Microsoft.Compute/virtualMachines/.parameters/windows.min.parameters.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-vm-win-02" - }, - "imageReference": { - "value": { - "publisher": "MicrosoftWindowsServer", - "offer": "WindowsServer", - "sku": "2022-datacenter-azure-edition", - "version": "latest" - } - }, - "osType": { - "value": "Windows" - }, - "vmSize": { - "value": "Standard_B12ms" - }, - "osDisk": { - "value": { - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - } - }, - "adminUsername": { - "value": "localAdminUser" - }, - "adminPassword": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "adminPassword" - } - }, - "nicConfigurations": { - "value": [ - { - "nicSuffix": "-nic-01", - "ipConfigurations": [ - { - "name": "ipconfig01", - "subnetId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001" - } - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Compute/virtualMachines/.parameters/windows.parameters.json b/modules/Microsoft.Compute/virtualMachines/.parameters/windows.parameters.json deleted file mode 100644 index 3a3de41959..0000000000 --- a/modules/Microsoft.Compute/virtualMachines/.parameters/windows.parameters.json +++ /dev/null @@ -1,235 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-vm-win-01" - }, - "lock": { - "value": "CanNotDelete" - }, - "encryptionAtHost": { - "value": false - }, - "imageReference": { - "value": { - "publisher": "MicrosoftWindowsServer", - "offer": "WindowsServer", - "sku": "2019-Datacenter", - "version": "latest" - } - }, - "osType": { - "value": "Windows" - }, - "vmSize": { - "value": "Standard_B12ms" - }, - "osDisk": { - "value": { - "createOption": "fromImage", - "deleteOption": "Delete", - "caching": "None", - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - } - }, - "dataDisks": { - "value": [ - { - "createOption": "Empty", - "deleteOption": "Delete", - "caching": "None", - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - }, - { - "createOption": "Empty", - "deleteOption": "Delete", - "caching": "None", - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - } - ] - }, - "availabilityZone": { - "value": 2 - }, - "adminUsername": { - "value": "localAdminUser" - }, - "adminPassword": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "adminPassword" - } - }, - "nicConfigurations": { - "value": [ - { - "nicSuffix": "-nic-01", - "deleteOption": "Delete", - "ipConfigurations": [ - { - "name": "ipconfig01", - "subnetId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001", - "pipConfiguration": { - "publicIpNameSuffix": "-pip-01", - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "loadBalancerBackendAddressPools": [ - { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/loadBalancers/adp-<>-az-lb-internal-001/backendAddressPools/servers" - } - ], - "applicationSecurityGroups": [ - { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationSecurityGroups/adp-<>-az-asg-x-001" - } - ] - } - ], - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - ] - }, - "backupVaultName": { - "value": "adp-<>-az-rsv-x-001" - }, - "backupVaultResourceGroup": { - "value": "validation-rg" - }, - "backupPolicyName": { - "value": "VMpolicy" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "extensionAntiMalwareConfig": { - "value": { - "enabled": true, - "settings": { - "AntimalwareEnabled": "true", - "Exclusions": { - "Extensions": ".ext1;.ext2", - "Paths": "c:\\excluded-path-1;c:\\excluded-path-2", - "Processes": "excludedproc1.exe;excludedproc2.exe" - }, - "RealtimeProtectionEnabled": "true", - "ScheduledScanSettings": { - "isEnabled": "true", - "scanType": "Quick", - "day": "7", - "time": "120" - } - } - } - }, - "extensionMonitoringAgentConfig": { - "value": { - "enabled": true - } - }, - "monitoringWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "extensionDependencyAgentConfig": { - "value": { - "enabled": true - } - }, - "extensionNetworkWatcherAgentConfig": { - "value": { - "enabled": true - } - }, - "extensionDiskEncryptionConfig": { - "value": { - "enabled": true, - "settings": { - "EncryptionOperation": "EnableEncryption", - "KeyVaultURL": "https://adp-<>-az-kv-x-001.vault.azure.net/", - "KeyVaultResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", - "KeyEncryptionKeyURL": "https://adp-<>-az-kv-x-001.vault.azure.net/keys/keyEncryptionKey/bc3bb46d95c64367975d722f473eeae5", // ID must be updated for new keys - "KekVaultResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", - "KeyEncryptionAlgorithm": "RSA-OAEP", - "VolumeType": "All", - "ResizeOSDisk": "false" - } - } - }, - "extensionDSCConfig": { - "value": { - "enabled": true - } - }, - "extensionCustomScriptConfig": { - "value": { - "enabled": true, - "fileData": [ - { - "uri": "https://adp<>azsax001.blob.core.windows.net/scripts/scriptExtensionMasterInstaller.ps1", - "storageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - } - ] - } - }, - "extensionCustomScriptProtectedSetting": { - "value": { - "commandToExecute": "powershell -ExecutionPolicy Unrestricted -Command \"& .\\scriptExtensionMasterInstaller.ps1\"" - } - } - } -} diff --git a/modules/Microsoft.Consumption/budgets/.parameters/parameters.json b/modules/Microsoft.Consumption/budgets/.parameters/parameters.json deleted file mode 100644 index 4ab50cd80e..0000000000 --- a/modules/Microsoft.Consumption/budgets/.parameters/parameters.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "amount": { - "value": 500 - }, - "thresholds": { - "value": [ - 50, - 75, - 90, - 100, - 110 - ] - }, - "contactEmails": { - "value": [ - "dummy@contoso.com" - ] - } - } -} diff --git a/modules/Microsoft.ContainerInstance/containerGroups/.parameters/parameters.json b/modules/Microsoft.ContainerInstance/containerGroups/.parameters/parameters.json deleted file mode 100644 index cdbb1078cd..0000000000 --- a/modules/Microsoft.ContainerInstance/containerGroups/.parameters/parameters.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-acg-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "containerName": { - "value": "<>-az-aci-x-001" - }, - "image": { - "value": "mcr.microsoft.com/azuredocs/aci-helloworld" - }, - "ports": { - "value": [ - { - "protocol": "Tcp", - "port": "80" - }, - { - "protocol": "Tcp", - "port": "443" - } - ] - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - } - } -} diff --git a/modules/Microsoft.ContainerRegistry/registries/.parameters/encr.parameters.json b/modules/Microsoft.ContainerRegistry/registries/.parameters/encr.parameters.json deleted file mode 100644 index 2ed76c34cb..0000000000 --- a/modules/Microsoft.ContainerRegistry/registries/.parameters/encr.parameters.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>azacrencr001" - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "publicNetworkAccess": { - "value": "Disabled" - }, - "acrSku": { - "value": "Premium" - }, - "cMKUserAssignedIdentityResourceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001" - }, - "cMKKeyVaultResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-nopr-002" - }, - "cMKKeyName": { - "value": "keyEncryptionKey" - } - } -} diff --git a/modules/Microsoft.ContainerRegistry/registries/.parameters/min.parameters.json b/modules/Microsoft.ContainerRegistry/registries/.parameters/min.parameters.json deleted file mode 100644 index 255a9ddfcf..0000000000 --- a/modules/Microsoft.ContainerRegistry/registries/.parameters/min.parameters.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>azacrmin001" - } - } -} diff --git a/modules/Microsoft.ContainerRegistry/registries/.parameters/parameters.json b/modules/Microsoft.ContainerRegistry/registries/.parameters/parameters.json deleted file mode 100644 index ca1df52de6..0000000000 --- a/modules/Microsoft.ContainerRegistry/registries/.parameters/parameters.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>azacrx001" - }, - "lock": { - "value": "CanNotDelete" - }, - "acrAdminUserEnabled": { - "value": false - }, - "acrSku": { - "value": "Premium" - }, - "exportPolicyStatus": { - "value": "enabled" - }, - "quarantinePolicyStatus": { - "value": "enabled" - }, - "trustPolicyStatus": { - "value": "enabled" - }, - "replications": { - "value": [ - { - "name": "northeurope", - "location": "northeurope" - } - ] - }, - "webhooks": { - "value": [ - { - "name": "<>azacrx001webhook", - "serviceUri": "https://www.contoso.com/webhook" - } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "publicNetworkAccess": { - "value": "Disabled" - }, - "privateEndpoints": { - "value": [ - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "registry" - } - ] - } - } -} diff --git a/modules/Microsoft.DataFactory/factories/.parameters/parameters.json b/modules/Microsoft.DataFactory/factories/.parameters/parameters.json deleted file mode 100644 index f686b88025..0000000000 --- a/modules/Microsoft.DataFactory/factories/.parameters/parameters.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-adf-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "managedVirtualNetworkName": { - "value": "default" - }, - "integrationRuntime": { - "value": { - "name": "AutoResolveIntegrationRuntime", - "type": "Managed", - "managedVirtualNetworkName": "default", - "typeProperties": { - "computeProperties": { - "location": "AutoResolve" - } - } - } - }, - "publicNetworkAccess": { - "value": true - }, - "gitConfigureLater": { - "value": true - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - } - } -} diff --git a/modules/Microsoft.DataProtection/backupVaults/.parameters/min.parameters.json b/modules/Microsoft.DataProtection/backupVaults/.parameters/min.parameters.json deleted file mode 100644 index 6b44ecfa38..0000000000 --- a/modules/Microsoft.DataProtection/backupVaults/.parameters/min.parameters.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-bv-min-001" - } - } -} diff --git a/modules/Microsoft.DataProtection/backupVaults/.parameters/parameters.json b/modules/Microsoft.DataProtection/backupVaults/.parameters/parameters.json deleted file mode 100644 index bad76a8a40..0000000000 --- a/modules/Microsoft.DataProtection/backupVaults/.parameters/parameters.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-bv-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "backupPolicies": { - "value": [ - { - "name": "DefaultPolicy", - "properties": { - "policyRules": [ - { - "backupParameters": { - "backupType": "Incremental", - "objectType": "AzureBackupParams" - }, - "trigger": { - "schedule": { - "repeatingTimeIntervals": [ - "R/2022-05-31T23:30:00+01:00/P1D" - ], - "timeZone": "W. Europe Standard Time" - }, - "taggingCriteria": [ - { - "tagInfo": { - "tagName": "Default", - "id": "Default_" - }, - "taggingPriority": 99, - "isDefault": true - } - ], - "objectType": "ScheduleBasedTriggerContext" - }, - "dataStore": { - "dataStoreType": "OperationalStore", - "objectType": "DataStoreInfoBase" - }, - "name": "BackupDaily", - "objectType": "AzureBackupRule" - }, - { - "lifecycles": [ - { - "deleteAfter": { - "objectType": "AbsoluteDeleteOption", - "duration": "P7D" - }, - "targetDataStoreCopySettings": [], - "sourceDataStore": { - "dataStoreType": "OperationalStore", - "objectType": "DataStoreInfoBase" - } - } - ], - "isDefault": true, - "name": "Default", - "objectType": "AzureRetentionRule" - } - ], - "datasourceTypes": [ - "Microsoft.Compute/disks" - ], - "objectType": "BackupPolicy" - } - } - ] - } - } -} diff --git a/modules/Microsoft.Databricks/workspaces/.parameters/parameters.json b/modules/Microsoft.Databricks/workspaces/.parameters/parameters.json deleted file mode 100644 index dc327499f5..0000000000 --- a/modules/Microsoft.Databricks/workspaces/.parameters/parameters.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-adb-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.DesktopVirtualization/applicationgroups/.parameters/min.parameters.json b/modules/Microsoft.DesktopVirtualization/applicationgroups/.parameters/min.parameters.json deleted file mode 100644 index ecf7a145e6..0000000000 --- a/modules/Microsoft.DesktopVirtualization/applicationgroups/.parameters/min.parameters.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-avdag-min-001" - }, - "applicationGroupType": { - "value": "RemoteApp" - }, - "hostpoolName": { - "value": "adp-<>-az-avdhp-x-001" - } - } -} diff --git a/modules/Microsoft.DesktopVirtualization/applicationgroups/.parameters/parameters.json b/modules/Microsoft.DesktopVirtualization/applicationgroups/.parameters/parameters.json deleted file mode 100644 index 7e71ce4904..0000000000 --- a/modules/Microsoft.DesktopVirtualization/applicationgroups/.parameters/parameters.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-avdag-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "location": { - "value": "westeurope" - }, - "applicationGroupType": { - "value": "RemoteApp" - }, - "hostpoolName": { - "value": "adp-<>-az-avdhp-x-001" - }, - "friendlyName": { - "value": "Remote Applications 1" - }, - "description": { - "value": "This is my first Remote Applications bundle" - }, - "applications": { - "value": [ - { - "name": "notepad", - "description": "Notepad by ARM template", - "friendlyName": "Notepad", - "filePath": "C:\\Windows\\System32\\notepad.exe", - "commandLineSetting": "DoNotAllow", - "commandLineArguments": "", - "showInPortal": true, - "iconPath": "C:\\Windows\\System32\\notepad.exe", - "iconIndex": 0 - }, - { - "name": "wordpad", - "filePath": "C:\\Program Files\\Windows NT\\Accessories\\wordpad.exe", - "friendlyName": "Wordpad" - } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.DesktopVirtualization/hostpools/.parameters/parameters.json b/modules/Microsoft.DesktopVirtualization/hostpools/.parameters/parameters.json deleted file mode 100644 index 076213824f..0000000000 --- a/modules/Microsoft.DesktopVirtualization/hostpools/.parameters/parameters.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-avdhp-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "location": { - "value": "westeurope" - }, - "hostpoolFriendlyName": { - "value": "AVDv2" - }, - "hostpoolDescription": { - "value": "My first AVD Host Pool" - }, - "hostpoolType": { - "value": "Pooled" - }, - "personalDesktopAssignmentType": { - "value": "Automatic" - }, - "maxSessionLimit": { - "value": 99999 - }, - "loadBalancerType": { - "value": "BreadthFirst" - }, - "customRdpProperty": { - "value": "audiocapturemode:i:1;audiomode:i:0;drivestoredirect:s:;redirectclipboard:i:1;redirectcomports:i:1;redirectprinters:i:1;redirectsmartcards:i:1;screen mode id:i:2;" - }, - "vmTemplate": { - "value": { - "domain": "domainname.onmicrosoft.com", - "galleryImageOffer": "office-365", - "galleryImagePublisher": "microsoftwindowsdesktop", - "galleryImageSKU": "20h1-evd-o365pp", - "imageType": "Gallery", - "imageUri": null, - "customImageId": null, - "namePrefix": "avdv2", - "osDiskType": "StandardSSD_LRS", - "useManagedDisks": true, - "vmSize": { - "id": "Standard_D2s_v3", - "cores": 2, - "ram": 8 - } - } - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.DesktopVirtualization/scalingplans/.parameters/min.parameters.json b/modules/Microsoft.DesktopVirtualization/scalingplans/.parameters/min.parameters.json deleted file mode 100644 index e576bf3707..0000000000 --- a/modules/Microsoft.DesktopVirtualization/scalingplans/.parameters/min.parameters.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-avdsp-x-001" - } - } -} diff --git a/modules/Microsoft.DesktopVirtualization/workspaces/.parameters/parameters.json b/modules/Microsoft.DesktopVirtualization/workspaces/.parameters/parameters.json deleted file mode 100644 index 5ffb007078..0000000000 --- a/modules/Microsoft.DesktopVirtualization/workspaces/.parameters/parameters.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-avdws-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "location": { - "value": "westeurope" - }, - "appGroupResourceIds": { - "value": [ - "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.DesktopVirtualization/applicationgroups/adp-<>-az-avdag-x-001" - ] - }, - "workspaceFriendlyName": { - "value": "My first AVD Workspace" - }, - "workspaceDescription": { - "value": "This is my first AVD Workspace" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.DocumentDB/databaseAccounts/.parameters/mongodb.parameters.json b/modules/Microsoft.DocumentDB/databaseAccounts/.parameters/mongodb.parameters.json deleted file mode 100644 index c9c6465b30..0000000000 --- a/modules/Microsoft.DocumentDB/databaseAccounts/.parameters/mongodb.parameters.json +++ /dev/null @@ -1,240 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-cdb-mongodb-001" - }, - "location": { - "value": "West Europe" - }, - "locations": { - "value": [ - { - "locationName": "West Europe", - "failoverPriority": 0, - "isZoneRedundant": false - }, - { - "locationName": "North Europe", - "failoverPriority": 1, - "isZoneRedundant": false - } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "mongodbDatabases": { - "value": [ - { - "name": "<>-az-mdb-x-001", - "collections": [ - { - "name": "car_collection", - "indexes": [ - { - "key": { - "keys": [ - "_id" - ] - } - }, - { - "key": { - "keys": [ - "$**" - ] - } - }, - { - "key": { - "keys": [ - "car_id", - "car_model" - ] - }, - "options": { - "unique": true - } - }, - { - "key": { - "keys": [ - "_ts" - ] - }, - "options": { - "expireAfterSeconds": 2629746 - } - } - ], - "shardKey": { - "car_id": "Hash" - } - }, - { - "name": "truck_collection", - "indexes": [ - { - "key": { - "keys": [ - "_id" - ] - } - }, - { - "key": { - "keys": [ - "$**" - ] - } - }, - { - "key": { - "keys": [ - "truck_id", - "truck_model" - ] - }, - "options": { - "unique": true - } - }, - { - "key": { - "keys": [ - "_ts" - ] - }, - "options": { - "expireAfterSeconds": 2629746 - } - } - ], - "shardKey": { - "truck_id": "Hash" - } - } - ] - }, - { - "name": "<>-az-mdb-x-002", - "collections": [ - { - "name": "bike_collection", - "indexes": [ - { - "key": { - "keys": [ - "_id" - ] - } - }, - { - "key": { - "keys": [ - "$**" - ] - } - }, - { - "key": { - "keys": [ - "bike_id", - "bike_model" - ] - }, - "options": { - "unique": true - } - }, - { - "key": { - "keys": [ - "_ts" - ] - }, - "options": { - "expireAfterSeconds": 2629746 - } - } - ], - "shardKey": { - "bike_id": "Hash" - } - }, - { - "name": "bicycle_collection", - "indexes": [ - { - "key": { - "keys": [ - "_id" - ] - } - }, - { - "key": { - "keys": [ - "$**" - ] - } - }, - { - "key": { - "keys": [ - "bicycle_id", - "bicycle_model" - ] - }, - "options": { - "unique": true - } - }, - { - "key": { - "keys": [ - "_ts" - ] - }, - "options": { - "expireAfterSeconds": 2629746 - } - } - ], - "shardKey": { - "bicycle_id": "Hash" - } - } - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "systemAssignedIdentity": { - "value": true - } - } -} diff --git a/modules/Microsoft.DocumentDB/databaseAccounts/.parameters/plain.parameters.json b/modules/Microsoft.DocumentDB/databaseAccounts/.parameters/plain.parameters.json deleted file mode 100644 index 564968cf20..0000000000 --- a/modules/Microsoft.DocumentDB/databaseAccounts/.parameters/plain.parameters.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-cdb-plain-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "locations": { - "value": [ - { - "locationName": "West Europe", - "failoverPriority": 0, - "isZoneRedundant": false - }, - { - "locationName": "North Europe", - "failoverPriority": 1, - "isZoneRedundant": false - } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.DocumentDB/databaseAccounts/.parameters/sqldb.parameters.json b/modules/Microsoft.DocumentDB/databaseAccounts/.parameters/sqldb.parameters.json deleted file mode 100644 index 11f83861d1..0000000000 --- a/modules/Microsoft.DocumentDB/databaseAccounts/.parameters/sqldb.parameters.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-cdb-sqldb-001" - }, - "location": { - "value": "West Europe" - }, - "locations": { - "value": [ - { - "locationName": "West Europe", - "failoverPriority": 0, - "isZoneRedundant": false - }, - { - "locationName": "North Europe", - "failoverPriority": 1, - "isZoneRedundant": false - } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "sqlDatabases": { - "value": [ - { - "name": "<>-az-sql-x-001", - "containers": [ - { - "name": "container-001", - "paths": [ - "/myPartitionKey" - ], - "kind": "Hash" - } - ] - }, - { - "name": "<>-az-sql-x-002", - "containers": [] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - } - } -} diff --git a/modules/Microsoft.EventGrid/systemTopics/.parameters/min.parameters.json b/modules/Microsoft.EventGrid/systemTopics/.parameters/min.parameters.json deleted file mode 100644 index 87be2f37f1..0000000000 --- a/modules/Microsoft.EventGrid/systemTopics/.parameters/min.parameters.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-egstn-x-002" - }, - "source": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "topicType": { - "value": "Microsoft.Storage.StorageAccounts" - } - } -} diff --git a/modules/Microsoft.EventGrid/systemTopics/.parameters/parameters.json b/modules/Microsoft.EventGrid/systemTopics/.parameters/parameters.json deleted file mode 100644 index 5a415c770e..0000000000 --- a/modules/Microsoft.EventGrid/systemTopics/.parameters/parameters.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-egstn-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "source": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "topicType": { - "value": "Microsoft.Storage.StorageAccounts" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.EventGrid/topics/.parameters/parameters.json b/modules/Microsoft.EventGrid/topics/.parameters/parameters.json deleted file mode 100644 index 5976a4588b..0000000000 --- a/modules/Microsoft.EventGrid/topics/.parameters/parameters.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-egtn-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "privateEndpoints": { - "value": [ - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "topic" - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.EventHub/namespaces/.parameters/min.parameters.json b/modules/Microsoft.EventHub/namespaces/.parameters/min.parameters.json deleted file mode 100644 index d90c44f3fb..0000000000 --- a/modules/Microsoft.EventHub/namespaces/.parameters/min.parameters.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": {} -} diff --git a/modules/Microsoft.EventHub/namespaces/.parameters/parameters.json b/modules/Microsoft.EventHub/namespaces/.parameters/parameters.json deleted file mode 100644 index 38aff7a42e..0000000000 --- a/modules/Microsoft.EventHub/namespaces/.parameters/parameters.json +++ /dev/null @@ -1,145 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-evnsp-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "authorizationRules": { - "value": [ - { - "name": "RootManageSharedAccessKey", - "rights": [ - "Listen", - "Manage", - "Send" - ] - }, - { - "name": "SendListenAccess", - "rights": [ - "Listen", - "Send" - ] - } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "eventHubs": { - "value": [ - { - "name": "<>-az-evh-x-001" - }, - { - "name": "<>-az-evh-x-002", - "authorizationRules": [ - { - "name": "RootManageSharedAccessKey", - "rights": [ - "Listen", - "Manage", - "Send" - ] - }, - { - "name": "SendListenAccess", - "rights": [ - "Listen", - "Send" - ] - } - ], - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ], - "messageRetentionInDays": 1, - "partitionCount": 2, - "status": "Active", - "captureDescriptionEnabled": true, - "captureDescriptionEncoding": "Avro", - "captureDescriptionIntervalInSeconds": 300, - "captureDescriptionSizeLimitInBytes": 314572800, - "captureDescriptionDestinationName": "EventHubArchive.AzureBlockBlob", - "captureDescriptionDestinationStorageAccountResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", - "captureDescriptionDestinationBlobContainer": "eventhub", - "captureDescriptionDestinationArchiveNameFormat": "{Namespace}/{EventHub}/{PartitionId}/{Year}/{Month}/{Day}/{Hour}/{Minute}/{Second}", - "captureDescriptionSkipEmptyArchives": true, - "consumerGroups": [ - { - "name": "custom", - "userMetadata": "customMetadata" - } - ] - } - ] - }, - "privateEndpoints": { - "value": [ - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "namespace" - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "systemAssignedIdentity": { - "value": true - }, - "networkRuleSets": { - "value": { - "defaultAction": "Deny", - "ipRules": [ - { - "action": "Allow", - "ipMask": "10.10.10.10" - } - ], - "virtualNetworkRules": [ - { - "subnet": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001" - }, - "ignoreMissingVnetServiceEndpoint": true - } - ], - "trustedServiceAccessEnabled": false - } - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - } - } -} diff --git a/modules/Microsoft.HealthBot/healthBots/.parameters/parameters.json b/modules/Microsoft.HealthBot/healthBots/.parameters/parameters.json deleted file mode 100644 index fef2b742de..0000000000 --- a/modules/Microsoft.HealthBot/healthBots/.parameters/parameters.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-ahb-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Insights/actionGroups/.parameters/parameters.json b/modules/Microsoft.Insights/actionGroups/.parameters/parameters.json deleted file mode 100644 index 32c9e76062..0000000000 --- a/modules/Microsoft.Insights/actionGroups/.parameters/parameters.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-ag-x-001" - }, - "groupShortName": { - "value": "azagweux001" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "emailReceivers": { - "value": [ - { - "name": "TestUser_-EmailAction-", - "emailAddress": "test.user@testcompany.com", - "useCommonAlertSchema": true - }, - { - "name": "TestUser2", - "emailAddress": "test.user2@testcompany.com", - "useCommonAlertSchema": true - } - ] - }, - "smsReceivers": { - "value": [ - { - "name": "TestUser_-SMSAction-", - "countryCode": "1", - "phoneNumber": "2345678901" - } - ] - } - } -} diff --git a/modules/Microsoft.Insights/activityLogAlerts/.parameters/parameters.json b/modules/Microsoft.Insights/activityLogAlerts/.parameters/parameters.json deleted file mode 100644 index 8d7e3e6581..0000000000 --- a/modules/Microsoft.Insights/activityLogAlerts/.parameters/parameters.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-ala-x-001" - }, - "scopes": { - "value": [ - "/subscriptions/<>" - ] - }, - "conditions": { - "value": [ - { - "field": "category", - "equals": "Administrative" - }, - { - "field": "resourceType", - "equals": "microsoft.compute/virtualmachines" - }, - { - "field": "operationName", - "equals": "Microsoft.Compute/virtualMachines/performMaintenance/action" - } - ] - }, - "actions": { - "value": [ - { - "actionGroupId": "/subscriptions/<>/resourceGroups/validation-rg/providers/microsoft.insights/actiongroups/adp-<>-az-ag-x-001" - } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Insights/components/.parameters/parameters.json b/modules/Microsoft.Insights/components/.parameters/parameters.json deleted file mode 100644 index 636d9f6c7d..0000000000 --- a/modules/Microsoft.Insights/components/.parameters/parameters.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-appi-x-001" - }, - "workspaceResourceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-appi-001" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Insights/diagnosticSettings/.parameters/parameters.json b/modules/Microsoft.Insights/diagnosticSettings/.parameters/parameters.json deleted file mode 100644 index 2e1d38512a..0000000000 --- a/modules/Microsoft.Insights/diagnosticSettings/.parameters/parameters.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-diag-x-001" - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.Insights/metricAlerts/.parameters/parameters.json b/modules/Microsoft.Insights/metricAlerts/.parameters/parameters.json deleted file mode 100644 index bbe65cdaea..0000000000 --- a/modules/Microsoft.Insights/metricAlerts/.parameters/parameters.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-ma-x-001" - }, - "windowSize": { - "value": "PT15M" - }, - "actions": { - "value": [ - "/subscriptions/<>/resourceGroups/validation-rg/providers/microsoft.insights/actiongroups/adp-<>-az-ag-x-001" - ] - }, - "targetResourceType": { - "value": "microsoft.compute/virtualmachines" - }, - "targetResourceRegion": { - "value": "westeurope" - }, - "criterias": { - "value": [ - { - "criterionType": "StaticThresholdCriterion", - "metricName": "Percentage CPU", - "metricNamespace": "microsoft.compute/virtualmachines", - "name": "HighCPU", - "operator": "GreaterThan", - "threshold": "90", - "timeAggregation": "Average" - } - ] - }, - "alertCriteriaType": { - "value": "Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Insights/privateLinkScopes/.parameters/parameters.json b/modules/Microsoft.Insights/privateLinkScopes/.parameters/parameters.json deleted file mode 100644 index 8bfe5c1638..0000000000 --- a/modules/Microsoft.Insights/privateLinkScopes/.parameters/parameters.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-pls-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "scopedResources": { - "value": [ - { - "name": "scoped1", - "linkedResourceId": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "privateEndpoints": { - "value": [ - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "azuremonitor" - } - ] - } - } -} diff --git a/modules/Microsoft.Insights/scheduledQueryRules/.parameters/parameters.json b/modules/Microsoft.Insights/scheduledQueryRules/.parameters/parameters.json deleted file mode 100644 index 85cb87625b..0000000000 --- a/modules/Microsoft.Insights/scheduledQueryRules/.parameters/parameters.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "myAlert01" - }, - "alertDescription": { - "value": "My sample Alert" - }, - "scopes": { - "value": [ - "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - ] - }, - "evaluationFrequency": { - "value": "PT5M" - }, - "windowSize": { - "value": "PT5M" - }, - "suppressForMinutes": { - "value": "PT5M" - }, - "queryTimeRange": { - "value": "PT5M" - }, - "autoMitigate": { - "value": false - }, - "criterias": { - "value": { - "allOf": [ - { - "query": "Perf | where ObjectName == \"LogicalDisk\" | where CounterName == \"% Free Space\" | where InstanceName <> \"HarddiskVolume1\" and InstanceName <> \"_Total\" | summarize AggregatedValue = min(CounterValue) by Computer, InstanceName, bin(TimeGenerated,5m)", - "timeAggregation": "Average", - "metricMeasureColumn": "AggregatedValue", - "dimensions": [ - { - "name": "Computer", - "operator": "Include", - "values": [ - "*" - ] - }, - { - "name": "InstanceName", - "operator": "Include", - "values": [ - "*" - ] - } - ], - "operator": "GreaterThan", - "threshold": 0 - } - ] - } - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.KeyVault/vaults/.parameters/min.parameters.json b/modules/Microsoft.KeyVault/vaults/.parameters/min.parameters.json deleted file mode 100644 index d90c44f3fb..0000000000 --- a/modules/Microsoft.KeyVault/vaults/.parameters/min.parameters.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": {} -} diff --git a/modules/Microsoft.KeyVault/vaults/.parameters/parameters.json b/modules/Microsoft.KeyVault/vaults/.parameters/parameters.json deleted file mode 100644 index d015736c8f..0000000000 --- a/modules/Microsoft.KeyVault/vaults/.parameters/parameters.json +++ /dev/null @@ -1,133 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-kv-x-002" - }, - "lock": { - "value": "CanNotDelete" - }, - "softDeleteRetentionInDays": { - "value": 7 - }, - "enableRbacAuthorization": { - "value": false - }, - "privateEndpoints": { - "value": [ - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "vault" - } - ] - }, - "networkAcls": { - "value": { - "bypass": "AzureServices", - "defaultAction": "Deny", - "virtualNetworkRules": [ - { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001", - "action": "Allow" - } - ], - "ipRules": [] - } - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "secrets": { - "value": { - "secureList": [ - { - "name": "secretName", - "value": "secretValue", - "contentType": "Something", - "attributesExp": 1702648632, - "attributesNbf": 10000, - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - ] - } - }, - "keys": { - "value": [ - { - "name": "keyName", - "attributesExp": 1702648632, - "attributesNbf": 10000, - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - ] - }, - "accessPolicies": { - "value": [ - { - "objectId": "<>", - "permissions": { - "keys": [ - "get", - "list", - "update" - ], - "secrets": [ - "all" - ] - }, - "tenantId": "<>" - }, - { - "objectId": "<>", - "permissions": { - "certificates": [ - "backup", - "create", - "delete" - ], - "secrets": [ - "all" - ] - } - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.KubernetesConfiguration/extensions/.parameters/min.parameters.json b/modules/Microsoft.KubernetesConfiguration/extensions/.parameters/min.parameters.json deleted file mode 100644 index 8beee2d23b..0000000000 --- a/modules/Microsoft.KubernetesConfiguration/extensions/.parameters/min.parameters.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "flux" - }, - "extensionType": { - "value": "microsoft.flux" - }, - "clusterName": { - "value": "<>-az-aks-kubenet-001" - }, - "releaseTrain": { - "value": "Stable" - }, - "releaseNamespace": { - "value": "flux-system" - } - } -} diff --git a/modules/Microsoft.KubernetesConfiguration/extensions/.parameters/parameters.json b/modules/Microsoft.KubernetesConfiguration/extensions/.parameters/parameters.json deleted file mode 100644 index 29ca85067d..0000000000 --- a/modules/Microsoft.KubernetesConfiguration/extensions/.parameters/parameters.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "flux" - }, - "extensionType": { - "value": "microsoft.flux" - }, - "clusterName": { - "value": "<>-az-aks-kubenet-001" - }, - "releaseTrain": { - "value": "Stable" - }, - "releaseNamespace": { - "value": "flux-system" - }, - "version": { - "value": "0.5.2" - }, - "configurationSettings": { - "value": { - // "helm-controller.enabled": "false", - "source-controller.enabled": "true", - "kustomize-controller.enabled": "true", - "notification-controller.enabled": "false", - "image-automation-controller.enabled": "false", - "image-reflector-controller.enabled": "false" - } - } - } -} diff --git a/modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.parameters/min.parameters.json b/modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.parameters/min.parameters.json deleted file mode 100644 index 201ac22b6b..0000000000 --- a/modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.parameters/min.parameters.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "flux2" - }, - "scope": { - "value": "cluster" - }, - "clusterName": { - "value": "<>-az-aks-kubenet-001" - }, - "namespace": { - "value": "flux-system" - }, - "sourceKind": { - "value": "GitRepository" - }, - "gitRepository": { - "value": { - "url": "https://github.com/mspnp/aks-baseline", - "timeoutInSeconds": 180, - "syncIntervalInSeconds": 300, - "repositoryRef": { - "branch": "main" - }, - "sshKnownHosts": "" - } - } - } -} diff --git a/modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.parameters/parameters.json b/modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.parameters/parameters.json deleted file mode 100644 index e6f563f7f8..0000000000 --- a/modules/Microsoft.KubernetesConfiguration/fluxConfigurations/.parameters/parameters.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "flux2" - }, - "scope": { - "value": "cluster" - }, - "clusterName": { - "value": "<>-az-aks-kubenet-001" - }, - "namespace": { - "value": "flux-system" - }, - "sourceKind": { - "value": "GitRepository" - }, - "gitRepository": { - "value": { - "url": "https://github.com/mspnp/aks-baseline", - "timeoutInSeconds": 180, - "syncIntervalInSeconds": 300, - "repositoryRef": { - "branch": "main" - }, - "sshKnownHosts": "" - } - }, - "kustomizations": { - "value": { - "unified": { - "path": "./cluster-manifests", - "dependsOn": [], - "timeoutInSeconds": 300, - "syncIntervalInSeconds": 300, - "prune": true, - "force": false - } - } - } - } -} diff --git a/modules/Microsoft.Logic/workflows/.parameters/parameters.json b/modules/Microsoft.Logic/workflows/.parameters/parameters.json deleted file mode 100644 index 6436e5c1b7..0000000000 --- a/modules/Microsoft.Logic/workflows/.parameters/parameters.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-lga-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "tags": { - "value": {} - }, - "workflowActions": { - "value": { - "HTTP": { - "type": "Http", - "inputs": { - "method": "POST", - "uri": "https://testStringForValidation.com", - "body": { - "HostPoolName": "[HostPoolName]", - "LAWorkspaceName": "[LAWorkspaceName]", - "LimitSecondsToForceLogOffUser": "[LimitSecondsToForceLogOffUser]", - "EndPeakTime": "[EndPeakTime]", - "BeginPeakTime": "[BeginPeakTime]", - "UtcOffset": "[UtcOffset]", - "LogOffMessageBody": "[LogOffMessageBody]", - "LogOffMessageTitle": "[LogOffMessageTitle]", - "MinimumNumberOfRDSH": 1, - "SessionThresholdPerCPU": 1, - "ResourceGroupName": "[ResourceGroupName]" - } - } - } - } - }, - "workflowTriggers": { - "value": { - "Recurrence": { - "recurrence": { - "frequency": "Minute", - "interval": 15 - }, - "type": "Recurrence" - } - } - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "systemAssignedIdentity": { - "value": true - } - } -} diff --git a/modules/Microsoft.MachineLearningServices/workspaces/.parameters/min.parameters.json b/modules/Microsoft.MachineLearningServices/workspaces/.parameters/min.parameters.json deleted file mode 100644 index 012526cf1f..0000000000 --- a/modules/Microsoft.MachineLearningServices/workspaces/.parameters/min.parameters.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-mls-min-001" - }, - "sku": { - "value": "Basic" - }, - "associatedStorageAccountResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "associatedKeyVaultResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "associatedApplicationInsightsResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Insights/components/adp-<>-az-appi-x-001" - }, - "systemAssignedIdentity": { - "value": true - } - } -} diff --git a/modules/Microsoft.MachineLearningServices/workspaces/.parameters/parameters.json b/modules/Microsoft.MachineLearningServices/workspaces/.parameters/parameters.json deleted file mode 100644 index d8058a2616..0000000000 --- a/modules/Microsoft.MachineLearningServices/workspaces/.parameters/parameters.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-mls-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "sku": { - "value": "Basic" - }, - "associatedStorageAccountResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "associatedKeyVaultResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "associatedApplicationInsightsResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Insights/components/adp-<>-az-appi-x-001" - }, - "systemAssignedIdentity": { - "value": false // Must be false if `primaryUserAssignedIdentity` is provided - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "description": { - "value": "The cake is a lie." - }, - "discoveryUrl": { - "value": "http://example.com" - }, - "encryptionIdentity": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001" - }, - "encryptionKeyIdentifier": { - "value": "https://adp-carml-az-kv-nopr-002.vault.azure.net/keys/keyEncryptionKey/5263fcde203347baa7cda35d074073b2" // ID must be updated for new keys - }, - "encryptionKeyVaultResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-carml-az-kv-nopr-002" - }, - "imageBuildCompute": { - "value": "testcompute" - }, - "publicNetworkAccess": { - "value": "Enabled" - }, - "primaryUserAssignedIdentity": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001" - }, - "computes": { - "value": [ - { - "name": "DefaultCPU", - "location": "westeurope", - "computeLocation": "westeurope", - "sku": "Basic", - "systemAssignedIdentity": false, - "userAssignedIdentities": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - }, - "description": "Default CPU Cluster", - "disableLocalAuth": false, - "computeType": "AmlCompute", - "properties": { - "enableNodePublicIp": true, - "isolatedNetwork": false, - "osType": "Linux", - "remoteLoginPortPublicAccess": "Disabled", - "scaleSettings": { - "maxNodeCount": 3, - "minNodeCount": 0, - "nodeIdleTimeBeforeScaleDown": "PT5M" - }, - "vmPriority": "Dedicated", - "vmSize": "STANDARD_DS11_V2" - } - } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "privateEndpoints": { - "value": [ - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "amlworkspace" - } - ] - } - } -} diff --git a/modules/Microsoft.ManagedIdentity/userAssignedIdentities/.parameters/parameters.json b/modules/Microsoft.ManagedIdentity/userAssignedIdentities/.parameters/parameters.json deleted file mode 100644 index d76c001bb1..0000000000 --- a/modules/Microsoft.ManagedIdentity/userAssignedIdentities/.parameters/parameters.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-msi-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.ManagedServices/registrationDefinitions/.parameters/parameters.json b/modules/Microsoft.ManagedServices/registrationDefinitions/.parameters/parameters.json deleted file mode 100644 index 8fc6fc1cc9..0000000000 --- a/modules/Microsoft.ManagedServices/registrationDefinitions/.parameters/parameters.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "Component Validation - Subscription assignment" - }, - "registrationDescription": { - "value": "Managed by Lighthouse" - }, - "managedByTenantId": { - "value": "195ee85d-2f10-4764-8352-a3c99aa772fb" - }, - "authorizations": { - "value": [ - { - "principalId": "e87a249c-b53b-4685-94fe-863af522e4ee", - "principalIdDisplayName": "ResourceModules-Reader", - "roleDefinitionId": "acdd72a7-3385-48ef-bd42-f606fba81ae7" - }, - { - "principalId": "e2f126a7-136e-443f-b39f-f73ddfd146b1", - "principalIdDisplayName": "ResourceModules-Contributor", - "roleDefinitionId": "b24988ac-6180-42a0-ab88-20f7382dd24c" - }, - { - "principalId": "87813317-fb25-4c76-91fe-783af429d109", - "principalIdDisplayName": "ResourceModules-LHManagement", - "roleDefinitionId": "91c1777a-f3dc-4fae-b103-61d183457e46" - } - ] - } - } -} diff --git a/modules/Microsoft.ManagedServices/registrationDefinitions/.parameters/rg.parameters.json b/modules/Microsoft.ManagedServices/registrationDefinitions/.parameters/rg.parameters.json deleted file mode 100644 index 5e21414369..0000000000 --- a/modules/Microsoft.ManagedServices/registrationDefinitions/.parameters/rg.parameters.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "Component Validation - Resource group assignment" - }, - "registrationDescription": { - "value": "Managed by Lighthouse" - }, - "managedByTenantId": { - "value": "195ee85d-2f10-4764-8352-a3c99aa772fb" - }, - "resourceGroupName": { - "value": "validation-rg" - }, - "authorizations": { - "value": [ - { - "principalId": "e87a249c-b53b-4685-94fe-863af522e4ee", - "principalIdDisplayName": "ResourceModules-Reader", - "roleDefinitionId": "acdd72a7-3385-48ef-bd42-f606fba81ae7" - }, - { - "principalId": "e2f126a7-136e-443f-b39f-f73ddfd146b1", - "principalIdDisplayName": "ResourceModules-Contributor", - "roleDefinitionId": "b24988ac-6180-42a0-ab88-20f7382dd24c" - }, - { - "principalId": "87813317-fb25-4c76-91fe-783af429d109", - "principalIdDisplayName": "ResourceModules-LHManagement", - "roleDefinitionId": "91c1777a-f3dc-4fae-b103-61d183457e46" - } - ] - } - } -} diff --git a/modules/Microsoft.Management/managementGroups/.parameters/parameters.json b/modules/Microsoft.Management/managementGroups/.parameters/parameters.json deleted file mode 100644 index 21e2524a5f..0000000000 --- a/modules/Microsoft.Management/managementGroups/.parameters/parameters.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "testMG" - }, - "displayName": { - "value": "Test MG" - }, - "parentId": { - "value": "<>" - } - } -} diff --git a/modules/Microsoft.NetApp/netAppAccounts/.parameters/min.parameters.json b/modules/Microsoft.NetApp/netAppAccounts/.parameters/min.parameters.json deleted file mode 100644 index 029d5ebc09..0000000000 --- a/modules/Microsoft.NetApp/netAppAccounts/.parameters/min.parameters.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-anf-min-001" - } - } -} diff --git a/modules/Microsoft.NetApp/netAppAccounts/.parameters/nfs3.parameters.json b/modules/Microsoft.NetApp/netAppAccounts/.parameters/nfs3.parameters.json deleted file mode 100644 index 8718b5fdab..0000000000 --- a/modules/Microsoft.NetApp/netAppAccounts/.parameters/nfs3.parameters.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-anf-nfs3-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "capacityPools": { - "value": [ - { - "name": "<>-az-anfcp-x-001", - "serviceLevel": "Premium", - "size": 4398046511104, - "volumes": [ - { - "name": "anf3-vol01-nfsv3", - "usageThreshold": 107374182400, - "protocolTypes": [ - "NFSv3" - ], - "exportPolicyRules": [ - { - "ruleIndex": 1, - "unixReadOnly": false, - "unixReadWrite": true, - "nfsv3": true, - "nfsv41": false, - "allowedClients": "0.0.0.0/0" - } - ], - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-004", - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - { - "name": "anf3-vol02-nfsv3", - "usageThreshold": 107374182400, - "protocolTypes": [ - "NFSv3" - ], - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-004" - } - ], - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - { - "name": "<>-az-anfcp-x-002", - "serviceLevel": "Premium", - "size": 4398046511104, - "volumes": [], - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "tags": { - "value": { - "Environment": "Non-Prod", - "Contact": "test.user@testcompany.com", - "PurchaseOrder": "1234", - "CostCenter": "7890", - "ServiceName": "DeploymentValidation", - "Role": "DeploymentValidation" - } - } - } -} diff --git a/modules/Microsoft.NetApp/netAppAccounts/.parameters/nfs41.parameters.json b/modules/Microsoft.NetApp/netAppAccounts/.parameters/nfs41.parameters.json deleted file mode 100644 index 2f961c1442..0000000000 --- a/modules/Microsoft.NetApp/netAppAccounts/.parameters/nfs41.parameters.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-anf-nfs41-001" - }, - "capacityPools": { - "value": [ - { - "name": "<>-az-anfcp-x-001", - "serviceLevel": "Premium", - "size": 4398046511104, - "volumes": [ - { - "name": "anf4-vol01-nfsv41", - "usageThreshold": 107374182400, - "protocolTypes": [ - "NFSv4.1" - ], - "exportPolicyRules": [ - { - "ruleIndex": 1, - "unixReadOnly": false, - "unixReadWrite": true, - "nfsv3": false, - "nfsv41": true, - "allowedClients": "0.0.0.0/0" - } - ], - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-004", - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - { - "name": "anf4-vol02-nfsv41", - "usageThreshold": 107374182400, - "protocolTypes": [ - "NFSv4.1" - ], - "exportPolicyRules": [ - { - "ruleIndex": 1, - "unixReadOnly": false, - "unixReadWrite": true, - "nfsv3": false, - "nfsv41": true, - "allowedClients": "0.0.0.0/0" - } - ], - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-004" - } - ], - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - { - "name": "<>-az-anfcp-x-002", - "serviceLevel": "Premium", - "size": 4398046511104, - "volumes": [], - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "tags": { - "value": { - "Environment": "Non-Prod", - "Contact": "test.user@testcompany.com", - "PurchaseOrder": "1234", - "CostCenter": "7890", - "ServiceName": "DeploymentValidation", - "Role": "DeploymentValidation" - } - } - } -} diff --git a/modules/Microsoft.Network/applicationGateways/.parameters/parameters.json b/modules/Microsoft.Network/applicationGateways/.parameters/parameters.json deleted file mode 100644 index f0a3b3a148..0000000000 --- a/modules/Microsoft.Network/applicationGateways/.parameters/parameters.json +++ /dev/null @@ -1,367 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-apgw-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "webApplicationFirewallConfiguration": { - "value": { - "enabled": true, - "firewallMode": "Detection", - "ruleSetType": "OWASP", - "ruleSetVersion": "3.0", - "disabledRuleGroups": [], - "requestBodyCheck": true, - "maxRequestBodySizeInKb": 128, - "fileUploadLimitInMb": 100 - } - }, - "enableHttp2": { - "value": true - }, - "backendAddressPools": { - "value": [ - { - "name": "appServiceBackendPool", - "properties": { - "backendAddresses": [ - { - "fqdn": "aghapp.azurewebsites.net" - } - ] - } - }, - { - "name": "privateVmBackendPool", - "properties": { - "backendAddresses": [ - { - "ipAddress": "10.0.0.4" - } - ] - } - } - ] - }, - "backendHttpSettingsCollection": { - "value": [ - { - "name": "appServiceBackendHttpsSetting", - "properties": { - "port": 443, - "protocol": "Https", - "cookieBasedAffinity": "Disabled", - "pickHostNameFromBackendAddress": true, - "requestTimeout": 30 - } - }, - { - "name": "privateVmHttpSetting", - "properties": { - "port": 80, - "protocol": "Http", - "cookieBasedAffinity": "Disabled", - "pickHostNameFromBackendAddress": false, - "requestTimeout": 30, - "probe": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/probes/privateVmHttpSettingProbe" - } - } - } - ] - }, - "frontendIPConfigurations": { - "value": [ - { - "name": "private", - "properties": { - "privateIPAddress": "10.0.8.6", - "privateIPAllocationMethod": "Static", - "subnet": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-007" - } - } - }, - { - "name": "public", - "properties": { - "privateIPAllocationMethod": "Dynamic", - "publicIPAddress": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/publicIPAddresses/adp-<>-az-pip-x-apgw" - } - } - } - ] - }, - "frontendPorts": { - "value": [ - { - "name": "port443", - "properties": { - "port": 443 - } - }, - { - "name": "port4433", - "properties": { - "port": 4433 - } - }, - { - "name": "port80", - "properties": { - "port": 80 - } - }, - { - "name": "port8080", - "properties": { - "port": 8080 - } - } - ] - }, - "httpListeners": { - "value": [ - { - "name": "public443", - "properties": { - "frontendIPConfiguration": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/frontendIPConfigurations/public" - }, - "frontendPort": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/frontendPorts/port443" - }, - "sslCertificate": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/sslCertificates/<>-az-apgw-x-001-ssl-certificate" - }, - "protocol": "https", - "hostNames": [], - "requireServerNameIndication": false - } - }, - { - "name": "private4433", - "properties": { - "frontendIPConfiguration": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/frontendIPConfigurations/private" - }, - "frontendPort": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/frontendPorts/port4433" - }, - "sslCertificate": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/sslCertificates/<>-az-apgw-x-001-ssl-certificate" - }, - "protocol": "https", - "hostNames": [], - "requireServerNameIndication": false - } - }, - { - "name": "httpRedirect80", - "properties": { - "frontendIPConfiguration": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/frontendIPConfigurations/public" - }, - "frontendPort": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/frontendPorts/port80" - }, - "protocol": "Http", - "hostNames": [], - "requireServerNameIndication": false - } - }, - { - "name": "httpRedirect8080", - "properties": { - "frontendIPConfiguration": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/frontendIPConfigurations/private" - }, - "frontendPort": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/frontendPorts/port8080" - }, - "protocol": "Http", - "hostNames": [], - "requireServerNameIndication": false - } - } - ] - }, - "gatewayIPConfigurations": { - "value": [ - { - "name": "apw-ip-configuration", - "properties": { - "subnet": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-007" - } - } - } - ] - }, - "probes": { - "value": [ - { - "name": "privateVmHttpSettingProbe", - "properties": { - "protocol": "Http", - "host": "10.0.0.4", - "path": "/", - "interval": 60, - "timeout": 15, - "unhealthyThreshold": 5, - "pickHostNameFromBackendHttpSettings": false, - "minServers": 3, - "match": { - "statusCodes": [ - "200", - "401" - ] - } - } - } - ] - }, - "redirectConfigurations": { - "value": [ - { - "name": "httpRedirect80", - "properties": { - "redirectType": "Permanent", - "targetListener": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/httpListeners/public443" - }, - "includePath": true, - "includeQueryString": true, - "requestRoutingRules": [ - { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/requestRoutingRules/httpRedirect80-public443" - } - ] - } - }, - { - "name": "httpRedirect8080", - "properties": { - "redirectType": "Permanent", - "targetListener": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/httpListeners/private4433" - }, - "includePath": true, - "includeQueryString": true, - "requestRoutingRules": [ - { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/requestRoutingRules/httpRedirect8080-private4433" - } - ] - } - } - ] - }, - "requestRoutingRules": { - "value": [ - { - "name": "public443-appServiceBackendHttpsSetting-appServiceBackendHttpsSetting", - "properties": { - "ruleType": "Basic", - "httpListener": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/httpListeners/public443" - }, - "backendAddressPool": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/backendAddressPools/appServiceBackendPool" - }, - "backendHttpSettings": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/backendHttpSettingsCollection/appServiceBackendHttpsSetting" - } - } - }, - { - "name": "private4433-privateVmHttpSetting-privateVmHttpSetting", - "properties": { - "ruleType": "Basic", - "httpListener": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/httpListeners/private4433" - }, - "backendAddressPool": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/backendAddressPools/privateVmBackendPool" - }, - "backendHttpSettings": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/backendHttpSettingsCollection/privateVmHttpSetting" - } - } - }, - { - "name": "httpRedirect80-public443", - "properties": { - "ruleType": "Basic", - "httpListener": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/httpListeners/httpRedirect80" - }, - "redirectConfiguration": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/redirectConfigurations/httpRedirect80" - } - } - }, - { - "name": "httpRedirect8080-private4433", - "properties": { - "ruleType": "Basic", - "httpListener": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/httpListeners/httpRedirect8080" - }, - "redirectConfiguration": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationGateways/<>-az-apgw-x-001/redirectConfigurations/httpRedirect8080" - } - } - } - ] - }, - "sku": { - "value": "WAF_v2" - }, - "sslCertificates": { - "value": [ - { - "name": "<>-az-apgw-x-001-ssl-certificate", - "properties": { - "keyVaultSecretId": "https://adp-<>-az-kv-x-001.vault.azure.net/secrets/applicationGatewaySslCertificate" - } - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Network/applicationSecurityGroups/.parameters/parameters.json b/modules/Microsoft.Network/applicationSecurityGroups/.parameters/parameters.json deleted file mode 100644 index 8bfef178fc..0000000000 --- a/modules/Microsoft.Network/applicationSecurityGroups/.parameters/parameters.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-asg-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Network/azureFirewalls/.parameters/addpip.parameters.json b/modules/Microsoft.Network/azureFirewalls/.parameters/addpip.parameters.json deleted file mode 100644 index bd881f7897..0000000000 --- a/modules/Microsoft.Network/azureFirewalls/.parameters/addpip.parameters.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-fw-add-001" - }, - "vNetId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-add-azfw" - }, - "additionalPublicIpConfigurations": { - "value": [ - { - "name": "ipConfig01", - "publicIPAddressResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/publicIPAddresses/adp-<>-az-pip-additional-fw" - } - ] - } - } -} diff --git a/modules/Microsoft.Network/azureFirewalls/.parameters/custompip.parameters.json b/modules/Microsoft.Network/azureFirewalls/.parameters/custompip.parameters.json deleted file mode 100644 index 68a1ce42cd..0000000000 --- a/modules/Microsoft.Network/azureFirewalls/.parameters/custompip.parameters.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-fw-custompip-001" - }, - "vNetId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-custompip-azfw" - }, - "publicIPAddressObject": { - "value": { - "name": "adp-<>-az-pip-custom-x-fw", - "publicIPPrefixResourceId": "", - "publicIPAllocationMethod": "Static", - "skuName": "Standard", - "skuTier": "Regional", - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ], - "diagnosticMetricsToEnable": [ - "AllMetrics" - ], - "diagnosticLogCategoriesToEnable": [ - "DDoSProtectionNotifications", - "DDoSMitigationFlowLogs", - "DDoSMitigationReports" - ] - } - } - } -} diff --git a/modules/Microsoft.Network/azureFirewalls/.parameters/min.parameters.json b/modules/Microsoft.Network/azureFirewalls/.parameters/min.parameters.json deleted file mode 100644 index 56f60cdaca..0000000000 --- a/modules/Microsoft.Network/azureFirewalls/.parameters/min.parameters.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-fw-min-001" - }, - "vNetId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-min-azfw" - } - } -} diff --git a/modules/Microsoft.Network/azureFirewalls/.parameters/parameters.json b/modules/Microsoft.Network/azureFirewalls/.parameters/parameters.json deleted file mode 100644 index 6f0a85edea..0000000000 --- a/modules/Microsoft.Network/azureFirewalls/.parameters/parameters.json +++ /dev/null @@ -1,135 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-fw-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "zones": { - "value": [ - "1", - "2", - "3" - ] - }, - "vNetId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-azfw" - }, - "azureFirewallSubnetPublicIpId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/publicIPAddresses/adp-<>-az-pip-x-fw" - }, - "applicationRuleCollections": { - "value": [ - { - "name": "allow-app-rules", - "properties": { - "priority": 100, - "action": { - "type": "allow" - }, - "rules": [ - { - "name": "allow-ase-tags", - "sourceAddresses": [ - "*" - ], - "protocols": [ - { - "protocolType": "HTTP", - "port": "80" - }, - { - "protocolType": "HTTPS", - "port": "443" - } - ], - "fqdnTags": [ - "AppServiceEnvironment", - "WindowsUpdate" - ] - }, - { - "name": "allow-ase-management", - "sourceAddresses": [ - "*" - ], - "protocols": [ - { - "protocolType": "HTTP", - "port": "80" - }, - { - "protocolType": "HTTPS", - "port": "443" - } - ], - "targetFqdns": [ - "management.azure.com" - ] - } - ] - } - } - ] - }, - "networkRuleCollections": { - "value": [ - { - "name": "allow-network-rules", - "properties": { - "priority": 100, - "action": { - "type": "allow" - }, - "rules": [ - { - "name": "allow-ntp", - "sourceAddresses": [ - "*" - ], - "destinationAddresses": [ - "*" - ], - "destinationPorts": [ - "123", - "12000" - ], - "protocols": [ - "Any" - ] - } - ] - } - } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.Network/bastionHosts/.parameters/addpip.parameters.json b/modules/Microsoft.Network/bastionHosts/.parameters/addpip.parameters.json deleted file mode 100644 index 7c82650737..0000000000 --- a/modules/Microsoft.Network/bastionHosts/.parameters/addpip.parameters.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-bas-add-001" - }, - "vNetId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-add-bas" - }, - "additionalPublicIpConfigurations": { - "value": [ - { - "name": "ipConfig01", - "publicIPAddressResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/publicIPAddresses/adp-<>-az-pip-additional-bas" - } - ] - } - } -} diff --git a/modules/Microsoft.Network/bastionHosts/.parameters/custompip.parameters.json b/modules/Microsoft.Network/bastionHosts/.parameters/custompip.parameters.json deleted file mode 100644 index dbb195e70f..0000000000 --- a/modules/Microsoft.Network/bastionHosts/.parameters/custompip.parameters.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-bas-custompip-001" - }, - "vNetId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-custompip-bas" - }, - "publicIPAddressObject": { - "value": { - "name": "adp-<>-az-pip-custom-x-bas", - "publicIPPrefixResourceId": "", - "publicIPAllocationMethod": "Static", - "skuName": "Standard", - "skuTier": "Regional", - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ], - "diagnosticMetricsToEnable": [ - "AllMetrics" - ], - "diagnosticLogCategoriesToEnable": [ - "DDoSProtectionNotifications", - "DDoSMitigationFlowLogs", - "DDoSMitigationReports" - ] - } - } - } -} diff --git a/modules/Microsoft.Network/bastionHosts/.parameters/min.parameters.json b/modules/Microsoft.Network/bastionHosts/.parameters/min.parameters.json deleted file mode 100644 index 6ef38853fb..0000000000 --- a/modules/Microsoft.Network/bastionHosts/.parameters/min.parameters.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-bas-min-001" - }, - "vNetId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-002" - } - } -} diff --git a/modules/Microsoft.Network/bastionHosts/.parameters/parameters.json b/modules/Microsoft.Network/bastionHosts/.parameters/parameters.json deleted file mode 100644 index 0f0cf18c07..0000000000 --- a/modules/Microsoft.Network/bastionHosts/.parameters/parameters.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-bas-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "vNetId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001" - }, - "azureBastionSubnetPublicIpId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/publicIPAddresses/adp-<>-az-pip-x-bas" - }, - "skuType": { - "value": "Standard" - }, - "scaleUnits": { - "value": 4 - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.Network/connections/.parameters/vnet2vnet.parameters.json b/modules/Microsoft.Network/connections/.parameters/vnet2vnet.parameters.json deleted file mode 100644 index c58d1a4593..0000000000 --- a/modules/Microsoft.Network/connections/.parameters/vnet2vnet.parameters.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-vnetgwc-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "virtualNetworkGateway1": { - "value": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworkGateways/<>-az-vnet-vpn-gw-p-001" - } - }, - "virtualNetworkGateway2": { - "value": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworkGateways/<>-az-vnet-vpn-gw-p-002" - } - }, - "vpnSharedKey": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "vpnSharedKey" - } - }, - "virtualNetworkGatewayConnectionType": { - "value": "Vnet2Vnet" - }, - "enableBgp": { - "value": false - }, - "location": { - "value": "eastus" - } - } -} diff --git a/modules/Microsoft.Network/ddosProtectionPlans/.parameters/parameters.json b/modules/Microsoft.Network/ddosProtectionPlans/.parameters/parameters.json deleted file mode 100644 index fe639affc6..0000000000 --- a/modules/Microsoft.Network/ddosProtectionPlans/.parameters/parameters.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-ddos-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Network/expressRouteCircuits/.parameters/parameters.json b/modules/Microsoft.Network/expressRouteCircuits/.parameters/parameters.json deleted file mode 100644 index fa4209859e..0000000000 --- a/modules/Microsoft.Network/expressRouteCircuits/.parameters/parameters.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-erc-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "serviceProviderName": { - "value": "Equinix" - }, - "peeringLocation": { - "value": "Amsterdam" - }, - "bandwidthInMbps": { - "value": 50 - }, - "skuTier": { - "value": "Standard" - }, - "skuFamily": { - "value": "MeteredData" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.Network/firewallPolicies/.parameters/min.parameters.json b/modules/Microsoft.Network/firewallPolicies/.parameters/min.parameters.json deleted file mode 100644 index bb555089ed..0000000000 --- a/modules/Microsoft.Network/firewallPolicies/.parameters/min.parameters.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-fwpol-min-001" - } - } -} diff --git a/modules/Microsoft.Network/firewallPolicies/.parameters/parameters.json b/modules/Microsoft.Network/firewallPolicies/.parameters/parameters.json deleted file mode 100644 index 67e03ad34e..0000000000 --- a/modules/Microsoft.Network/firewallPolicies/.parameters/parameters.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-fwpol-x-002" - }, - "ruleCollectionGroups": { - "value": [ - { - "name": "<>-rule-001", - "priority": 5000, - "ruleCollections": [ - { - "name": "collection002", - "priority": 5555, - "action": { - "type": "Allow" - }, - "rules": [ - { - "name": "rule002", - "ipProtocols": [ - "TCP", - "UDP" - ], - "destinationPorts": [ - "80" - ], - "sourceAddresses": [ - "*" - ], - "sourceIpGroups": [], - "ruleType": "NetworkRule", - "destinationIpGroups": [], - "destinationAddresses": [ - "*" - ], - "destinationFqdns": [] - } - ], - "ruleCollectionType": "FirewallPolicyFilterRuleCollection" - } - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Network/frontDoors/.parameters/parameters.json b/modules/Microsoft.Network/frontDoors/.parameters/parameters.json deleted file mode 100644 index e52cca17f9..0000000000 --- a/modules/Microsoft.Network/frontDoors/.parameters/parameters.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-fd-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "backendPools": { - "value": [ - { - "name": "backendPool", - "properties": { - "backends": [ - { - "address": "biceptest.local", - "backendHostHeader": "backendAddress", - "httpPort": 80, - "httpsPort": 443, - "weight": 50, - "priority": 1, - "enabledState": "Enabled", - "privateLinkAlias": "", - "privateLinkApprovalMessage": "", - "privateLinkLocation": "", - "privateLinkResourceId": "" - } - ], - "LoadBalancingSettings": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/frontDoors/<>-az-fd-x-001/LoadBalancingSettings/loadBalancer" - }, - "HealthProbeSettings": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/frontDoors/<>-az-fd-x-001/HealthProbeSettings/heathProbe" - } - } - } - ] - }, - "enforceCertificateNameCheck": { - "value": "Disabled" - }, - "sendRecvTimeoutSeconds": { - "value": 10 - }, - "frontendEndpoints": { - "value": [ - { - "name": "frontEnd", - "properties": { - "hostName": "<>-az-fd-x-001.azurefd.net", - "sessionAffinityEnabledState": "Disabled", - "sessionAffinityTtlSeconds": 60 - } - } - ] - }, - "healthProbeSettings": { - "value": [ - { - "name": "heathProbe", - "properties": { - "enabledState": "", - "healthProbeMethod": "", - "intervalInSeconds": 60, - "path": "/", - "protocol": "Https" - } - } - ] - }, - "loadBalancingSettings": { - "value": [ - { - "name": "loadBalancer", - "properties": { - "additionalLatencyMilliseconds": 0, - "sampleSize": 50, - "successfulSamplesRequired": 1 - } - } - ] - }, - "routingRules": { - "value": [ - { - "name": "routingRule", - "properties": { - "acceptedProtocols": [ - "Http", - "Https" - ], - "enabledState": "Enabled", - "frontendEndpoints": [ - { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/frontDoors/<>-az-fd-x-001/FrontendEndpoints/frontEnd" - } - ], - "patternsToMatch": [ - "/*" - ], - "routeConfiguration": { - "@odata.type": "#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration", - "forwardingProtocol": "MatchRequest", - "backendPool": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/frontDoors/<>-az-fd-x-001/BackendPools/backendPool" - } - } - } - } - ] - } - } -} diff --git a/modules/Microsoft.Network/ipGroups/.parameters/parameters.json b/modules/Microsoft.Network/ipGroups/.parameters/parameters.json deleted file mode 100644 index b30fd0db80..0000000000 --- a/modules/Microsoft.Network/ipGroups/.parameters/parameters.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "iacsGroup-servers" - }, - "lock": { - "value": "CanNotDelete" - }, - "ipAddresses": { - "value": [ - "10.0.0.1", - "10.0.0.2" - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Network/loadBalancers/.parameters/internal.parameters.json b/modules/Microsoft.Network/loadBalancers/.parameters/internal.parameters.json deleted file mode 100644 index 4c3ffb022f..0000000000 --- a/modules/Microsoft.Network/loadBalancers/.parameters/internal.parameters.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-lb-internal-001" - }, - "loadBalancerSku": { - "value": "Standard" - }, - "frontendIPConfigurations": { - "value": [ - { - "name": "privateIPConfig1", - "subnetId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001" - } - ] - }, - "backendAddressPools": { - "value": [ - { - "name": "servers" - } - ] - }, - "probes": { - "value": [ - { - "name": "probe1", - "protocol": "Tcp", - "port": "62000", - "intervalInSeconds": 5, - "numberOfProbes": 2 - } - ] - }, - "loadBalancingRules": { - "value": [ - { - "name": "privateIPLBRule1", - "frontendIPConfigurationName": "privateIPConfig1", - "frontendPort": 0, - "backendPort": 0, - "enableFloatingIP": true, - "idleTimeoutInMinutes": 4, - "protocol": "All", - "loadDistribution": "Default", - "probeName": "probe1", - "disableOutboundSnat": true, - "enableTcpReset": false, - "backendAddressPoolName": "servers" - } - ] - }, - "inboundNatRules": { - "value": [ - { - "name": "inboundNatRule1", - "frontendIPConfigurationName": "privateIPConfig1", - "frontendPort": 443, - "backendPort": 443, - "enableFloatingIP": false, - "idleTimeoutInMinutes": 4, - "protocol": "Tcp", - "enableTcpReset": false - }, - { - "name": "inboundNatRule2", - "frontendIPConfigurationName": "privateIPConfig1", - "frontendPort": 3389, - "backendPort": 3389 - } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.Network/loadBalancers/.parameters/min.parameters.json b/modules/Microsoft.Network/loadBalancers/.parameters/min.parameters.json deleted file mode 100644 index 695027dc9f..0000000000 --- a/modules/Microsoft.Network/loadBalancers/.parameters/min.parameters.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-lb-min-001" - }, - "frontendIPConfigurations": { - "value": [ - { - "name": "publicIPConfig1", - "publicIPAddressId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/publicIPAddresses/adp-<>-az-pip-min-lb" - } - ] - } - } -} diff --git a/modules/Microsoft.Network/loadBalancers/.parameters/parameters.json b/modules/Microsoft.Network/loadBalancers/.parameters/parameters.json deleted file mode 100644 index df44d93edf..0000000000 --- a/modules/Microsoft.Network/loadBalancers/.parameters/parameters.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-lb-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "frontendIPConfigurations": { - "value": [ - { - "name": "publicIPConfig1", - "publicIPAddressId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/publicIPAddresses/adp-<>-az-pip-x-lb" - } - ] - }, - "backendAddressPools": { - "value": [ - { - "name": "backendAddressPool1" - }, - { - "name": "backendAddressPool2" - } - ] - }, - "loadBalancingRules": { - "value": [ - { - "name": "publicIPLBRule1", - "frontendIPConfigurationName": "publicIPConfig1", - "frontendPort": 80, - "backendPort": 80, - "enableFloatingIP": false, - "idleTimeoutInMinutes": 5, - "protocol": "Tcp", - "enableTcpReset": false, - "loadDistribution": "Default", - "disableOutboundSnat": true, - "probeName": "probe1", - "backendAddressPoolName": "backendAddressPool1" - }, - { - "name": "publicIPLBRule2", - "frontendIPConfigurationName": "publicIPConfig1", - "frontendPort": 8080, - "backendPort": 8080, - "loadDistribution": "Default", - "probeName": "probe2", - "backendAddressPoolName": "backendAddressPool2" - } - ] - }, - "inboundNatRules": { - "value": [ - { - "name": "inboundNatRule1", - "frontendIPConfigurationName": "publicIPConfig1", - "frontendPort": 443, - "backendPort": 443, - "enableFloatingIP": false, - "idleTimeoutInMinutes": 4, - "protocol": "Tcp", - "enableTcpReset": false - }, - { - "name": "inboundNatRule2", - "frontendIPConfigurationName": "publicIPConfig1", - "frontendPort": 3389, - "backendPort": 3389 - } - ] - }, - "outboundRules": { - "value": [ - { - "name": "outboundRule1", - "frontendIPConfigurationName": "publicIPConfig1", - "backendAddressPoolName": "backendAddressPool1", - "allocatedOutboundPorts": 63984 - } - ] - }, - "probes": { - "value": [ - { - "name": "probe1", - "protocol": "Tcp", - "port": 80, - "intervalInSeconds": 10, - "numberOfProbes": 5 - }, - { - "name": "probe2", - "protocol": "Https", - "port": 443, - "requestPath": "/" - } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.Network/localNetworkGateways/.parameters/parameters.json b/modules/Microsoft.Network/localNetworkGateways/.parameters/parameters.json deleted file mode 100644 index f2d289d373..0000000000 --- a/modules/Microsoft.Network/localNetworkGateways/.parameters/parameters.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-lng-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "localAddressPrefixes": { - "value": [ - "192.168.1.0/24" - ] - }, - "localGatewayPublicIpAddress": { - "value": "8.8.8.8" - }, - "localAsn": { - "value": "65123" - }, - "localBgpPeeringAddress": { - "value": "192.168.1.5" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Network/natGateways/.parameters/parameters.json b/modules/Microsoft.Network/natGateways/.parameters/parameters.json deleted file mode 100644 index ec9c2014d9..0000000000 --- a/modules/Microsoft.Network/natGateways/.parameters/parameters.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-ngw-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "natGatewayPublicIpAddress": { - "value": true - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.Network/networkInterfaces/.parameters/min.parameters.json b/modules/Microsoft.Network/networkInterfaces/.parameters/min.parameters.json deleted file mode 100644 index 9fe27817ce..0000000000 --- a/modules/Microsoft.Network/networkInterfaces/.parameters/min.parameters.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-nic-min-001" - }, - "ipConfigurations": { - "value": [ - { - "name": "ipconfig01", - "subnetId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001" - } - ] - } - } -} diff --git a/modules/Microsoft.Network/networkInterfaces/.parameters/parameters.json b/modules/Microsoft.Network/networkInterfaces/.parameters/parameters.json deleted file mode 100644 index b0cc8d9757..0000000000 --- a/modules/Microsoft.Network/networkInterfaces/.parameters/parameters.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-nic-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "ipConfigurations": { - "value": [ - { - "name": "ipconfig01", - "subnetId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001", - "loadBalancerBackendAddressPools": [ - { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/loadBalancers/adp-<>-az-lb-internal-001/backendAddressPools/servers" - } - ], - "applicationSecurityGroups": [ - { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationSecurityGroups/adp-<>-az-asg-x-001" - } - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.Network/networkSecurityGroups/.parameters/min.parameters.json b/modules/Microsoft.Network/networkSecurityGroups/.parameters/min.parameters.json deleted file mode 100644 index b07946467a..0000000000 --- a/modules/Microsoft.Network/networkSecurityGroups/.parameters/min.parameters.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-nsg-min-001" - } - } -} diff --git a/modules/Microsoft.Network/networkSecurityGroups/.parameters/parameters.json b/modules/Microsoft.Network/networkSecurityGroups/.parameters/parameters.json deleted file mode 100644 index 26cbb1eb56..0000000000 --- a/modules/Microsoft.Network/networkSecurityGroups/.parameters/parameters.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-nsg-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "securityRules": { - "value": [ - { - "name": "Specific", - "properties": { - "description": "Tests specific IPs and ports", - "protocol": "*", - "sourcePortRange": "*", - "destinationPortRange": "8080", - "sourceAddressPrefix": "*", - "destinationAddressPrefix": "*", - "access": "Allow", - "priority": 100, - "direction": "Inbound" - } - }, - { - "name": "Ranges", - "properties": { - "description": "Tests Ranges", - "protocol": "*", - "access": "Allow", - "priority": 101, - "direction": "Inbound", - "sourcePortRanges": [ - "80", - "81" - ], - "destinationPortRanges": [ - "90", - "91" - ], - "sourceAddressPrefixes": [ - "10.0.0.0/16", - "10.1.0.0/16" - ], - "destinationAddressPrefixes": [ - "10.2.0.0/16", - "10.3.0.0/16" - ] - } - }, - { - "name": "Port_8082", - "properties": { - "description": "Allow inbound access on TCP 8082", - "protocol": "*", - "sourcePortRange": "*", - "destinationPortRange": "8082", - "access": "Allow", - "priority": 102, - "direction": "Inbound", - "sourceApplicationSecurityGroups": [ - { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationSecurityGroups/adp-<>-az-asg-x-001" - } - ], - "destinationApplicationSecurityGroups": [ - { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationSecurityGroups/adp-<>-az-asg-x-001" - } - ] - } - } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.Network/networkWatchers/.parameters/min.parameters.json b/modules/Microsoft.Network/networkWatchers/.parameters/min.parameters.json deleted file mode 100644 index 78acbb0c7e..0000000000 --- a/modules/Microsoft.Network/networkWatchers/.parameters/min.parameters.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "location": { - "value": "northeurope" - } - } -} diff --git a/modules/Microsoft.Network/networkWatchers/.parameters/parameters.json b/modules/Microsoft.Network/networkWatchers/.parameters/parameters.json deleted file mode 100644 index 78a7e1f272..0000000000 --- a/modules/Microsoft.Network/networkWatchers/.parameters/parameters.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "adp-<>-az-nw-x-001" - }, - "flowLogs": { - "value": [ - { - "targetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/networkSecurityGroups/adp-<>-az-nsg-x-001", - "storageId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", - "enabled": false - }, - { - "name": "adp-<>-az-nsg-x-apgw-flowlog", - "targetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/networkSecurityGroups/adp-<>-az-nsg-x-apgw", - "storageId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", - "workspaceResourceId": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001", - "formatVersion": 1, - "trafficAnalyticsInterval": 10, - "retentionInDays": 8 - } - ] - }, - "connectionMonitors": { - "value": [ - { - "name": "adp-<>-az-conn-mon-x-001", - "endpoints": [ - { - "name": "<>-az-subnet-x-001(validation-rg)", - "type": "AzureVM", - "resourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Compute/virtualMachines/adp-<>-vm-01" - }, - { - "name": "Office Portal", - "type": "ExternalAddress", - "address": "www.office.com" - } - ], - "testConfigurations": [ - { - "name": "HTTP Test", - "testFrequencySec": 30, - "protocol": "Http", - "httpConfiguration": { - "port": 80, - "method": "Get", - "requestHeaders": [], - "validStatusCodeRanges": [ - "200" - ], - "preferHTTPS": false - }, - "successThreshold": { - "checksFailedPercent": 5, - "roundTripTimeMs": 100 - } - } - ], - "testGroups": [ - { - "name": "TestHTTPBing", - "disable": false, - "testConfigurations": [ - "HTTP Test" - ], - "sources": [ - "<>-az-subnet-x-001(validation-rg)" - ], - "destinations": [ - "Office Portal" - ] - } - ], - "workspaceResourceId": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Network/privateDnsZones/.parameters/min.parameters.json b/modules/Microsoft.Network/privateDnsZones/.parameters/min.parameters.json deleted file mode 100644 index d33fbd032b..0000000000 --- a/modules/Microsoft.Network/privateDnsZones/.parameters/min.parameters.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-privdns-x-001.com" - } - } -} diff --git a/modules/Microsoft.Network/privateDnsZones/.parameters/parameters.json b/modules/Microsoft.Network/privateDnsZones/.parameters/parameters.json deleted file mode 100644 index 8b3662c1ee..0000000000 --- a/modules/Microsoft.Network/privateDnsZones/.parameters/parameters.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-privdns-x-002.com" - }, - "lock": { - "value": "CanNotDelete" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "AAAA": { - "value": [ - { - "name": "AAAA_2001_0db8_85a3_0000_0000_8a2e_0370_7334", - "ttl": 3600, - "aaaaRecords": [ - { - "ipv6Address": "2001:0db8:85a3:0000:0000:8a2e:0370:7334" - } - ] - } - ] - }, - "A": { - "value": [ - { - "name": "A_10.240.4.4", - "ttl": 3600, - "aRecords": [ - { - "ipv4Address": "10.240.4.4" - } - ], - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - ] - }, - "CNAME": { - "value": [ - { - "name": "CNAME_test", - "ttl": 3600, - "cnameRecord": { - "cname": "test" - }, - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - ] - }, - "MX": { - "value": [ - { - "name": "MX_contoso", - "ttl": 3600, - "mxRecords": [ - { - "exchange": "contoso.com", - "preference": 100 - } - ], - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - ] - }, - "PTR": { - "value": [ - { - "name": "PTR_contoso", - "ttl": 3600, - "ptrRecords": [ - { - "ptrdname": "contoso.com" - } - ], - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - ] - }, - "SOA": { - "value": [ - { - "name": "@", - "ttl": 3600, - "soaRecord": { - "email": "azureprivatedns-host.microsoft.com", - "expireTime": 2419200, - "host": "azureprivatedns.net", - "minimumTtl": 10, - "refreshTime": 3600, - "retryTime": 300, - "serialNumber": "1" - }, - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - ] - }, - "SRV": { - "value": [ - { - "name": "SRV_contoso", - "ttl": 3600, - "srvRecords": [ - { - "port": 9332, - "priority": 0, - "target": "test.contoso.com", - "weight": 0 - } - ], - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - ] - }, - "TXT": { - "value": [ - { - "name": "TXT_test", - "ttl": 3600, - "txtRecords": [ - { - "value": [ - "test" - ] - } - ], - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - ] - }, - "virtualNetworkLinks": { - "value": [ - { - "virtualNetworkResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001", - "registrationEnabled": true - } - ] - } - } -} diff --git a/modules/Microsoft.Network/privateEndpoints/.parameters/min.parameters.json b/modules/Microsoft.Network/privateEndpoints/.parameters/min.parameters.json deleted file mode 100644 index aa3ea8eba2..0000000000 --- a/modules/Microsoft.Network/privateEndpoints/.parameters/min.parameters.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-pe-kvlt-min-001" - }, - "subnetResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints" - }, - "serviceResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-pe" - }, - "groupIds": { - "value": [ - "vault" - ] - } - } -} diff --git a/modules/Microsoft.Network/privateEndpoints/.parameters/parameters.json b/modules/Microsoft.Network/privateEndpoints/.parameters/parameters.json deleted file mode 100644 index eff507a0b2..0000000000 --- a/modules/Microsoft.Network/privateEndpoints/.parameters/parameters.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-pe-kvlt-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "subnetResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints" - }, - "serviceResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-pe" - }, - "groupIds": { - "value": [ - "vault" - ] - }, - "privateDnsZoneGroups": { - "value": [ - { - "privateDNSResourceIds": [ - "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/privateDnsZones/privatelink.vaultcore.azure.net" - ] - } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Network/publicIPAddresses/.parameters/parameters.json b/modules/Microsoft.Network/publicIPAddresses/.parameters/parameters.json deleted file mode 100644 index 9a95bc279f..0000000000 --- a/modules/Microsoft.Network/publicIPAddresses/.parameters/parameters.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-pip-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "skuName": { - "value": "Standard" - }, - "publicIPAllocationMethod": { - "value": "Static" - }, - "zones": { - "value": [ - "1", - "2", - "3" - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.Network/publicIPPrefixes/.parameters/parameters.json b/modules/Microsoft.Network/publicIPPrefixes/.parameters/parameters.json deleted file mode 100644 index 4367694850..0000000000 --- a/modules/Microsoft.Network/publicIPPrefixes/.parameters/parameters.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-pippfx-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "prefixLength": { - "value": 28 - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Network/routeTables/.parameters/parameters.json b/modules/Microsoft.Network/routeTables/.parameters/parameters.json deleted file mode 100644 index 65fa5d2d91..0000000000 --- a/modules/Microsoft.Network/routeTables/.parameters/parameters.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-udr-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "routes": { - "value": [ - { - "name": "default", - "properties": { - "addressPrefix": "0.0.0.0/0", - "nextHopType": "VirtualAppliance", - "nextHopIpAddress": "172.16.0.20" - } - } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Network/trafficmanagerprofiles/.parameters/parameters.json b/modules/Microsoft.Network/trafficmanagerprofiles/.parameters/parameters.json deleted file mode 100644 index 220f646c39..0000000000 --- a/modules/Microsoft.Network/trafficmanagerprofiles/.parameters/parameters.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "tm-000001" - }, - "lock": { - "value": "CanNotDelete" - }, - "relativeName": { - "value": "tm-000001" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.Network/virtualHubs/.parameters/min.parameters.json b/modules/Microsoft.Network/virtualHubs/.parameters/min.parameters.json deleted file mode 100644 index dbe2fa650a..0000000000 --- a/modules/Microsoft.Network/virtualHubs/.parameters/min.parameters.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-vhub-min-001" - }, - "addressPrefix": { - "value": "10.0.0.0/16" - }, - "virtualWanId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/adp-<>-az-vw-x-001" - } - } -} diff --git a/modules/Microsoft.Network/virtualHubs/.parameters/parameters.json b/modules/Microsoft.Network/virtualHubs/.parameters/parameters.json deleted file mode 100644 index 2660f1be93..0000000000 --- a/modules/Microsoft.Network/virtualHubs/.parameters/parameters.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-vhub-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "addressPrefix": { - "value": "10.1.0.0/16" - }, - "virtualWanId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/adp-<>-az-vw-x-001" - }, - "hubRouteTables": { - "value": [ - { - "name": "routeTable1" - } - ] - }, - "hubVirtualNetworkConnections": { - "value": [ - { - "name": "connection1", - "remoteVirtualNetworkId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-vhub", - "routingConfiguration": { - "associatedRouteTable": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vHub-x-001/hubRouteTables/routeTable1" - }, - "propagatedRouteTables": { - "ids": [ - { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vHub-x-001/hubRouteTables/routeTable1" - } - ], - "labels": [ - "none" - ] - } - } - } - ] - } - } -} diff --git a/modules/Microsoft.Network/virtualNetworkGateways/.parameters/expressRoute.parameters.json b/modules/Microsoft.Network/virtualNetworkGateways/.parameters/expressRoute.parameters.json deleted file mode 100644 index 3de5a1f41f..0000000000 --- a/modules/Microsoft.Network/virtualNetworkGateways/.parameters/expressRoute.parameters.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-gw-er-001" - }, - "gatewayPipName": { - "value": "<>-az-gw-er-001-pip" - }, - "domainNameLabel": { - "value": [ - "<>-az-gw-er-dm-001" - ] - }, - "virtualNetworkGatewayType": { - "value": "ExpressRoute" - }, - "virtualNetworkGatewaySku": { - "value": "ErGw1AZ" - }, - "vNetResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001" - }, - "tags": { - "value": { - "Environment": "Validation", - "Contact": "test.user@testcompany.com", - "PurchaseOrder": "", - "CostCenter": "", - "ServiceName": "DeploymentValidation", - "Role": "DeploymentValidation" - } - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.Network/virtualNetworkGateways/.parameters/vpn.parameters.json b/modules/Microsoft.Network/virtualNetworkGateways/.parameters/vpn.parameters.json deleted file mode 100644 index cf037dc7e9..0000000000 --- a/modules/Microsoft.Network/virtualNetworkGateways/.parameters/vpn.parameters.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-gw-vpn-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "domainNameLabel": { - "value": [ - "<>-az-gw-vpn-dm-001" - ] - }, - "virtualNetworkGatewayType": { - "value": "Vpn" - }, - "virtualNetworkGatewaySku": { - "value": "VpnGw1AZ" - }, - "publicIpZones": { - "value": [ - "1" - ] - }, - "vpnType": { - "value": "RouteBased" - }, - "activeActive": { - "value": true - }, - "vNetResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.Network/virtualNetworks/.parameters/min.parameters.json b/modules/Microsoft.Network/virtualNetworks/.parameters/min.parameters.json deleted file mode 100644 index 2d50642770..0000000000 --- a/modules/Microsoft.Network/virtualNetworks/.parameters/min.parameters.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-vnet-min-001" - }, - "addressPrefixes": { - "value": [ - "10.0.0.0/16" - ] - } - } -} diff --git a/modules/Microsoft.Network/virtualNetworks/.parameters/parameters.json b/modules/Microsoft.Network/virtualNetworks/.parameters/parameters.json deleted file mode 100644 index 6cb5292ceb..0000000000 --- a/modules/Microsoft.Network/virtualNetworks/.parameters/parameters.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-vnet-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "addressPrefixes": { - "value": [ - "10.0.0.0/16" - ] - }, - "subnets": { - "value": [ - { - "name": "GatewaySubnet", - "addressPrefix": "10.0.255.0/24" - }, - { - "name": "<>-az-subnet-x-001", - "addressPrefix": "10.0.0.0/24", - "networkSecurityGroupId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/networkSecurityGroups/adp-<>-az-nsg-x-001", - "serviceEndpoints": [ - { - "service": "Microsoft.Storage" - }, - { - "service": "Microsoft.Sql" - } - ], - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ], - "routeTableId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/routeTables/adp-<>-az-udr-x-001" - }, - { - "name": "<>-az-subnet-x-002", - "addressPrefix": "10.0.3.0/24", - "delegations": [ - { - "name": "netappDel", - "properties": { - "serviceName": "Microsoft.Netapp/volumes" - } - } - ] - }, - { - "name": "<>-az-subnet-x-003", - "addressPrefix": "10.0.6.0/24", - "privateEndpointNetworkPolicies": "Disabled", - "privateLinkServiceNetworkPolicies": "Enabled" - } - ] - }, - "dnsServers": { - "value": [ - "10.0.1.4", - "10.0.1.5" - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.Network/virtualNetworks/.parameters/vnetPeering.parameters.json b/modules/Microsoft.Network/virtualNetworks/.parameters/vnetPeering.parameters.json deleted file mode 100644 index f8faae3175..0000000000 --- a/modules/Microsoft.Network/virtualNetworks/.parameters/vnetPeering.parameters.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-vnet-peer-001" - }, - "addressPrefixes": { - "value": [ - "10.0.0.0/24" - ] - }, - "subnets": { - "value": [ - { - "name": "GatewaySubnet", - "addressPrefix": "10.0.0.0/26" - } - ] - }, - "virtualNetworkPeerings": { - "value": [ - { - "remoteVirtualNetworkId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-peer01", - "allowForwardedTraffic": true, - "allowGatewayTransit": false, - "allowVirtualNetworkAccess": true, - "useRemoteGateways": false, - "remotePeeringEnabled": true, - "remotePeeringName": "customName", - "remotePeeringAllowVirtualNetworkAccess": true, - "remotePeeringAllowForwardedTraffic": true - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.Network/virtualWans/.parameters/min.parameters.json b/modules/Microsoft.Network/virtualWans/.parameters/min.parameters.json deleted file mode 100644 index badddffd7e..0000000000 --- a/modules/Microsoft.Network/virtualWans/.parameters/min.parameters.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-vw-min-001" - } - } -} diff --git a/modules/Microsoft.Network/virtualWans/.parameters/parameters.json b/modules/Microsoft.Network/virtualWans/.parameters/parameters.json deleted file mode 100644 index 15f8aa96f5..0000000000 --- a/modules/Microsoft.Network/virtualWans/.parameters/parameters.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-vw-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "type": { - "value": "Basic" - }, - "allowBranchToBranchTraffic": { - "value": true - }, - "allowVnetToVnetTraffic": { - "value": true - }, - "disableVpnEncryption": { - "value": true - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Network/vpnGateways/.parameters/min.parameters.json b/modules/Microsoft.Network/vpnGateways/.parameters/min.parameters.json deleted file mode 100644 index 4ed3a736e6..0000000000 --- a/modules/Microsoft.Network/vpnGateways/.parameters/min.parameters.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-vpngw-min-001" - }, - "virtualHubResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vhub-min-001" - } - } -} diff --git a/modules/Microsoft.Network/vpnGateways/.parameters/parameters.json b/modules/Microsoft.Network/vpnGateways/.parameters/parameters.json deleted file mode 100644 index 620e1c6ff7..0000000000 --- a/modules/Microsoft.Network/vpnGateways/.parameters/parameters.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-vpngw-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "virtualHubResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vhub-x-001" - }, - "bgpSettings": { - "value": { - "asn": 65515, - "peerWeight": 0 - } - }, - "connections": { - "value": [ - { - "name": "Connection-<>-az-vsite-x-001", - "connectionBandwidth": 10, - "enableBgp": true, - "routingConfiguration": { - "associatedRouteTable": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vhub-x-001/hubRouteTables/defaultRouteTable" - }, - "propagatedRouteTables": { - "labels": [ - "default" - ], - "ids": [ - { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vhub-x-001/hubRouteTables/defaultRouteTable" - } - ] - }, - "vnetRoutes": { - "staticRoutes": [] - } - }, - "remoteVpnSiteResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/vpnSites/<>-az-vsite-x-001" - } - ] - }, - "natRules": { - "value": [ - { - "name": "natRule1", - "internalMappings": [ - { - "addressSpace": "10.4.0.0/24" - } - ], - "externalMappings": [ - { - "addressSpace": "192.168.21.0/24" - } - ], - "type": "Static", - "mode": "EgressSnat" - } - ] - } - } -} diff --git a/modules/Microsoft.Network/vpnSites/.parameters/min.parameters.json b/modules/Microsoft.Network/vpnSites/.parameters/min.parameters.json deleted file mode 100644 index 24791e0339..0000000000 --- a/modules/Microsoft.Network/vpnSites/.parameters/min.parameters.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-vSite-min-001" - }, - "addressPrefixes": { - "value": [ - "10.0.0.0/16" - ] - }, - "ipAddress": { - "value": "1.2.3.4" - }, - "virtualWanId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/apd-<>-az-vw-x-001" - } - } -} diff --git a/modules/Microsoft.Network/vpnSites/.parameters/parameters.json b/modules/Microsoft.Network/vpnSites/.parameters/parameters.json deleted file mode 100644 index 94c534c5e4..0000000000 --- a/modules/Microsoft.Network/vpnSites/.parameters/parameters.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-vSite-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "tags": { - "value": { - "tagA": "valueA", - "tagB": "valueB" - } - }, - "deviceProperties": { - "value": { - "linkSpeedInMbps": 0 - } - }, - "virtualWanId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/apd-<>-az-vw-x-001" - }, - "vpnSiteLinks": { - "value": [ - { - "name": "<>-az-vSite-x-001", - "properties": { - "bgpProperties": { - "asn": 65010, - "bgpPeeringAddress": "1.1.1.1" - }, - "ipAddress": "1.2.3.4", - "linkProperties": { - "linkProviderName": "contoso", - "linkSpeedInMbps": 5 - } - } - }, - { - "name": "Link1", - "properties": { - "bgpProperties": { - "asn": 65020, - "bgpPeeringAddress": "192.168.1.0" - }, - "ipAddress": "2.2.2.2", - "linkProperties": { - "linkProviderName": "contoso", - "linkSpeedInMbps": 5 - } - } - } - ] - }, - "o365Policy": { - "value": { - "breakOutCategories": { - "optimize": true, - "allow": true, - "default": true - } - } - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.OperationalInsights/workspaces/.parameters/min.parameters.json b/modules/Microsoft.OperationalInsights/workspaces/.parameters/min.parameters.json deleted file mode 100644 index 97fc2fafe4..0000000000 --- a/modules/Microsoft.OperationalInsights/workspaces/.parameters/min.parameters.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-law-min-001" - } - } -} diff --git a/modules/Microsoft.OperationalInsights/workspaces/.parameters/parameters.json b/modules/Microsoft.OperationalInsights/workspaces/.parameters/parameters.json deleted file mode 100644 index e69b24d3ff..0000000000 --- a/modules/Microsoft.OperationalInsights/workspaces/.parameters/parameters.json +++ /dev/null @@ -1,171 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-law-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "publicNetworkAccessForIngestion": { - "value": "Disabled" - }, - "publicNetworkAccessForQuery": { - "value": "Disabled" - }, - "dailyQuotaGb": { - "value": 10 - }, - "storageInsightsConfigs": { - "value": [ - { - "storageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsalaw001", - "tables": [ - "WADWindowsEventLogsTable", - "WADETWEventTable", - "WADServiceFabric*EventTable", - "LinuxsyslogVer2v0" - ] - } - ] - }, - "linkedServices": { - "value": [ - { - "name": "Automation", - "resourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Automation/automationAccounts/adp-<>-az-aut-x-001" - } - ] - }, - "savedSearches": { - "value": [ - { - "name": "VMSSQueries", - "displayName": "VMSS Instance Count2", - "category": "VDC Saved Searches", - "query": "Event | where Source == 'ServiceFabricNodeBootstrapAgent' | summarize AggregatedValue = count() by Computer" - } - ] - }, - "dataSources": { - "value": [ - { - "name": "applicationEvent", - "kind": "WindowsEvent", - "eventLogName": "Application", - "eventTypes": [ - { - "eventType": "Error" - }, - { - "eventType": "Warning" - }, - { - "eventType": "Information" - } - ] - }, - { - "name": "windowsPerfCounter1", - "kind": "WindowsPerformanceCounter", - "objectName": "Processor", - "instanceName": "*", - "intervalSeconds": 60, - "counterName": "% Processor Time" - }, - { - "name": "sampleIISLog1", - "kind": "IISLogs", - "state": "OnPremiseEnabled" - }, - { - "name": "sampleSyslog1", - "kind": "LinuxSyslog", - "syslogName": "kern", - "syslogSeverities": [ - { - "severity": "emerg" - }, - { - "severity": "alert" - }, - { - "severity": "crit" - }, - { - "severity": "err" - }, - { - "severity": "warning" - } - ] - }, - { - "name": "sampleSyslogCollection1", - "kind": "LinuxSyslogCollection", - "state": "Enabled" - }, - { - "name": "sampleLinuxPerf1", - "kind": "LinuxPerformanceObject", - "syslogSeverities": [ - { - "counterName": "% Used Inodes" - }, - { - "counterName": "Free Megabytes" - }, - { - "counterName": "% Used Space" - }, - { - "counterName": "Disk Transfers/sec" - }, - { - "counterName": "Disk Reads/sec" - }, - { - "counterName": "Disk Writes/sec" - } - ], - "objectName": "Logical Disk", - "instanceName": "*", - "intervalSeconds": 10 - }, - { - "name": "sampleLinuxPerfCollection1", - "kind": "LinuxPerformanceCollection", - "state": "Enabled" - } - ] - }, - "gallerySolutions": { - "value": [ - { - "name": "AzureAutomation", - "product": "OMSGallery", - "publisher": "Microsoft" - } - ] - }, - "useResourcePermissions": { - "value": true - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.OperationsManagement/solutions/.parameters/min.parameters.json b/modules/Microsoft.OperationsManagement/solutions/.parameters/min.parameters.json deleted file mode 100644 index 6844bb4688..0000000000 --- a/modules/Microsoft.OperationsManagement/solutions/.parameters/min.parameters.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "Updates" - }, - "logAnalyticsWorkspaceName": { - "value": "adp-<>-az-law-sol-001" - } - } -} diff --git a/modules/Microsoft.OperationsManagement/solutions/.parameters/ms.parameters.json b/modules/Microsoft.OperationsManagement/solutions/.parameters/ms.parameters.json deleted file mode 100644 index c7dcb66400..0000000000 --- a/modules/Microsoft.OperationsManagement/solutions/.parameters/ms.parameters.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "AzureAutomation" - }, - "logAnalyticsWorkspaceName": { - "value": "adp-<>-az-law-sol-001" - }, - "product": { - "value": "OMSGallery" - }, - "publisher": { - "value": "Microsoft" - } - } -} diff --git a/modules/Microsoft.OperationsManagement/solutions/.parameters/nonms.parameters.json b/modules/Microsoft.OperationsManagement/solutions/.parameters/nonms.parameters.json deleted file mode 100644 index a040bf8d2f..0000000000 --- a/modules/Microsoft.OperationsManagement/solutions/.parameters/nonms.parameters.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "nonmsTestSolution" - }, - "logAnalyticsWorkspaceName": { - "value": "adp-<>-az-law-sol-001" - }, - "product": { - "value": "nonmsTestSolutionProduct" - }, - "publisher": { - "value": "nonmsTestSolutionPublisher" - } - } -} diff --git a/modules/Microsoft.RecoveryServices/vaults/.parameters/dr.parameters.json b/modules/Microsoft.RecoveryServices/vaults/.parameters/dr.parameters.json deleted file mode 100644 index 53bc617617..0000000000 --- a/modules/Microsoft.RecoveryServices/vaults/.parameters/dr.parameters.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-rsv-dr-001" - }, - "replicationFabrics": { - "value": [ - { - "location": "NorthEurope", - "replicationContainers": [ - { - "name": "ne-container1", - "replicationContainerMappings": [ - { - "targetProtectionContainerId": "/Subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.RecoveryServices/vaults/<>-az-rsv-min-001/replicationFabrics/NorthEurope/replicationProtectionContainers/ne-container2", - "policyName": "Default_values", - "targetContainerName": "pluto" - } - ] - }, - { - "name": "ne-container2", - "replicationContainerMappings": [ - { - "policyName": "Default_values", - "targetContainerFabricName": "WE-2", - "targetContainerName": "we-container1" - } - ] - } - ] - }, - { - "name": "WE-2", - "location": "WestEurope", - "replicationContainers": [ - { - "name": "we-container1", - "replicationContainerMappings": [ - { - "policyName": "Default_values", - "targetContainerFabricName": "NorthEurope", - "targetContainerName": "ne-container2" - } - ] - } - ] - } - ] - }, - "replicationPolicies": { - "value": [ - { - "name": "Default_values" - }, - { - "name": "Custom_values", - "appConsistentFrequencyInMinutes": 240, - "crashConsistentFrequencyInMinutes": 7, - "multiVmSyncStatus": "Disable", - "recoveryPointHistory": 2880 - } - ] - } - } -} diff --git a/modules/Microsoft.RecoveryServices/vaults/.parameters/min.parameters.json b/modules/Microsoft.RecoveryServices/vaults/.parameters/min.parameters.json deleted file mode 100644 index 81ba350a36..0000000000 --- a/modules/Microsoft.RecoveryServices/vaults/.parameters/min.parameters.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-rsv-min-001" - } - } -} diff --git a/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json b/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json deleted file mode 100644 index 67f01a8bb6..0000000000 --- a/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json +++ /dev/null @@ -1,289 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-rsv-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "backupConfig": { - "value": { - "enhancedSecurityState": "Disabled", - "softDeleteFeatureState": "Disabled" - } - }, - "backupPolicies": { - "value": [ - { - "name": "VMpolicy", - "properties": { - "backupManagementType": "AzureIaasVM", - "instantRPDetails": {}, - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Daily", - "scheduleRunTimes": [ - "2019-11-07T07:00:00Z" - ], - "scheduleWeeklyFrequency": 0 - }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "dailySchedule": { - "retentionTimes": [ - "2019-11-07T07:00:00Z" - ], - "retentionDuration": { - "count": 180, - "durationType": "Days" - } - }, - "weeklySchedule": { - "daysOfTheWeek": [ - "Sunday" - ], - "retentionTimes": [ - "2019-11-07T07:00:00Z" - ], - "retentionDuration": { - "count": 12, - "durationType": "Weeks" - } - }, - "monthlySchedule": { - "retentionScheduleFormatType": "Weekly", - "retentionScheduleWeekly": { - "daysOfTheWeek": [ - "Sunday" - ], - "weeksOfTheMonth": [ - "First" - ] - }, - "retentionTimes": [ - "2019-11-07T07:00:00Z" - ], - "retentionDuration": { - "count": 60, - "durationType": "Months" - } - }, - "yearlySchedule": { - "retentionScheduleFormatType": "Weekly", - "monthsOfYear": [ - "January" - ], - "retentionScheduleWeekly": { - "daysOfTheWeek": [ - "Sunday" - ], - "weeksOfTheMonth": [ - "First" - ] - }, - "retentionTimes": [ - "2019-11-07T07:00:00Z" - ], - "retentionDuration": { - "count": 10, - "durationType": "Years" - } - } - }, - "instantRpRetentionRangeInDays": 2, - "timeZone": "UTC", - "protectedItemsCount": 0 - } - }, - { - "name": "sqlpolicy", - "properties": { - "backupManagementType": "AzureWorkload", - "workLoadType": "SQLDataBase", - "settings": { - "timeZone": "UTC", - "issqlcompression": true, - "isCompression": true - }, - "subProtectionPolicy": [ - { - "policyType": "Full", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Weekly", - "scheduleRunDays": [ - "Sunday" - ], - "scheduleRunTimes": [ - "2019-11-07T22:00:00Z" - ], - "scheduleWeeklyFrequency": 0 - }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "weeklySchedule": { - "daysOfTheWeek": [ - "Sunday" - ], - "retentionTimes": [ - "2019-11-07T22:00:00Z" - ], - "retentionDuration": { - "count": 104, - "durationType": "Weeks" - } - }, - "monthlySchedule": { - "retentionScheduleFormatType": "Weekly", - "retentionScheduleWeekly": { - "daysOfTheWeek": [ - "Sunday" - ], - "weeksOfTheMonth": [ - "First" - ] - }, - "retentionTimes": [ - "2019-11-07T22:00:00Z" - ], - "retentionDuration": { - "count": 60, - "durationType": "Months" - } - }, - "yearlySchedule": { - "retentionScheduleFormatType": "Weekly", - "monthsOfYear": [ - "January" - ], - "retentionScheduleWeekly": { - "daysOfTheWeek": [ - "Sunday" - ], - "weeksOfTheMonth": [ - "First" - ] - }, - "retentionTimes": [ - "2019-11-07T22:00:00Z" - ], - "retentionDuration": { - "count": 10, - "durationType": "Years" - } - } - } - }, - { - "policyType": "Differential", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Weekly", - "scheduleRunDays": [ - "Monday" - ], - "scheduleRunTimes": [ - "2017-03-07T02:00:00Z" - ], - "scheduleWeeklyFrequency": 0 - }, - "retentionPolicy": { - "retentionPolicyType": "SimpleRetentionPolicy", - "retentionDuration": { - "count": 30, - "durationType": "Days" - } - } - }, - { - "policyType": "Log", - "schedulePolicy": { - "schedulePolicyType": "LogSchedulePolicy", - "scheduleFrequencyInMins": 120 - }, - "retentionPolicy": { - "retentionPolicyType": "SimpleRetentionPolicy", - "retentionDuration": { - "count": 15, - "durationType": "Days" - } - } - } - ], - "protectedItemsCount": 0 - } - }, - { - "name": "filesharepolicy", - "properties": { - "backupManagementType": "AzureStorage", - "workloadType": "AzureFileShare", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Daily", - "scheduleRunTimes": [ - "2019-11-07T04:30:00Z" - ], - "scheduleWeeklyFrequency": 0 - }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "dailySchedule": { - "retentionTimes": [ - "2019-11-07T04:30:00Z" - ], - "retentionDuration": { - "count": 30, - "durationType": "Days" - } - } - }, - "timeZone": "UTC", - "protectedItemsCount": 0 - } - } - ] - }, - "backupStorageConfig": { - "value": { - "storageModelType": "GeoRedundant", - "crossRegionRestoreFlag": true - } - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - } - } -} diff --git a/modules/Microsoft.Resources/deploymentScripts/.parameters/cli.parameters.json b/modules/Microsoft.Resources/deploymentScripts/.parameters/cli.parameters.json deleted file mode 100644 index e3e775a93d..0000000000 --- a/modules/Microsoft.Resources/deploymentScripts/.parameters/cli.parameters.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-ds-cli-001" - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "kind": { - "value": "AzureCLI" - }, - "azCliVersion": { - "value": "2.15.0" - }, - "scriptContent": { - "value": "echo \"Hello from inside the script\"" - }, - "retentionInterval": { - "value": "P1D" - }, - "runOnce": { - "value": false - }, - "cleanupPreference": { - "value": "Always" - }, - "timeout": { - "value": "PT30M" - } - } -} diff --git a/modules/Microsoft.Resources/deploymentScripts/.parameters/ps.parameters.json b/modules/Microsoft.Resources/deploymentScripts/.parameters/ps.parameters.json deleted file mode 100644 index accc14b0b0..0000000000 --- a/modules/Microsoft.Resources/deploymentScripts/.parameters/ps.parameters.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-ds-ps-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "kind": { - "value": "AzurePowerShell" - }, - "azPowerShellVersion": { - "value": "3.0" - }, - "scriptContent": { - "value": "Write-Host 'Running PowerShell from template'" - }, - "retentionInterval": { - "value": "P1D" - }, - "runOnce": { - "value": false - }, - "cleanupPreference": { - "value": "Always" - }, - "timeout": { - "value": "PT30M" - } - } -} diff --git a/modules/Microsoft.Resources/resourceGroups/.parameters/parameters.json b/modules/Microsoft.Resources/resourceGroups/.parameters/parameters.json deleted file mode 100644 index a132c26376..0000000000 --- a/modules/Microsoft.Resources/resourceGroups/.parameters/parameters.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-rg-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "tags": { - "value": { - "Test": "Yes" - } - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Resources/tags/.parameters/min.parameters.json b/modules/Microsoft.Resources/tags/.parameters/min.parameters.json deleted file mode 100644 index d90c44f3fb..0000000000 --- a/modules/Microsoft.Resources/tags/.parameters/min.parameters.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": {} -} diff --git a/modules/Microsoft.Resources/tags/.parameters/rg.parameters.json b/modules/Microsoft.Resources/tags/.parameters/rg.parameters.json deleted file mode 100644 index a90e2e5b2c..0000000000 --- a/modules/Microsoft.Resources/tags/.parameters/rg.parameters.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "onlyUpdate": { - "value": false - }, - "tags": { - "value": { - "Test": "Yes", - "TestToo": "No" - } - }, - "resourceGroupName": { - "value": "validation-rg" - } - } -} diff --git a/modules/Microsoft.Resources/tags/.parameters/sub.parameters.json b/modules/Microsoft.Resources/tags/.parameters/sub.parameters.json deleted file mode 100644 index 840b23ba68..0000000000 --- a/modules/Microsoft.Resources/tags/.parameters/sub.parameters.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "onlyUpdate": { - "value": true - }, - "tags": { - "value": { - "Test": "Yes", - "TestToo": "No" - } - } - } -} diff --git a/modules/Microsoft.Security/azureSecurityCenter/.parameters/parameters.json b/modules/Microsoft.Security/azureSecurityCenter/.parameters/parameters.json deleted file mode 100644 index cfa02a1ddc..0000000000 --- a/modules/Microsoft.Security/azureSecurityCenter/.parameters/parameters.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "scope": { - "value": "/subscriptions/<>" - }, - "securityContactProperties": { - "value": { - "email": "foo@contoso.com", - "phone": "+12345678", - "alertNotifications": "Off", - "alertsToAdmins": "Off" - } - }, - "workspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - } - } -} diff --git a/modules/Microsoft.ServiceBus/namespaces/.parameters/min.parameters.json b/modules/Microsoft.ServiceBus/namespaces/.parameters/min.parameters.json deleted file mode 100644 index d90c44f3fb..0000000000 --- a/modules/Microsoft.ServiceBus/namespaces/.parameters/min.parameters.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": {} -} diff --git a/modules/Microsoft.ServiceBus/namespaces/.parameters/parameters.json b/modules/Microsoft.ServiceBus/namespaces/.parameters/parameters.json deleted file mode 100644 index 33c0288e8c..0000000000 --- a/modules/Microsoft.ServiceBus/namespaces/.parameters/parameters.json +++ /dev/null @@ -1,167 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-sbn-x-002" - }, - "lock": { - "value": "CanNotDelete" - }, - "skuName": { - "value": "Premium" - }, - "tags": { - "value": {} - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "disasterRecoveryConfigs": { - "value": {} - }, - "migrationConfigurations": { - "value": {} - }, - "virtualNetworkRules": { - "value": [ - "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-003" - ] - }, - "ipFilterRules": { - "value": [ - { - "filterName": "ipFilter1", - "ipMask": "10.0.1.0/32", - "action": "Accept" - }, - { - "filterName": "ipFilter2", - "ipMask": "10.0.2.0/32", - "action": "Accept" - } - ] - }, - "authorizationRules": { - "value": [ - { - "name": "RootManageSharedAccessKey", - "rights": [ - "Listen", - "Manage", - "Send" - ] - }, - { - "name": "AnotherKey", - "rights": [ - "Listen", - "Send" - ] - } - ] - }, - "queues": { - "value": [ - { - "name": "<>-az-sbq-x-002", - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ], - "authorizationRules": [ - { - "name": "RootManageSharedAccessKey", - "rights": [ - "Listen", - "Manage", - "Send" - ] - }, - { - "name": "AnotherKey", - "rights": [ - "Listen", - "Send" - ] - } - ] - } - ] - }, - "topics": { - "value": [ - { - "name": "<>-az-sbt-x-001", - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ], - "authorizationRules": [ - { - "name": "RootManageSharedAccessKey", - "rights": [ - "Listen", - "Manage", - "Send" - ] - }, - { - "name": "AnotherKey", - "rights": [ - "Listen", - "Send" - ] - } - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "privateEndpoints": { - "value": [ - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "namespace" - } - ] - } - } -} diff --git a/modules/Microsoft.ServiceFabric/clusters/.parameters/cert.parameters.json b/modules/Microsoft.ServiceFabric/clusters/.parameters/cert.parameters.json deleted file mode 100644 index 668b6d8d12..0000000000 --- a/modules/Microsoft.ServiceFabric/clusters/.parameters/cert.parameters.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-sfc-cert-001" - }, - "managementEndpoint": { - "value": "https://<>-az-sfc-cert-001.westeurope.cloudapp.azure.com:19080" - }, - "reliabilityLevel": { - "value": "None" - }, - "certificate": { - "value": { - "thumbprint": "0AC113D5E1D94C401DDEB0EE2B1B96CC130", // Mutual exclusive with the other cert specs - "x509StoreName": "My" - } - }, - "nodeTypes": { - "value": [ - { - "applicationPorts": { - "endPort": 30000, - "startPort": 20000 - }, - "clientConnectionEndpointPort": 19000, - "durabilityLevel": "Bronze", - "ephemeralPorts": { - "endPort": 65534, - "startPort": 49152 - }, - "httpGatewayEndpointPort": 19080, - "isPrimary": true, - "name": "Node01" - } - ] - } - } -} diff --git a/modules/Microsoft.ServiceFabric/clusters/.parameters/full.parameters.json b/modules/Microsoft.ServiceFabric/clusters/.parameters/full.parameters.json deleted file mode 100644 index 46c19ee885..0000000000 --- a/modules/Microsoft.ServiceFabric/clusters/.parameters/full.parameters.json +++ /dev/null @@ -1,208 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-sfc-full-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "tags": { - "value": { - "resourceType": "Service Fabric", - "clusterName": "<>-az-sfc-full-001" - } - }, - "addOnFeatures": { - "value": [ - "RepairManager", - "DnsService", - "BackupRestoreService", - "ResourceMonitorService" - ] - }, - "maxUnusedVersionsToKeep": { - "value": 2 - }, - "azureActiveDirectory": { - "value": { - "clientApplication": "<>", - "clusterApplication": "cf33fea8-b30f-424f-ab73-c48d99e0b222", - "tenantId": "<>" - } - }, - "certificateCommonNames": { - "value": { - "commonNames": [ - { - "certificateCommonName": "certcommon", - "certificateIssuerThumbprint": "0AC113D5E1D94C401DDEB0EE2B1B96CC130" - } - ], - "x509StoreName": "" - } - }, - "clientCertificateCommonNames": { - "value": [ - { - "certificateCommonName": "clientcommoncert1", - "certificateIssuerThumbprint": "0AC113D5E1D94C401DDEB0EE2B1B96CC130", - "isAdmin": false - }, - { - "certificateCommonName": "clientcommoncert2", - "certificateIssuerThumbprint": "0AC113D5E1D94C401DDEB0EE2B1B96CC131", - "isAdmin": false - } - ] - }, - "clientCertificateThumbprints": { - "value": [ - { - "certificateThumbprint": "0AC113D5E1D94C401DDEB0EE2B1B96CC130", - "isAdmin": false - }, - { - "certificateThumbprint": "0AC113D5E1D94C401DDEB0EE2B1B96CC131", - "isAdmin": false - } - ] - }, - "diagnosticsStorageAccountConfig": { - "value": { - "blobEndpoint": "https://adp<>azsaweux001.blob.core.windows.net/", - "protectedAccountKeyName": "StorageAccountKey1", - "queueEndpoint": "https://adp<>azsaweux001.queue.core.windows.net/", - "storageAccountName": "adp<>azsaweux001", - "tableEndpoint": "https://adp<>azsaweux001.table.core.windows.net/" - } - }, - "fabricSettings": { - "value": [ - { - "name": "Security", - "parameters": [ - { - "name": "ClusterProtectionLevel", - "value": "EncryptAndSign" - } - ] - }, - { - "name": "UpgradeService", - "parameters": [ - { - "name": "AppPollIntervalInSeconds", - "value": "60" - } - ] - } - ] - }, - "managementEndpoint": { - "value": "https://<>-az-sfc-full-001.westeurope.cloudapp.azure.com:19080" - }, - "nodeTypes": { - "value": [ - { - "applicationPorts": { - "endPort": 30000, - "startPort": 20000 - }, - "capacities": {}, - "clientConnectionEndpointPort": 19000, - "durabilityLevel": "Silver", - "ephemeralPorts": { - "endPort": 65534, - "startPort": 49152 - }, - "httpGatewayEndpointPort": 19080, - "isPrimary": true, - "isStateless": false, - "multipleAvailabilityZones": false, - "name": "Node01", - "placementProperties": {}, - "reverseProxyEndpointPort": "", - "vmInstanceCount": 5 - }, - { - "applicationPorts": { - "endPort": 30000, - "startPort": 20000 - }, - "clientConnectionEndpointPort": 19000, - "durabilityLevel": "Bronze", - "ephemeralPorts": { - "endPort": 64000, - "startPort": 49000 - }, - "httpGatewayEndpointPort": 19007, - "isPrimary": true, - "name": "Node02", - "vmInstanceCount": 5 - } - ] - }, - "notifications": { - "value": [ - { - "isEnabled": true, - "notificationCategory": "WaveProgress", - "notificationLevel": "Critical", - "notificationTargets": [ - { - "notificationChannel": "EmailUser", - "receivers": [ - "SomeReceiver" - ] - } - ] - } - ] - }, - "upgradeDescription": { - "value": { - "forceRestart": false, - "upgradeReplicaSetCheckTimeout": "1.00:00:00", - "healthCheckWaitDuration": "00:00:30", - "healthCheckStableDuration": "00:01:00", - "healthCheckRetryTimeout": "00:45:00", - "upgradeTimeout": "02:00:00", - "upgradeDomainTimeout": "02:00:00", - "healthPolicy": { - "maxPercentUnhealthyNodes": 0, - "maxPercentUnhealthyApplications": 0 - }, - "deltaHealthPolicy": { - "maxPercentDeltaUnhealthyNodes": 0, - "maxPercentUpgradeDomainDeltaUnhealthyNodes": 0, - "maxPercentDeltaUnhealthyApplications": 0 - } - } - }, - "reliabilityLevel": { - "value": "Silver" - }, - "vmImage": { - "value": "Linux" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "applicationTypes": { - "value": [ - { - "name": "WordCount" // not idempotent - } - ] - } - } -} diff --git a/modules/Microsoft.ServiceFabric/clusters/.parameters/min.parameters.json b/modules/Microsoft.ServiceFabric/clusters/.parameters/min.parameters.json deleted file mode 100644 index b7673a725b..0000000000 --- a/modules/Microsoft.ServiceFabric/clusters/.parameters/min.parameters.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-sfc-min-001" - }, - "managementEndpoint": { - "value": "https://<>-az-sfc-min-001.westeurope.cloudapp.azure.com:19080" - }, - "reliabilityLevel": { - "value": "None" - }, - "nodeTypes": { - "value": [ - { - "applicationPorts": { - "endPort": 30000, - "startPort": 20000 - }, - "clientConnectionEndpointPort": 19000, - "durabilityLevel": "Bronze", - "ephemeralPorts": { - "endPort": 65534, - "startPort": 49152 - }, - "httpGatewayEndpointPort": 19080, - "isPrimary": true, - "name": "Node01" - } - ] - } - } -} diff --git a/modules/Microsoft.Sql/managedInstances/.parameters/parameters.json b/modules/Microsoft.Sql/managedInstances/.parameters/parameters.json deleted file mode 100644 index 7435419747..0000000000 --- a/modules/Microsoft.Sql/managedInstances/.parameters/parameters.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-sqlmi-x-002" - }, - "lock": { - "value": "CanNotDelete" - }, - "administratorLogin": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "administratorLogin" - } - }, - "administratorLoginPassword": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "administratorLoginPassword" - } - }, - "subnetId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-sqlmi/subnets/<>-az-subnet-x-sqlmi" - }, - "skuName": { - "value": "GP_Gen5" - }, - "skuTier": { - "value": "GeneralPurpose" - }, - "storageSizeInGB": { - "value": 32 - }, - "vCores": { - "value": 4 - }, - "licenseType": { - "value": "LicenseIncluded" - }, - "hardwareFamily": { - "value": "Gen5" - }, - "servicePrincipal": { - "value": "SystemAssigned" - }, - "dnsZonePartner": { - "value": "" - }, - "timezoneId": { - "value": "UTC" - }, - "collation": { - "value": "SQL_Latin1_General_CP1_CI_AS" - }, - "proxyOverride": { - "value": "Proxy" - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "primaryUserAssignedIdentityId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001" - }, - "publicDataEndpointEnabled": { - "value": false - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "keys": { - "value": [ - { - "name": "adp-<>-az-kv-x-sqlmi_keyEncryptionKeySqlMi_4bf367f64c914d8ba698700fb598ad07", // ID must be updated for new keys - "uri": "https://adp-<>-az-kv-x-sqlmi.vault.azure.net/keys/keyEncryptionKeySqlMi/4bf367f64c914d8ba698700fb598ad07", // ID must be updated for new keys - "serverKeyType": "AzureKeyVault" - } - ] - }, - "encryptionProtectorObj": { - "value": { - "serverKeyName": "adp-<>-az-kv-x-sqlmi_keyEncryptionKeySqlMi_4bf367f64c914d8ba698700fb598ad07", // ID must be updated for new keys - "serverKeyType": "AzureKeyVault" - } - }, - "securityAlertPoliciesObj": { - "value": { - "name": "default", - "state": "Enabled", - "emailAccountAdmins": true - } - }, - "vulnerabilityAssessmentsObj": { - "value": { - "name": "default", - "emailSubscriptionAdmins": true, - "recurringScansIsEnabled": true, - "recurringScansEmails": [ - "test1@contoso.com", - "test2@contoso.com" - ], - "vulnerabilityAssessmentsStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - } - }, - "databases": { - "value": [ - { - "name": "<>-az-sqlmidb-x-001", - "backupShortTermRetentionPolicies": { - "name": "default" - }, - "backupLongTermRetentionPolicies": { - "name": "default" - } - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.Storage/storageAccounts/.parameters/encr.parameters.json b/modules/Microsoft.Storage/storageAccounts/.parameters/encr.parameters.json deleted file mode 100644 index cdc4f530c1..0000000000 --- a/modules/Microsoft.Storage/storageAccounts/.parameters/encr.parameters.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>azsaencr001" - }, - "storageAccountSku": { - "value": "Standard_LRS" - }, - "allowBlobPublicAccess": { - "value": false - }, - "publicNetworkAccess": { - "value": "Disabled" - }, - "requireInfrastructureEncryption": { - "value": true - }, - "systemAssignedIdentity": { - "value": false - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "cMKKeyVaultResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-nopr-002" - }, - "cMKKeyName": { - "value": "keyEncryptionKey" - }, - "cMKUserAssignedIdentityResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001" - } - } -} diff --git a/modules/Microsoft.Storage/storageAccounts/.parameters/min.parameters.json b/modules/Microsoft.Storage/storageAccounts/.parameters/min.parameters.json deleted file mode 100644 index 30ac50db6d..0000000000 --- a/modules/Microsoft.Storage/storageAccounts/.parameters/min.parameters.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "allowBlobPublicAccess": { - "value": false - } - } -} diff --git a/modules/Microsoft.Storage/storageAccounts/.parameters/nfs.parameters.json b/modules/Microsoft.Storage/storageAccounts/.parameters/nfs.parameters.json deleted file mode 100644 index 7ae90dbdad..0000000000 --- a/modules/Microsoft.Storage/storageAccounts/.parameters/nfs.parameters.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>azsax002" - }, - "storageAccountSku": { - "value": "Premium_LRS" - }, - "storageAccountKind": { - "value": "FileStorage" - }, - "allowBlobPublicAccess": { - "value": false - }, - "supportsHttpsTrafficOnly": { - "value": false - }, - "fileServices": { - "value": { - "shares": [ - { - "name": "nfsfileshare", - "enabledProtocols": "NFS" - } - ] - } - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.Storage/storageAccounts/.parameters/parameters.json b/modules/Microsoft.Storage/storageAccounts/.parameters/parameters.json deleted file mode 100644 index 6783c5818a..0000000000 --- a/modules/Microsoft.Storage/storageAccounts/.parameters/parameters.json +++ /dev/null @@ -1,192 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>azsax001" - }, - "storageAccountSku": { - "value": "Standard_LRS" - }, - "allowBlobPublicAccess": { - "value": false - }, - "publicNetworkAccess": { - "value": "Disabled" - }, - "requireInfrastructureEncryption": { - "value": true - }, - "lock": { - "value": "CanNotDelete" - }, - "privateEndpoints": { - "value": [ - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "blob" - }, - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "table" - }, - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "queue" - }, - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "file" - } - ] - }, - "networkAcls": { - "value": { - "bypass": "AzureServices", - "defaultAction": "Deny", - "virtualNetworkRules": [ - { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001", - "action": "Allow" - } - ], - "ipRules": [ - { - "action": "Allow", - "value": "1.1.1.1" - } - ] - } - }, - "blobServices": { - "value": { - "diagnosticLogsRetentionInDays": 7, - "diagnosticStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", - "diagnosticWorkspaceId": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001", - "diagnosticEventHubAuthorizationRuleId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", - "diagnosticEventHubName": "adp-<>-az-evh-x-001", - "containers": [ - { - "name": "avdscripts", - "publicAccess": "None", - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - { - "name": "archivecontainer", - "publicAccess": "None", - "enableWORM": true, - "WORMRetention": 666, - "allowProtectedAppendWrites": false - } - ] - } - }, - "fileServices": { - "value": { - "diagnosticLogsRetentionInDays": 7, - "diagnosticStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", - "diagnosticWorkspaceId": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001", - "diagnosticEventHubAuthorizationRuleId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", - "diagnosticEventHubName": "adp-<>-az-evh-x-001", - "shares": [ - { - "name": "avdprofiles", - "shareQuota": "5120", - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - { - "name": "avdprofiles2", - "shareQuota": "5120" - } - ] - } - }, - "tableServices": { - "value": { - "diagnosticLogsRetentionInDays": 7, - "diagnosticStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", - "diagnosticWorkspaceId": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001", - "diagnosticEventHubAuthorizationRuleId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", - "diagnosticEventHubName": "adp-<>-az-evh-x-001", - "tables": [ - "table1", - "table2" - ] - } - }, - "queueServices": { - "value": { - "diagnosticLogsRetentionInDays": 7, - "diagnosticStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", - "diagnosticWorkspaceId": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001", - "diagnosticEventHubAuthorizationRuleId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", - "diagnosticEventHubName": "adp-<>-az-evh-x-001", - "queues": [ - { - "name": "queue1", - "metadata": {}, - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - { - "name": "queue2", - "metadata": {} - } - ] - } - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.Storage/storageAccounts/.parameters/v1.parameters.json b/modules/Microsoft.Storage/storageAccounts/.parameters/v1.parameters.json deleted file mode 100644 index c411287f9c..0000000000 --- a/modules/Microsoft.Storage/storageAccounts/.parameters/v1.parameters.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "storageAccountKind": { - "value": "Storage" - }, - "allowBlobPublicAccess": { - "value": false - } - } -} diff --git a/modules/Microsoft.Synapse/privateLinkHubs/.parameters/min.parameters.json b/modules/Microsoft.Synapse/privateLinkHubs/.parameters/min.parameters.json deleted file mode 100644 index 4bd5cc5f65..0000000000 --- a/modules/Microsoft.Synapse/privateLinkHubs/.parameters/min.parameters.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "synplhmin001" - } - } -} diff --git a/modules/Microsoft.Synapse/privateLinkHubs/.parameters/parameters.json b/modules/Microsoft.Synapse/privateLinkHubs/.parameters/parameters.json deleted file mode 100644 index 36fe03f6ad..0000000000 --- a/modules/Microsoft.Synapse/privateLinkHubs/.parameters/parameters.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "synplhstandard001" - }, - "lock": { - "value": "CanNotDelete" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - }, - { - "roleDefinitionIdOrName": "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c", - "principalIds": [ - "<>" - ] - } - ] - }, - "privateEndpoints": { - "value": [ - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "Web" - } - ] - } - } -} diff --git a/modules/Microsoft.VirtualMachineImages/imageTemplates/.parameters/parameters.json b/modules/Microsoft.VirtualMachineImages/imageTemplates/.parameters/parameters.json deleted file mode 100644 index df382ff2e0..0000000000 --- a/modules/Microsoft.VirtualMachineImages/imageTemplates/.parameters/parameters.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-imgt-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "userMsiName": { - "value": "adp-<>-az-msi-x-001" - }, - "userMsiResourceGroup": { - "value": "validation-rg" - }, - "buildTimeoutInMinutes": { - "value": 0 - }, - "vmSize": { - "value": "Standard_D2s_v3" - }, - "osDiskSizeGB": { - "value": 127 - }, - "subnetId": { - "value": "" - }, - "imageSource": { - "value": { - "type": "PlatformImage", - "publisher": "MicrosoftWindowsDesktop", - "offer": "Windows-10", - "sku": "19h2-evd", - "version": "latest" - } - }, - "customizationSteps": { - "value": [ - { - "type": "WindowsRestart", - "restartTimeout": "30m" - } - ] - }, - "managedImageName": { - "value": "<>-az-mi-x-001" - }, - "unManagedImageName": { - "value": "<>-az-umi-x-001" - }, - "sigImageDefinitionId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Compute/galleries/adp<>azsigweux001/images/adp-<>-az-imgd-x-001" - }, - "imageReplicationRegions": { - "value": [] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Web/connections/.parameters/parameters.json b/modules/Microsoft.Web/connections/.parameters/parameters.json deleted file mode 100644 index c2862592b5..0000000000 --- a/modules/Microsoft.Web/connections/.parameters/parameters.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "azuremonitor" - }, - "lock": { - "value": "CanNotDelete" - }, - "displayName": { - "value": "azuremonitorlogs" - }, - "connectionApi": { - "value": { - "id": "/subscriptions/<>/providers/Microsoft.Web/locations/westeurope/managedApis/azuremonitorlogs" - } - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Web/hostingEnvironments/.parameters/asev2.parameters.json b/modules/Microsoft.Web/hostingEnvironments/.parameters/asev2.parameters.json deleted file mode 100644 index c556495066..0000000000 --- a/modules/Microsoft.Web/hostingEnvironments/.parameters/asev2.parameters.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-appse-asev2-001" - }, - "kind": { - "value": "ASEv2" - }, - "multiSize": { - "value": "Standard_D1_V2" - }, - "ipsslAddressCount": { - "value": 2 - }, - "clusterSettings": { - "value": [ - { - "name": "DisableTls1.0", - "value": "1" - } - ] - }, - "subnetResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-008" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.Web/hostingEnvironments/.parameters/asev3.parameters.json b/modules/Microsoft.Web/hostingEnvironments/.parameters/asev3.parameters.json deleted file mode 100644 index a304822546..0000000000 --- a/modules/Microsoft.Web/hostingEnvironments/.parameters/asev3.parameters.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-appse-asev3-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "subnetResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-006" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "clusterSettings": { - "value": [ - { - "name": "DisableTls1.0", - "value": "1" - } - ] - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.Web/serverfarms/.parameters/parameters.json b/modules/Microsoft.Web/serverfarms/.parameters/parameters.json deleted file mode 100644 index 63e6aa9044..0000000000 --- a/modules/Microsoft.Web/serverfarms/.parameters/parameters.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-asp-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "sku": { - "value": { - "name": "S1", - "tier": "Standard", - "size": "S1", - "family": "S", - "capacity": "1" - } - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Web/sites/.parameters/fa.min.parameters.json b/modules/Microsoft.Web/sites/.parameters/fa.min.parameters.json deleted file mode 100644 index 0d4b5e85fb..0000000000 --- a/modules/Microsoft.Web/sites/.parameters/fa.min.parameters.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-fa-min-001" - }, - "kind": { - "value": "functionapp" - }, - "serverFarmResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Web/serverFarms/adp-<>-az-asp-x-001" - }, - "siteConfig": { - "value": { - "alwaysOn": true - } - } - } -} diff --git a/modules/Microsoft.Web/sites/.parameters/fa.parameters.json b/modules/Microsoft.Web/sites/.parameters/fa.parameters.json deleted file mode 100644 index e67fc9f53e..0000000000 --- a/modules/Microsoft.Web/sites/.parameters/fa.parameters.json +++ /dev/null @@ -1,146 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-fa-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "kind": { - "value": "functionapp" - }, - "serverFarmResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Web/serverFarms/adp-<>-az-asp-x-001" - }, - "siteConfig": { - "value": { - "alwaysOn": true, - "use32BitWorkerProcess": false - } - }, - "appInsightId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Insights/components/adp-<>-az-appi-x-001" - }, - "storageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "setAzureWebJobsDashboard": { - "value": true - }, - "appSettingsKeyValuePairs": { - "value": { - "FUNCTIONS_EXTENSION_VERSION": "~4", - "FUNCTIONS_WORKER_RUNTIME": "dotnet", - "AzureFunctionsJobHost__logging__logLevel__default": "Trace", - "EASYAUTH_SECRET": "https://adp-<>-az-kv-x-001.vault.azure.net/secrets/Modules-Test-SP-Password" - } - }, - "authSettingV2Configuration": { - "value": { - "globalValidation": { - "requireAuthentication": true, - "unauthenticatedClientAction": "Return401" - }, - "httpSettings": { - "forwardProxy": { - "convention": "NoProxy" - }, - "requireHttps": true, - "routes": { - "apiPrefix": "/.auth" - } - }, - "identityProviders": { - "azureActiveDirectory": { - "enabled": true, - "login": { - "disableWWWAuthenticate": false - }, - "registration": { - "openIdIssuer": "https://sts.windows.net/<>/v2.0/", - "clientId": "d874dd2f-2032-4db1-a053-f0ec243685aa", - "clientSecretSettingName": "EASYAUTH_SECRET" - }, - "validation": { - "allowedAudiences": [ - "api://d874dd2f-2032-4db1-a053-f0ec243685aa" - ], - "defaultAuthorizationPolicy": { - "allowedPrincipals": {} - }, - "jwtClaimChecks": {} - } - } - }, - "login": { - "allowedExternalRedirectUrls": [ - "string" - ], - "cookieExpiration": { - "convention": "FixedTime", - "timeToExpiration": "08:00:00" - }, - "nonce": { - "nonceExpirationInterval": "00:05:00", - "validateNonce": true - }, - "preserveUrlFragmentsForLogins": false, - "routes": {}, - "tokenStore": { - "azureBlobStorage": {}, - "enabled": true, - "fileSystem": {}, - "tokenRefreshExtensionHours": 72 - } - }, - "platform": { - "enabled": true, - "runtimeVersion": "~1" - } - } - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "privateEndpoints": { - "value": [ - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "sites" - } - ] - } - } -} diff --git a/modules/Microsoft.Web/sites/.parameters/wa.min.parameters.json b/modules/Microsoft.Web/sites/.parameters/wa.min.parameters.json deleted file mode 100644 index 588beef102..0000000000 --- a/modules/Microsoft.Web/sites/.parameters/wa.min.parameters.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-wa-min-001" - }, - "kind": { - "value": "app" - }, - "serverFarmResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Web/serverFarms/adp-<>-az-asp-x-001" - } - } -} diff --git a/modules/Microsoft.Web/sites/.parameters/wa.parameters.json b/modules/Microsoft.Web/sites/.parameters/wa.parameters.json deleted file mode 100644 index 75ea5f8f00..0000000000 --- a/modules/Microsoft.Web/sites/.parameters/wa.parameters.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-wa-x-001" - }, - "kind": { - "value": "app" - }, - "serverFarmResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Web/serverFarms/adp-<>-az-asp-x-001" - }, - "siteConfig": { - "value": { - "metadata": [ - { - "name": "CURRENT_STACK", - "value": "dotnetcore" - } - ], - "alwaysOn": true - } - }, - "httpsOnly": { - "value": true - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "privateEndpoints": { - "value": [ - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "sites" - } - ] - } - } -} diff --git a/modules/Microsoft.Web/staticSites/.parameters/min.parameters.json b/modules/Microsoft.Web/staticSites/.parameters/min.parameters.json deleted file mode 100644 index b5781f46f0..0000000000 --- a/modules/Microsoft.Web/staticSites/.parameters/min.parameters.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-wss-min-001" - } - } -} diff --git a/modules/Microsoft.Web/staticSites/.parameters/parameters.json b/modules/Microsoft.Web/staticSites/.parameters/parameters.json deleted file mode 100644 index 68d8697715..0000000000 --- a/modules/Microsoft.Web/staticSites/.parameters/parameters.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-wss-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "sku": { - "value": "Standard" - }, - "stagingEnvironmentPolicy": { - "value": "Enabled" - }, - "allowConfigFileUpdates": { - "value": true - }, - "enterpriseGradeCdnStatus": { - "value": "Disabled" - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "privateEndpoints": { - "value": [ - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "staticSites" - } - ] - } - } -} From 9a9f9354505b648735054ada8de0d30a653c2260 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 08:41:14 +0200 Subject: [PATCH 030/274] Update to latest --- .../{parameters => .test}/parameters.json | 0 .../{.deploymentTests => .test}/linux.prefix.parameter.json | 0 .../{.deploymentTests => .test}/linux.vmnames.parameter.json | 0 .../{parameters => .test}/parameters.json | 0 .../{parameters => .test}/parameters.json | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename constructs/Microsoft.Authorization/roleAssignments-multiRolesMultiPrincipals/{parameters => .test}/parameters.json (100%) rename constructs/Microsoft.Compute/virtualMachinesMultiple/{.deploymentTests => .test}/linux.prefix.parameter.json (100%) rename constructs/Microsoft.Compute/virtualMachinesMultiple/{.deploymentTests => .test}/linux.vmnames.parameter.json (100%) rename constructs/Microsoft.Management/managementGroup-structure/{parameters => .test}/parameters.json (100%) rename constructs/Microsoft.Network/virtualNetwork/virtualNetworkPeerings-multiRemoteVnets/{parameters => .test}/parameters.json (100%) diff --git a/constructs/Microsoft.Authorization/roleAssignments-multiRolesMultiPrincipals/parameters/parameters.json b/constructs/Microsoft.Authorization/roleAssignments-multiRolesMultiPrincipals/.test/parameters.json similarity index 100% rename from constructs/Microsoft.Authorization/roleAssignments-multiRolesMultiPrincipals/parameters/parameters.json rename to constructs/Microsoft.Authorization/roleAssignments-multiRolesMultiPrincipals/.test/parameters.json diff --git a/constructs/Microsoft.Compute/virtualMachinesMultiple/.deploymentTests/linux.prefix.parameter.json b/constructs/Microsoft.Compute/virtualMachinesMultiple/.test/linux.prefix.parameter.json similarity index 100% rename from constructs/Microsoft.Compute/virtualMachinesMultiple/.deploymentTests/linux.prefix.parameter.json rename to constructs/Microsoft.Compute/virtualMachinesMultiple/.test/linux.prefix.parameter.json diff --git a/constructs/Microsoft.Compute/virtualMachinesMultiple/.deploymentTests/linux.vmnames.parameter.json b/constructs/Microsoft.Compute/virtualMachinesMultiple/.test/linux.vmnames.parameter.json similarity index 100% rename from constructs/Microsoft.Compute/virtualMachinesMultiple/.deploymentTests/linux.vmnames.parameter.json rename to constructs/Microsoft.Compute/virtualMachinesMultiple/.test/linux.vmnames.parameter.json diff --git a/constructs/Microsoft.Management/managementGroup-structure/parameters/parameters.json b/constructs/Microsoft.Management/managementGroup-structure/.test/parameters.json similarity index 100% rename from constructs/Microsoft.Management/managementGroup-structure/parameters/parameters.json rename to constructs/Microsoft.Management/managementGroup-structure/.test/parameters.json diff --git a/constructs/Microsoft.Network/virtualNetwork/virtualNetworkPeerings-multiRemoteVnets/parameters/parameters.json b/constructs/Microsoft.Network/virtualNetwork/virtualNetworkPeerings-multiRemoteVnets/.test/parameters.json similarity index 100% rename from constructs/Microsoft.Network/virtualNetwork/virtualNetworkPeerings-multiRemoteVnets/parameters/parameters.json rename to constructs/Microsoft.Network/virtualNetwork/virtualNetworkPeerings-multiRemoteVnets/.test/parameters.json From ca33962c771c2386768e560fdd2a5e881961a9f3 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 08:46:23 +0200 Subject: [PATCH 031/274] Renamed script --- .../templates/getParameterFiles/action.yml | 4 +- .../Get-ModuleParameterFiles.ps1 | 42 ------------------- ...ileList.ps1 => Get-ModuleTestFileList.ps1} | 4 +- 3 files changed, 4 insertions(+), 46 deletions(-) delete mode 100644 utilities/pipelines/sharedScripts/Get-ModuleParameterFiles.ps1 rename utilities/pipelines/sharedScripts/{Get-DeploymentTestFileList.ps1 => Get-ModuleTestFileList.ps1} (89%) diff --git a/.github/actions/templates/getParameterFiles/action.yml b/.github/actions/templates/getParameterFiles/action.yml index 1bcb50e607..4bece51252 100644 --- a/.github/actions/templates/getParameterFiles/action.yml +++ b/.github/actions/templates/getParameterFiles/action.yml @@ -21,14 +21,14 @@ runs: # Grouping task logs Write-Output "::group::Get parameter files" # Load used functions - . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'sharedScripts' 'Get-DeploymentTestFileList.ps1') + . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'sharedScripts' 'Get-ModuleTestFileList.ps1') $functionInput = @{ ModulePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.modulePath }}' } Write-Verbose "Invoke task with" -Verbose Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose # Get the list of parameter file paths - $parameterFilePaths = Get-DeploymentTestFileList @functionInput -Verbose + $parameterFilePaths = Get-ModuleTestFileList @functionInput -Verbose # Output values to be accessed by next jobs $compressedOutput = $parameterFilePaths | ConvertTo-Json -Compress if($compressedOutput -notmatch "\[.*\]") { diff --git a/utilities/pipelines/sharedScripts/Get-ModuleParameterFiles.ps1 b/utilities/pipelines/sharedScripts/Get-ModuleParameterFiles.ps1 deleted file mode 100644 index b13d619e7b..0000000000 --- a/utilities/pipelines/sharedScripts/Get-ModuleParameterFiles.ps1 +++ /dev/null @@ -1,42 +0,0 @@ -<# -.SYNOPSIS -Get the relative file paths of all parameter files in the given module. - -.DESCRIPTION -Get the relative file paths of all parameter files in the given module. -The relative path is returned instead of the full one to make paths easier to read in the pipeline. - -.PARAMETER ModulePath -Mandatory. The module path to search in. - -.EXAMPLE -Get-ModuleParameterFiles -ModulePath 'C:\ResourceModules\modules\Microsoft.Compute\virtualMachines' - -Returns the relative file paths of all parameter files of the virtual machines module. -#> -function Get-ModuleParameterFiles { - - [CmdletBinding()] - param ( - [Parameter(Mandatory)] - [string] $ModulePath - ) - - # Note: Should be 'recurse', but is not working with powershell 7.2.1 on GitHub hosted agents but needs 7.2.2 - # $parameterFilePaths = (Get-ChildItem -Recurse -Path $ModulePath -Filter '*parameters.json' -File).FullName - - $parameterFilePaths = (Get-ChildItem -Path "$ModulePath/.parameters" -Filter '*parameters.json' -File).FullName - - if (-not $parameterFilePaths) { - throw "No parameter files found for module [$ModulePath]" - } - - $parameterFilePaths = $parameterFilePaths | ForEach-Object { - $_.Replace($ModulePath, '').Trim('\').Trim('/') - } - - Write-Verbose 'Found parameter files' - $parameterFilePaths | ForEach-Object { Write-Verbose "- $_" } - - return $parameterFilePaths -} diff --git a/utilities/pipelines/sharedScripts/Get-DeploymentTestFileList.ps1 b/utilities/pipelines/sharedScripts/Get-ModuleTestFileList.ps1 similarity index 89% rename from utilities/pipelines/sharedScripts/Get-DeploymentTestFileList.ps1 rename to utilities/pipelines/sharedScripts/Get-ModuleTestFileList.ps1 index e9a68bd65d..c219156f83 100644 --- a/utilities/pipelines/sharedScripts/Get-DeploymentTestFileList.ps1 +++ b/utilities/pipelines/sharedScripts/Get-ModuleTestFileList.ps1 @@ -10,11 +10,11 @@ The relative path is returned instead of the full one to make paths easier to re Mandatory. The module path to search in. .EXAMPLE -Get-DeploymentTestFileList -ModulePath 'C:\ResourceModules\arm\Microsoft.Compute\virtualMachines' +Get-ModuleTestFileList -ModulePath 'C:\ResourceModules\arm\Microsoft.Compute\virtualMachines' Returns the relative file paths of all parameter files of the virtual machines module. #> -function Get-DeploymentTestFileList { +function Get-ModuleTestFileList { [CmdletBinding()] param ( From 545c38a9698412945629883ce55d8a9163dc0e68 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 09:34:34 +0200 Subject: [PATCH 032/274] Updated ADO workflows --- .../modulePipelines/ms.aad.domainservices.yml | 24 +- .../ms.analysisservices.servers.yml | 26 +- .../ms.apimanagement.service.yml | 26 +- ...s.appconfiguration.configurationstores.yml | 25 +- .../ms.authorization.locks.yml | 25 +- .../ms.authorization.policyassignments.yml | 35 +- .../ms.authorization.policydefinitions.yml | 31 +- .../ms.authorization.policyexemptions.yml | 35 +- .../ms.authorization.policysetdefinitions.yml | 31 +- .../ms.authorization.roleassignments.yml | 35 +- .../ms.authorization.roledefinitions.yml | 35 +- .../ms.automation.automationaccounts.yml | 26 +- .../ms.batch.batchaccounts.yml | 25 +- .../ms.cognitiveservices.accounts.yml | 27 +- .../ms.compute.availabilitysets.yml | 24 +- .../ms.compute.diskencryptionsets.yml | 24 +- .../modulePipelines/ms.compute.disks.yml | 27 +- .../modulePipelines/ms.compute.galleries.yml | 29 +- .../modulePipelines/ms.compute.images.yml | 24 +- .../ms.compute.proximityplacementgroups.yml | 24 +- .../ms.compute.virtualmachines.yml | 29 +- .../ms.compute.virtualmachinescalesets.yml | 27 +- .../ms.consumption.budgets.yml | 24 +- .../ms.containerinstance.containergroups.yml | 24 +- .../ms.containerregistry.registries.yml | 26 +- .../ms.containerservice.managedclusters.yml | 25 +- .../ms.databricks.workspaces.yml | 24 +- .../ms.datafactory.factories.yml | 24 +- .../ms.dataprotection.backupvaults.yml | 25 +- ...esktopvirtualization.applicationgroups.yml | 25 +- .../ms.desktopvirtualization.hostpools.yml | 24 +- .../ms.desktopvirtualization.scalingplans.yml | 24 +- .../ms.desktopvirtualization.workspaces.yml | 24 +- .../ms.documentdb.databaseaccounts.yml | 26 +- .../ms.eventgrid.systemtopics.yml | 25 +- .../modulePipelines/ms.eventgrid.topics.yml | 24 +- .../ms.eventhub.namespaces.yml | 25 +- .../ms.healthbot.healthbots.yml | 24 +- .../ms.insights.actiongroups.yml | 24 +- .../ms.insights.activitylogalerts.yml | 24 +- .../ms.insights.components.yml | 24 +- .../ms.insights.diagnosticsettings.yml | 24 +- .../ms.insights.metricalerts.yml | 24 +- .../ms.insights.privatelinkscopes.yml | 24 +- .../ms.insights.scheduledqueryrules.yml | 24 +- .../modulePipelines/ms.keyvault.vaults.yml | 25 +- .../ms.kubernetesconfiguration.extensions.yml | 25 +- ...rnetesconfiguration.fluxconfigurations.yml | 25 +- .../modulePipelines/ms.logic.workflows.yml | 24 +- .../ms.machinelearningservices.workspaces.yml | 25 +- ...managedidentity.userassignedidentities.yml | 24 +- ...anagedservices.registrationdefinitions.yml | 25 +- .../ms.management.managementgroups.yml | 24 +- .../ms.netapp.netappaccounts.yml | 26 +- .../ms.network.applicationgateways.yml | 24 +- .../ms.network.applicationsecuritygroups.yml | 24 +- .../ms.network.azurefirewalls.yml | 24 +- .../ms.network.bastionhosts.yml | 25 +- .../ms.network.connections.yml | 24 +- .../ms.network.ddosprotectionplans.yml | 24 +- .../ms.network.expressroutecircuits.yml | 24 +- .../ms.network.firewallpolicies.yml | 24 +- .../modulePipelines/ms.network.frontdoors.yml | 24 +- .../modulePipelines/ms.network.ipgroups.yml | 24 +- .../ms.network.loadbalancers.yml | 26 +- .../ms.network.localnetworkgateways.yml | 24 +- .../ms.network.natgateways.yml | 24 +- .../ms.network.networkinterfaces.yml | 25 +- .../ms.network.networksecuritygroups.yml | 25 +- .../ms.network.networkwatchers.yml | 25 +- .../ms.network.privatednszones.yml | 25 +- .../ms.network.privateendpoints.yml | 25 +- .../ms.network.publicipaddresses.yml | 24 +- .../ms.network.publicipprefixes.yml | 24 +- .../ms.network.routetables.yml | 24 +- .../ms.network.trafficmanagerprofiles.yml | 24 +- .../ms.network.virtualhubs.yml | 25 +- .../ms.network.virtualnetworkgateways.yml | 25 +- .../ms.network.virtualnetworks.yml | 25 +- .../ms.network.virtualwans.yml | 25 +- .../ms.network.vpngateways.yml | 25 +- .../modulePipelines/ms.network.vpnsites.yml | 25 +- .../ms.operationalinsights.workspaces.yml | 25 +- .../ms.operationsmanagement.solutions.yml | 26 +- .../ms.recoveryservices.vaults.yml | 29 +- .../ms.resources.deploymentscripts.yml | 25 +- .../ms.resources.resourcegroups.yml | 24 +- .../modulePipelines/ms.resources.tags.yml | 26 +- .../ms.security.azuresecuritycenter.yml | 24 +- .../ms.servicebus.namespaces.yml | 25 +- .../ms.servicefabric.clusters.yml | 26 +- .../ms.sql.managedinstances.yml | 26 +- .../modulePipelines/ms.sql.servers.yml | 25 +- .../ms.storage.storageaccounts.yml | 28 +- .../ms.synapse.privatelinkhubs.yml | 25 +- ...ms.virtualmachineimages.imagetemplates.yml | 24 +- .../modulePipelines/ms.web.connections.yml | 24 +- .../ms.web.hostingenvironments.yml | 27 +- .../modulePipelines/ms.web.serverfarms.yml | 24 +- .azuredevops/modulePipelines/ms.web.sites.yml | 27 +- .../modulePipelines/ms.web.staticsites.yml | 25 +- .../jobs.getParameterFiles.yml | 51 ++ .../jobs.validateModuleDeployment.yml | 547 +++++++++--------- .../pipelineTemplates/stages.module.yml | 28 + 104 files changed, 858 insertions(+), 2337 deletions(-) create mode 100644 .azuredevops/pipelineTemplates/jobs.getParameterFiles.yml create mode 100644 .azuredevops/pipelineTemplates/stages.module.yml diff --git a/.azuredevops/modulePipelines/ms.aad.domainservices.yml b/.azuredevops/modulePipelines/ms.aad.domainservices.yml index f501cb6c38..016fd19e67 100644 --- a/.azuredevops/modulePipelines/ms.aad.domainservices.yml +++ b/.azuredevops/modulePipelines/ms.aad.domainservices.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.AAD/DomainServices' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.analysisservices.servers.yml b/.azuredevops/modulePipelines/ms.analysisservices.servers.yml index d48caba9c9..ffaa8a62f5 100644 --- a/.azuredevops/modulePipelines/ms.analysisservices.servers.yml +++ b/.azuredevops/modulePipelines/ms.analysisservices.servers.yml @@ -33,24 +33,8 @@ variables: value: '/modules/Microsoft.AnalysisServices/servers' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - path: $(modulePath)/.test/max.parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.apimanagement.service.yml b/.azuredevops/modulePipelines/ms.apimanagement.service.yml index 601c5433c8..b6b2018f8b 100644 --- a/.azuredevops/modulePipelines/ms.apimanagement.service.yml +++ b/.azuredevops/modulePipelines/ms.apimanagement.service.yml @@ -33,24 +33,8 @@ variables: value: '/modules/Microsoft.ApiManagement/service' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/max.parameters.json - - path: $(modulePath)/.test/parameters.json - - path: $(modulePath)/.test/min.parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml b/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml index 9c3a6400a0..16e1f491d9 100644 --- a/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml +++ b/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.AppConfiguration/configurationStores' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.authorization.locks.yml b/.azuredevops/modulePipelines/ms.authorization.locks.yml index 6f65bba089..b14045379d 100644 --- a/.azuredevops/modulePipelines/ms.authorization.locks.yml +++ b/.azuredevops/modulePipelines/ms.authorization.locks.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.Authorization/locks' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/rg.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml b/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml index 5bd90b5ec0..dcf21039d7 100644 --- a/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml +++ b/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml @@ -33,33 +33,8 @@ variables: value: '/modules/Microsoft.Authorization/policyAssignments' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/mg.min.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/mg.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/sub.min.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/sub.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/rg.min.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/rg.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml b/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml index 1c8e2fb3b3..b4e91d2d08 100644 --- a/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml +++ b/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml @@ -33,29 +33,8 @@ variables: value: '/modules/Microsoft.Authorization/policyDefinitions' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/mg.min.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/mg.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/sub.min.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/sub.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml b/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml index 55a78f36bd..e2beaab4ff 100644 --- a/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml +++ b/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml @@ -33,33 +33,8 @@ variables: value: '/modules/Microsoft.Authorization/policyExemptions' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/mg.min.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/mg.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/sub.min.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/sub.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/rg.min.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/rg.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml b/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml index 04fdf2cb3f..4e97e018f0 100644 --- a/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml +++ b/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml @@ -33,29 +33,8 @@ variables: value: '/modules/Microsoft.Authorization/policySetDefinitions' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/mg.min.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/mg.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/sub.min.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/sub.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml b/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml index 8fd83f7541..b425828e12 100644 --- a/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml +++ b/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml @@ -33,33 +33,8 @@ variables: value: '/modules/Microsoft.Authorization/roleAssignments' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/mg.min.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/mg.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/sub.min.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/sub.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/rg.min.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/rg.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml b/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml index 90141a1dd7..709bc9d885 100644 --- a/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml +++ b/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml @@ -33,33 +33,8 @@ variables: value: '/modules/Microsoft.Authorization/roleDefinitions' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/mg.min.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/mg.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/sub.min.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/sub.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/rg.min.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/rg.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml b/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml index aa3802eb39..7765a3f0d9 100644 --- a/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml +++ b/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml @@ -33,24 +33,8 @@ variables: value: '/modules/Microsoft.Automation/automationAccounts' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - path: $(modulePath)/.test/encr.parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml b/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml index ff3b0a08ae..bbaf37c001 100644 --- a/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml +++ b/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.Batch/batchAccounts' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml b/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml index 9284b05c62..6b00b4278a 100644 --- a/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml +++ b/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml @@ -33,25 +33,8 @@ variables: value: '/modules/Microsoft.CognitiveServices/accounts' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - path: $(modulePath)/.test/speech.parameters.json - - path: $(modulePath)/.test/encr.parameters.json - - path: $(modulePath)/.test/min.parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml b/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml index d4e8f41d2e..bcc83c6ca6 100644 --- a/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml +++ b/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Compute/availabilitySets' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml b/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml index 1b85b43193..458c19201e 100644 --- a/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml +++ b/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Compute/diskEncryptionSets' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.compute.disks.yml b/.azuredevops/modulePipelines/ms.compute.disks.yml index 55f92369e0..8f31210283 100644 --- a/.azuredevops/modulePipelines/ms.compute.disks.yml +++ b/.azuredevops/modulePipelines/ms.compute.disks.yml @@ -33,25 +33,8 @@ variables: value: '/modules/Microsoft.Compute/disks' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/image.parameters.json - - path: $(modulePath)/.test/import.parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.compute.galleries.yml b/.azuredevops/modulePipelines/ms.compute.galleries.yml index 69ebcc84b9..379832cba2 100644 --- a/.azuredevops/modulePipelines/ms.compute.galleries.yml +++ b/.azuredevops/modulePipelines/ms.compute.galleries.yml @@ -33,27 +33,8 @@ variables: value: '/modules/Microsoft.Compute/galleries' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - parameters: - deploymentBlocks: - - path: $(modulePath)/.test/images.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/images.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.compute.images.yml b/.azuredevops/modulePipelines/ms.compute.images.yml index bde31a29cf..3ba3320afc 100644 --- a/.azuredevops/modulePipelines/ms.compute.images.yml +++ b/.azuredevops/modulePipelines/ms.compute.images.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Compute/images' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml b/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml index ca01061c07..6faf2b8e7c 100644 --- a/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml +++ b/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Compute/proximityPlacementGroups' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml b/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml index a055b1ecd9..980d6288da 100644 --- a/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml +++ b/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml @@ -33,27 +33,8 @@ variables: value: '/modules/Microsoft.Compute/virtualMachines' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/linux.min.parameters.json - - path: $(modulePath)/.test/linux.parameters.json - - path: $(modulePath)/.test/linux.autmg.parameters.json - - path: $(modulePath)/.test/windows.min.parameters.json - - path: $(modulePath)/.test/windows.parameters.json - - path: $(modulePath)/.test/windows.autmg.parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml b/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml index 90540c28b1..a69c1dd271 100644 --- a/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml +++ b/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml @@ -33,25 +33,8 @@ variables: value: '/modules/Microsoft.Compute/virtualMachineScaleSets' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/linux.min.parameters.json - - path: $(modulePath)/.test/linux.parameters.json - - path: $(modulePath)/.test/windows.min.parameters.json - - path: $(modulePath)/.test/windows.parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.consumption.budgets.yml b/.azuredevops/modulePipelines/ms.consumption.budgets.yml index 3f75d14d30..a2d7717b6d 100644 --- a/.azuredevops/modulePipelines/ms.consumption.budgets.yml +++ b/.azuredevops/modulePipelines/ms.consumption.budgets.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Consumption/budgets' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml b/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml index 2f65ddba10..09da3927dd 100644 --- a/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml +++ b/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.ContainerInstance/containerGroups' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.containerregistry.registries.yml b/.azuredevops/modulePipelines/ms.containerregistry.registries.yml index b9a8bde689..00aa442a30 100644 --- a/.azuredevops/modulePipelines/ms.containerregistry.registries.yml +++ b/.azuredevops/modulePipelines/ms.containerregistry.registries.yml @@ -33,24 +33,8 @@ variables: value: '/modules/Microsoft.ContainerRegistry/registries' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/encr.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml b/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml index 80e5050d53..6af3a9b6bd 100644 --- a/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml +++ b/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.ContainerService/managedClusters' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/azure.parameters.json - - path: $(modulePath)/.test/kubenet.parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.databricks.workspaces.yml b/.azuredevops/modulePipelines/ms.databricks.workspaces.yml index 787a630cb1..877a39663c 100644 --- a/.azuredevops/modulePipelines/ms.databricks.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.databricks.workspaces.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Databricks/workspaces' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.datafactory.factories.yml b/.azuredevops/modulePipelines/ms.datafactory.factories.yml index a785ec79b4..acceb4e01b 100644 --- a/.azuredevops/modulePipelines/ms.datafactory.factories.yml +++ b/.azuredevops/modulePipelines/ms.datafactory.factories.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.DataFactory/factories' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml b/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml index 2812fd99b5..12d4f5fa24 100644 --- a/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml +++ b/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.DataProtection/backupVaults' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml b/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml index 4970f874b9..29c542dc73 100644 --- a/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml +++ b/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.DesktopVirtualization/applicationgroups' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml b/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml index 33858c1424..6b785c878b 100644 --- a/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml +++ b/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.DesktopVirtualization/hostpools' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml b/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml index 99d4959d81..0209817c3a 100644 --- a/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml +++ b/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.DesktopVirtualization/scalingplans' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml b/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml index 7be7bc6201..db6c636252 100644 --- a/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.DesktopVirtualization/workspaces' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml b/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml index d9f7603fdd..341bb20631 100644 --- a/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml +++ b/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml @@ -33,24 +33,8 @@ variables: value: '/modules/Microsoft.DocumentDB/databaseAccounts' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/mongodb.parameters.json - - path: $(modulePath)/.test/plain.parameters.json - - path: $(modulePath)/.test/sqldb.parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml b/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml index 5a1a19937c..ead40e67d2 100644 --- a/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml +++ b/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.EventGrid/systemTopics' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.eventgrid.topics.yml b/.azuredevops/modulePipelines/ms.eventgrid.topics.yml index 5602476795..9c4abdc2e3 100644 --- a/.azuredevops/modulePipelines/ms.eventgrid.topics.yml +++ b/.azuredevops/modulePipelines/ms.eventgrid.topics.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.EventGrid/topics' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml b/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml index 131a512a12..a38ee2ae47 100644 --- a/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml +++ b/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.EventHub/namespaces' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml b/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml index 327557c8ec..bf34537e05 100644 --- a/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml +++ b/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.HealthBot/healthBots' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.insights.actiongroups.yml b/.azuredevops/modulePipelines/ms.insights.actiongroups.yml index 8b328c6807..f79620052c 100644 --- a/.azuredevops/modulePipelines/ms.insights.actiongroups.yml +++ b/.azuredevops/modulePipelines/ms.insights.actiongroups.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Insights/actionGroups' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml b/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml index 1b2978f4de..9f5311b851 100644 --- a/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml +++ b/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Insights/activityLogAlerts' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.insights.components.yml b/.azuredevops/modulePipelines/ms.insights.components.yml index 8a446df9d0..9af35d3539 100644 --- a/.azuredevops/modulePipelines/ms.insights.components.yml +++ b/.azuredevops/modulePipelines/ms.insights.components.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Insights/components' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml b/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml index 16f12fd4cd..9107a4bcbb 100644 --- a/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml +++ b/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Insights/diagnosticSettings' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.insights.metricalerts.yml b/.azuredevops/modulePipelines/ms.insights.metricalerts.yml index 0bc39c3303..e36bb101fe 100644 --- a/.azuredevops/modulePipelines/ms.insights.metricalerts.yml +++ b/.azuredevops/modulePipelines/ms.insights.metricalerts.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Insights/metricAlerts' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml b/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml index 20366954cd..b6bbc6f738 100644 --- a/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml +++ b/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Insights/privateLinkScopes' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml b/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml index 2ef79850c1..5a493aeb1b 100644 --- a/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml +++ b/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Insights/scheduledQueryRules' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.keyvault.vaults.yml b/.azuredevops/modulePipelines/ms.keyvault.vaults.yml index dbb8d08af1..7a3860709b 100644 --- a/.azuredevops/modulePipelines/ms.keyvault.vaults.yml +++ b/.azuredevops/modulePipelines/ms.keyvault.vaults.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.KeyVault/vaults' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml index 5db8205c19..b6cc941130 100644 --- a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml +++ b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.KubernetesConfiguration/extensions' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml index 1eb78653cc..acfe07ed24 100644 --- a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml +++ b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.KubernetesConfiguration/fluxConfigurations' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.logic.workflows.yml b/.azuredevops/modulePipelines/ms.logic.workflows.yml index b714053664..dd9361da78 100644 --- a/.azuredevops/modulePipelines/ms.logic.workflows.yml +++ b/.azuredevops/modulePipelines/ms.logic.workflows.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Logic/workflows' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml b/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml index b4b74f62f2..f3f74d0681 100644 --- a/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.MachineLearningServices/workspaces' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml b/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml index 95af46c4a4..44003916d7 100644 --- a/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml +++ b/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.ManagedIdentity/userAssignedIdentities' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml b/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml index c09372673e..58780f023f 100644 --- a/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml +++ b/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.ManagedServices/registrationDefinitions' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - path: $(modulePath)/.test/rg.parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.management.managementgroups.yml b/.azuredevops/modulePipelines/ms.management.managementgroups.yml index 1421222565..534422fa80 100644 --- a/.azuredevops/modulePipelines/ms.management.managementgroups.yml +++ b/.azuredevops/modulePipelines/ms.management.managementgroups.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Management/managementGroups' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml b/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml index fc9cd95f0c..06f47a7624 100644 --- a/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml +++ b/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml @@ -33,24 +33,8 @@ variables: value: '/modules/Microsoft.NetApp/netAppAccounts' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/nfs3.parameters.json - - path: $(modulePath)/.test/nfs41.parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.applicationgateways.yml b/.azuredevops/modulePipelines/ms.network.applicationgateways.yml index 1bb3ca433e..089f36d451 100644 --- a/.azuredevops/modulePipelines/ms.network.applicationgateways.yml +++ b/.azuredevops/modulePipelines/ms.network.applicationgateways.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Network/applicationGateways' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml b/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml index 41234d8952..32e0860f9b 100644 --- a/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml +++ b/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Network/applicationSecurityGroups' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml b/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml index 18869e1829..339d6385ea 100644 --- a/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml +++ b/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Network/azureFirewalls' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.bastionhosts.yml b/.azuredevops/modulePipelines/ms.network.bastionhosts.yml index 3b23931433..5c93400a90 100644 --- a/.azuredevops/modulePipelines/ms.network.bastionhosts.yml +++ b/.azuredevops/modulePipelines/ms.network.bastionhosts.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.Network/bastionHosts' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.connections.yml b/.azuredevops/modulePipelines/ms.network.connections.yml index 8829c6f4f8..a98b18f7e4 100644 --- a/.azuredevops/modulePipelines/ms.network.connections.yml +++ b/.azuredevops/modulePipelines/ms.network.connections.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Network/connections' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/vnet2vnet.parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml b/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml index 0048290316..adb14ace55 100644 --- a/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml +++ b/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Network/ddosProtectionPlans' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml b/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml index 67952d5124..070025b6ec 100644 --- a/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml +++ b/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Network/expressRouteCircuits' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml b/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml index d21c7e7891..e29811d915 100644 --- a/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml +++ b/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Network/firewallPolicies' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.frontdoors.yml b/.azuredevops/modulePipelines/ms.network.frontdoors.yml index ef7e06e4d6..3dfe83ff4f 100644 --- a/.azuredevops/modulePipelines/ms.network.frontdoors.yml +++ b/.azuredevops/modulePipelines/ms.network.frontdoors.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Network/frontDoors' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.ipgroups.yml b/.azuredevops/modulePipelines/ms.network.ipgroups.yml index a669614273..6131559b75 100644 --- a/.azuredevops/modulePipelines/ms.network.ipgroups.yml +++ b/.azuredevops/modulePipelines/ms.network.ipgroups.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Network/ipGroups' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.loadbalancers.yml b/.azuredevops/modulePipelines/ms.network.loadbalancers.yml index f2031b3c25..1d0b2de39e 100644 --- a/.azuredevops/modulePipelines/ms.network.loadbalancers.yml +++ b/.azuredevops/modulePipelines/ms.network.loadbalancers.yml @@ -33,24 +33,8 @@ variables: value: '/modules/Microsoft.Network/loadBalancers' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/internal.parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml b/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml index b1cc96a7fa..79abf9dec2 100644 --- a/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml +++ b/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Network/localNetworkGateways' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.natgateways.yml b/.azuredevops/modulePipelines/ms.network.natgateways.yml index 2cdbdc925b..043b026083 100644 --- a/.azuredevops/modulePipelines/ms.network.natgateways.yml +++ b/.azuredevops/modulePipelines/ms.network.natgateways.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Network/natGateways' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml b/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml index 3abd5d8e1b..f70123178e 100644 --- a/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml +++ b/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.Network/networkInterfaces' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml b/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml index 79922a2bff..441be9310d 100644 --- a/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml +++ b/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.Network/networkSecurityGroups' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.networkwatchers.yml b/.azuredevops/modulePipelines/ms.network.networkwatchers.yml index d0c9d12bdd..6583fdfbda 100644 --- a/.azuredevops/modulePipelines/ms.network.networkwatchers.yml +++ b/.azuredevops/modulePipelines/ms.network.networkwatchers.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.Network/networkWatchers' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.privatednszones.yml b/.azuredevops/modulePipelines/ms.network.privatednszones.yml index 910a3db3fc..b6cb3b9b06 100644 --- a/.azuredevops/modulePipelines/ms.network.privatednszones.yml +++ b/.azuredevops/modulePipelines/ms.network.privatednszones.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.Network/privateDnsZones' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.privateendpoints.yml b/.azuredevops/modulePipelines/ms.network.privateendpoints.yml index 03a09207a2..a349481f41 100644 --- a/.azuredevops/modulePipelines/ms.network.privateendpoints.yml +++ b/.azuredevops/modulePipelines/ms.network.privateendpoints.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.Network/privateEndpoints' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml b/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml index a6444b9ba0..cf2e7ea765 100644 --- a/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml +++ b/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Network/publicIPAddresses' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml b/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml index a52f085e9b..8b75d48706 100644 --- a/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml +++ b/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Network/publicIPPrefixes' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.routetables.yml b/.azuredevops/modulePipelines/ms.network.routetables.yml index 358639097d..33320145c5 100644 --- a/.azuredevops/modulePipelines/ms.network.routetables.yml +++ b/.azuredevops/modulePipelines/ms.network.routetables.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Network/routeTables' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml b/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml index bcc9147522..e04be42ee1 100644 --- a/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml +++ b/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Network/trafficmanagerprofiles' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.virtualhubs.yml b/.azuredevops/modulePipelines/ms.network.virtualhubs.yml index f04ecd43ca..1e963e795a 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualhubs.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualhubs.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.Network/virtualHubs' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml b/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml index 761f2a5ea2..a12d7a69d2 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.Network/virtualNetworkGateways' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/expressRoute.parameters.json - - path: $(modulePath)/.test/vpn.parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml b/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml index ef1e55e526..f7007deff1 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.Network/virtualNetworks' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - path: $(modulePath)/.test/vnetPeering.parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.virtualwans.yml b/.azuredevops/modulePipelines/ms.network.virtualwans.yml index 708578f3e8..0222690428 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualwans.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualwans.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.Network/virtualWans' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.vpngateways.yml b/.azuredevops/modulePipelines/ms.network.vpngateways.yml index 9c5ad45b58..a7a1ba065d 100644 --- a/.azuredevops/modulePipelines/ms.network.vpngateways.yml +++ b/.azuredevops/modulePipelines/ms.network.vpngateways.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.Network/vpnGateways' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.vpnsites.yml b/.azuredevops/modulePipelines/ms.network.vpnsites.yml index 7f6c140d5d..560ba4eee7 100644 --- a/.azuredevops/modulePipelines/ms.network.vpnsites.yml +++ b/.azuredevops/modulePipelines/ms.network.vpnsites.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.Network/vpnSites' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml b/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml index 00787f4534..b44d17d29f 100644 --- a/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.OperationalInsights/workspaces' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml b/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml index be56cbbb71..cc19cbdb6a 100644 --- a/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml +++ b/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml @@ -33,24 +33,8 @@ variables: value: '/modules/Microsoft.OperationsManagement/solutions' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/nonms.parameters.json - - path: $(modulePath)/.test/ms.parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml b/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml index bde801688a..f1f2750755 100644 --- a/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml +++ b/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml @@ -33,27 +33,8 @@ variables: value: '/modules/Microsoft.RecoveryServices/vaults' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/min.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - path: $(modulePath)/.test/dr.parameters.json - templateFilePath: $(modulePath)/deploy.bicep - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml b/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml index 274443cc66..5b75a6660e 100644 --- a/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml +++ b/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.Resources/deploymentScripts' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/cli.parameters.json - - path: $(modulePath)/.test/ps.parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml b/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml index 658da84eec..db49f8b10f 100644 --- a/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml +++ b/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Resources/resourceGroups' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.resources.tags.yml b/.azuredevops/modulePipelines/ms.resources.tags.yml index a0f4452171..476c7e58b2 100644 --- a/.azuredevops/modulePipelines/ms.resources.tags.yml +++ b/.azuredevops/modulePipelines/ms.resources.tags.yml @@ -33,24 +33,8 @@ variables: value: '/modules/Microsoft.Resources/tags' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/rg.parameters.json - - path: $(modulePath)/.test/sub.parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml b/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml index 40df763f2c..bc6de5b01e 100644 --- a/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml +++ b/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Security/azureSecurityCenter' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml b/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml index d4d9f1515c..641685ee3e 100644 --- a/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml +++ b/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.ServiceBus/namespaces' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml b/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml index 75b496efb3..cfe655f35f 100644 --- a/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml +++ b/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml @@ -33,24 +33,8 @@ variables: value: '/modules/Microsoft.ServiceFabric/clusters' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/full.parameters.json - - path: $(modulePath)/.test/cert.parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.sql.managedinstances.yml b/.azuredevops/modulePipelines/ms.sql.managedinstances.yml index 5ac8c060d1..93296a58b1 100644 --- a/.azuredevops/modulePipelines/ms.sql.managedinstances.yml +++ b/.azuredevops/modulePipelines/ms.sql.managedinstances.yml @@ -33,23 +33,9 @@ variables: value: '/modules/Microsoft.Sql/managedInstances' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - defaultJobTimeoutInMinutes: 360 - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' + defaultJobTimeoutInMinutes: 360 diff --git a/.azuredevops/modulePipelines/ms.sql.servers.yml b/.azuredevops/modulePipelines/ms.sql.servers.yml index 68d627a3b8..44ca0ecc9e 100644 --- a/.azuredevops/modulePipelines/ms.sql.servers.yml +++ b/.azuredevops/modulePipelines/ms.sql.servers.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.Sql/servers' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - path: $(modulePath)/.test/admin.parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml b/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml index ee4f3a4065..c5cf45d98a 100644 --- a/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml +++ b/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml @@ -33,26 +33,8 @@ variables: value: '/modules/Microsoft.Storage/storageAccounts' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/nfs.parameters.json - - path: $(modulePath)/.test/parameters.json - - path: $(modulePath)/.test/v1.parameters.json - - path: $(modulePath)/.test/encr.parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml b/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml index 6006a313e5..734410bb5b 100644 --- a/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml +++ b/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.Synapse/privateLinkHubs' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml b/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml index 93aeaacb48..4f7265ffdf 100644 --- a/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml +++ b/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.VirtualMachineImages/imageTemplates' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.web.connections.yml b/.azuredevops/modulePipelines/ms.web.connections.yml index b19b3f5b70..7f8890ab6e 100644 --- a/.azuredevops/modulePipelines/ms.web.connections.yml +++ b/.azuredevops/modulePipelines/ms.web.connections.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Web/connections' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml b/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml index 6595728739..0bf46eabec 100644 --- a/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml +++ b/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml @@ -33,24 +33,9 @@ variables: value: '/modules/Microsoft.Web/hostingEnvironments' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/asev2.parameters.json - - path: $(modulePath)/.test/asev3.parameters.json - defaultJobTimeoutInMinutes: 180 - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' + defaultJobTimeoutInMinutes: 180 diff --git a/.azuredevops/modulePipelines/ms.web.serverfarms.yml b/.azuredevops/modulePipelines/ms.web.serverfarms.yml index aee87bf599..128ea0fc1a 100644 --- a/.azuredevops/modulePipelines/ms.web.serverfarms.yml +++ b/.azuredevops/modulePipelines/ms.web.serverfarms.yml @@ -33,22 +33,8 @@ variables: value: '/modules/Microsoft.Web/serverfarms' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.web.sites.yml b/.azuredevops/modulePipelines/ms.web.sites.yml index 9d96269e76..468d79a396 100644 --- a/.azuredevops/modulePipelines/ms.web.sites.yml +++ b/.azuredevops/modulePipelines/ms.web.sites.yml @@ -33,25 +33,8 @@ variables: value: '/modules/Microsoft.Web/sites' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/fa.min.parameters.json - - path: $(modulePath)/.test/fa.parameters.json - - path: $(modulePath)/.test/wa.min.parameters.json - - path: $(modulePath)/.test/wa.parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.web.staticsites.yml b/.azuredevops/modulePipelines/ms.web.staticsites.yml index 26c5b88e54..f2aafc49ed 100644 --- a/.azuredevops/modulePipelines/ms.web.staticsites.yml +++ b/.azuredevops/modulePipelines/ms.web.staticsites.yml @@ -33,23 +33,8 @@ variables: value: '/modules/Microsoft.Web/staticSites' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/pipelineTemplates/jobs.getParameterFiles.yml b/.azuredevops/pipelineTemplates/jobs.getParameterFiles.yml new file mode 100644 index 0000000000..91d5d1d734 --- /dev/null +++ b/.azuredevops/pipelineTemplates/jobs.getParameterFiles.yml @@ -0,0 +1,51 @@ +parameters: + # Pipeline-related parameters + poolName: '$(poolName)' + vmImage: '$(vmImage)' + + # Logic-related parameters + modulePath: '$(modulePath)' + +##---------------------------------------------## +## TEMPLATE LOGIC ## +##---------------------------------------------## +jobs: + - job: getParameterFilePaths + displayName: Get deployment test file paths + pool: + ${{ if ne(parameters.vmImage, '') }}: + vmImage: ${{ parameters.vmImage }} + ${{ if ne(parameters.poolName, '') }}: + name: ${{ parameters.poolName }} + steps: + - task: PowerShell@2 + displayName: 'Get parameter files' + name: getParameterFilePathsTask + inputs: + targetType: inline + pwsh: true + script: | + # Load used functions + . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Get-ModuleTestFileList.ps1') + + $functionInput = @{ + ModulePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' + } + + Write-Verbose "Invoke task with" -Verbose + Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose + + # Set agent up + $deploymentTestPaths = Get-ModuleTestFileList @functionInput -Verbose + + $testTable = @{} + foreach($deploymentTestPath in $deploymentTestPaths) { + $deploymentTestFileName = Split-Path $deploymentTestPath -Leaf + $testTable[$deploymentTestFileName] = @{ + parameterFilePath = $deploymentTestPath + } + } + + $deploymentTestPathsOutput = $testTable | ConvertTo-Json -Compress + Write-Host ('##vso[task.setVariable variable=parameterTests;isOutput=true]{0}' -f ($testTable | ConvertTo-Json -Compress)) + Write-Verbose "Parameter files: $deploymentTestPathsOutput" -Verbose diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 207b45e811..c1e80bf926 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -21,26 +21,28 @@ ## ## NOTE: If you don't need to overwrite a shared value, you can IGNORE this section ## -## |=================================================================================================================================================================================================================================| -## | Parameter | Default Value | Description | Example | -## |---------------------------------|--------------------------------------|-----------------------------------------------------------------------------------------------------------|--------------------------------------------| -## | serviceConnection | '$(serviceConnection)' | The service connection that connects to Azure | 'demo-internal' | -## | removeDeployment | '$(removeDeployment)' | Set to [true] to flag resource for removal. If not provided, defaults to false. | 'true' | -## | poolName | '$(poolName)' | You can provide either a [poolname] or [vmImage] to run the job on | 'Custom Deployment Pool' | -## | vmImage | '$(vmImage)' | You can provide either a [poolname] or [vmImage] to run the job on | 'ubuntu20.04' | -## | defaultJobTimeoutInMinutes | 120 | The timeout for the job in this pipeline | 120 | -## | checkoutRepositories | '' | An optional list of repositories to check out at the beginning of this job in addition to the source | 'Components' | -## | modulePath | '$(modulePath)' | The path to the module to deploy. E.g. [c:/KeyVault] | 'c:/KeyVault' | -## | deploymentBlocks | | The parameter file(s) to deploy with. Must be provided | path: 'C:/parameters.json' | -## | location | '$(location)' | The location to deploy with | 'EastUs2' | -## | resourceGroupName | '$(resourceGroupName)' | The resourcegroup to deploy into. Required only for Resource-Group-Level deployments | 'validation-rg' | -## | subscriptionId | '$(ARM_SUBSCRIPTION_ID)' | The id of the subscription to deploy into when using a Management group service connection | 'aed7c000-6387-412e-bed0-24dfddf4bbc6' | -## | managementGroupId | '$(ARM_MGMTGROUP_ID)' | The id of the management group to deploy into. Required only for Management-Group-Level deployments | '6ycc9620-cb01-454f-9ebc-fc6b1df48d64' | -## | parametersRepository | '$(Build.Repository.Name)' | The respository with the parameter files. Defaults to the triggering repository | 'Solutions' | -## | modulesRepository | '$(modulesRepository)' | The respository with the modules. | 'Components' | -## | azurePowerShellVersion | '$(azurePowerShellVersion)' | Used for configuring the Azure PowerShellModules Version, one of the example values. | 'latestVersion' or 'OtherVersion' | -## | preferredAzurePowerShellVersion | '$(preferredAzurePowerShellVersion)' | Used for configuring the Azure PowerShellModules Version, either an empty string or the specific version. | '4.4.0' | -## |=================================================================================================================================================================================================================================| +## |============================================================================================================================================================================================================================================| +## | Parameter | Default Value | Description | Example | +## |---------------------------------|--------------------------------------|-----------------------------------------------------------------------------------------------------------|-------------------------------------------------------| +## | serviceConnection | '$(serviceConnection)' | The service connection that connects to Azure. | 'demo-internal' | +## | poolName | '$(poolName)' | You can provide either a [poolname] or [vmImage] to run the job on. | 'Custom Deployment Pool' | +## | vmImage | '$(vmImage)' | You can provide either a [poolname] or [vmImage] to run the job on. | 'ubuntu20.04' | +## | defaultJobTimeoutInMinutes | 120 | The timeout for the job in this pipeline. | 120 | +## | checkoutRepositories | '' | An optional list of repositories to check out at the beginning of this job in addition to the source. | 'Components' | +## | removeDeployment | 'true' | Set to [true] to flag resources for removal. If not provided, defaults to true. | 'true' | +## | templateFilePath | '' | Path to the template file to deploy. | 'arm/Microsoft.AnalysisServices/servers/deploy.bicep' | +## | customParameterFileTokens | '' | | | +## | jobDisplayName | '' | The display name of the job. | 'Deploy module' | +## | modulePath | '$(modulePath)' | The path to the module to deploy. | 'c:/KeyVault' | +## | location | '$(location)' | The location to deploy resources to. | 'EastUs2' | +## | resourceGroupName | '$(resourceGroupName)' | The resourcegroup to deploy into. Required only for Resource-Group-Level deployments. | 'validation-rg' | +## | subscriptionId | '$(ARM_SUBSCRIPTION_ID)' | The id of the subscription to deploy into when using a Management group service connection. | 'aed7c000-6387-412e-bed0-24dfddf4bbc6' | +## | managementGroupId | '$(ARM_MGMTGROUP_ID)' | The id of the management group to deploy into. Required only for Management-Group-Level deployments. | '6ycc9620-cb01-454f-9ebc-fc6b1df48d64' | +## | parametersRepository | '$(Build.Repository.Name)' | The respository with the parameter files. Defaults to the triggering repository. | 'Solutions' | +## | modulesRepository | '$(modulesRepository)' | The respository with the modules. | 'Components' | +## | azurePowerShellVersion | '$(azurePowerShellVersion)' | Used for configuring the Azure PowerShellModules Version, one of the example values. | 'latestVersion' or 'OtherVersion' | +## | preferredAzurePowerShellVersion | '$(preferredAzurePowerShellVersion)' | Used for configuring the Azure PowerShellModules Version, either an empty string or the specific version. | '4.4.0' | +## |============================================================================================================================================================================================================================================| ## ##---------------------------------------------## @@ -51,11 +53,11 @@ parameters: vmImage: '$(vmImage)' defaultJobTimeoutInMinutes: 120 checkoutRepositories: '' - dependsOn: [] # Logic-related parameters removeDeployment: false + templateFilePath: '' + customParameterFileTokens: '' modulePath: '$(modulePath)' - deploymentBlocks: '' location: '$(location)' resourceGroupName: '$(resourceGroupName)' subscriptionId: '$(ARM_SUBSCRIPTION_ID)' @@ -69,108 +71,83 @@ parameters: ##---------------------------------------------## ## TEMPLATE LOGIC ## ##---------------------------------------------## - jobs: - - ${{ each deploymentBlock in parameters.deploymentBlocks }}: - - job: ${{ deploymentBlock.jobName }} - - ${{ if ne( deploymentBlock.displayName, '') }}: - displayName: ${{ deploymentBlock.displayName }} - ${{ if eq( deploymentBlock.displayName, '') }}: - displayName: Deploy with [${{ replace( deploymentBlock.path, '$(modulePath)', '') }}] - timeoutInMinutes: ${{ parameters.defaultJobTimeoutInMinutes }} - ${{ if ne( parameters.dependsOn, '') }}: - dependsOn: ${{ parameters.dependsOn }} - pool: - ${{ if ne(parameters.vmImage, '') }}: - vmImage: ${{ parameters.vmImage }} - ${{ if ne(parameters.poolName, '') }}: - name: ${{ parameters.poolName }} - - steps: - # [Checkout Repositories] task(s) - #-------------------------------- - - checkout: self - - ${{ if ne(parameters.checkoutRepositories, '') }}: - - ? ${{ each checkoutRepository in parameters.checkoutRepositories }} - : - checkout: ${{ checkoutRepository }} - fetchDepth: 1 # the depth of commits to ask Git to fetch; if not set defaults to no limit - path: 's/${{ checkoutRepository }}' - - # [Agent] Prepare environment - #---------------------------- - - task: PowerShell@2 - displayName: 'Setup agent' - inputs: - targetType: inline - pwsh: true - script: | - # Load used functions - . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Set-EnvironmentOnAgent.ps1') - - # Define PS modules to install on the runner - $Modules = @( - @{ Name = 'Az.Accounts' }, - @{ Name = 'Az.Resources' } - ) - - # Additional PS modules need to be installed for the removal step in case it is enabled - if ('${{ parameters.removeDeployment}}' -eq 'true') { - $Modules += @( - @{ Name = 'Az.CognitiveServices' }, - @{ Name = 'Az.Compute' }, - @{ Name = 'Az.KeyVault' }, - @{ Name = 'Az.Monitor' }, - @{ Name = 'Az.OperationalInsights' }, - @{ Name = 'Az.RecoveryServices' } - ) - } - - # Set agent up - Set-EnvironmentOnAgent -PSModules $Modules - - # [Multi Repo] Support task - #-------------------------- - - task: PowerShell@2 - displayName: Handle Multi-Repo Invocation - inputs: - targetType: inline - pwsh: true - script: | - # Handle multiple-repositories - if( "${{ join(';',parameters.checkoutRepositories) }}".length -gt 0) { - Write-Verbose "Multi-Repo Checkout" -Verbose - $moduleRepoRoot = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulesRepository)' - $parametersRepoRoot = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.parametersRepository }}' - } else { - Write-Verbose "No Multi-Repo Checkout" -Verbose - $moduleRepoRoot = '$(System.DefaultWorkingDirectory)' - $parametersRepoRoot = '$(System.DefaultWorkingDirectory)' - } - Write-Output "##vso[task.setvariable variable=ModuleRepoRoot]$moduleRepoRoot" - Write-Output "##vso[task.setvariable variable=parametersRepoRoot]$parametersRepoRoot" - - # [Agent] Replace tokens - #----------------------- + - template: /.azuredevops/pipelineTemplates/jobs.getParameterFiles.yml + - job: deploy + displayName: 'Deploying ' + timeoutInMinutes: ${{ parameters.defaultJobTimeoutInMinutes }} + pool: + ${{ if ne(parameters.vmImage, '') }}: + vmImage: ${{ parameters.vmImage }} + ${{ if ne(parameters.poolName, '') }}: + name: ${{ parameters.poolName }} + dependsOn: + - getParameterFilePaths + strategy: + matrix: $[ dependencies.getParameterFilePaths.outputs['getParameterFilePathsTask.parameterTests'] ] + ##---------------------------------------------## + ## TEMPLATE LOGIC ## + ##---------------------------------------------## + steps: + # [Agent] Prepare environment + #---------------------------- + - task: PowerShell@2 + displayName: 'Setup agent for deployment' + inputs: + targetType: inline + pwsh: true + script: | + # Load used functions + . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Set-EnvironmentOnAgent.ps1') + + # Define PS modules to install on the runner + $Modules = @( + @{ Name = 'Az.Accounts' }, + @{ Name = 'Az.Resources' } + ) + + # Additional PS modules need to be installed for the removal step in case it is enabled + if ('${{ parameters.removeDeployment}}' -eq 'true') { + $Modules += @( + @{ Name = 'Az.CognitiveServices' }, + @{ Name = 'Az.Compute' }, + @{ Name = 'Az.KeyVault' }, + @{ Name = 'Az.Monitor' }, + @{ Name = 'Az.OperationalInsights' }, + @{ Name = 'Az.RecoveryServices' } + ) + } + + # Set agent up + Set-EnvironmentOnAgent -PSModules $Modules + + # [Agent] Replace tokens + #----------------------- + - ${{ if not(contains( parameters.templateFilePath, '.dependencies')) }}: - task: AzurePowerShell@5 - displayName: 'Replace Tokens [${{ deploymentBlock.path }}] via connection [${{ parameters.serviceConnection }}]' + displayName: 'Replace Tokens [$(parameterFilePath)] via connection [${{ parameters.serviceConnection }}]' inputs: azureSubscription: ${{ parameters.serviceConnection }} - azurePowerShellVersion: ${{ parameters.azurePowerShellVersion }} - preferredAzurePowerShellVersion: ${{ parameters.preferredAzurePowerShellVersion }} + azurePowerShellVersion: 'latestVersion' + preferredAzurePowerShellVersion: '' ScriptType: InlineScript pwsh: true inline: | # Load used functions - . (Join-Path '$(moduleRepoRoot)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') + . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') # Load Settings File - $Settings = Get-Content -Path (Join-Path '$(moduleRepoRoot)' 'settings.json') | ConvertFrom-Json -AsHashTable + $Settings = Get-Content -Path (Join-Path '$(System.DefaultWorkingDirectory)' 'settings.json') | ConvertFrom-Json -AsHashTable + + if((Split-Path '$(parameterFilePath)' -Extension) -ne '.json') { + Write-Verbose 'Skipping token replacement as the deployment test file is no JSON-Parameter file' -Verbose + return + } # Construct Token Function Input $ConvertTokensInputs = @{ Tokens = @{} - FilePath = Join-Path '$(parametersRepoRoot)' '${{ deploymentBlock.path }}' + FilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' TokenPrefix = $Settings.parameterFileTokens.tokenPrefix TokenSuffix = $Settings.parameterFileTokens.tokenSuffix } @@ -195,8 +172,8 @@ jobs: } # Add custom tokens (passed in via the pipeline) - if(-not [String]::IsNullOrEmpty('${{ deploymentBlock.customParameterFileTokens }}')) { - $customTokens = '${{ deploymentBlock.customParameterFileTokens }}' | ConvertFrom-Json -AsHashTable + if(-not [String]::IsNullOrEmpty('${{ parameters.customParameterFileTokens }}')) { + $customTokens = '${{ parameters.customParameterFileTokens }}' | ConvertFrom-Json -AsHashTable Write-Verbose ('Using custom parameter file tokens [{0}]' -f ($customTokens.Keys -join ', ')) -Verbose $ConvertTokensInputs.Tokens += $customTokens } @@ -204,168 +181,188 @@ jobs: # Invoke Token Replacement Functionality $null = Convert-TokensInFile @ConvertTokensInputs - # [Validation] task(s) - #--------------------- - - task: AzurePowerShell@5 - displayName: 'Validate [${{ deploymentBlock.path }}] via connection [${{ parameters.serviceConnection }}]' - inputs: - azureSubscription: ${{ parameters.serviceConnection }} - azurePowerShellVersion: ${{ parameters.azurePowerShellVersion }} - preferredAzurePowerShellVersion: ${{ parameters.preferredAzurePowerShellVersion }} - ScriptType: InlineScript - pwsh: true - inline: | - # Load used functions - . (Join-Path '$(moduleRepoRoot)' '$(pipelineFunctionsPath)' 'resourceDeployment' 'Test-TemplateDeployment.ps1') - - if(-not [String]::IsNullOrEmpty('${{ deploymentBlock.templateFilePath }}')) { - $templateFilePath = Join-Path '$(moduleRepoRoot)' '${{ deploymentBlock.templateFilePath }}' - } else { - # Use default path - $templateFilePath = (Test-Path (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.bicep')) ? - (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.bicep') : - (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.json') - } - - # ----------- # - # INVOKE TEST # - # ----------- # - $functionInput = @{ - templateFilePath = $templateFilePath - location = '${{ parameters.location }}' - resourceGroupName = '${{ parameters.resourceGroupName }}' - subscriptionId = '${{ parameters.subscriptionId }}' - managementGroupId = '${{ parameters.managementGroupId }}' - additionalParameters = @{} - } - - if(-not [String]::IsNullOrEmpty('${{ deploymentBlock.path }}')) { - $functionInput['parameterFilePath'] = Join-Path '$(ParametersRepoRoot)' '${{ deploymentBlock.path }}' - } - - $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json - if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { - $functionInput['additionalParameters'] += @{ - enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry - } - } - - Write-Verbose "Invoke task with" -Verbose - Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose - - Test-TemplateDeployment @functionInput -Verbose - - # [Deployment] task(s) - #--------------------- - - task: AzurePowerShell@5 - displayName: 'Deploy [${{ deploymentBlock.path }}] via connection [${{ parameters.serviceConnection }}]' - name: 'DeployModule' - inputs: - azureSubscription: ${{ parameters.serviceConnection }} - azurePowerShellVersion: ${{ parameters.azurePowerShellVersion }} - preferredAzurePowerShellVersion: ${{ parameters.preferredAzurePowerShellVersion }} - pwsh: true - ScriptType: InlineScript - inline: | - # Load used functions - . (Join-Path '$(moduleRepoRoot)' '$(pipelineFunctionsPath)' 'resourceDeployment' 'New-TemplateDeployment.ps1') - - if(-not [String]::IsNullOrEmpty('${{ deploymentBlock.templateFilePath }}')) { - $templateFilePath = Join-Path '$(moduleRepoRoot)' '${{ deploymentBlock.templateFilePath }}' - } else { - # Use default path - $templateFilePath = (Test-Path (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.bicep')) ? - (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.bicep') : - (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.json') - } - - # ----------------- # - # INVOKE DEPLOYMENT # - # ----------------- # - $functionInput = @{ - templateFilePath = $templateFilePath - location = '${{ parameters.location }}' - resourceGroupName = '${{ parameters.resourceGroupName }}' - subscriptionId = '${{ parameters.subscriptionId }}' - managementGroupId = '${{ parameters.managementGroupId }}' - doNotThrow = $true - additionalParameters = @{} - } - - if(-not [String]::IsNullOrEmpty('${{ deploymentBlock.path }}')) { - $functionInput['parameterFilePath'] = Join-Path '$(ParametersRepoRoot)' '${{ deploymentBlock.path }}' - } - - $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json - if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { - $functionInput['additionalParameters'] += @{ - enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry - } - } - - Write-Verbose "Invoke task with" -Verbose - Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose - - # Invoke deployment - $res = New-TemplateDeployment @functionInput -Verbose - - # Get deployment name - Write-Host ('##vso[task.setvariable variable=deploymentName]{0}' -f $res.deploymentName) - - # Populate further outputs - $deploymentOutputHash=@{} - - foreach ($outputKey in $res.deploymentOutput.Keys) { - Write-Output ('##vso[task.setvariable variable={0}]{1}' -f $outputKey, $res.deploymentOutput[$outputKey].Value) - $deploymentOutputHash.add($outputKey,$res.deploymentOutput[$outputKey].Value) - } - - $deploymentOutput = $deploymentOutputHash | ConvertTo-Json -Compress -Depth 100 - Write-Verbose "Deployment output: $deploymentOutput" -Verbose - Write-Output ('##vso[task.setvariable variable={0};isOutput=true]{1}' -f 'deploymentOutput', $deploymentOutput) - - if ($res.ContainsKey('exception')) { - # Happens only if there is an exception - throw $res.exception - } - - # [Removal] task(s) - #------------------ - - task: AzurePowerShell@5 - displayName: 'Remove deployed resources via [${{ parameters.serviceConnection }}]' - condition: and(succeededOrFailed(), eq( '${{ parameters.removeDeployment }}', 'true'), not(eq(variables['deploymentName'],''))) - inputs: - azureSubscription: ${{ parameters.serviceConnection }} - azurePowerShellVersion: ${{ parameters.azurePowerShellVersion }} - preferredAzurePowerShellVersion: ${{ parameters.preferredAzurePowerShellVersion }} - ScriptType: InlineScript - failOnStandardError: false - pwsh: true - inline: | - # Load used function - . (Join-Path '$(moduleRepoRoot)' '$(pipelineFunctionsPath)' 'resourceRemoval' 'Initialize-DeploymentRemoval.ps1') - - if(-not [String]::IsNullOrEmpty('${{ deploymentBlock.templateFilePath }}')) { - $templateFilePath = Join-Path '$(moduleRepoRoot)' '${{ deploymentBlock.templateFilePath }}' - } else { - # Use default path - $templateFilePath = (Test-Path (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.bicep')) ? - (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.bicep') : - (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.json') + # [Validation] task(s) + #--------------------- + - task: AzurePowerShell@5 + displayName: 'Validate template file via connection [${{ parameters.serviceConnection }}]' + inputs: + azureSubscription: ${{ parameters.serviceConnection }} + azurePowerShellVersion: 'latestVersion' + preferredAzurePowerShellVersion: '' + ScriptType: InlineScript + pwsh: true + inline: | + # Load used functions + . (Join-Path '$(System.DefaultWorkingDirectory)' '$(pipelineFunctionsPath)' 'resourceDeployment' 'Test-TemplateDeployment.ps1') + . (Join-Path '$(System.DefaultWorkingDirectory)' '$(pipelineFunctionsPath)' 'sharedScripts' 'Get-ScopeOfTemplateFile.ps1') + + # ----------- # + # INVOKE TEST # + # ----------- # + + # Collecting information + if((Split-Path '$(parameterFilePath)' -Extension) -ne '.json') { + $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' + } else { + $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '${{ parameters.templateFilePath }}' + } + + $templateContent = az bicep build --file $templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + $parameters = $templateContent.parameters.Keys + $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json + + # Building input object + $functionInput = @{ + templateFilePath = $templateFilePath + location = '${{ parameters.location }}' + resourceGroupName = '${{ parameters.resourceGroupName }}' + subscriptionId = '${{ parameters.subscriptionId }}' + managementGroupId = '${{ parameters.managementGroupId }}' + additionalParameters = @{} + } + + if((Split-Path '$(parameterFilePath)' -Extension) -eq '.json') { + $functionInput['parameterFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' + } + + # Pass required parameters + if($parameters -contains 'namePrefix') { + $functionInput['additionalParameters'] += @{ + namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value + } + } + + if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { + $functionInput['additionalParameters'] += @{ + enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry } - - if (-not [String]::IsNullOrEmpty('$(deploymentName)')) { - $functionInput = @{ - DeploymentName = '$(deploymentName)' - TemplateFilePath = $templateFilePath - ResourceGroupName = '${{ parameters.resourceGroupName }}' - subscriptionId = '${{ parameters.subscriptionId }}' - ManagementGroupId = '${{ parameters.managementGroupId }}' - Verbose = $true - } - - Write-Verbose 'Invoke task with' -Verbose - Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose - - Initialize-DeploymentRemoval @functionInput + } + + Write-Verbose "Invoke task with" -Verbose + Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose + + Test-TemplateDeployment @functionInput -Verbose + + # [Deployment] task(s) + #--------------------- + - task: AzurePowerShell@5 + name: deployModule + displayName: 'Deploy template file via connection [${{ parameters.serviceConnection }}]' + inputs: + azureSubscription: ${{ parameters.serviceConnection }} + azurePowerShellVersion: 'latestVersion' + preferredAzurePowerShellVersion: '' + pwsh: true + ScriptType: InlineScript + inline: | + # Load used functions + . (Join-Path '$(System.DefaultWorkingDirectory)' '$(pipelineFunctionsPath)' 'resourceDeployment' 'New-TemplateDeployment.ps1') + . (Join-Path '$(System.DefaultWorkingDirectory)' '$(pipelineFunctionsPath)' 'sharedScripts' 'Get-ScopeOfTemplateFile.ps1') + + # ----------------- # + # INVOKE DEPLOYMENT # + # ----------------- # + + if((Split-Path '$(parameterFilePath)' -Extension) -ne '.json') { + $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' + } else { + $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '${{ parameters.templateFilePath }}' + } + + # Collect information + $templateContent = az bicep build --file $templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + $parameters = $templateContent.parameters.Keys + $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json + + # Building input object + $functionInput = @{ + templateFilePath = $templateFilePath + location = '${{ parameters.location }}' + resourceGroupName = '${{ parameters.resourceGroupName }}' + subscriptionId = '${{ parameters.subscriptionId }}' + managementGroupId = '${{ parameters.managementGroupId }}' + doNotThrow = $true + additionalParameters = @{} + } + + if((Split-Path '$(parameterFilePath)' -Extension) -eq '.json') { + $functionInput['parameterFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' + } + + # Pass required parameters + if($parameters -contains 'namePrefix') { + $functionInput['additionalParameters'] += @{ + namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value + } + } + + if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { + $functionInput['additionalParameters'] += @{ + enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry } + } + + Write-Verbose "Invoke task with" -Verbose + Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose + + # Invoke deployment + $res = New-TemplateDeployment @functionInput -Verbose + + # Get deployment name + Write-Host ('##vso[task.setvariable variable=deploymentName]{0}' -f $res.deploymentName) + $deploymentName=$res.deploymentName + Write-Verbose "Deployment name: $deploymentName" -Verbose + Write-Output ('##vso[task.setvariable variable={0};isOutput=true]{1}' -f 'deploymentName', $deploymentName) + + # Populate further outputs + $deploymentOutputHash=@{} + + foreach ($outputKey in $res.deploymentOutput.Keys) { + Write-Output ('##vso[task.setvariable variable={0}]{1}' -f $outputKey, $res.deploymentOutput[$outputKey].Value) + $deploymentOutputHash.add($outputKey,$res.deploymentOutput[$outputKey].Value) + } + + $deploymentOutput = $deploymentOutputHash | ConvertTo-Json -Compress -Depth 100 + Write-Verbose "Deployment output: $deploymentOutput" -Verbose + Write-Output ('##vso[task.setvariable variable={0};isOutput=true]{1}' -f 'deploymentOutput', $deploymentOutput) + + if ($res.ContainsKey('exception')) { + # Happens only if there is an exception + throw $res.exception + } + + # [Removal] task(s) + #------------------ + - task: AzurePowerShell@5 + displayName: 'Remove deployed resources via [${{ parameters.serviceConnection }}]' + condition: and(succeededOrFailed(), eq('${{ parameters.removeDeployment }}', 'true'), not(eq( '$(deploymentName)', '' ))) + inputs: + azureSubscription: ${{ parameters.serviceConnection }} + azurePowerShellVersion: ${{ parameters.azurePowerShellVersion }} + preferredAzurePowerShellVersion: ${{ parameters.preferredAzurePowerShellVersion }} + ScriptType: InlineScript + failOnStandardError: false + pwsh: true + inline: | + # Load used function + . (Join-Path '$(System.DefaultWorkingDirectory)' '$(pipelineFunctionsPath)' 'resourceRemoval' 'Initialize-DeploymentRemoval.ps1') + + if((Split-Path '$(parameterFilePath)' -Extension) -ne '.json') { + $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' + } else { + $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '${{ parameters.templateFilePath }}' + } + + $functionInput = @{ + TemplateFilePath = $templateFilePath + ResourceGroupName = '${{ parameters.resourceGroupName }}' + subscriptionId = '${{ parameters.subscriptionId }}' + ManagementGroupId = '${{ parameters.managementGroupId }}' + deploymentName = '$(deploymentName)' + Verbose = $true + } + + Write-Verbose 'Invoke task with' -Verbose + Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose + + Initialize-DeploymentRemoval @functionInput diff --git a/.azuredevops/pipelineTemplates/stages.module.yml b/.azuredevops/pipelineTemplates/stages.module.yml new file mode 100644 index 0000000000..647517a17e --- /dev/null +++ b/.azuredevops/pipelineTemplates/stages.module.yml @@ -0,0 +1,28 @@ +parameters: + removeDeployment: true + prerelease: false + templateFilePath: '' + defaultJobTimeoutInMinutes: 120 + +stages: + - stage: validation + displayName: Static validation + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml + + - stage: deployment + displayName: Deployment validation + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + parameters: + templateFilePath: '$(modulePath)/deploy.bicep' + removeDeployment: '${{ parameters.removeDeployment }}' + defaultJobTimeoutInMinutes: ${{ parameters.defaultJobTimeoutInMinutes }} + + - stage: Publishing + dependsOn: + - deployment + displayName: Publish module + condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml From 83d2a022e7c7435321e9008962b27434c1472cd5 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 09:46:55 +0200 Subject: [PATCH 033/274] Updated GH pipelines --- ...rFiles.yml => jobs.getModuleTestFiles.yml} | 4 +- .../jobs.validateModuleDeployment.yml | 6 +- .../action.yml | 14 ++--- .../validateModuleDeployment/action.yml | 60 ++++++++++++++----- .github/workflows/ms.aad.domainservices.yml | 10 ++-- .../workflows/ms.analysisservices.servers.yml | 10 ++-- .../workflows/ms.apimanagement.service.yml | 10 ++-- ...s.appconfiguration.configurationstores.yml | 10 ++-- .github/workflows/ms.authorization.locks.yml | 10 ++-- .../ms.authorization.policyassignments.yml | 10 ++-- .../ms.authorization.policydefinitions.yml | 10 ++-- .../ms.authorization.policyexemptions.yml | 10 ++-- .../ms.authorization.policysetdefinitions.yml | 10 ++-- .../ms.authorization.roleassignments.yml | 10 ++-- .../ms.authorization.roledefinitions.yml | 10 ++-- .../ms.automation.automationaccounts.yml | 10 ++-- .github/workflows/ms.batch.batchaccounts.yml | 10 ++-- .../ms.cognitiveservices.accounts.yml | 10 ++-- .../workflows/ms.compute.availabilitysets.yml | 10 ++-- .../ms.compute.diskencryptionsets.yml | 10 ++-- .github/workflows/ms.compute.disks.yml | 10 ++-- .github/workflows/ms.compute.galleries.yml | 10 ++-- .github/workflows/ms.compute.images.yml | 10 ++-- .../ms.compute.proximityplacementgroups.yml | 10 ++-- .../workflows/ms.compute.virtualmachines.yml | 10 ++-- .../ms.compute.virtualmachinescalesets.yml | 10 ++-- .github/workflows/ms.consumption.budgets.yml | 10 ++-- .../ms.containerinstance.containergroups.yml | 10 ++-- .../ms.containerregistry.registries.yml | 10 ++-- .../ms.containerservice.managedclusters.yml | 10 ++-- .../workflows/ms.databricks.workspaces.yml | 10 ++-- .../workflows/ms.datafactory.factories.yml | 10 ++-- .../ms.dataprotection.backupvaults.yml | 10 ++-- ...esktopvirtualization.applicationgroups.yml | 10 ++-- .../ms.desktopvirtualization.hostpools.yml | 10 ++-- .../ms.desktopvirtualization.scalingplans.yml | 10 ++-- .../ms.desktopvirtualization.workspaces.yml | 10 ++-- .../ms.documentdb.databaseaccounts.yml | 10 ++-- .../workflows/ms.eventgrid.systemtopics.yml | 10 ++-- .github/workflows/ms.eventgrid.topics.yml | 10 ++-- .github/workflows/ms.eventhub.namespaces.yml | 10 ++-- .github/workflows/ms.healthbot.healthbots.yml | 10 ++-- .../workflows/ms.insights.actiongroups.yml | 10 ++-- .../ms.insights.activitylogalerts.yml | 10 ++-- .github/workflows/ms.insights.components.yml | 10 ++-- .../ms.insights.diagnosticsettings.yml | 10 ++-- .../workflows/ms.insights.metricalerts.yml | 10 ++-- .../ms.insights.privatelinkscopes.yml | 10 ++-- .../ms.insights.scheduledqueryrules.yml | 10 ++-- .github/workflows/ms.keyvault.vaults.yml | 10 ++-- .../ms.kubernetesconfiguration.extensions.yml | 10 ++-- ...rnetesconfiguration.fluxconfigurations.yml | 10 ++-- .github/workflows/ms.logic.workflows.yml | 10 ++-- .../ms.machinelearningservices.workspaces.yml | 10 ++-- ...managedidentity.userassignedidentities.yml | 10 ++-- ...anagedservices.registrationdefinitions.yml | 10 ++-- .../ms.management.managementgroups.yml | 10 ++-- .../workflows/ms.netapp.netappaccounts.yml | 10 ++-- .../ms.network.applicationgateways.yml | 10 ++-- .../ms.network.applicationsecuritygroups.yml | 10 ++-- .../workflows/ms.network.azurefirewalls.yml | 10 ++-- .github/workflows/ms.network.bastionhosts.yml | 10 ++-- .github/workflows/ms.network.connections.yml | 10 ++-- .../ms.network.ddosprotectionplans.yml | 10 ++-- .../ms.network.expressroutecircuits.yml | 10 ++-- .../workflows/ms.network.firewallpolicies.yml | 10 ++-- .github/workflows/ms.network.frontdoors.yml | 10 ++-- .github/workflows/ms.network.ipgroups.yml | 10 ++-- .../workflows/ms.network.loadbalancers.yml | 10 ++-- .../ms.network.localnetworkgateways.yml | 10 ++-- .github/workflows/ms.network.natgateways.yml | 10 ++-- .../ms.network.networkinterfaces.yml | 10 ++-- .../ms.network.networksecuritygroups.yml | 10 ++-- .../workflows/ms.network.networkwatchers.yml | 10 ++-- .../workflows/ms.network.privatednszones.yml | 10 ++-- .../workflows/ms.network.privateendpoints.yml | 10 ++-- .../ms.network.publicipaddresses.yml | 10 ++-- .../workflows/ms.network.publicipprefixes.yml | 10 ++-- .github/workflows/ms.network.routetables.yml | 10 ++-- .../ms.network.trafficmanagerprofiles.yml | 10 ++-- .github/workflows/ms.network.virtualhubs.yml | 10 ++-- .../ms.network.virtualnetworkgateways.yml | 10 ++-- .../workflows/ms.network.virtualnetworks.yml | 10 ++-- .github/workflows/ms.network.virtualwans.yml | 10 ++-- .github/workflows/ms.network.vpngateways.yml | 10 ++-- .github/workflows/ms.network.vpnsites.yml | 10 ++-- .../ms.operationalinsights.workspaces.yml | 10 ++-- .../ms.operationsmanagement.solutions.yml | 10 ++-- .../workflows/ms.recoveryservices.vaults.yml | 10 ++-- .../ms.resources.deploymentscripts.yml | 10 ++-- .../workflows/ms.resources.resourcegroups.yml | 10 ++-- .github/workflows/ms.resources.tags.yml | 10 ++-- .../ms.security.azuresecuritycenter.yml | 10 ++-- .../workflows/ms.servicebus.namespaces.yml | 10 ++-- .../workflows/ms.servicefabric.clusters.yml | 10 ++-- .github/workflows/ms.sql.managedinstances.yml | 10 ++-- .github/workflows/ms.sql.servers.yml | 10 ++-- .../workflows/ms.storage.storageaccounts.yml | 10 ++-- .../workflows/ms.synapse.privatelinkhubs.yml | 10 ++-- ...ms.virtualmachineimages.imagetemplates.yml | 10 ++-- .github/workflows/ms.web.connections.yml | 10 ++-- .../workflows/ms.web.hostingenvironments.yml | 10 ++-- .github/workflows/ms.web.serverfarms.yml | 10 ++-- .github/workflows/ms.web.sites.yml | 10 ++-- .github/workflows/ms.web.staticsites.yml | 10 ++-- 105 files changed, 562 insertions(+), 532 deletions(-) rename .azuredevops/pipelineTemplates/{jobs.getParameterFiles.yml => jobs.getModuleTestFiles.yml} (96%) rename .github/actions/templates/{getParameterFiles => getModuleTestFiles}/action.yml (71%) diff --git a/.azuredevops/pipelineTemplates/jobs.getParameterFiles.yml b/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml similarity index 96% rename from .azuredevops/pipelineTemplates/jobs.getParameterFiles.yml rename to .azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml index 91d5d1d734..2adb2df303 100644 --- a/.azuredevops/pipelineTemplates/jobs.getParameterFiles.yml +++ b/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml @@ -10,7 +10,7 @@ parameters: ## TEMPLATE LOGIC ## ##---------------------------------------------## jobs: - - job: getParameterFilePaths + - job: getModuleTestFiles displayName: Get deployment test file paths pool: ${{ if ne(parameters.vmImage, '') }}: @@ -20,7 +20,7 @@ jobs: steps: - task: PowerShell@2 displayName: 'Get parameter files' - name: getParameterFilePathsTask + name: getModuleTestFilesTask inputs: targetType: inline pwsh: true diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index c1e80bf926..7c681892ef 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -72,7 +72,7 @@ parameters: ## TEMPLATE LOGIC ## ##---------------------------------------------## jobs: - - template: /.azuredevops/pipelineTemplates/jobs.getParameterFiles.yml + - template: /.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml - job: deploy displayName: 'Deploying ' timeoutInMinutes: ${{ parameters.defaultJobTimeoutInMinutes }} @@ -82,9 +82,9 @@ jobs: ${{ if ne(parameters.poolName, '') }}: name: ${{ parameters.poolName }} dependsOn: - - getParameterFilePaths + - getModuleTestFiles strategy: - matrix: $[ dependencies.getParameterFilePaths.outputs['getParameterFilePathsTask.parameterTests'] ] + matrix: $[ dependencies.getModuleTestFiles.outputs['getModuleTestFilesTask.parameterTests'] ] ##---------------------------------------------## ## TEMPLATE LOGIC ## ##---------------------------------------------## diff --git a/.github/actions/templates/getParameterFiles/action.yml b/.github/actions/templates/getModuleTestFiles/action.yml similarity index 71% rename from .github/actions/templates/getParameterFiles/action.yml rename to .github/actions/templates/getModuleTestFiles/action.yml index 4bece51252..45b7dae685 100644 --- a/.github/actions/templates/getParameterFiles/action.yml +++ b/.github/actions/templates/getModuleTestFiles/action.yml @@ -7,15 +7,15 @@ inputs: required: true outputs: - parameterFilePaths: - description: 'The parameter files to use for template evaluation' - value: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: + description: 'The module test files to use for template evaluation' + value: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} runs: using: 'composite' steps: - name: 'Get parameter file paths' - id: get-parameter-file-paths + id: get-module-test-file-paths shell: pwsh run: | # Grouping task logs @@ -28,12 +28,12 @@ runs: Write-Verbose "Invoke task with" -Verbose Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose # Get the list of parameter file paths - $parameterFilePaths = Get-ModuleTestFileList @functionInput -Verbose + $moduleTestFilePaths = Get-ModuleTestFileList @functionInput -Verbose # Output values to be accessed by next jobs - $compressedOutput = $parameterFilePaths | ConvertTo-Json -Compress + $compressedOutput = $moduleTestFilePaths | ConvertTo-Json -Compress if($compressedOutput -notmatch "\[.*\]") { $compressedOutput = "[$compressedOutput]" } Write-Verbose "Publishing output: $compressedOutput" -Verbose - Write-Output "::set-output name=parameterFilePaths::$compressedOutput" + Write-Output "::set-output name=moduleTestFilePaths::$compressedOutput" Write-Output "::endgroup::" diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 5474bd2cb7..3add28e7aa 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -11,18 +11,18 @@ ## ACTION PARAMETERS ## ##-------------------------------------------## ## -## |=====================================================================================================================================================================================| -## | Parameter | Required | Default | Description | Example | -## |---------------------------|----------|---------|-------------------------------------------------------|----------------------------------------------------------------------------| -## | templateFilePath | true | '' | The path to the template file to use for deployment | 'modules/Microsoft.ApiManagement/service/deploy.bicep' | -## | parameterFilePath | true | '' | The path to the parameter file to use for deployment | 'modules/Microsoft.ApiManagement/service/.test/parameters.json' | -## | location | true | '' | The location to use for deployment | 'WestEurope' | -## | resourceGroupName | false | '' | The resource group to deploy to | 'validation-rg' | -## | subscriptionId | false | '' | The subscriptionId to deploy to | '1a97b80a-4dda-4f50-ab53-349e29344654' | -## | managementGroupId | false | '' | The managementGroupId to deploy to | '1a97b80a-4dda-4f50-ab53-349e29344654' | -## | customParameterFileTokens | false | '' | Additional parameter file token pairs in json format. | '{"tokenName":"tokenValue"}' | -## | removeDeployment | false | 'true' | Set "true" to set module up for removal | 'true' | -## |=====================================================================================================================================================================================| +## |============================================================================================================================================================================| +## | Parameter | Required | Default | Description | Example | +## |---------------------------|----------|---------|-------------------------------------------------------|-------------------------------------------------------------------| +## | templateFilePath | true | '' | The path to the template file to use for deployment | 'arm/Microsoft.ApiManagement/service/deploy.bicep' | +## | parameterFilePath | true | '' | The path to the parameter file to use for deployment | 'arm/Microsoft.ApiManagement/service/.parameters/parameters.json' | +## | location | true | '' | The location to use for deployment | 'WestEurope' | +## | resourceGroupName | false | '' | The resource group to deploy to | 'validation-rg' | +## | subscriptionId | false | '' | The subscriptionId to deploy to | '1a97b80a-4dda-4f50-ab53-349e29344654' | +## | managementGroupId | false | '' | The managementGroupId to deploy to | '1a97b80a-4dda-4f50-ab53-349e29344654' | +## | customParameterFileTokens | false | '' | Additional parameter file token pairs in json format. | '{"tokenName":"tokenValue"}' | +## | removeDeployment | false | 'true' | Set "true" to set module up for removal | 'true' | +## |============================================================================================================================================================================| ## ######################################################### ## @@ -118,7 +118,8 @@ runs: # [Token replacement] task(s) # --------------------------- - - name: 'Replace Parameter File Tokens [${{ inputs.parameterFilePath }}] ' + - name: 'Replace Parameter File Tokens [${{ inputs.parameterFilePath }}]' + if: ${{ inputs.parameterFilePath != '' }} uses: azure/powershell@v1 with: azPSVersion: 'latest' @@ -184,11 +185,13 @@ runs: # Load used functions . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourceDeployment' 'Test-TemplateDeployment.ps1') + $templateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' + # ----------- # # INVOKE TEST # # ----------- # $functionInput = @{ - templateFilePath = '${{ inputs.templateFilePath }}' + templateFilePath = $templateFilePath location = '${{ inputs.location }}' resourceGroupName = '${{ inputs.resourceGroupName }}' subscriptionId = '${{ inputs.subscriptionId }}' @@ -200,6 +203,15 @@ runs: $functionInput['parameterFilePath'] = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' } + # Passing the resource group name as a deployment parameter if accepted + $templateContent = az bicep build --file $templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + $parameters = $templateContent.parameters.Keys + + Write-Verbose "Template" -Verbose + Write-Verbose ($templateContent | Out-String) -Verbose + Write-Verbose "Parameters" -Verbose + Write-Verbose ($parameters | Out-String) -Verbose + $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { $functionInput['additionalParameters'] += @{ @@ -207,6 +219,12 @@ runs: } } + if($parameters -contains 'namePrefix') { + $functionInput['additionalParameters'] += @{ + namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value + } + } + Write-Verbose "Invoke task with" -Verbose Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose @@ -228,8 +246,10 @@ runs: # Load used functions . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourceDeployment' 'New-TemplateDeployment.ps1') + $templateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' + $functionInput = @{ - templateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' + templateFilePath = $templateFilePath location = '${{ inputs.location }}' resourceGroupName = '${{ inputs.resourceGroupName }}' subscriptionId = '${{ inputs.subscriptionId }}' @@ -242,6 +262,10 @@ runs: $functionInput['parameterFilePath'] = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' } + # Passing the resource group name as a deployment parameter if accepted + $templateContent = az bicep build --file $templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + $parameters = $templateContent.parameters.Keys + $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { $functionInput['additionalParameters'] += @{ @@ -249,6 +273,12 @@ runs: } } + if($parameters -contains 'namePrefix') { + $functionInput['additionalParameters'] += @{ + namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value + } + } + Write-Verbose "Invoke task with" -Verbose Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose diff --git a/.github/workflows/ms.aad.domainservices.yml b/.github/workflows/ms.aad.domainservices.yml index 9c7dc030c4..6b01cd0111 100644 --- a/.github/workflows/ms.aad.domainservices.yml +++ b/.github/workflows/ms.aad.domainservices.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.analysisservices.servers.yml b/.github/workflows/ms.analysisservices.servers.yml index d89e4b0956..309af7255c 100644 --- a/.github/workflows/ms.analysisservices.servers.yml +++ b/.github/workflows/ms.analysisservices.servers.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.apimanagement.service.yml b/.github/workflows/ms.apimanagement.service.yml index b04a8a7374..e0e67eb1c2 100644 --- a/.github/workflows/ms.apimanagement.service.yml +++ b/.github/workflows/ms.apimanagement.service.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.appconfiguration.configurationstores.yml b/.github/workflows/ms.appconfiguration.configurationstores.yml index 73bc29e477..a51551c296 100644 --- a/.github/workflows/ms.appconfiguration.configurationstores.yml +++ b/.github/workflows/ms.appconfiguration.configurationstores.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.authorization.locks.yml b/.github/workflows/ms.authorization.locks.yml index 53ae10acd3..911a25dd24 100644 --- a/.github/workflows/ms.authorization.locks.yml +++ b/.github/workflows/ms.authorization.locks.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -106,7 +106,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.authorization.policyassignments.yml b/.github/workflows/ms.authorization.policyassignments.yml index e1710d9ae2..9902750e56 100644 --- a/.github/workflows/ms.authorization.policyassignments.yml +++ b/.github/workflows/ms.authorization.policyassignments.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -106,7 +106,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.authorization.policydefinitions.yml b/.github/workflows/ms.authorization.policydefinitions.yml index f3f6b3eee5..9e5c3a4e26 100644 --- a/.github/workflows/ms.authorization.policydefinitions.yml +++ b/.github/workflows/ms.authorization.policydefinitions.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -106,7 +106,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.authorization.policyexemptions.yml b/.github/workflows/ms.authorization.policyexemptions.yml index 64d0f4c63e..b6a856fe8d 100644 --- a/.github/workflows/ms.authorization.policyexemptions.yml +++ b/.github/workflows/ms.authorization.policyexemptions.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -106,7 +106,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.authorization.policysetdefinitions.yml b/.github/workflows/ms.authorization.policysetdefinitions.yml index 38a3a40b79..1b3ae1f270 100644 --- a/.github/workflows/ms.authorization.policysetdefinitions.yml +++ b/.github/workflows/ms.authorization.policysetdefinitions.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -106,7 +106,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.authorization.roleassignments.yml b/.github/workflows/ms.authorization.roleassignments.yml index 8d0f8a65c9..b2e7e88b49 100644 --- a/.github/workflows/ms.authorization.roleassignments.yml +++ b/.github/workflows/ms.authorization.roleassignments.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -106,7 +106,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.authorization.roledefinitions.yml b/.github/workflows/ms.authorization.roledefinitions.yml index dfc4ff4114..72fa94f872 100644 --- a/.github/workflows/ms.authorization.roledefinitions.yml +++ b/.github/workflows/ms.authorization.roledefinitions.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -106,7 +106,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.automation.automationaccounts.yml b/.github/workflows/ms.automation.automationaccounts.yml index 223913b69a..241914a35b 100644 --- a/.github/workflows/ms.automation.automationaccounts.yml +++ b/.github/workflows/ms.automation.automationaccounts.yml @@ -54,13 +54,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -90,7 +90,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -104,7 +104,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.batch.batchaccounts.yml b/.github/workflows/ms.batch.batchaccounts.yml index 99438c8f5e..7be9097563 100644 --- a/.github/workflows/ms.batch.batchaccounts.yml +++ b/.github/workflows/ms.batch.batchaccounts.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.cognitiveservices.accounts.yml b/.github/workflows/ms.cognitiveservices.accounts.yml index 5ea5e69477..0afc331625 100644 --- a/.github/workflows/ms.cognitiveservices.accounts.yml +++ b/.github/workflows/ms.cognitiveservices.accounts.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.compute.availabilitysets.yml b/.github/workflows/ms.compute.availabilitysets.yml index 24ee9e6810..78d020b3e8 100644 --- a/.github/workflows/ms.compute.availabilitysets.yml +++ b/.github/workflows/ms.compute.availabilitysets.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.compute.diskencryptionsets.yml b/.github/workflows/ms.compute.diskencryptionsets.yml index 2ec3d0070a..b6c7293459 100644 --- a/.github/workflows/ms.compute.diskencryptionsets.yml +++ b/.github/workflows/ms.compute.diskencryptionsets.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.compute.disks.yml b/.github/workflows/ms.compute.disks.yml index b7e448c3f8..511ba3854a 100644 --- a/.github/workflows/ms.compute.disks.yml +++ b/.github/workflows/ms.compute.disks.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.compute.galleries.yml b/.github/workflows/ms.compute.galleries.yml index d1253419b2..8fd5580d39 100644 --- a/.github/workflows/ms.compute.galleries.yml +++ b/.github/workflows/ms.compute.galleries.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.compute.images.yml b/.github/workflows/ms.compute.images.yml index 429badf603..a1fe30a983 100644 --- a/.github/workflows/ms.compute.images.yml +++ b/.github/workflows/ms.compute.images.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.compute.proximityplacementgroups.yml b/.github/workflows/ms.compute.proximityplacementgroups.yml index 039369a56c..ca67df07f8 100644 --- a/.github/workflows/ms.compute.proximityplacementgroups.yml +++ b/.github/workflows/ms.compute.proximityplacementgroups.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.compute.virtualmachines.yml b/.github/workflows/ms.compute.virtualmachines.yml index 607ff5ae93..1cc0561e70 100644 --- a/.github/workflows/ms.compute.virtualmachines.yml +++ b/.github/workflows/ms.compute.virtualmachines.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.compute.virtualmachinescalesets.yml b/.github/workflows/ms.compute.virtualmachinescalesets.yml index 7a5bfa94cd..11a244b060 100644 --- a/.github/workflows/ms.compute.virtualmachinescalesets.yml +++ b/.github/workflows/ms.compute.virtualmachinescalesets.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.consumption.budgets.yml b/.github/workflows/ms.consumption.budgets.yml index 0dcc0234b2..13a976d712 100644 --- a/.github/workflows/ms.consumption.budgets.yml +++ b/.github/workflows/ms.consumption.budgets.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.containerinstance.containergroups.yml b/.github/workflows/ms.containerinstance.containergroups.yml index ca09181a94..cc320aabe5 100644 --- a/.github/workflows/ms.containerinstance.containergroups.yml +++ b/.github/workflows/ms.containerinstance.containergroups.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.containerregistry.registries.yml b/.github/workflows/ms.containerregistry.registries.yml index 85bc59ab19..1091af5d78 100644 --- a/.github/workflows/ms.containerregistry.registries.yml +++ b/.github/workflows/ms.containerregistry.registries.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.containerservice.managedclusters.yml b/.github/workflows/ms.containerservice.managedclusters.yml index a8ecaa5331..c0260e09c8 100644 --- a/.github/workflows/ms.containerservice.managedclusters.yml +++ b/.github/workflows/ms.containerservice.managedclusters.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.databricks.workspaces.yml b/.github/workflows/ms.databricks.workspaces.yml index 74cabd195b..d41fd53671 100644 --- a/.github/workflows/ms.databricks.workspaces.yml +++ b/.github/workflows/ms.databricks.workspaces.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.datafactory.factories.yml b/.github/workflows/ms.datafactory.factories.yml index 1ae1fbb5ee..e7a31efe13 100644 --- a/.github/workflows/ms.datafactory.factories.yml +++ b/.github/workflows/ms.datafactory.factories.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.dataprotection.backupvaults.yml b/.github/workflows/ms.dataprotection.backupvaults.yml index c56adbc3f1..997e6ecee2 100644 --- a/.github/workflows/ms.dataprotection.backupvaults.yml +++ b/.github/workflows/ms.dataprotection.backupvaults.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.desktopvirtualization.applicationgroups.yml b/.github/workflows/ms.desktopvirtualization.applicationgroups.yml index 08233297a9..03b814ea04 100644 --- a/.github/workflows/ms.desktopvirtualization.applicationgroups.yml +++ b/.github/workflows/ms.desktopvirtualization.applicationgroups.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.desktopvirtualization.hostpools.yml b/.github/workflows/ms.desktopvirtualization.hostpools.yml index e9467fc5f2..ecbfda431d 100644 --- a/.github/workflows/ms.desktopvirtualization.hostpools.yml +++ b/.github/workflows/ms.desktopvirtualization.hostpools.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.desktopvirtualization.scalingplans.yml b/.github/workflows/ms.desktopvirtualization.scalingplans.yml index 2be99b6d5c..c3fb2cde5f 100644 --- a/.github/workflows/ms.desktopvirtualization.scalingplans.yml +++ b/.github/workflows/ms.desktopvirtualization.scalingplans.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.desktopvirtualization.workspaces.yml b/.github/workflows/ms.desktopvirtualization.workspaces.yml index c5598aa7af..2e5eb43f19 100644 --- a/.github/workflows/ms.desktopvirtualization.workspaces.yml +++ b/.github/workflows/ms.desktopvirtualization.workspaces.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.documentdb.databaseaccounts.yml b/.github/workflows/ms.documentdb.databaseaccounts.yml index bf98c479d8..7264642377 100644 --- a/.github/workflows/ms.documentdb.databaseaccounts.yml +++ b/.github/workflows/ms.documentdb.databaseaccounts.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.eventgrid.systemtopics.yml b/.github/workflows/ms.eventgrid.systemtopics.yml index f4f5ab3a06..93af8f714b 100644 --- a/.github/workflows/ms.eventgrid.systemtopics.yml +++ b/.github/workflows/ms.eventgrid.systemtopics.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.eventgrid.topics.yml b/.github/workflows/ms.eventgrid.topics.yml index 16a7384c71..ac87e6a5f8 100644 --- a/.github/workflows/ms.eventgrid.topics.yml +++ b/.github/workflows/ms.eventgrid.topics.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.eventhub.namespaces.yml b/.github/workflows/ms.eventhub.namespaces.yml index 1a75f805fe..c56c69dcbe 100644 --- a/.github/workflows/ms.eventhub.namespaces.yml +++ b/.github/workflows/ms.eventhub.namespaces.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.healthbot.healthbots.yml b/.github/workflows/ms.healthbot.healthbots.yml index 43530361a9..9f6d8f94ec 100644 --- a/.github/workflows/ms.healthbot.healthbots.yml +++ b/.github/workflows/ms.healthbot.healthbots.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.insights.actiongroups.yml b/.github/workflows/ms.insights.actiongroups.yml index d388901c80..1357b8420c 100644 --- a/.github/workflows/ms.insights.actiongroups.yml +++ b/.github/workflows/ms.insights.actiongroups.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.insights.activitylogalerts.yml b/.github/workflows/ms.insights.activitylogalerts.yml index 97e287c8fd..ec9edd0313 100644 --- a/.github/workflows/ms.insights.activitylogalerts.yml +++ b/.github/workflows/ms.insights.activitylogalerts.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.insights.components.yml b/.github/workflows/ms.insights.components.yml index ad8569778e..aba03d4bb6 100644 --- a/.github/workflows/ms.insights.components.yml +++ b/.github/workflows/ms.insights.components.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.insights.diagnosticsettings.yml b/.github/workflows/ms.insights.diagnosticsettings.yml index 556e6d95af..39d9cd7252 100644 --- a/.github/workflows/ms.insights.diagnosticsettings.yml +++ b/.github/workflows/ms.insights.diagnosticsettings.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.insights.metricalerts.yml b/.github/workflows/ms.insights.metricalerts.yml index c238711b06..b12c564627 100644 --- a/.github/workflows/ms.insights.metricalerts.yml +++ b/.github/workflows/ms.insights.metricalerts.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.insights.privatelinkscopes.yml b/.github/workflows/ms.insights.privatelinkscopes.yml index c342b41a94..85bd35694b 100644 --- a/.github/workflows/ms.insights.privatelinkscopes.yml +++ b/.github/workflows/ms.insights.privatelinkscopes.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.insights.scheduledqueryrules.yml b/.github/workflows/ms.insights.scheduledqueryrules.yml index f94d3e3fe9..03230b166d 100644 --- a/.github/workflows/ms.insights.scheduledqueryrules.yml +++ b/.github/workflows/ms.insights.scheduledqueryrules.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.keyvault.vaults.yml b/.github/workflows/ms.keyvault.vaults.yml index 1067ceab94..2f3f42fece 100644 --- a/.github/workflows/ms.keyvault.vaults.yml +++ b/.github/workflows/ms.keyvault.vaults.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.kubernetesconfiguration.extensions.yml b/.github/workflows/ms.kubernetesconfiguration.extensions.yml index 03163a781c..9edecff563 100644 --- a/.github/workflows/ms.kubernetesconfiguration.extensions.yml +++ b/.github/workflows/ms.kubernetesconfiguration.extensions.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.kubernetesconfiguration.fluxconfigurations.yml b/.github/workflows/ms.kubernetesconfiguration.fluxconfigurations.yml index 9d6e7ae21c..4a9175176b 100644 --- a/.github/workflows/ms.kubernetesconfiguration.fluxconfigurations.yml +++ b/.github/workflows/ms.kubernetesconfiguration.fluxconfigurations.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.logic.workflows.yml b/.github/workflows/ms.logic.workflows.yml index 19a4d65ea3..495bf7b110 100644 --- a/.github/workflows/ms.logic.workflows.yml +++ b/.github/workflows/ms.logic.workflows.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.machinelearningservices.workspaces.yml b/.github/workflows/ms.machinelearningservices.workspaces.yml index 5df607c47b..15d46d8929 100644 --- a/.github/workflows/ms.machinelearningservices.workspaces.yml +++ b/.github/workflows/ms.machinelearningservices.workspaces.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.managedidentity.userassignedidentities.yml b/.github/workflows/ms.managedidentity.userassignedidentities.yml index d0c233a4c4..222f8981b4 100644 --- a/.github/workflows/ms.managedidentity.userassignedidentities.yml +++ b/.github/workflows/ms.managedidentity.userassignedidentities.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.managedservices.registrationdefinitions.yml b/.github/workflows/ms.managedservices.registrationdefinitions.yml index 9825845d2a..a3cd098028 100644 --- a/.github/workflows/ms.managedservices.registrationdefinitions.yml +++ b/.github/workflows/ms.managedservices.registrationdefinitions.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.management.managementgroups.yml b/.github/workflows/ms.management.managementgroups.yml index ff7edf7a55..d749bd6b82 100644 --- a/.github/workflows/ms.management.managementgroups.yml +++ b/.github/workflows/ms.management.managementgroups.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.netapp.netappaccounts.yml b/.github/workflows/ms.netapp.netappaccounts.yml index 0c1aa8555b..73659e8379 100644 --- a/.github/workflows/ms.netapp.netappaccounts.yml +++ b/.github/workflows/ms.netapp.netappaccounts.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.applicationgateways.yml b/.github/workflows/ms.network.applicationgateways.yml index 930f387bce..03b3cdb45f 100644 --- a/.github/workflows/ms.network.applicationgateways.yml +++ b/.github/workflows/ms.network.applicationgateways.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.applicationsecuritygroups.yml b/.github/workflows/ms.network.applicationsecuritygroups.yml index 49f9bb3071..04a836e7a0 100644 --- a/.github/workflows/ms.network.applicationsecuritygroups.yml +++ b/.github/workflows/ms.network.applicationsecuritygroups.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.azurefirewalls.yml b/.github/workflows/ms.network.azurefirewalls.yml index 2de448b7af..6d6f9f60af 100644 --- a/.github/workflows/ms.network.azurefirewalls.yml +++ b/.github/workflows/ms.network.azurefirewalls.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.bastionhosts.yml b/.github/workflows/ms.network.bastionhosts.yml index 7bb3d48b6a..a35dee92eb 100644 --- a/.github/workflows/ms.network.bastionhosts.yml +++ b/.github/workflows/ms.network.bastionhosts.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.connections.yml b/.github/workflows/ms.network.connections.yml index 76bb4cd9bd..2ea9ff2ea1 100644 --- a/.github/workflows/ms.network.connections.yml +++ b/.github/workflows/ms.network.connections.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.ddosprotectionplans.yml b/.github/workflows/ms.network.ddosprotectionplans.yml index 4582c415a7..6ecbfe6b4a 100644 --- a/.github/workflows/ms.network.ddosprotectionplans.yml +++ b/.github/workflows/ms.network.ddosprotectionplans.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.expressroutecircuits.yml b/.github/workflows/ms.network.expressroutecircuits.yml index 4f1d1c87f1..64a9c9dee5 100644 --- a/.github/workflows/ms.network.expressroutecircuits.yml +++ b/.github/workflows/ms.network.expressroutecircuits.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.firewallpolicies.yml b/.github/workflows/ms.network.firewallpolicies.yml index fab9e32a34..706509af18 100644 --- a/.github/workflows/ms.network.firewallpolicies.yml +++ b/.github/workflows/ms.network.firewallpolicies.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.frontdoors.yml b/.github/workflows/ms.network.frontdoors.yml index 65d1960ddc..7f369b8c07 100644 --- a/.github/workflows/ms.network.frontdoors.yml +++ b/.github/workflows/ms.network.frontdoors.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.ipgroups.yml b/.github/workflows/ms.network.ipgroups.yml index c2e71a6c59..5fd6b23b22 100644 --- a/.github/workflows/ms.network.ipgroups.yml +++ b/.github/workflows/ms.network.ipgroups.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.loadbalancers.yml b/.github/workflows/ms.network.loadbalancers.yml index 6eb3b3acf4..18e032adf1 100644 --- a/.github/workflows/ms.network.loadbalancers.yml +++ b/.github/workflows/ms.network.loadbalancers.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.localnetworkgateways.yml b/.github/workflows/ms.network.localnetworkgateways.yml index 704d6dc29c..9485378e99 100644 --- a/.github/workflows/ms.network.localnetworkgateways.yml +++ b/.github/workflows/ms.network.localnetworkgateways.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.natgateways.yml b/.github/workflows/ms.network.natgateways.yml index fd3b0b0f4c..b9ca674006 100644 --- a/.github/workflows/ms.network.natgateways.yml +++ b/.github/workflows/ms.network.natgateways.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.networkinterfaces.yml b/.github/workflows/ms.network.networkinterfaces.yml index 3351651662..ed09ed1d18 100644 --- a/.github/workflows/ms.network.networkinterfaces.yml +++ b/.github/workflows/ms.network.networkinterfaces.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.networksecuritygroups.yml b/.github/workflows/ms.network.networksecuritygroups.yml index ec4143097d..d875d49927 100644 --- a/.github/workflows/ms.network.networksecuritygroups.yml +++ b/.github/workflows/ms.network.networksecuritygroups.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.networkwatchers.yml b/.github/workflows/ms.network.networkwatchers.yml index 1f1773ba2e..3ff1ba92cd 100644 --- a/.github/workflows/ms.network.networkwatchers.yml +++ b/.github/workflows/ms.network.networkwatchers.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.privatednszones.yml b/.github/workflows/ms.network.privatednszones.yml index 5186987b00..3c611769c4 100644 --- a/.github/workflows/ms.network.privatednszones.yml +++ b/.github/workflows/ms.network.privatednszones.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.privateendpoints.yml b/.github/workflows/ms.network.privateendpoints.yml index b7fed464dd..ffeabd66e9 100644 --- a/.github/workflows/ms.network.privateendpoints.yml +++ b/.github/workflows/ms.network.privateendpoints.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.publicipaddresses.yml b/.github/workflows/ms.network.publicipaddresses.yml index b1e9fbcc11..5b7c3ad56b 100644 --- a/.github/workflows/ms.network.publicipaddresses.yml +++ b/.github/workflows/ms.network.publicipaddresses.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.publicipprefixes.yml b/.github/workflows/ms.network.publicipprefixes.yml index 714bc5bdb2..0b3cb5c09c 100644 --- a/.github/workflows/ms.network.publicipprefixes.yml +++ b/.github/workflows/ms.network.publicipprefixes.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.routetables.yml b/.github/workflows/ms.network.routetables.yml index 9f4bb512c4..687956d3c9 100644 --- a/.github/workflows/ms.network.routetables.yml +++ b/.github/workflows/ms.network.routetables.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.trafficmanagerprofiles.yml b/.github/workflows/ms.network.trafficmanagerprofiles.yml index d1a0a6b561..04aaacdba0 100644 --- a/.github/workflows/ms.network.trafficmanagerprofiles.yml +++ b/.github/workflows/ms.network.trafficmanagerprofiles.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.virtualhubs.yml b/.github/workflows/ms.network.virtualhubs.yml index 9e2221dff4..3a3db63cea 100644 --- a/.github/workflows/ms.network.virtualhubs.yml +++ b/.github/workflows/ms.network.virtualhubs.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.virtualnetworkgateways.yml b/.github/workflows/ms.network.virtualnetworkgateways.yml index a96f19b58f..87b63f1468 100644 --- a/.github/workflows/ms.network.virtualnetworkgateways.yml +++ b/.github/workflows/ms.network.virtualnetworkgateways.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.virtualnetworks.yml b/.github/workflows/ms.network.virtualnetworks.yml index 8ffde5c19e..ca1f1c2ce5 100644 --- a/.github/workflows/ms.network.virtualnetworks.yml +++ b/.github/workflows/ms.network.virtualnetworks.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.virtualwans.yml b/.github/workflows/ms.network.virtualwans.yml index 911e6fe50a..c593bca2e8 100644 --- a/.github/workflows/ms.network.virtualwans.yml +++ b/.github/workflows/ms.network.virtualwans.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.vpngateways.yml b/.github/workflows/ms.network.vpngateways.yml index 2fb8cc1797..5c7134e0e0 100644 --- a/.github/workflows/ms.network.vpngateways.yml +++ b/.github/workflows/ms.network.vpngateways.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.vpnsites.yml b/.github/workflows/ms.network.vpnsites.yml index b72ddae6e1..b5d61263d9 100644 --- a/.github/workflows/ms.network.vpnsites.yml +++ b/.github/workflows/ms.network.vpnsites.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.operationalinsights.workspaces.yml b/.github/workflows/ms.operationalinsights.workspaces.yml index fd0c3c685a..9d91672748 100644 --- a/.github/workflows/ms.operationalinsights.workspaces.yml +++ b/.github/workflows/ms.operationalinsights.workspaces.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.operationsmanagement.solutions.yml b/.github/workflows/ms.operationsmanagement.solutions.yml index da92a74b21..1d73fd0b62 100644 --- a/.github/workflows/ms.operationsmanagement.solutions.yml +++ b/.github/workflows/ms.operationsmanagement.solutions.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.recoveryservices.vaults.yml b/.github/workflows/ms.recoveryservices.vaults.yml index 275e0498de..b4a9a6948e 100644 --- a/.github/workflows/ms.recoveryservices.vaults.yml +++ b/.github/workflows/ms.recoveryservices.vaults.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.resources.deploymentscripts.yml b/.github/workflows/ms.resources.deploymentscripts.yml index 32b6b0f767..f85ee0644a 100644 --- a/.github/workflows/ms.resources.deploymentscripts.yml +++ b/.github/workflows/ms.resources.deploymentscripts.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.resources.resourcegroups.yml b/.github/workflows/ms.resources.resourcegroups.yml index 60de42f8b8..a34413bafc 100644 --- a/.github/workflows/ms.resources.resourcegroups.yml +++ b/.github/workflows/ms.resources.resourcegroups.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.resources.tags.yml b/.github/workflows/ms.resources.tags.yml index fb54367126..add9d3462c 100644 --- a/.github/workflows/ms.resources.tags.yml +++ b/.github/workflows/ms.resources.tags.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.security.azuresecuritycenter.yml b/.github/workflows/ms.security.azuresecuritycenter.yml index bca0ebedff..e143a5d138 100644 --- a/.github/workflows/ms.security.azuresecuritycenter.yml +++ b/.github/workflows/ms.security.azuresecuritycenter.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.servicebus.namespaces.yml b/.github/workflows/ms.servicebus.namespaces.yml index fb84ab7ccd..3fccf82ec1 100644 --- a/.github/workflows/ms.servicebus.namespaces.yml +++ b/.github/workflows/ms.servicebus.namespaces.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.servicefabric.clusters.yml b/.github/workflows/ms.servicefabric.clusters.yml index 9895c4f192..07585b9283 100644 --- a/.github/workflows/ms.servicefabric.clusters.yml +++ b/.github/workflows/ms.servicefabric.clusters.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.sql.managedinstances.yml b/.github/workflows/ms.sql.managedinstances.yml index e3c6df7041..0eab89af98 100644 --- a/.github/workflows/ms.sql.managedinstances.yml +++ b/.github/workflows/ms.sql.managedinstances.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.sql.servers.yml b/.github/workflows/ms.sql.servers.yml index 61623e9bfb..4c98ed36ab 100644 --- a/.github/workflows/ms.sql.servers.yml +++ b/.github/workflows/ms.sql.servers.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.storage.storageaccounts.yml b/.github/workflows/ms.storage.storageaccounts.yml index dfd7c811fc..87b565c6f9 100644 --- a/.github/workflows/ms.storage.storageaccounts.yml +++ b/.github/workflows/ms.storage.storageaccounts.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.synapse.privatelinkhubs.yml b/.github/workflows/ms.synapse.privatelinkhubs.yml index d0287ac8d3..8dc1b9d265 100644 --- a/.github/workflows/ms.synapse.privatelinkhubs.yml +++ b/.github/workflows/ms.synapse.privatelinkhubs.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.virtualmachineimages.imagetemplates.yml b/.github/workflows/ms.virtualmachineimages.imagetemplates.yml index 7d1c122891..d4699dcfd3 100644 --- a/.github/workflows/ms.virtualmachineimages.imagetemplates.yml +++ b/.github/workflows/ms.virtualmachineimages.imagetemplates.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.web.connections.yml b/.github/workflows/ms.web.connections.yml index 24a5452946..2eded2a765 100644 --- a/.github/workflows/ms.web.connections.yml +++ b/.github/workflows/ms.web.connections.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.web.hostingenvironments.yml b/.github/workflows/ms.web.hostingenvironments.yml index cc7f884c27..b50f9c921c 100644 --- a/.github/workflows/ms.web.hostingenvironments.yml +++ b/.github/workflows/ms.web.hostingenvironments.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.web.serverfarms.yml b/.github/workflows/ms.web.serverfarms.yml index d0d6a3a41d..dde99a3bb2 100644 --- a/.github/workflows/ms.web.serverfarms.yml +++ b/.github/workflows/ms.web.serverfarms.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.web.sites.yml b/.github/workflows/ms.web.sites.yml index 5f69a15df6..1b50096fd0 100644 --- a/.github/workflows/ms.web.sites.yml +++ b/.github/workflows/ms.web.sites.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.web.staticsites.yml b/.github/workflows/ms.web.staticsites.yml index b387de58ae..1ee28057f5 100644 --- a/.github/workflows/ms.web.staticsites.yml +++ b/.github/workflows/ms.web.staticsites.yml @@ -53,13 +53,13 @@ jobs: with: workflowPath: '${{ env.workflowPath}}' - name: 'Get parameter file paths' - id: get-parameter-file-paths - uses: ./.github/actions/templates/getParameterFiles + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles with: modulePath: '${{ env.modulePath }}' outputs: removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} - parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} ######################### # Static validation # @@ -89,7 +89,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + moduleTestFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -103,7 +103,7 @@ jobs: uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' From 8f66bcd6d8654b75b9588fd66987d0f5075366ac Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 09:56:51 +0200 Subject: [PATCH 034/274] Further refactoring --- .github/workflows/ms.aad.domainservices.yml | 2 +- .../workflows/ms.analysisservices.servers.yml | 5 +- .../workflows/ms.apimanagement.service.yml | 2 +- ...s.appconfiguration.configurationstores.yml | 2 +- .github/workflows/ms.authorization.locks.yml | 2 +- .../ms.authorization.policyassignments.yml | 2 +- .../ms.authorization.policydefinitions.yml | 2 +- .../ms.authorization.policyexemptions.yml | 2 +- .../ms.authorization.policysetdefinitions.yml | 2 +- .../ms.authorization.roleassignments.yml | 2 +- .../ms.authorization.roledefinitions.yml | 2 +- .../ms.automation.automationaccounts.yml | 2 +- .github/workflows/ms.batch.batchaccounts.yml | 2 +- .../ms.cognitiveservices.accounts.yml | 2 +- .../workflows/ms.compute.availabilitysets.yml | 2 +- .../ms.compute.diskencryptionsets.yml | 2 +- .github/workflows/ms.compute.disks.yml | 2 +- .github/workflows/ms.compute.galleries.yml | 2 +- .github/workflows/ms.compute.images.yml | 2 +- .../ms.compute.proximityplacementgroups.yml | 2 +- .../workflows/ms.compute.virtualmachines.yml | 2 +- .../ms.compute.virtualmachinescalesets.yml | 2 +- .github/workflows/ms.consumption.budgets.yml | 2 +- .../ms.containerinstance.containergroups.yml | 2 +- .../ms.containerregistry.registries.yml | 2 +- .../ms.containerservice.managedclusters.yml | 2 +- .../workflows/ms.databricks.workspaces.yml | 2 +- .../workflows/ms.datafactory.factories.yml | 2 +- .../ms.dataprotection.backupvaults.yml | 2 +- ...esktopvirtualization.applicationgroups.yml | 2 +- .../ms.desktopvirtualization.hostpools.yml | 2 +- .../ms.desktopvirtualization.scalingplans.yml | 2 +- .../ms.desktopvirtualization.workspaces.yml | 2 +- .../ms.documentdb.databaseaccounts.yml | 2 +- .../workflows/ms.eventgrid.systemtopics.yml | 2 +- .github/workflows/ms.eventgrid.topics.yml | 2 +- .github/workflows/ms.eventhub.namespaces.yml | 2 +- .github/workflows/ms.healthbot.healthbots.yml | 2 +- .../workflows/ms.insights.actiongroups.yml | 2 +- .../ms.insights.activitylogalerts.yml | 2 +- .github/workflows/ms.insights.components.yml | 2 +- .../ms.insights.diagnosticsettings.yml | 2 +- .../workflows/ms.insights.metricalerts.yml | 2 +- .../ms.insights.privatelinkscopes.yml | 2 +- .../ms.insights.scheduledqueryrules.yml | 2 +- .github/workflows/ms.keyvault.vaults.yml | 2 +- .../ms.kubernetesconfiguration.extensions.yml | 2 +- ...rnetesconfiguration.fluxconfigurations.yml | 2 +- .github/workflows/ms.logic.workflows.yml | 2 +- .../ms.machinelearningservices.workspaces.yml | 2 +- ...managedidentity.userassignedidentities.yml | 2 +- ...anagedservices.registrationdefinitions.yml | 2 +- .../ms.management.managementgroups.yml | 2 +- .../workflows/ms.netapp.netappaccounts.yml | 2 +- .../ms.network.applicationgateways.yml | 2 +- .../ms.network.applicationsecuritygroups.yml | 2 +- .../workflows/ms.network.azurefirewalls.yml | 2 +- .github/workflows/ms.network.bastionhosts.yml | 2 +- .github/workflows/ms.network.connections.yml | 2 +- .../ms.network.ddosprotectionplans.yml | 2 +- .../ms.network.expressroutecircuits.yml | 2 +- .../workflows/ms.network.firewallpolicies.yml | 2 +- .github/workflows/ms.network.frontdoors.yml | 2 +- .github/workflows/ms.network.ipgroups.yml | 2 +- .../workflows/ms.network.loadbalancers.yml | 2 +- .../ms.network.localnetworkgateways.yml | 2 +- .github/workflows/ms.network.natgateways.yml | 2 +- .../ms.network.networkinterfaces.yml | 2 +- .../ms.network.networksecuritygroups.yml | 2 +- .../workflows/ms.network.networkwatchers.yml | 2 +- .../workflows/ms.network.privatednszones.yml | 2 +- .../workflows/ms.network.privateendpoints.yml | 2 +- .../ms.network.publicipaddresses.yml | 2 +- .../workflows/ms.network.publicipprefixes.yml | 2 +- .github/workflows/ms.network.routetables.yml | 2 +- .../ms.network.trafficmanagerprofiles.yml | 2 +- .github/workflows/ms.network.virtualhubs.yml | 2 +- .../ms.network.virtualnetworkgateways.yml | 2 +- .../workflows/ms.network.virtualnetworks.yml | 2 +- .github/workflows/ms.network.virtualwans.yml | 2 +- .github/workflows/ms.network.vpngateways.yml | 2 +- .github/workflows/ms.network.vpnsites.yml | 2 +- .../ms.operationalinsights.workspaces.yml | 2 +- .../ms.operationsmanagement.solutions.yml | 2 +- .../workflows/ms.recoveryservices.vaults.yml | 2 +- .../ms.resources.deploymentscripts.yml | 2 +- .../workflows/ms.resources.resourcegroups.yml | 2 +- .github/workflows/ms.resources.tags.yml | 2 +- .../ms.security.azuresecuritycenter.yml | 2 +- .../workflows/ms.servicebus.namespaces.yml | 2 +- .../workflows/ms.servicefabric.clusters.yml | 2 +- .github/workflows/ms.sql.managedinstances.yml | 2 +- .github/workflows/ms.sql.servers.yml | 2 +- .../workflows/ms.storage.storageaccounts.yml | 2 +- .../workflows/ms.synapse.privatelinkhubs.yml | 2 +- ...ms.virtualmachineimages.imagetemplates.yml | 2 +- .github/workflows/ms.web.connections.yml | 2 +- .../workflows/ms.web.hostingenvironments.yml | 2 +- .github/workflows/ms.web.serverfarms.yml | 2 +- .github/workflows/ms.web.sites.yml | 2 +- .github/workflows/ms.web.staticsites.yml | 2 +- .../diagnostic.dependencies.bicep | 67 +++++++++++++ modules/.global/global.module.tests.ps1 | 2 +- .../.global/{shared => helper}/helper.psm1 | 0 .../servers/.test/default.bicep | 78 +++++++++++++++ .../servers/.test/max.bicep | 96 +++++++++++++++++++ .../servers/.test/max.parameters.json | 66 ------------- .../servers/.test/min.bicep | 42 ++++++++ .../servers/.test/min.parameters.json | 9 -- .../nestedTemplates/default.nested.bicep | 13 +++ .../max.parameters.nested.bicep | 13 +++ .../servers/.test/parameters.json | 40 -------- 112 files changed, 412 insertions(+), 219 deletions(-) create mode 100644 modules/.global/dependencyConstructs/diagnostic.dependencies.bicep rename modules/.global/{shared => helper}/helper.psm1 (100%) create mode 100644 modules/Microsoft.AnalysisServices/servers/.test/default.bicep create mode 100644 modules/Microsoft.AnalysisServices/servers/.test/max.bicep delete mode 100644 modules/Microsoft.AnalysisServices/servers/.test/max.parameters.json create mode 100644 modules/Microsoft.AnalysisServices/servers/.test/min.bicep delete mode 100644 modules/Microsoft.AnalysisServices/servers/.test/min.parameters.json create mode 100644 modules/Microsoft.AnalysisServices/servers/.test/nestedTemplates/default.nested.bicep create mode 100644 modules/Microsoft.AnalysisServices/servers/.test/nestedTemplates/max.parameters.nested.bicep delete mode 100644 modules/Microsoft.AnalysisServices/servers/.test/parameters.json diff --git a/.github/workflows/ms.aad.domainservices.yml b/.github/workflows/ms.aad.domainservices.yml index 6b01cd0111..a75b8601ab 100644 --- a/.github/workflows/ms.aad.domainservices.yml +++ b/.github/workflows/ms.aad.domainservices.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.analysisservices.servers.yml b/.github/workflows/ms.analysisservices.servers.yml index 309af7255c..022e80faa6 100644 --- a/.github/workflows/ms.analysisservices.servers.yml +++ b/.github/workflows/ms.analysisservices.servers.yml @@ -99,11 +99,10 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' + templateFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.apimanagement.service.yml b/.github/workflows/ms.apimanagement.service.yml index e0e67eb1c2..448acd3e3b 100644 --- a/.github/workflows/ms.apimanagement.service.yml +++ b/.github/workflows/ms.apimanagement.service.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.appconfiguration.configurationstores.yml b/.github/workflows/ms.appconfiguration.configurationstores.yml index a51551c296..b120d900c5 100644 --- a/.github/workflows/ms.appconfiguration.configurationstores.yml +++ b/.github/workflows/ms.appconfiguration.configurationstores.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.authorization.locks.yml b/.github/workflows/ms.authorization.locks.yml index 911a25dd24..218d2851e5 100644 --- a/.github/workflows/ms.authorization.locks.yml +++ b/.github/workflows/ms.authorization.locks.yml @@ -102,7 +102,7 @@ jobs: # ------------------- # ## Deploy & Remove ## # ------------------- # - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.authorization.policyassignments.yml b/.github/workflows/ms.authorization.policyassignments.yml index 9902750e56..dcf93bff3a 100644 --- a/.github/workflows/ms.authorization.policyassignments.yml +++ b/.github/workflows/ms.authorization.policyassignments.yml @@ -102,7 +102,7 @@ jobs: # ------------------- # ## Deploy & Remove ## # ------------------- # - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.authorization.policydefinitions.yml b/.github/workflows/ms.authorization.policydefinitions.yml index 9e5c3a4e26..a54ea914f7 100644 --- a/.github/workflows/ms.authorization.policydefinitions.yml +++ b/.github/workflows/ms.authorization.policydefinitions.yml @@ -102,7 +102,7 @@ jobs: # ------------------- # ## Deploy & Remove ## # ------------------- # - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.authorization.policyexemptions.yml b/.github/workflows/ms.authorization.policyexemptions.yml index b6a856fe8d..1ed4fc3ad9 100644 --- a/.github/workflows/ms.authorization.policyexemptions.yml +++ b/.github/workflows/ms.authorization.policyexemptions.yml @@ -102,7 +102,7 @@ jobs: # ------------------- # ## Deploy & Remove ## # ------------------- # - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.authorization.policysetdefinitions.yml b/.github/workflows/ms.authorization.policysetdefinitions.yml index 1b3ae1f270..c85d7deb25 100644 --- a/.github/workflows/ms.authorization.policysetdefinitions.yml +++ b/.github/workflows/ms.authorization.policysetdefinitions.yml @@ -102,7 +102,7 @@ jobs: # ------------------- # ## Deploy & Remove ## # ------------------- # - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.authorization.roleassignments.yml b/.github/workflows/ms.authorization.roleassignments.yml index b2e7e88b49..d324e4a5e2 100644 --- a/.github/workflows/ms.authorization.roleassignments.yml +++ b/.github/workflows/ms.authorization.roleassignments.yml @@ -102,7 +102,7 @@ jobs: # ------------------- # ## Deploy & Remove ## # ------------------- # - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.authorization.roledefinitions.yml b/.github/workflows/ms.authorization.roledefinitions.yml index 72fa94f872..37165175b5 100644 --- a/.github/workflows/ms.authorization.roledefinitions.yml +++ b/.github/workflows/ms.authorization.roledefinitions.yml @@ -102,7 +102,7 @@ jobs: # ------------------- # ## Deploy & Remove ## # ------------------- # - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.automation.automationaccounts.yml b/.github/workflows/ms.automation.automationaccounts.yml index 241914a35b..be8ed88819 100644 --- a/.github/workflows/ms.automation.automationaccounts.yml +++ b/.github/workflows/ms.automation.automationaccounts.yml @@ -100,7 +100,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.batch.batchaccounts.yml b/.github/workflows/ms.batch.batchaccounts.yml index 7be9097563..b0042f23cb 100644 --- a/.github/workflows/ms.batch.batchaccounts.yml +++ b/.github/workflows/ms.batch.batchaccounts.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.cognitiveservices.accounts.yml b/.github/workflows/ms.cognitiveservices.accounts.yml index 0afc331625..5a6aea0993 100644 --- a/.github/workflows/ms.cognitiveservices.accounts.yml +++ b/.github/workflows/ms.cognitiveservices.accounts.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.compute.availabilitysets.yml b/.github/workflows/ms.compute.availabilitysets.yml index 78d020b3e8..6b603d7f77 100644 --- a/.github/workflows/ms.compute.availabilitysets.yml +++ b/.github/workflows/ms.compute.availabilitysets.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.compute.diskencryptionsets.yml b/.github/workflows/ms.compute.diskencryptionsets.yml index b6c7293459..98fd77dd1f 100644 --- a/.github/workflows/ms.compute.diskencryptionsets.yml +++ b/.github/workflows/ms.compute.diskencryptionsets.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.compute.disks.yml b/.github/workflows/ms.compute.disks.yml index 511ba3854a..053ee8fb1e 100644 --- a/.github/workflows/ms.compute.disks.yml +++ b/.github/workflows/ms.compute.disks.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.compute.galleries.yml b/.github/workflows/ms.compute.galleries.yml index 8fd5580d39..9d537feb7b 100644 --- a/.github/workflows/ms.compute.galleries.yml +++ b/.github/workflows/ms.compute.galleries.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.compute.images.yml b/.github/workflows/ms.compute.images.yml index a1fe30a983..39333f8e59 100644 --- a/.github/workflows/ms.compute.images.yml +++ b/.github/workflows/ms.compute.images.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.compute.proximityplacementgroups.yml b/.github/workflows/ms.compute.proximityplacementgroups.yml index ca67df07f8..cd31121c9c 100644 --- a/.github/workflows/ms.compute.proximityplacementgroups.yml +++ b/.github/workflows/ms.compute.proximityplacementgroups.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.compute.virtualmachines.yml b/.github/workflows/ms.compute.virtualmachines.yml index 1cc0561e70..bcf8ea3798 100644 --- a/.github/workflows/ms.compute.virtualmachines.yml +++ b/.github/workflows/ms.compute.virtualmachines.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.compute.virtualmachinescalesets.yml b/.github/workflows/ms.compute.virtualmachinescalesets.yml index 11a244b060..e0d8eb4df5 100644 --- a/.github/workflows/ms.compute.virtualmachinescalesets.yml +++ b/.github/workflows/ms.compute.virtualmachinescalesets.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.consumption.budgets.yml b/.github/workflows/ms.consumption.budgets.yml index 13a976d712..e8219e527d 100644 --- a/.github/workflows/ms.consumption.budgets.yml +++ b/.github/workflows/ms.consumption.budgets.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.containerinstance.containergroups.yml b/.github/workflows/ms.containerinstance.containergroups.yml index cc320aabe5..a9eb4b1585 100644 --- a/.github/workflows/ms.containerinstance.containergroups.yml +++ b/.github/workflows/ms.containerinstance.containergroups.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.containerregistry.registries.yml b/.github/workflows/ms.containerregistry.registries.yml index 1091af5d78..e97420cd6c 100644 --- a/.github/workflows/ms.containerregistry.registries.yml +++ b/.github/workflows/ms.containerregistry.registries.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.containerservice.managedclusters.yml b/.github/workflows/ms.containerservice.managedclusters.yml index c0260e09c8..29bf45b0df 100644 --- a/.github/workflows/ms.containerservice.managedclusters.yml +++ b/.github/workflows/ms.containerservice.managedclusters.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.databricks.workspaces.yml b/.github/workflows/ms.databricks.workspaces.yml index d41fd53671..41c71f2f97 100644 --- a/.github/workflows/ms.databricks.workspaces.yml +++ b/.github/workflows/ms.databricks.workspaces.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.datafactory.factories.yml b/.github/workflows/ms.datafactory.factories.yml index e7a31efe13..bd4dc371f5 100644 --- a/.github/workflows/ms.datafactory.factories.yml +++ b/.github/workflows/ms.datafactory.factories.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.dataprotection.backupvaults.yml b/.github/workflows/ms.dataprotection.backupvaults.yml index 997e6ecee2..8034be2a0a 100644 --- a/.github/workflows/ms.dataprotection.backupvaults.yml +++ b/.github/workflows/ms.dataprotection.backupvaults.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.desktopvirtualization.applicationgroups.yml b/.github/workflows/ms.desktopvirtualization.applicationgroups.yml index 03b814ea04..5025e63ff7 100644 --- a/.github/workflows/ms.desktopvirtualization.applicationgroups.yml +++ b/.github/workflows/ms.desktopvirtualization.applicationgroups.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.desktopvirtualization.hostpools.yml b/.github/workflows/ms.desktopvirtualization.hostpools.yml index ecbfda431d..4c38912f8e 100644 --- a/.github/workflows/ms.desktopvirtualization.hostpools.yml +++ b/.github/workflows/ms.desktopvirtualization.hostpools.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.desktopvirtualization.scalingplans.yml b/.github/workflows/ms.desktopvirtualization.scalingplans.yml index c3fb2cde5f..1f821a7438 100644 --- a/.github/workflows/ms.desktopvirtualization.scalingplans.yml +++ b/.github/workflows/ms.desktopvirtualization.scalingplans.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.desktopvirtualization.workspaces.yml b/.github/workflows/ms.desktopvirtualization.workspaces.yml index 2e5eb43f19..e42894d638 100644 --- a/.github/workflows/ms.desktopvirtualization.workspaces.yml +++ b/.github/workflows/ms.desktopvirtualization.workspaces.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.documentdb.databaseaccounts.yml b/.github/workflows/ms.documentdb.databaseaccounts.yml index 7264642377..0c9745de45 100644 --- a/.github/workflows/ms.documentdb.databaseaccounts.yml +++ b/.github/workflows/ms.documentdb.databaseaccounts.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.eventgrid.systemtopics.yml b/.github/workflows/ms.eventgrid.systemtopics.yml index 93af8f714b..a35cd0bb38 100644 --- a/.github/workflows/ms.eventgrid.systemtopics.yml +++ b/.github/workflows/ms.eventgrid.systemtopics.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.eventgrid.topics.yml b/.github/workflows/ms.eventgrid.topics.yml index ac87e6a5f8..070cd57981 100644 --- a/.github/workflows/ms.eventgrid.topics.yml +++ b/.github/workflows/ms.eventgrid.topics.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.eventhub.namespaces.yml b/.github/workflows/ms.eventhub.namespaces.yml index c56c69dcbe..52c26ba703 100644 --- a/.github/workflows/ms.eventhub.namespaces.yml +++ b/.github/workflows/ms.eventhub.namespaces.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.healthbot.healthbots.yml b/.github/workflows/ms.healthbot.healthbots.yml index 9f6d8f94ec..37bc7dcae6 100644 --- a/.github/workflows/ms.healthbot.healthbots.yml +++ b/.github/workflows/ms.healthbot.healthbots.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.insights.actiongroups.yml b/.github/workflows/ms.insights.actiongroups.yml index 1357b8420c..777767026d 100644 --- a/.github/workflows/ms.insights.actiongroups.yml +++ b/.github/workflows/ms.insights.actiongroups.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.insights.activitylogalerts.yml b/.github/workflows/ms.insights.activitylogalerts.yml index ec9edd0313..c04b792528 100644 --- a/.github/workflows/ms.insights.activitylogalerts.yml +++ b/.github/workflows/ms.insights.activitylogalerts.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.insights.components.yml b/.github/workflows/ms.insights.components.yml index aba03d4bb6..2d5a953be8 100644 --- a/.github/workflows/ms.insights.components.yml +++ b/.github/workflows/ms.insights.components.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.insights.diagnosticsettings.yml b/.github/workflows/ms.insights.diagnosticsettings.yml index 39d9cd7252..95dc3d1ed1 100644 --- a/.github/workflows/ms.insights.diagnosticsettings.yml +++ b/.github/workflows/ms.insights.diagnosticsettings.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.insights.metricalerts.yml b/.github/workflows/ms.insights.metricalerts.yml index b12c564627..6e284950af 100644 --- a/.github/workflows/ms.insights.metricalerts.yml +++ b/.github/workflows/ms.insights.metricalerts.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.insights.privatelinkscopes.yml b/.github/workflows/ms.insights.privatelinkscopes.yml index 85bd35694b..fe4eb724fd 100644 --- a/.github/workflows/ms.insights.privatelinkscopes.yml +++ b/.github/workflows/ms.insights.privatelinkscopes.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.insights.scheduledqueryrules.yml b/.github/workflows/ms.insights.scheduledqueryrules.yml index 03230b166d..806e7425bc 100644 --- a/.github/workflows/ms.insights.scheduledqueryrules.yml +++ b/.github/workflows/ms.insights.scheduledqueryrules.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.keyvault.vaults.yml b/.github/workflows/ms.keyvault.vaults.yml index 2f3f42fece..0280b778f1 100644 --- a/.github/workflows/ms.keyvault.vaults.yml +++ b/.github/workflows/ms.keyvault.vaults.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.kubernetesconfiguration.extensions.yml b/.github/workflows/ms.kubernetesconfiguration.extensions.yml index 9edecff563..56bf7e9686 100644 --- a/.github/workflows/ms.kubernetesconfiguration.extensions.yml +++ b/.github/workflows/ms.kubernetesconfiguration.extensions.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.kubernetesconfiguration.fluxconfigurations.yml b/.github/workflows/ms.kubernetesconfiguration.fluxconfigurations.yml index 4a9175176b..7a60649bf0 100644 --- a/.github/workflows/ms.kubernetesconfiguration.fluxconfigurations.yml +++ b/.github/workflows/ms.kubernetesconfiguration.fluxconfigurations.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.logic.workflows.yml b/.github/workflows/ms.logic.workflows.yml index 495bf7b110..848afdd606 100644 --- a/.github/workflows/ms.logic.workflows.yml +++ b/.github/workflows/ms.logic.workflows.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.machinelearningservices.workspaces.yml b/.github/workflows/ms.machinelearningservices.workspaces.yml index 15d46d8929..258b8b01e1 100644 --- a/.github/workflows/ms.machinelearningservices.workspaces.yml +++ b/.github/workflows/ms.machinelearningservices.workspaces.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.managedidentity.userassignedidentities.yml b/.github/workflows/ms.managedidentity.userassignedidentities.yml index 222f8981b4..5299c57116 100644 --- a/.github/workflows/ms.managedidentity.userassignedidentities.yml +++ b/.github/workflows/ms.managedidentity.userassignedidentities.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.managedservices.registrationdefinitions.yml b/.github/workflows/ms.managedservices.registrationdefinitions.yml index a3cd098028..7cac131438 100644 --- a/.github/workflows/ms.managedservices.registrationdefinitions.yml +++ b/.github/workflows/ms.managedservices.registrationdefinitions.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.management.managementgroups.yml b/.github/workflows/ms.management.managementgroups.yml index d749bd6b82..2e34192e74 100644 --- a/.github/workflows/ms.management.managementgroups.yml +++ b/.github/workflows/ms.management.managementgroups.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.netapp.netappaccounts.yml b/.github/workflows/ms.netapp.netappaccounts.yml index 73659e8379..3e2cc6f2ec 100644 --- a/.github/workflows/ms.netapp.netappaccounts.yml +++ b/.github/workflows/ms.netapp.netappaccounts.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.applicationgateways.yml b/.github/workflows/ms.network.applicationgateways.yml index 03b3cdb45f..f3d6ff845a 100644 --- a/.github/workflows/ms.network.applicationgateways.yml +++ b/.github/workflows/ms.network.applicationgateways.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.applicationsecuritygroups.yml b/.github/workflows/ms.network.applicationsecuritygroups.yml index 04a836e7a0..101a44393c 100644 --- a/.github/workflows/ms.network.applicationsecuritygroups.yml +++ b/.github/workflows/ms.network.applicationsecuritygroups.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.azurefirewalls.yml b/.github/workflows/ms.network.azurefirewalls.yml index 6d6f9f60af..c01d0c1aa5 100644 --- a/.github/workflows/ms.network.azurefirewalls.yml +++ b/.github/workflows/ms.network.azurefirewalls.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.bastionhosts.yml b/.github/workflows/ms.network.bastionhosts.yml index a35dee92eb..cbcfd9d09a 100644 --- a/.github/workflows/ms.network.bastionhosts.yml +++ b/.github/workflows/ms.network.bastionhosts.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.connections.yml b/.github/workflows/ms.network.connections.yml index 2ea9ff2ea1..e712086e94 100644 --- a/.github/workflows/ms.network.connections.yml +++ b/.github/workflows/ms.network.connections.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.ddosprotectionplans.yml b/.github/workflows/ms.network.ddosprotectionplans.yml index 6ecbfe6b4a..ba951aeac3 100644 --- a/.github/workflows/ms.network.ddosprotectionplans.yml +++ b/.github/workflows/ms.network.ddosprotectionplans.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.expressroutecircuits.yml b/.github/workflows/ms.network.expressroutecircuits.yml index 64a9c9dee5..db307216e8 100644 --- a/.github/workflows/ms.network.expressroutecircuits.yml +++ b/.github/workflows/ms.network.expressroutecircuits.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.firewallpolicies.yml b/.github/workflows/ms.network.firewallpolicies.yml index 706509af18..c1187cc875 100644 --- a/.github/workflows/ms.network.firewallpolicies.yml +++ b/.github/workflows/ms.network.firewallpolicies.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.frontdoors.yml b/.github/workflows/ms.network.frontdoors.yml index 7f369b8c07..d8eb85713f 100644 --- a/.github/workflows/ms.network.frontdoors.yml +++ b/.github/workflows/ms.network.frontdoors.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.ipgroups.yml b/.github/workflows/ms.network.ipgroups.yml index 5fd6b23b22..f0f87c7a33 100644 --- a/.github/workflows/ms.network.ipgroups.yml +++ b/.github/workflows/ms.network.ipgroups.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.loadbalancers.yml b/.github/workflows/ms.network.loadbalancers.yml index 18e032adf1..5c0f438a77 100644 --- a/.github/workflows/ms.network.loadbalancers.yml +++ b/.github/workflows/ms.network.loadbalancers.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.localnetworkgateways.yml b/.github/workflows/ms.network.localnetworkgateways.yml index 9485378e99..49da3d9ec6 100644 --- a/.github/workflows/ms.network.localnetworkgateways.yml +++ b/.github/workflows/ms.network.localnetworkgateways.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.natgateways.yml b/.github/workflows/ms.network.natgateways.yml index b9ca674006..1b7c3e6848 100644 --- a/.github/workflows/ms.network.natgateways.yml +++ b/.github/workflows/ms.network.natgateways.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.networkinterfaces.yml b/.github/workflows/ms.network.networkinterfaces.yml index ed09ed1d18..78edc35010 100644 --- a/.github/workflows/ms.network.networkinterfaces.yml +++ b/.github/workflows/ms.network.networkinterfaces.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.networksecuritygroups.yml b/.github/workflows/ms.network.networksecuritygroups.yml index d875d49927..68815ee3ce 100644 --- a/.github/workflows/ms.network.networksecuritygroups.yml +++ b/.github/workflows/ms.network.networksecuritygroups.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.networkwatchers.yml b/.github/workflows/ms.network.networkwatchers.yml index 3ff1ba92cd..cc1ea9b1b7 100644 --- a/.github/workflows/ms.network.networkwatchers.yml +++ b/.github/workflows/ms.network.networkwatchers.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.privatednszones.yml b/.github/workflows/ms.network.privatednszones.yml index 3c611769c4..da2486149e 100644 --- a/.github/workflows/ms.network.privatednszones.yml +++ b/.github/workflows/ms.network.privatednszones.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.privateendpoints.yml b/.github/workflows/ms.network.privateendpoints.yml index ffeabd66e9..2a0e9cf4d8 100644 --- a/.github/workflows/ms.network.privateendpoints.yml +++ b/.github/workflows/ms.network.privateendpoints.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.publicipaddresses.yml b/.github/workflows/ms.network.publicipaddresses.yml index 5b7c3ad56b..bbd3a69d40 100644 --- a/.github/workflows/ms.network.publicipaddresses.yml +++ b/.github/workflows/ms.network.publicipaddresses.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.publicipprefixes.yml b/.github/workflows/ms.network.publicipprefixes.yml index 0b3cb5c09c..a27cc5b989 100644 --- a/.github/workflows/ms.network.publicipprefixes.yml +++ b/.github/workflows/ms.network.publicipprefixes.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.routetables.yml b/.github/workflows/ms.network.routetables.yml index 687956d3c9..3e33a7ab6c 100644 --- a/.github/workflows/ms.network.routetables.yml +++ b/.github/workflows/ms.network.routetables.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.trafficmanagerprofiles.yml b/.github/workflows/ms.network.trafficmanagerprofiles.yml index 04aaacdba0..0cce54b84f 100644 --- a/.github/workflows/ms.network.trafficmanagerprofiles.yml +++ b/.github/workflows/ms.network.trafficmanagerprofiles.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.virtualhubs.yml b/.github/workflows/ms.network.virtualhubs.yml index 3a3db63cea..1e59343a9f 100644 --- a/.github/workflows/ms.network.virtualhubs.yml +++ b/.github/workflows/ms.network.virtualhubs.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.virtualnetworkgateways.yml b/.github/workflows/ms.network.virtualnetworkgateways.yml index 87b63f1468..022dad045e 100644 --- a/.github/workflows/ms.network.virtualnetworkgateways.yml +++ b/.github/workflows/ms.network.virtualnetworkgateways.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.virtualnetworks.yml b/.github/workflows/ms.network.virtualnetworks.yml index ca1f1c2ce5..9ee23ffef2 100644 --- a/.github/workflows/ms.network.virtualnetworks.yml +++ b/.github/workflows/ms.network.virtualnetworks.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.virtualwans.yml b/.github/workflows/ms.network.virtualwans.yml index c593bca2e8..f48323e9b2 100644 --- a/.github/workflows/ms.network.virtualwans.yml +++ b/.github/workflows/ms.network.virtualwans.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.vpngateways.yml b/.github/workflows/ms.network.vpngateways.yml index 5c7134e0e0..7267cfee6b 100644 --- a/.github/workflows/ms.network.vpngateways.yml +++ b/.github/workflows/ms.network.vpngateways.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.network.vpnsites.yml b/.github/workflows/ms.network.vpnsites.yml index b5d61263d9..a1c278bfa1 100644 --- a/.github/workflows/ms.network.vpnsites.yml +++ b/.github/workflows/ms.network.vpnsites.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.operationalinsights.workspaces.yml b/.github/workflows/ms.operationalinsights.workspaces.yml index 9d91672748..85a8200efd 100644 --- a/.github/workflows/ms.operationalinsights.workspaces.yml +++ b/.github/workflows/ms.operationalinsights.workspaces.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.operationsmanagement.solutions.yml b/.github/workflows/ms.operationsmanagement.solutions.yml index 1d73fd0b62..cfc99f5e96 100644 --- a/.github/workflows/ms.operationsmanagement.solutions.yml +++ b/.github/workflows/ms.operationsmanagement.solutions.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.recoveryservices.vaults.yml b/.github/workflows/ms.recoveryservices.vaults.yml index b4a9a6948e..db6c95fc96 100644 --- a/.github/workflows/ms.recoveryservices.vaults.yml +++ b/.github/workflows/ms.recoveryservices.vaults.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.resources.deploymentscripts.yml b/.github/workflows/ms.resources.deploymentscripts.yml index f85ee0644a..96dedf3f5e 100644 --- a/.github/workflows/ms.resources.deploymentscripts.yml +++ b/.github/workflows/ms.resources.deploymentscripts.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.resources.resourcegroups.yml b/.github/workflows/ms.resources.resourcegroups.yml index a34413bafc..b31beb9937 100644 --- a/.github/workflows/ms.resources.resourcegroups.yml +++ b/.github/workflows/ms.resources.resourcegroups.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.resources.tags.yml b/.github/workflows/ms.resources.tags.yml index add9d3462c..4721b8a33e 100644 --- a/.github/workflows/ms.resources.tags.yml +++ b/.github/workflows/ms.resources.tags.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.security.azuresecuritycenter.yml b/.github/workflows/ms.security.azuresecuritycenter.yml index e143a5d138..7e86ce28b5 100644 --- a/.github/workflows/ms.security.azuresecuritycenter.yml +++ b/.github/workflows/ms.security.azuresecuritycenter.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.servicebus.namespaces.yml b/.github/workflows/ms.servicebus.namespaces.yml index 3fccf82ec1..8cae88dc11 100644 --- a/.github/workflows/ms.servicebus.namespaces.yml +++ b/.github/workflows/ms.servicebus.namespaces.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.servicefabric.clusters.yml b/.github/workflows/ms.servicefabric.clusters.yml index 07585b9283..9426b5a819 100644 --- a/.github/workflows/ms.servicefabric.clusters.yml +++ b/.github/workflows/ms.servicefabric.clusters.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.sql.managedinstances.yml b/.github/workflows/ms.sql.managedinstances.yml index 0eab89af98..edba681775 100644 --- a/.github/workflows/ms.sql.managedinstances.yml +++ b/.github/workflows/ms.sql.managedinstances.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.sql.servers.yml b/.github/workflows/ms.sql.servers.yml index 4c98ed36ab..58761db768 100644 --- a/.github/workflows/ms.sql.servers.yml +++ b/.github/workflows/ms.sql.servers.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.storage.storageaccounts.yml b/.github/workflows/ms.storage.storageaccounts.yml index 87b565c6f9..ebdb7a779f 100644 --- a/.github/workflows/ms.storage.storageaccounts.yml +++ b/.github/workflows/ms.storage.storageaccounts.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.synapse.privatelinkhubs.yml b/.github/workflows/ms.synapse.privatelinkhubs.yml index 8dc1b9d265..8ff1d68d56 100644 --- a/.github/workflows/ms.synapse.privatelinkhubs.yml +++ b/.github/workflows/ms.synapse.privatelinkhubs.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.virtualmachineimages.imagetemplates.yml b/.github/workflows/ms.virtualmachineimages.imagetemplates.yml index d4699dcfd3..18aed0a1c8 100644 --- a/.github/workflows/ms.virtualmachineimages.imagetemplates.yml +++ b/.github/workflows/ms.virtualmachineimages.imagetemplates.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.web.connections.yml b/.github/workflows/ms.web.connections.yml index 2eded2a765..04bea93de4 100644 --- a/.github/workflows/ms.web.connections.yml +++ b/.github/workflows/ms.web.connections.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.web.hostingenvironments.yml b/.github/workflows/ms.web.hostingenvironments.yml index b50f9c921c..c38c9d7196 100644 --- a/.github/workflows/ms.web.hostingenvironments.yml +++ b/.github/workflows/ms.web.hostingenvironments.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.web.serverfarms.yml b/.github/workflows/ms.web.serverfarms.yml index dde99a3bb2..1aa5248d96 100644 --- a/.github/workflows/ms.web.serverfarms.yml +++ b/.github/workflows/ms.web.serverfarms.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.web.sites.yml b/.github/workflows/ms.web.sites.yml index 1b50096fd0..a86e83f285 100644 --- a/.github/workflows/ms.web.sites.yml +++ b/.github/workflows/ms.web.sites.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/.github/workflows/ms.web.staticsites.yml b/.github/workflows/ms.web.staticsites.yml index 1ee28057f5..c4b1877548 100644 --- a/.github/workflows/ms.web.staticsites.yml +++ b/.github/workflows/ms.web.staticsites.yml @@ -99,7 +99,7 @@ jobs: uses: ./.github/actions/templates/setEnvironmentVariables with: variablesPath: ${{ env.variablesPath }} - - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: templateFilePath: '${{ env.modulePath }}/deploy.bicep' diff --git a/modules/.global/dependencyConstructs/diagnostic.dependencies.bicep b/modules/.global/dependencyConstructs/diagnostic.dependencies.bicep new file mode 100644 index 0000000000..3fbaaaf2d2 --- /dev/null +++ b/modules/.global/dependencyConstructs/diagnostic.dependencies.bicep @@ -0,0 +1,67 @@ +// ========== // +// Parameters // +// ========== // + +@description('Required. The name of the storage account to create') +param storageAccountName string + +@description('Required. The name of the log analytics workspace to create') +param logAnalyticsWorkspaceName string + +@description('Required. The name of the event hub namespace to be created') +param eventHubNamespaceName string + +@description('Required. The name of the event hub to be created inside the event hub namespace') +param eventHubNamespaceEventHubName string + +@description('Optional. The location to deploy to') +param location string = resourceGroup().location + +// =========== // +// Deployments // +// =========== // +resource storageAccount 'Microsoft.Storage/storageAccounts@2021-08-01' = { + name: storageAccountName + location: location + kind: 'StorageV2' + sku: { + name: 'Standard_LRS' + } + properties: { + allowBlobPublicAccess: false + } +} + +resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2021-12-01-preview' = { + name: logAnalyticsWorkspaceName + location: location +} + +resource eventHubNamespace 'Microsoft.EventHub/namespaces@2021-11-01' = { + name: eventHubNamespaceName + location: location + + resource eventHub 'eventhubs@2021-11-01' = { + name: eventHubNamespaceEventHubName + } + + resource authorizationRule 'authorizationRules@2021-06-01-preview' = { + name: 'RootManageSharedAccessKey' + properties: { + rights: [ + 'Listen' + 'Manage' + 'Send' + ] + } + } +} + +// ======= // +// Outputs // +// ======= // +output storageAccountResourceId string = storageAccount.id +output logAnalyticsWorkspaceResourceId string = logAnalyticsWorkspace.id +output eventHubNamespaceResourceId string = eventHubNamespace.id +output eventHubAuthorizationRuleId string = eventHubNamespace::authorizationRule.id +output eventHubNamespaceEventHubName string = eventHubNamespace::eventHub.name diff --git a/modules/.global/global.module.tests.ps1 b/modules/.global/global.module.tests.ps1 index b44e87e8e7..63c9b46eeb 100644 --- a/modules/.global/global.module.tests.ps1 +++ b/modules/.global/global.module.tests.ps1 @@ -29,7 +29,7 @@ $script:jsonTemplateLoadFailedException = "Unable to load the deploy.json templa $script:templateNotFoundException = 'No template file found in folder [{0}]' # -f $moduleFolderPath # Import any helper function used in this test script -Import-Module (Join-Path $PSScriptRoot 'shared\helper.psm1') -Force +Import-Module (Join-Path $PSScriptRoot 'helper\helper.psm1') -Force Describe 'File/folder tests' -Tag Modules { diff --git a/modules/.global/shared/helper.psm1 b/modules/.global/helper/helper.psm1 similarity index 100% rename from modules/.global/shared/helper.psm1 rename to modules/.global/helper/helper.psm1 diff --git a/modules/Microsoft.AnalysisServices/servers/.test/default.bicep b/modules/Microsoft.AnalysisServices/servers/.test/default.bicep new file mode 100644 index 0000000000..59a02cbcdb --- /dev/null +++ b/modules/Microsoft.AnalysisServices/servers/.test/default.bicep @@ -0,0 +1,78 @@ +targetScope = 'subscription' + +// ========== // +// Parameters // +// ========== // + +@description('Required. The name prefix to inject into all resource names') +param namePrefix string + +@description('Optional. The name of the resource group to deploy for a testing purposes') +@maxLength(90) +param resourceGroupName string = '${serviceShort}-ms.analysisservices-servers-rg' + +@description('Optional. The location to deploy resources to') +param location string = deployment().location + +@description('Optional. A short identifier for the kind of deployment. E.g. "aspar". Should be kept short to not run into resource-name length-constraints') +param serviceShort string = 'aspar' + +// =========== // +// Deployments // +// =========== // + +// General resources +// ================= +resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { + name: resourceGroupName + location: location +} + +module managedIdentity 'nestedTemplates/default.nested.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-paramNested' + params: { + managedIdentityName: 'dep-${namePrefix}-az-msi-${serviceShort}-01' + } +} + +// Diagnostics +// =========== +module diagnosticDependencies '../../../.global/dependencyConstructs/diagnostic.dependencies.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-diagDep' + params: { + storageAccountName: 'adp${namePrefix}azsa${serviceShort}01' + logAnalyticsWorkspaceName: 'adp-${namePrefix}-law-${serviceShort}-01' + eventHubNamespaceEventHubName: 'adp-${namePrefix}-evh-${serviceShort}-01' + eventHubNamespaceName: 'adp-${namePrefix}-evhns-${serviceShort}-01' + location: location + } +} + +// ============== // +// Test Execution // +// ============== // + +module servers '../deploy.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name)}-servers-${serviceShort}' + params: { + name: '${namePrefix}azas${serviceShort}001' + lock: 'CanNotDelete' + skuName: 'S0' + roleAssignments: [ + { + roleDefinitionIdOrName: 'Reader' + principalIds: [ + managedIdentity.outputs.managedIdentityPrincipalId + ] + } + ] + diagnosticLogsRetentionInDays: 7 + diagnosticStorageAccountId: diagnosticDependencies.outputs.storageAccountResourceId + diagnosticWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId + diagnosticEventHubAuthorizationRuleId: diagnosticDependencies.outputs.eventHubAuthorizationRuleId + diagnosticEventHubName: diagnosticDependencies.outputs.eventHubNamespaceEventHubName + } +} diff --git a/modules/Microsoft.AnalysisServices/servers/.test/max.bicep b/modules/Microsoft.AnalysisServices/servers/.test/max.bicep new file mode 100644 index 0000000000..cbe9621e39 --- /dev/null +++ b/modules/Microsoft.AnalysisServices/servers/.test/max.bicep @@ -0,0 +1,96 @@ +targetScope = 'subscription' + +// ========== // +// Parameters // +// ========== // + +@description('Required. The name prefix to inject into all resource names') +param namePrefix string + +@description('Optional. The name of the resource group to deploy for a testing purposes') +@maxLength(90) +param resourceGroupName string = '${serviceShort}-ms.analysisservices-servers-rg' + +@description('Optional. The location to deploy resources to') +param location string = deployment().location + +@description('Optional. A short identifier for the kind of deployment. E.g. "aspar". Should be kept short to not run into resource-name length-constraints') +param serviceShort string = 'asmax' + +// =========== // +// Deployments // +// =========== // + +// General resources +// ================= +resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { + name: resourceGroupName + location: location +} + +module managedIdentity 'nestedTemplates/max.parameters.nested.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-paramNested' + params: { + managedIdentityName: 'dep-${namePrefix}-az-msi-${serviceShort}-01' + } +} + +// Diagnostics +// =========== +module diagnosticDependencies '../../../.global/dependencyConstructs/diagnostic.dependencies.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-diagDep' + params: { + storageAccountName: 'adp${namePrefix}azsa${serviceShort}01' + logAnalyticsWorkspaceName: 'adp-${namePrefix}-law-${serviceShort}-01' + eventHubNamespaceEventHubName: 'adp-${namePrefix}-evh-${serviceShort}-01' + eventHubNamespaceName: 'adp-${namePrefix}-evhns-${serviceShort}-01' + location: location + } +} + +// ============== // +// Test Execution // +// ============== // + +module servers '../deploy.bicep' = { + scope: az.resourceGroup(resourceGroupName) + name: '${uniqueString(deployment().name)}-servers-${serviceShort}' + params: { + name: '${namePrefix}azas${serviceShort}001' + lock: 'CanNotDelete' + skuName: 'S0' + skuCapacity: 1 + firewallSettings: { + firewallRules: [ + { + firewallRuleName: 'AllowFromAll' + rangeStart: '0.0.0.0' + rangeEnd: '255.255.255.255' + } + ] + enablePowerBIService: true + } + roleAssignments: [ + { + roleDefinitionIdOrName: 'Reader' + principalIds: [ + managedIdentity.outputs.managedIdentityPrincipalId + ] + } + ] + diagnosticLogsRetentionInDays: 7 + diagnosticStorageAccountId: diagnosticDependencies.outputs.storageAccountResourceId + diagnosticWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId + diagnosticEventHubAuthorizationRuleId: diagnosticDependencies.outputs.eventHubAuthorizationRuleId + diagnosticEventHubName: diagnosticDependencies.outputs.eventHubNamespaceEventHubName + diagnosticLogCategoriesToEnable: [ + 'Engine' + 'Service' + ] + diagnosticMetricsToEnable: [ + 'AllMetrics' + ] + } +} diff --git a/modules/Microsoft.AnalysisServices/servers/.test/max.parameters.json b/modules/Microsoft.AnalysisServices/servers/.test/max.parameters.json deleted file mode 100644 index 54abf71cc2..0000000000 --- a/modules/Microsoft.AnalysisServices/servers/.test/max.parameters.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>azasweumax001" - }, - "lock": { - "value": "CanNotDelete" - }, - "skuName": { - "value": "S0" - }, - "skuCapacity": { - "value": 1 - }, - "firewallSettings": { - "value": { - "firewallRules": [ - { - "firewallRuleName": "AllowFromAll", - "rangeStart": "0.0.0.0", - "rangeEnd": "255.255.255.255" - } - ], - "enablePowerBIService": true - } - }, - "diagnosticLogsRetentionInDays": { - "value": 365 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogCategoriesToEnable": { - "value": [ - "Engine", - "Service" - ] - }, - "diagnosticMetricsToEnable": { - "value": [ - "AllMetrics" - ] - } - } -} diff --git a/modules/Microsoft.AnalysisServices/servers/.test/min.bicep b/modules/Microsoft.AnalysisServices/servers/.test/min.bicep new file mode 100644 index 0000000000..034ddc634b --- /dev/null +++ b/modules/Microsoft.AnalysisServices/servers/.test/min.bicep @@ -0,0 +1,42 @@ +targetScope = 'subscription' + +// ========== // +// Parameters // +// ========== // + +// Resource Group +@description('Required. The name prefix to inject into all resource names') +param namePrefix string + +@description('Optional. The name of the resource group to deploy for a testing purposes') +@maxLength(90) +param resourceGroupName string = '${serviceShort}-ms.analysisservices-servers-rg' + +@description('Optional. The location to deploy resources to') +param location string = deployment().location + +@description('Optional. A short identifier for the kind of deployment. E.g. "aspar". Should be kept short to not run into resource-name length-constraints') +param serviceShort string = 'asmin' + +// =========== // +// Deployments // +// =========== // + +// General resources +// ================= +resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { + name: resourceGroupName + location: location +} + +// ============== // +// Test Execution // +// ============== // + +module servers '../deploy.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name)}-servers-${serviceShort}' + params: { + name: '${namePrefix}azas${serviceShort}001' + } +} diff --git a/modules/Microsoft.AnalysisServices/servers/.test/min.parameters.json b/modules/Microsoft.AnalysisServices/servers/.test/min.parameters.json deleted file mode 100644 index 33c06055de..0000000000 --- a/modules/Microsoft.AnalysisServices/servers/.test/min.parameters.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>azasweumin001" - } - } -} diff --git a/modules/Microsoft.AnalysisServices/servers/.test/nestedTemplates/default.nested.bicep b/modules/Microsoft.AnalysisServices/servers/.test/nestedTemplates/default.nested.bicep new file mode 100644 index 0000000000..953e3a00ef --- /dev/null +++ b/modules/Microsoft.AnalysisServices/servers/.test/nestedTemplates/default.nested.bicep @@ -0,0 +1,13 @@ +@description('Required. The name of the managed identity to create') +param managedIdentityName string + +@description('Optional. The location to deploy to') +param location string = resourceGroup().location + +resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { + name: managedIdentityName + location: location +} + +@description('The principal of the created managed identity') +output managedIdentityPrincipalId string = managedIdentity.properties.principalId diff --git a/modules/Microsoft.AnalysisServices/servers/.test/nestedTemplates/max.parameters.nested.bicep b/modules/Microsoft.AnalysisServices/servers/.test/nestedTemplates/max.parameters.nested.bicep new file mode 100644 index 0000000000..953e3a00ef --- /dev/null +++ b/modules/Microsoft.AnalysisServices/servers/.test/nestedTemplates/max.parameters.nested.bicep @@ -0,0 +1,13 @@ +@description('Required. The name of the managed identity to create') +param managedIdentityName string + +@description('Optional. The location to deploy to') +param location string = resourceGroup().location + +resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { + name: managedIdentityName + location: location +} + +@description('The principal of the created managed identity') +output managedIdentityPrincipalId string = managedIdentity.properties.principalId diff --git a/modules/Microsoft.AnalysisServices/servers/.test/parameters.json b/modules/Microsoft.AnalysisServices/servers/.test/parameters.json deleted file mode 100644 index 592ffff258..0000000000 --- a/modules/Microsoft.AnalysisServices/servers/.test/parameters.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>azasweux001" - }, - "lock": { - "value": "CanNotDelete" - }, - "skuName": { - "value": "S0" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} From 2e154b2489eba4648a8208cbc4290f0db7f09fe9 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 09:58:01 +0200 Subject: [PATCH 035/274] Updated naming --- .../resourceRemoval/Initialize-DeploymentRemoval.ps1 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1 b/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1 index af78109452..1eb6c21011 100644 --- a/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1 +++ b/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1 @@ -56,7 +56,12 @@ function Initialize-DeploymentRemoval { $null = Set-AzContext -Subscription $subscriptionId } - $moduleName = Split-Path (Split-Path $templateFilePath -Parent) -LeafBase + if (-not (Split-Path (Split-Path $templateFilePath -Parent) -LeafBase)) { + # In case of new dependency approach (template is in subfolder) + $moduleName = Split-Path (Split-Path (Split-Path $templateFilePath -Parent) -Parent) -LeafBase + } else { + $moduleName = Split-Path (Split-Path $templateFilePath -Parent) -LeafBase + } # The initial sequence is a general order-recommendation $removalSequence = @( From e36661866014d90012a944736bd59de9cef675d7 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 10:12:19 +0200 Subject: [PATCH 036/274] Minor update --- .../pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1 | 1 + 1 file changed, 1 insertion(+) diff --git a/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1 b/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1 index 1eb6c21011..3dec517d06 100644 --- a/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1 +++ b/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1 @@ -71,6 +71,7 @@ function Initialize-DeploymentRemoval { 'Microsoft.Network/privateEndpoints', 'Microsoft.OperationsManagement/solutions', 'Microsoft.OperationalInsights/workspaces/linkedServices', + 'Microsoft.OperationalInsights/workspaces' 'Microsoft.Resources/resourceGroups', 'Microsoft.Compute/virtualMachines' ) From a627b054f83b9bfcc4b81006e08caf21887c582a Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 10:39:48 +0200 Subject: [PATCH 037/274] Updated global tests --- modules/.global/global.module.tests.ps1 | 41 ++++++++++++++++--------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/modules/.global/global.module.tests.ps1 b/modules/.global/global.module.tests.ps1 index 63c9b46eeb..9e485ab4de 100644 --- a/modules/.global/global.module.tests.ps1 +++ b/modules/.global/global.module.tests.ps1 @@ -118,32 +118,37 @@ Describe 'File/folder tests' -Tag Modules { param( [string] $moduleFolderName, - $moduleFolderPath + [string] $moduleFolderPath ) - $parameterFolderPath = Join-Path $moduleFolderPath '.test' - (Get-ChildItem $parameterFolderPath -Filter '*parameters.json' -Force).Count | Should -BeGreaterThan 0 + + $moduleTestFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test')).FullName | Where-Object { $_ -match '.+\.[bicep|json]' } + $moduleTestFilePaths.Count | Should -BeGreaterThan 0 } $parameterFolderFilesTestCases = [System.Collections.ArrayList] @() foreach ($moduleFolderPath in $moduleFolderPaths) { $parameterFolderPath = Join-Path $moduleFolderPath '.test' if (Test-Path $parameterFolderPath) { - foreach ($parameterFile in (Get-ChildItem $parameterFolderPath -Filter '*parameters.json' -Force)) { + foreach ($parameterFilePath in ((Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test')).FullName | Where-Object { $_ -match '.+\.[bicep|json]' })) { $parameterFolderFilesTestCases += @{ moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1] - parameterFilePath = $parameterFile.FullName + parameterFilePath = $parameterFilePath } } } } - It '[] *parameters.json files in the .parameters folder should be valid json' -TestCases $parameterFolderFilesTestCases { + It '[] *parameters.json files in the .test folder should be valid json' -TestCases $parameterFolderFilesTestCases { param( [string] $moduleFolderName, - $parameterFilePath + [string] $parameterFilePath ) - (Get-Content $parameterFilePath) | ConvertFrom-Json + if ((Split-Path $parameterFilePath -Extension) -eq '.json') { + ((Get-Content $parameterFilePath) | ConvertFrom-Json) | Should -Not -Throw + } else { + Set-ItResult -Skipped -Because 'the module has no JSON parameter file.' + } } } } @@ -506,13 +511,21 @@ Describe 'Deployment template tests' -Tag Template { $TemplateFile_RequiredParametersNames = ($templateFile_Parameters.Keys | Where-Object { -not $templateFile_Parameters[$_].ContainsKey('defaultValue') }) | Sort-Object if (Test-Path (Join-Path $moduleFolderPath '.test')) { - $ParameterFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test' -AdditionalChildPath '*parameters.json') -Recurse -Force).FullName - foreach ($ParameterFilePath in $ParameterFilePaths) { - $parameterFile_AllParameterNames = ((Get-Content $ParameterFilePath) | ConvertFrom-Json -AsHashtable).parameters.Keys | Sort-Object + + # Can be removed after full migration to bicep test files + $moduleTestFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test')).FullName | Where-Object { $_ -match '.+\.[bicep|json]' } + + foreach ($moduleTestFilePath in $moduleTestFilePaths) { + if ((Split-Path $moduleTestFilePath -Extension) -eq '.json') { + $deploymentTestFile_AllParameterNames = ((Get-Content $moduleTestFilePath) | ConvertFrom-Json -AsHashtable).parameters.Keys | Sort-Object + } else { + $deploymentFileContent = az bicep build --file $moduleTestFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + $deploymentTestFile_AllParameterNames = $deploymentFileContent.resources[-1].properties.parameters.keys | Sort-Object # The last resource should be the test + } $parameterFileTestCases += @{ - parameterFile_Path = $ParameterFilePath - parameterFile_Name = Split-Path $ParameterFilePath -Leaf - parameterFile_AllParameterNames = $parameterFile_AllParameterNames + parameterFile_Path = $moduleTestFilePath + parameterFile_Name = Split-Path $moduleTestFilePath -Leaf + parameterFile_AllParameterNames = $deploymentTestFile_AllParameterNames templateFile_AllParameterNames = $TemplateFile_AllParameterNames templateFile_RequiredParametersNames = $TemplateFile_RequiredParametersNames tokenSettings = $Settings.parameterFileTokens From 4b5858475f354e55ae9546abaac484fc25d23bcb Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 11:01:41 +0200 Subject: [PATCH 038/274] Updated test --- modules/.global/global.module.tests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/.global/global.module.tests.ps1 b/modules/.global/global.module.tests.ps1 index 9e485ab4de..b742a34a35 100644 --- a/modules/.global/global.module.tests.ps1 +++ b/modules/.global/global.module.tests.ps1 @@ -145,7 +145,7 @@ Describe 'File/folder tests' -Tag Modules { [string] $parameterFilePath ) if ((Split-Path $parameterFilePath -Extension) -eq '.json') { - ((Get-Content $parameterFilePath) | ConvertFrom-Json) | Should -Not -Throw + { (Get-Content $parameterFilePath) | ConvertFrom-Json } | Should -Not -Throw } else { Set-ItResult -Skipped -Because 'the module has no JSON parameter file.' } From 9cf057a276714ad36d4ea30c2710cdc0fa99fc0f Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 11:25:27 +0200 Subject: [PATCH 039/274] Fixed template ref --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 7c681892ef..b8273b5d37 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -204,7 +204,7 @@ jobs: if((Split-Path '$(parameterFilePath)' -Extension) -ne '.json') { $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' } else { - $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '${{ parameters.templateFilePath }}' + $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' } $templateContent = az bicep build --file $templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable @@ -266,7 +266,7 @@ jobs: if((Split-Path '$(parameterFilePath)' -Extension) -ne '.json') { $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' } else { - $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '${{ parameters.templateFilePath }}' + $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' } # Collect information @@ -350,7 +350,7 @@ jobs: if((Split-Path '$(parameterFilePath)' -Extension) -ne '.json') { $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' } else { - $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '${{ parameters.templateFilePath }}' + $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' } $functionInput = @{ From 697105affdea32e57a3dc08190dc68cb949dff4b Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 12:11:56 +0200 Subject: [PATCH 040/274] Refactored VPN Site test files --- .../servers/.test/default.bicep | 8 +- .../servers/.test/max.bicep | 8 +- .../servers/.test/min.bicep | 4 +- .../vpnSites/.test/default.bicep | 105 ++++++++++++++++++ .../vpnSites/.test/min.bicep | 51 +++++++++ .../vpnSites/.test/min.parameters.json | 20 ---- .../default.parameters.nested.bicep | 24 ++++ .../min.parameters.nested.bicep | 13 +++ .../vpnSites/.test/parameters.json | 77 ------------- .../Microsoft.Network/vpnSites/deploy.bicep | 4 +- modules/Microsoft.Network/vpnSites/readme.md | 8 +- 11 files changed, 211 insertions(+), 111 deletions(-) create mode 100644 modules/Microsoft.Network/vpnSites/.test/default.bicep create mode 100644 modules/Microsoft.Network/vpnSites/.test/min.bicep delete mode 100644 modules/Microsoft.Network/vpnSites/.test/min.parameters.json create mode 100644 modules/Microsoft.Network/vpnSites/.test/nestedTemplates/default.parameters.nested.bicep create mode 100644 modules/Microsoft.Network/vpnSites/.test/nestedTemplates/min.parameters.nested.bicep delete mode 100644 modules/Microsoft.Network/vpnSites/.test/parameters.json diff --git a/modules/Microsoft.AnalysisServices/servers/.test/default.bicep b/modules/Microsoft.AnalysisServices/servers/.test/default.bicep index 59a02cbcdb..e20c0239b9 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/default.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/default.bicep @@ -14,7 +14,7 @@ param resourceGroupName string = '${serviceShort}-ms.analysisservices-servers-rg @description('Optional. The location to deploy resources to') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment. E.g. "aspar". Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') param serviceShort string = 'aspar' // =========== // @@ -28,7 +28,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { location: location } -module managedIdentity 'nestedTemplates/default.nested.bicep' = { +module resourceGroupResources 'nestedTemplates/default.nested.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { @@ -54,7 +54,7 @@ module diagnosticDependencies '../../../.global/dependencyConstructs/diagnostic. // Test Execution // // ============== // -module servers '../deploy.bicep' = { +module testDeployment '../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-servers-${serviceShort}' params: { @@ -65,7 +65,7 @@ module servers '../deploy.bicep' = { { roleDefinitionIdOrName: 'Reader' principalIds: [ - managedIdentity.outputs.managedIdentityPrincipalId + resourceGroupResources.outputs.managedIdentityPrincipalId ] } ] diff --git a/modules/Microsoft.AnalysisServices/servers/.test/max.bicep b/modules/Microsoft.AnalysisServices/servers/.test/max.bicep index cbe9621e39..d69ae09ca3 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/max.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/max.bicep @@ -14,7 +14,7 @@ param resourceGroupName string = '${serviceShort}-ms.analysisservices-servers-rg @description('Optional. The location to deploy resources to') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment. E.g. "aspar". Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') param serviceShort string = 'asmax' // =========== // @@ -28,7 +28,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { location: location } -module managedIdentity 'nestedTemplates/max.parameters.nested.bicep' = { +module resourceGroupResources 'nestedTemplates/max.parameters.nested.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { @@ -54,7 +54,7 @@ module diagnosticDependencies '../../../.global/dependencyConstructs/diagnostic. // Test Execution // // ============== // -module servers '../deploy.bicep' = { +module testDeployment '../deploy.bicep' = { scope: az.resourceGroup(resourceGroupName) name: '${uniqueString(deployment().name)}-servers-${serviceShort}' params: { @@ -76,7 +76,7 @@ module servers '../deploy.bicep' = { { roleDefinitionIdOrName: 'Reader' principalIds: [ - managedIdentity.outputs.managedIdentityPrincipalId + resourceGroupResources.outputs.managedIdentityPrincipalId ] } ] diff --git a/modules/Microsoft.AnalysisServices/servers/.test/min.bicep b/modules/Microsoft.AnalysisServices/servers/.test/min.bicep index 034ddc634b..b73c4da9e1 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/min.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/min.bicep @@ -15,7 +15,7 @@ param resourceGroupName string = '${serviceShort}-ms.analysisservices-servers-rg @description('Optional. The location to deploy resources to') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment. E.g. "aspar". Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') param serviceShort string = 'asmin' // =========== // @@ -33,7 +33,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { // Test Execution // // ============== // -module servers '../deploy.bicep' = { +module testDeployment '../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-servers-${serviceShort}' params: { diff --git a/modules/Microsoft.Network/vpnSites/.test/default.bicep b/modules/Microsoft.Network/vpnSites/.test/default.bicep new file mode 100644 index 0000000000..5cd2eb4fd0 --- /dev/null +++ b/modules/Microsoft.Network/vpnSites/.test/default.bicep @@ -0,0 +1,105 @@ +targetScope = 'subscription' + +// ========== // +// Parameters // +// ========== // + +// Resource Group +@description('Required. The name prefix to inject into all resource names') +param namePrefix string + +@description('Optional. The name of the resource group to deploy for a testing purposes') +@maxLength(90) +param resourceGroupName string = '${serviceShort}-ms.network-vpnSites-rg' + +@description('Optional. The location to deploy resources to') +param location string = deployment().location + +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') +param serviceShort string = 'vsipar' + +// =========== // +// Deployments // +// =========== // + +// General resources +// ================= +resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { + name: resourceGroupName + location: location +} + +module resourceGroupResources 'nestedTemplates/default.parameters.nested.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-paramNested' + params: { + managedIdentityName: 'dep-${namePrefix}-az-msi-${serviceShort}-01' + virtualWANName: 'apd-${namePrefix}-az-vw-${serviceShort}-001' + } +} + +// ============== // +// Test Execution // +// ============== // + +module testDeployment '../deploy.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name)}-vpnSites-${serviceShort}' + params: { + name: '${namePrefix}-az-${serviceShort}-001' + virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId + lock: 'CanNotDelete' + tags: { + tagA: 'valueA' + tagB: 'valueB' + } + deviceProperties: { + linkSpeedInMbps: 0 + } + vpnSiteLinks: [ + { + name: '${namePrefix}-az-vSite-${serviceShort}-001' + properties: { + bgpProperties: { + asn: 65010 + bgpPeeringAddress: '1.1.1.1' + } + ipAddress: '1.2.3.4' + linkProperties: { + linkProviderName: 'contoso' + linkSpeedInMbps: 5 + } + } + } + { + name: 'Link1' + properties: { + bgpProperties: { + asn: 65020 + bgpPeeringAddress: '192.168.1.0' + } + ipAddress: '2.2.2.2' + linkProperties: { + linkProviderName: 'contoso' + linkSpeedInMbps: 5 + } + } + } + ] + o365Policy: { + breakOutCategories: { + optimize: true + allow: true + default: true + } + } + roleAssignments: [ + { + roleDefinitionIdOrName: 'Reader' + principalIds: [ + resourceGroupResources.outputs.managedIdentityPrincipalId + ] + } + ] + } +} diff --git a/modules/Microsoft.Network/vpnSites/.test/min.bicep b/modules/Microsoft.Network/vpnSites/.test/min.bicep new file mode 100644 index 0000000000..61604dc85e --- /dev/null +++ b/modules/Microsoft.Network/vpnSites/.test/min.bicep @@ -0,0 +1,51 @@ +targetScope = 'subscription' + +// ========== // +// Parameters // +// ========== // + +// Resource Group +@description('Required. The name prefix to inject into all resource names') +param namePrefix string + +@description('Optional. The name of the resource group to deploy for a testing purposes') +@maxLength(90) +param resourceGroupName string = '${serviceShort}-ms.network-vpnSites-rg' + +@description('Optional. The location to deploy resources to') +param location string = deployment().location + +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') +param serviceShort string = 'vsimin' + +// =========== // +// Deployments // +// =========== // + +// General resources +// ================= +resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { + name: resourceGroupName + location: location +} + +module resourceGroupResources 'nestedTemplates/min.parameters.nested.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-paramNested' + params: { + virtualWANName: 'apd-${namePrefix}-az-vw-${serviceShort}-001' + } +} + +// ============== // +// Test Execution // +// ============== // + +module testDeployment '../deploy.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name)}-vpnSites-${serviceShort}' + params: { + name: '${namePrefix}-az-${serviceShort}-001' + virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId + } +} diff --git a/modules/Microsoft.Network/vpnSites/.test/min.parameters.json b/modules/Microsoft.Network/vpnSites/.test/min.parameters.json deleted file mode 100644 index 24791e0339..0000000000 --- a/modules/Microsoft.Network/vpnSites/.test/min.parameters.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-vSite-min-001" - }, - "addressPrefixes": { - "value": [ - "10.0.0.0/16" - ] - }, - "ipAddress": { - "value": "1.2.3.4" - }, - "virtualWanId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/apd-<>-az-vw-x-001" - } - } -} diff --git a/modules/Microsoft.Network/vpnSites/.test/nestedTemplates/default.parameters.nested.bicep b/modules/Microsoft.Network/vpnSites/.test/nestedTemplates/default.parameters.nested.bicep new file mode 100644 index 0000000000..1e747da698 --- /dev/null +++ b/modules/Microsoft.Network/vpnSites/.test/nestedTemplates/default.parameters.nested.bicep @@ -0,0 +1,24 @@ +@description('Required. The name of the managed identity to create') +param managedIdentityName string + +@description('Required. The name of the virtual WAN to create') +param virtualWANName string + +@description('Optional. The location to deploy to') +param location string = resourceGroup().location + +resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { + name: managedIdentityName + location: location +} + +resource virtualWan 'Microsoft.Network/virtualWans@2021-05-01' = { + name: virtualWANName + location: location +} + +@description('The principal of the created managed identity') +output managedIdentityPrincipalId string = managedIdentity.properties.principalId + +@description('The principal of the created managed identity') +output virtualWWANResourceId string = virtualWan.id diff --git a/modules/Microsoft.Network/vpnSites/.test/nestedTemplates/min.parameters.nested.bicep b/modules/Microsoft.Network/vpnSites/.test/nestedTemplates/min.parameters.nested.bicep new file mode 100644 index 0000000000..f83db52264 --- /dev/null +++ b/modules/Microsoft.Network/vpnSites/.test/nestedTemplates/min.parameters.nested.bicep @@ -0,0 +1,13 @@ +@description('Required. The name of the virtual WAN to create') +param virtualWANName string + +@description('Optional. The location to deploy to') +param location string = resourceGroup().location + +resource virtualWan 'Microsoft.Network/virtualWans@2021-05-01' = { + name: virtualWANName + location: location +} + +@description('The principal of the created managed identity') +output virtualWWANResourceId string = virtualWan.id diff --git a/modules/Microsoft.Network/vpnSites/.test/parameters.json b/modules/Microsoft.Network/vpnSites/.test/parameters.json deleted file mode 100644 index 94c534c5e4..0000000000 --- a/modules/Microsoft.Network/vpnSites/.test/parameters.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-vSite-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "tags": { - "value": { - "tagA": "valueA", - "tagB": "valueB" - } - }, - "deviceProperties": { - "value": { - "linkSpeedInMbps": 0 - } - }, - "virtualWanId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/apd-<>-az-vw-x-001" - }, - "vpnSiteLinks": { - "value": [ - { - "name": "<>-az-vSite-x-001", - "properties": { - "bgpProperties": { - "asn": 65010, - "bgpPeeringAddress": "1.1.1.1" - }, - "ipAddress": "1.2.3.4", - "linkProperties": { - "linkProviderName": "contoso", - "linkSpeedInMbps": 5 - } - } - }, - { - "name": "Link1", - "properties": { - "bgpProperties": { - "asn": 65020, - "bgpPeeringAddress": "192.168.1.0" - }, - "ipAddress": "2.2.2.2", - "linkProperties": { - "linkProviderName": "contoso", - "linkSpeedInMbps": 5 - } - } - } - ] - }, - "o365Policy": { - "value": { - "breakOutCategories": { - "optimize": true, - "allow": true, - "default": true - } - } - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Network/vpnSites/deploy.bicep b/modules/Microsoft.Network/vpnSites/deploy.bicep index 6bb79563e8..56feaf316e 100644 --- a/modules/Microsoft.Network/vpnSites/deploy.bicep +++ b/modules/Microsoft.Network/vpnSites/deploy.bicep @@ -10,10 +10,10 @@ param location string = resourceGroup().location @description('Optional. Tags of the resource.') param tags object = {} -@description('Optional. An array of IP address ranges that can be used by subnets of the virtual network. Must be provided if no bgpProperties or VPNSiteLinks are configured.') +@description('Conditional. An array of IP address ranges that can be used by subnets of the virtual network. Required if no bgpProperties or VPNSiteLinks are configured.') param addressPrefixes array = [] -@description('Optional. BGP settings details. Must be provided if no addressPrefixes or VPNSiteLinks are configured. Note: This is a deprecated property, please use the corresponding VpnSiteLinks property instead.') +@description('Conditional. BGP settings details. Note: This is a deprecated property, please use the corresponding VpnSiteLinks property instead. Required if no addressPrefixes or VPNSiteLinks are configured.') param bgpProperties object = {} @description('Optional. List of properties of the device.') diff --git a/modules/Microsoft.Network/vpnSites/readme.md b/modules/Microsoft.Network/vpnSites/readme.md index 05d815968d..249b3d1195 100644 --- a/modules/Microsoft.Network/vpnSites/readme.md +++ b/modules/Microsoft.Network/vpnSites/readme.md @@ -25,11 +25,15 @@ This module deploys a VPN Site. | `name` | string | Name of the VPN Site. | | `virtualWanId` | string | Resource ID of the virtual WAN to link to. | +**Conditional parameters** +| Parameter Name | Type | Description | +| :-- | :-- | :-- | +| `addressPrefixes` | array | An array of IP address ranges that can be used by subnets of the virtual network. Required if no bgpProperties or VPNSiteLinks are configured. | +| `bgpProperties` | object | BGP settings details. Note: This is a deprecated property, please use the corresponding VpnSiteLinks property instead. Required if no addressPrefixes or VPNSiteLinks are configured. | + **Optional parameters** | Parameter Name | Type | Default Value | Allowed Values | Description | | :-- | :-- | :-- | :-- | :-- | -| `addressPrefixes` | array | `[]` | | An array of IP address ranges that can be used by subnets of the virtual network. Must be provided if no bgpProperties or VPNSiteLinks are configured. | -| `bgpProperties` | object | `{object}` | | BGP settings details. Must be provided if no addressPrefixes or VPNSiteLinks are configured. Note: This is a deprecated property, please use the corresponding VpnSiteLinks property instead. | | `deviceProperties` | object | `{object}` | | List of properties of the device. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `ipAddress` | string | `''` | | The IP-address for the VPN-site. Note: This is a deprecated property, please use the corresponding VpnSiteLinks property instead. | From 7ade381ab99d1629781de448edb965431584d60f Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 12:22:13 +0200 Subject: [PATCH 041/274] Fixed test --- modules/.global/global.module.tests.ps1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/.global/global.module.tests.ps1 b/modules/.global/global.module.tests.ps1 index b742a34a35..ee5abd52ba 100644 --- a/modules/.global/global.module.tests.ps1 +++ b/modules/.global/global.module.tests.ps1 @@ -121,7 +121,7 @@ Describe 'File/folder tests' -Tag Modules { [string] $moduleFolderPath ) - $moduleTestFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test')).FullName | Where-Object { $_ -match '.+\.[bicep|json]' } + $moduleTestFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test') -File).FullName | Where-Object { $_ -match '.+\.[bicep|json]' } $moduleTestFilePaths.Count | Should -BeGreaterThan 0 } @@ -129,7 +129,7 @@ Describe 'File/folder tests' -Tag Modules { foreach ($moduleFolderPath in $moduleFolderPaths) { $parameterFolderPath = Join-Path $moduleFolderPath '.test' if (Test-Path $parameterFolderPath) { - foreach ($parameterFilePath in ((Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test')).FullName | Where-Object { $_ -match '.+\.[bicep|json]' })) { + foreach ($parameterFilePath in ((Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test') -File).FullName | Where-Object { $_ -match '.+\.[bicep|json]' })) { $parameterFolderFilesTestCases += @{ moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1] parameterFilePath = $parameterFilePath @@ -513,7 +513,7 @@ Describe 'Deployment template tests' -Tag Template { if (Test-Path (Join-Path $moduleFolderPath '.test')) { # Can be removed after full migration to bicep test files - $moduleTestFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test')).FullName | Where-Object { $_ -match '.+\.[bicep|json]' } + $moduleTestFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test') -File).FullName | Where-Object { $_ -match '.+\.[bicep|json]' } foreach ($moduleTestFilePath in $moduleTestFilePaths) { if ((Split-Path $moduleTestFilePath -Extension) -eq '.json') { From 4178db5a5a3bfa6022c000bf19dab0e5f6cc4628 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 12:44:56 +0200 Subject: [PATCH 042/274] Adjusted ADO pipeline logic --- .../jobs.validateModuleDeployment.yml | 74 ++++++++++--------- 1 file changed, 40 insertions(+), 34 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index b8273b5d37..0c01e0e588 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -200,20 +200,8 @@ jobs: # INVOKE TEST # # ----------- # - # Collecting information - if((Split-Path '$(parameterFilePath)' -Extension) -ne '.json') { - $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' - } else { - $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' - } - - $templateContent = az bicep build --file $templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable - $parameters = $templateContent.parameters.Keys - $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json - # Building input object $functionInput = @{ - templateFilePath = $templateFilePath location = '${{ parameters.location }}' resourceGroupName = '${{ parameters.resourceGroupName }}' subscriptionId = '${{ parameters.subscriptionId }}' @@ -221,18 +209,30 @@ jobs: additionalParameters = @{} } - if((Split-Path '$(parameterFilePath)' -Extension) -eq '.json') { - $functionInput['parameterFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' - } + # Handle template file + if((Split-Path '$(parameterFilePath)' -Extension) -ne '.json') { + $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' + $templateContent = az bicep build --file $templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + $parameters = $templateContent.parameters.Keys - # Pass required parameters - if($parameters -contains 'namePrefix') { - $functionInput['additionalParameters'] += @{ - namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value + if($parameters -contains 'namePrefix') { + $functionInput['additionalParameters'] += @{ + namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value + } } + } else { + $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' + } + + $functionInput['templateFilePath'] = $templateFilePath + + if((Split-Path '$(parameterFilePath)' -Extension) -eq '.json') { + $functionInput['parameterFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' } - if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { + # Handle additional parameters + $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json + if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { $functionInput['additionalParameters'] += @{ enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry } @@ -263,20 +263,8 @@ jobs: # INVOKE DEPLOYMENT # # ----------------- # - if((Split-Path '$(parameterFilePath)' -Extension) -ne '.json') { - $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' - } else { - $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' - } - - # Collect information - $templateContent = az bicep build --file $templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable - $parameters = $templateContent.parameters.Keys - $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json - # Building input object $functionInput = @{ - templateFilePath = $templateFilePath location = '${{ parameters.location }}' resourceGroupName = '${{ parameters.resourceGroupName }}' subscriptionId = '${{ parameters.subscriptionId }}' @@ -285,18 +273,36 @@ jobs: additionalParameters = @{} } + # Handle template file + if((Split-Path '$(parameterFilePath)' -Extension) -ne '.json') { + $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' + $templateContent = az bicep build --file $templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + $parameters = $templateContent.parameters.Keys + + if($parameters -contains 'namePrefix') { + $functionInput['additionalParameters'] += @{ + namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value + } + } + } else { + $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' + } + + $functionInput['templateFilePath'] = $templateFilePath + + # Handle additional parameters + $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json if((Split-Path '$(parameterFilePath)' -Extension) -eq '.json') { $functionInput['parameterFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' } - # Pass required parameters if($parameters -contains 'namePrefix') { $functionInput['additionalParameters'] += @{ namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value } } - if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { + if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { $functionInput['additionalParameters'] += @{ enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry } From 07c1df88ce7e7a6bf846d5d1085930b3cf8bb184 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 13:02:48 +0200 Subject: [PATCH 043/274] Additional refactoring --- .../jobs.validateModuleDeployment.yml | 57 ++++++++----------- 1 file changed, 23 insertions(+), 34 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 0c01e0e588..ec6c4b0d22 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -210,9 +210,10 @@ jobs: } # Handle template file - if((Split-Path '$(parameterFilePath)' -Extension) -ne '.json') { - $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' - $templateContent = az bicep build --file $templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + if((Split-Path '$(parameterFilePath)' -Extension) -eq '.bicep') { + // MODULE USES BICEP TEST FILES + $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' + $templateContent = az bicep build --file $functionInput.templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable $parameters = $templateContent.parameters.Keys if($parameters -contains 'namePrefix') { @@ -221,18 +222,14 @@ jobs: } } } else { - $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' - } - - $functionInput['templateFilePath'] = $templateFilePath - - if((Split-Path '$(parameterFilePath)' -Extension) -eq '.json') { + // MODULE USES JSON PARAMETER FILES + $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' $functionInput['parameterFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' } # Handle additional parameters $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json - if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { + if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { $functionInput['additionalParameters'] += @{ enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry } @@ -274,9 +271,10 @@ jobs: } # Handle template file - if((Split-Path '$(parameterFilePath)' -Extension) -ne '.json') { - $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' - $templateContent = az bicep build --file $templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + if((Split-Path '$(parameterFilePath)' -Extension) -eq '.bicep') { + // MODULE USES BICEP TEST FILES + $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' + $templateContent = az bicep build --file $functionInput.templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable $parameters = $templateContent.parameters.Keys if($parameters -contains 'namePrefix') { @@ -285,24 +283,14 @@ jobs: } } } else { - $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' + // MODULE USES JSON PARAMETER FILES + $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' + $functionInput['parameterFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' } - $functionInput['templateFilePath'] = $templateFilePath - # Handle additional parameters $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json - if((Split-Path '$(parameterFilePath)' -Extension) -eq '.json') { - $functionInput['parameterFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' - } - - if($parameters -contains 'namePrefix') { - $functionInput['additionalParameters'] += @{ - namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value - } - } - - if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { + if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { $functionInput['additionalParameters'] += @{ enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry } @@ -353,14 +341,7 @@ jobs: # Load used function . (Join-Path '$(System.DefaultWorkingDirectory)' '$(pipelineFunctionsPath)' 'resourceRemoval' 'Initialize-DeploymentRemoval.ps1') - if((Split-Path '$(parameterFilePath)' -Extension) -ne '.json') { - $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' - } else { - $templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' - } - $functionInput = @{ - TemplateFilePath = $templateFilePath ResourceGroupName = '${{ parameters.resourceGroupName }}' subscriptionId = '${{ parameters.subscriptionId }}' ManagementGroupId = '${{ parameters.managementGroupId }}' @@ -368,6 +349,14 @@ jobs: Verbose = $true } + if((Split-Path '$(parameterFilePath)' -Extension) -eq '.bicep') { + // MODULE USES BICEP TEST FILES + $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' + } else { + // MODULE USES JSON PARAMETER FILES + $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' + } + Write-Verbose 'Invoke task with' -Verbose Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose From d21380068b5f273ac2e8dfaa2da1f379bb804c5a Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 13:06:39 +0200 Subject: [PATCH 044/274] Remvoed output --- .../actions/templates/validateModuleDeployment/action.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 3add28e7aa..aa3d02de3f 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -207,11 +207,6 @@ runs: $templateContent = az bicep build --file $templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable $parameters = $templateContent.parameters.Keys - Write-Verbose "Template" -Verbose - Write-Verbose ($templateContent | Out-String) -Verbose - Write-Verbose "Parameters" -Verbose - Write-Verbose ($parameters | Out-String) -Verbose - $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { $functionInput['additionalParameters'] += @{ From 0bf4d417d5f5ff8c0faf2f4e8ed4e05935af3a63 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 13:35:27 +0200 Subject: [PATCH 045/274] Further refacored template --- .../jobs.validateModuleDeployment.yml | 82 ++++++++++++++----- .../validateModuleDeployment/action.yml | 1 + 2 files changed, 61 insertions(+), 22 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index ec6c4b0d22..c05e1ccff9 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -210,26 +210,45 @@ jobs: } # Handle template file - if((Split-Path '$(parameterFilePath)' -Extension) -eq '.bicep') { - // MODULE USES BICEP TEST FILES + if((Split-Path '$(parameterFilePath)' -Leaf) -like '.parameters.') { + // CASE: MODULE USES ORIGINAL JSON PARAMETER FILES + // =============================================== + $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' + $functionInput['parameterFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' + $moduleTemplatePossibleParameters = (Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashtable + } else { + // CASE: MODULE USES NEW TEST FILES + // ================================ $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' - $templateContent = az bicep build --file $functionInput.templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable - $parameters = $templateContent.parameters.Keys - if($parameters -contains 'namePrefix') { + // Handle test template parameters + // ------------------------------- + if((Split-Path $functionInput.templateFilePath -Extension) -eq '.bicep') { + $testFileContent = az bicep build --file $functionInput.templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + $testTemplatePossibleParameters = $testFileContent.parameters.Keys + } else { + $testTemplatePossibleParameters = (Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashTable + } + + if($testTemplatePossibleParameters.Keys -contains 'namePrefix') { $functionInput['additionalParameters'] += @{ namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value } } - } else { - // MODULE USES JSON PARAMETER FILES - $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' - $functionInput['parameterFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' + + // Handle module template parameters + // --------------------------------- + if(Test-Path (Join-Path '$(modulePath)' 'deploy.bicep')) { + $moduleTemplateContent = az bicep build --file $functionInput.templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys + } else { + $moduleTemplatePossibleParameters = (Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashTable + } } # Handle additional parameters $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json - if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { + if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and ($moduleTemplatePossibleParameters.Keys -contains 'enableDefaultTelemetry') { $functionInput['additionalParameters'] += @{ enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry } @@ -271,26 +290,45 @@ jobs: } # Handle template file - if((Split-Path '$(parameterFilePath)' -Extension) -eq '.bicep') { - // MODULE USES BICEP TEST FILES + if((Split-Path '$(parameterFilePath)' -Leaf) -like '.parameters.') { + // CASE: MODULE USES ORIGINAL JSON PARAMETER FILES + // =============================================== + $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' + $functionInput['parameterFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' + $moduleTemplatePossibleParameters = (Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashtable + } else { + // CASE: MODULE USES NEW TEST FILES + // ================================ $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' - $templateContent = az bicep build --file $functionInput.templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable - $parameters = $templateContent.parameters.Keys - if($parameters -contains 'namePrefix') { + // Handle test template parameters + // ------------------------------- + if((Split-Path $functionInput.templateFilePath -Extension) -eq '.bicep') { + $testFileContent = az bicep build --file $functionInput.templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + $testTemplatePossibleParameters = $testFileContent.parameters.Keys + } else { + $testTemplatePossibleParameters = (Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashTable + } + + if($testTemplatePossibleParameters.Keys -contains 'namePrefix') { $functionInput['additionalParameters'] += @{ namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value } } - } else { - // MODULE USES JSON PARAMETER FILES - $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' - $functionInput['parameterFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' + + // Handle module template parameters + // --------------------------------- + if(Test-Path (Join-Path '$(modulePath)' 'deploy.bicep')) { + $moduleTemplateContent = az bicep build --file $functionInput.templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys + } else { + $moduleTemplatePossibleParameters = (Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashTable + } } # Handle additional parameters $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json - if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { + if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and ($moduleTemplatePossibleParameters.Keys -contains 'enableDefaultTelemetry') { $functionInput['additionalParameters'] += @{ enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry } @@ -350,10 +388,10 @@ jobs: } if((Split-Path '$(parameterFilePath)' -Extension) -eq '.bicep') { - // MODULE USES BICEP TEST FILES + // MODULE USES NEW TEST FILES $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' } else { - // MODULE USES JSON PARAMETER FILES + // MODULE USES ORIGINAL JSON PARAMETER FILES $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' } diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index aa3d02de3f..855e68c9b7 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -204,6 +204,7 @@ runs: } # Passing the resource group name as a deployment parameter if accepted + # TODO: MUST ALSO WORK WITH PURE JSON $templateContent = az bicep build --file $templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable $parameters = $templateContent.parameters.Keys From ead99baf67f17ff3862c6b521c5463e3cacb9890 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 15:24:01 +0200 Subject: [PATCH 046/274] Minor fix --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index c05e1ccff9..3544df1ef3 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -248,7 +248,7 @@ jobs: # Handle additional parameters $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json - if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and ($moduleTemplatePossibleParameters.Keys -contains 'enableDefaultTelemetry') { + if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and ($moduleTemplatePossibleParameters.Keys -contains 'enableDefaultTelemetry')) { $functionInput['additionalParameters'] += @{ enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry } @@ -328,7 +328,7 @@ jobs: # Handle additional parameters $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json - if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and ($moduleTemplatePossibleParameters.Keys -contains 'enableDefaultTelemetry') { + if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and ($moduleTemplatePossibleParameters.Keys -contains 'enableDefaultTelemetry')) { $functionInput['additionalParameters'] += @{ enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry } From e1655705a41c5805ba1f1a8b64ef6a85dcf42469 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 15:34:09 +0200 Subject: [PATCH 047/274] Update to latest --- .../jobs.validateModuleDeployment.yml | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 3544df1ef3..c4c869928d 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -211,18 +211,18 @@ jobs: # Handle template file if((Split-Path '$(parameterFilePath)' -Leaf) -like '.parameters.') { - // CASE: MODULE USES ORIGINAL JSON PARAMETER FILES - // =============================================== + # CASE: MODULE USES ORIGINAL JSON PARAMETER FILES + # =============================================== $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' $functionInput['parameterFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' $moduleTemplatePossibleParameters = (Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashtable } else { - // CASE: MODULE USES NEW TEST FILES - // ================================ + # CASE: MODULE USES NEW TEST FILES + # ================================ $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' - // Handle test template parameters - // ------------------------------- + # Handle test template parameters + # ------------------------------- if((Split-Path $functionInput.templateFilePath -Extension) -eq '.bicep') { $testFileContent = az bicep build --file $functionInput.templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable $testTemplatePossibleParameters = $testFileContent.parameters.Keys @@ -236,8 +236,8 @@ jobs: } } - // Handle module template parameters - // --------------------------------- + # Handle module template parameters + # --------------------------------- if(Test-Path (Join-Path '$(modulePath)' 'deploy.bicep')) { $moduleTemplateContent = az bicep build --file $functionInput.templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys @@ -291,18 +291,18 @@ jobs: # Handle template file if((Split-Path '$(parameterFilePath)' -Leaf) -like '.parameters.') { - // CASE: MODULE USES ORIGINAL JSON PARAMETER FILES - // =============================================== + # CASE: MODULE USES ORIGINAL JSON PARAMETER FILES + # =============================================== $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' $functionInput['parameterFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' $moduleTemplatePossibleParameters = (Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashtable } else { - // CASE: MODULE USES NEW TEST FILES - // ================================ + # CASE: MODULE USES NEW TEST FILES + # ================================ $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' - // Handle test template parameters - // ------------------------------- + # Handle test template parameters + # ------------------------------- if((Split-Path $functionInput.templateFilePath -Extension) -eq '.bicep') { $testFileContent = az bicep build --file $functionInput.templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable $testTemplatePossibleParameters = $testFileContent.parameters.Keys @@ -316,8 +316,8 @@ jobs: } } - // Handle module template parameters - // --------------------------------- + # Handle module template parameters + # --------------------------------- if(Test-Path (Join-Path '$(modulePath)' 'deploy.bicep')) { $moduleTemplateContent = az bicep build --file $functionInput.templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys @@ -388,10 +388,10 @@ jobs: } if((Split-Path '$(parameterFilePath)' -Extension) -eq '.bicep') { - // MODULE USES NEW TEST FILES + # MODULE USES NEW TEST FILES $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' } else { - // MODULE USES ORIGINAL JSON PARAMETER FILES + # MODULE USES ORIGINAL JSON PARAMETER FILES $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' } From d2696896aa64e273cd3d2d6f29b6bc820cab7381 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 16:10:25 +0200 Subject: [PATCH 048/274] Update to latest --- .../jobs.validateModuleDeployment.yml | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index c4c869928d..eeb52499e3 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -194,7 +194,8 @@ jobs: inline: | # Load used functions . (Join-Path '$(System.DefaultWorkingDirectory)' '$(pipelineFunctionsPath)' 'resourceDeployment' 'Test-TemplateDeployment.ps1') - . (Join-Path '$(System.DefaultWorkingDirectory)' '$(pipelineFunctionsPath)' 'sharedScripts' 'Get-ScopeOfTemplateFile.ps1') + + $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json # ----------- # # INVOKE TEST # @@ -209,13 +210,14 @@ jobs: additionalParameters = @{} } + # Handle template file if((Split-Path '$(parameterFilePath)' -Leaf) -like '.parameters.') { # CASE: MODULE USES ORIGINAL JSON PARAMETER FILES # =============================================== $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' $functionInput['parameterFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' - $moduleTemplatePossibleParameters = (Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashtable + $moduleTemplatePossibleParameters = ((Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashTable).parameters.keys } else { # CASE: MODULE USES NEW TEST FILES # ================================ @@ -227,10 +229,10 @@ jobs: $testFileContent = az bicep build --file $functionInput.templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable $testTemplatePossibleParameters = $testFileContent.parameters.Keys } else { - $testTemplatePossibleParameters = (Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashTable + $testTemplatePossibleParameters = ((Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashTable).parameters.keys } - if($testTemplatePossibleParameters.Keys -contains 'namePrefix') { + if($testTemplatePossibleParameters -contains 'namePrefix') { $functionInput['additionalParameters'] += @{ namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value } @@ -239,15 +241,14 @@ jobs: # Handle module template parameters # --------------------------------- if(Test-Path (Join-Path '$(modulePath)' 'deploy.bicep')) { - $moduleTemplateContent = az bicep build --file $functionInput.templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + $moduleTemplateContent = az bicep build --file (Join-Path '$(modulePath)' 'deploy.bicep') --stdout --no-restore | ConvertFrom-Json -AsHashtable $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys } else { - $moduleTemplatePossibleParameters = (Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashTable + $moduleTemplatePossibleParameters = ((Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashTable).parameters.keys } } # Handle additional parameters - $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and ($moduleTemplatePossibleParameters.Keys -contains 'enableDefaultTelemetry')) { $functionInput['additionalParameters'] += @{ enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry @@ -273,7 +274,8 @@ jobs: inline: | # Load used functions . (Join-Path '$(System.DefaultWorkingDirectory)' '$(pipelineFunctionsPath)' 'resourceDeployment' 'New-TemplateDeployment.ps1') - . (Join-Path '$(System.DefaultWorkingDirectory)' '$(pipelineFunctionsPath)' 'sharedScripts' 'Get-ScopeOfTemplateFile.ps1') + + $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json # ----------------- # # INVOKE DEPLOYMENT # @@ -295,7 +297,7 @@ jobs: # =============================================== $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' $functionInput['parameterFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' - $moduleTemplatePossibleParameters = (Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashtable + $moduleTemplatePossibleParameters = ((Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashTable).parameters.keys } else { # CASE: MODULE USES NEW TEST FILES # ================================ @@ -307,10 +309,10 @@ jobs: $testFileContent = az bicep build --file $functionInput.templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable $testTemplatePossibleParameters = $testFileContent.parameters.Keys } else { - $testTemplatePossibleParameters = (Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashTable + $testTemplatePossibleParameters = ((Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashTable).parameters.keys } - if($testTemplatePossibleParameters.Keys -contains 'namePrefix') { + if($testTemplatePossibleParameters -contains 'namePrefix') { $functionInput['additionalParameters'] += @{ namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value } @@ -319,15 +321,14 @@ jobs: # Handle module template parameters # --------------------------------- if(Test-Path (Join-Path '$(modulePath)' 'deploy.bicep')) { - $moduleTemplateContent = az bicep build --file $functionInput.templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + $moduleTemplateContent = az bicep build --file (Join-Path '$(modulePath)' 'deploy.bicep') --stdout --no-restore | ConvertFrom-Json -AsHashtable $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys } else { - $moduleTemplatePossibleParameters = (Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashTable + $moduleTemplatePossibleParameters = ((Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashTable).parameters.keys } } # Handle additional parameters - $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and ($moduleTemplatePossibleParameters.Keys -contains 'enableDefaultTelemetry')) { $functionInput['additionalParameters'] += @{ enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry From a542e5f249f58b5dd0a609f305d1805103376c08 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 16:11:07 +0200 Subject: [PATCH 049/274] Update to latest --- .azuredevops/pipelineTemplates/stages.module.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.azuredevops/pipelineTemplates/stages.module.yml b/.azuredevops/pipelineTemplates/stages.module.yml index 647517a17e..6f85e37038 100644 --- a/.azuredevops/pipelineTemplates/stages.module.yml +++ b/.azuredevops/pipelineTemplates/stages.module.yml @@ -5,10 +5,10 @@ parameters: defaultJobTimeoutInMinutes: 120 stages: - - stage: validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml + # - stage: validation + # displayName: Static validation + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - stage: deployment displayName: Deployment validation From 7d1fdac54dcb7635890cb690e1bb913b5661cc09 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 16:17:18 +0200 Subject: [PATCH 050/274] Adjusted condition --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index eeb52499e3..65f44293ae 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -368,7 +368,7 @@ jobs: #------------------ - task: AzurePowerShell@5 displayName: 'Remove deployed resources via [${{ parameters.serviceConnection }}]' - condition: and(succeededOrFailed(), eq('${{ parameters.removeDeployment }}', 'true'), not(eq( '$(deploymentName)', '' ))) + condition: and(succeededOrFailed(), eq('${{ parameters.removeDeployment }}', 'true'), not(eq( '$(deploymentName)', '', not(startsWith( '$(deploymentName)', '$(' ))) inputs: azureSubscription: ${{ parameters.serviceConnection }} azurePowerShellVersion: ${{ parameters.azurePowerShellVersion }} From e30cb0ab10baffe57ac6559715fbb48460f748d1 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 16:18:48 +0200 Subject: [PATCH 051/274] Adjusted condition --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 65f44293ae..e8be0be808 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -368,7 +368,7 @@ jobs: #------------------ - task: AzurePowerShell@5 displayName: 'Remove deployed resources via [${{ parameters.serviceConnection }}]' - condition: and(succeededOrFailed(), eq('${{ parameters.removeDeployment }}', 'true'), not(eq( '$(deploymentName)', '', not(startsWith( '$(deploymentName)', '$(' ))) + condition: and(succeededOrFailed(), eq('${{ parameters.removeDeployment }}', 'true'), not(eq( '$(deploymentName)', '')), not(startsWith( '$(deploymentName)', '$(' ))) inputs: azureSubscription: ${{ parameters.serviceConnection }} azurePowerShellVersion: ${{ parameters.azurePowerShellVersion }} From 5a87d0f6d94b30f7b91e527be44ae17008fc665e Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 16:26:00 +0200 Subject: [PATCH 052/274] Added dummy output --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index e8be0be808..0bbea9d8be 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -210,7 +210,6 @@ jobs: additionalParameters = @{} } - # Handle template file if((Split-Path '$(parameterFilePath)' -Leaf) -like '.parameters.') { # CASE: MODULE USES ORIGINAL JSON PARAMETER FILES @@ -241,9 +240,13 @@ jobs: # Handle module template parameters # --------------------------------- if(Test-Path (Join-Path '$(modulePath)' 'deploy.bicep')) { + Write-Output "1" + Write-Output (Join-Path '$(modulePath)' 'deploy.bicep') $moduleTemplateContent = az bicep build --file (Join-Path '$(modulePath)' 'deploy.bicep') --stdout --no-restore | ConvertFrom-Json -AsHashtable $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys } else { + Write-Output "2" + Write-Output (Join-Path '$(modulePath)' 'deploy.bicep') $moduleTemplatePossibleParameters = ((Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashTable).parameters.keys } } From 503ba2c2f7ddb1a23941af580b3597354eacaaed Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 16:31:15 +0200 Subject: [PATCH 053/274] Fixed path --- .../jobs.validateModuleDeployment.yml | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 0bbea9d8be..b1ab17b085 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -239,14 +239,10 @@ jobs: # Handle module template parameters # --------------------------------- - if(Test-Path (Join-Path '$(modulePath)' 'deploy.bicep')) { - Write-Output "1" - Write-Output (Join-Path '$(modulePath)' 'deploy.bicep') - $moduleTemplateContent = az bicep build --file (Join-Path '$(modulePath)' 'deploy.bicep') --stdout --no-restore | ConvertFrom-Json -AsHashtable + if(Test-Path (Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' 'deploy.bicep')) { + $moduleTemplateContent = az bicep build --file (Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' 'deploy.bicep') --stdout --no-restore | ConvertFrom-Json -AsHashtable $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys } else { - Write-Output "2" - Write-Output (Join-Path '$(modulePath)' 'deploy.bicep') $moduleTemplatePossibleParameters = ((Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashTable).parameters.keys } } @@ -323,8 +319,8 @@ jobs: # Handle module template parameters # --------------------------------- - if(Test-Path (Join-Path '$(modulePath)' 'deploy.bicep')) { - $moduleTemplateContent = az bicep build --file (Join-Path '$(modulePath)' 'deploy.bicep') --stdout --no-restore | ConvertFrom-Json -AsHashtable + if(Test-Path (Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' 'deploy.bicep')) { + $moduleTemplateContent = az bicep build --file (Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' 'deploy.bicep') --stdout --no-restore | ConvertFrom-Json -AsHashtable $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys } else { $moduleTemplatePossibleParameters = ((Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashTable).parameters.keys From 70a6f1e54f015496dce8b59efe9d74b4c4441c10 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 16:39:44 +0200 Subject: [PATCH 054/274] added missing address space --- modules/Microsoft.Network/vpnSites/.test/min.bicep | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/Microsoft.Network/vpnSites/.test/min.bicep b/modules/Microsoft.Network/vpnSites/.test/min.bicep index 61604dc85e..1a0c39b44c 100644 --- a/modules/Microsoft.Network/vpnSites/.test/min.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/min.bicep @@ -47,5 +47,9 @@ module testDeployment '../deploy.bicep' = { params: { name: '${namePrefix}-az-${serviceShort}-001' virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId + addressPrefixes: [ + '10.0.0.0/16' + ] + ipAddress: '1.2.3.4' } } From bceadacd25059535fb1e8d05c5b948d7316da90e Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 17:22:52 +0200 Subject: [PATCH 055/274] Fix param ref --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index b1ab17b085..46a4cf0f1a 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -211,7 +211,7 @@ jobs: } # Handle template file - if((Split-Path '$(parameterFilePath)' -Leaf) -like '.parameters.') { + if((Split-Path '$(parameterFilePath)' -Leaf) -like '*parameters.*') { # CASE: MODULE USES ORIGINAL JSON PARAMETER FILES # =============================================== $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' @@ -291,7 +291,7 @@ jobs: } # Handle template file - if((Split-Path '$(parameterFilePath)' -Leaf) -like '.parameters.') { + if((Split-Path '$(parameterFilePath)' -Leaf) -like '*parameters.*') { # CASE: MODULE USES ORIGINAL JSON PARAMETER FILES # =============================================== $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' From 261ee47273e993b0183874106502478964f5649f Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 17:55:48 +0200 Subject: [PATCH 056/274] Further refactoring --- .../jobs.validateModuleDeployment.yml | 172 ++++++++++-------- 1 file changed, 93 insertions(+), 79 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 46a4cf0f1a..71eec0ccb9 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -197,57 +197,64 @@ jobs: $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json + # Fetching parameters + $location = '${{ parameters.location }}' + $resourceGroupName = '${{ parameters.resourceGroupName }}' + $subscriptionId = '${{ parameters.subscriptionId }}' + $managementGroupId = '${{ parameters.managementGroupId }}' + + $moduleTemplateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' + $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' + + if (Split-Path $moduleTemplateFilePath -eq '.bicep') { + $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys + } else { + $moduleTemplatePossibleParameters = ((Get-Content $moduleTemplateFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys + } + # ----------- # # INVOKE TEST # # ----------- # # Building input object $functionInput = @{ - location = '${{ parameters.location }}' - resourceGroupName = '${{ parameters.resourceGroupName }}' - subscriptionId = '${{ parameters.subscriptionId }}' - managementGroupId = '${{ parameters.managementGroupId }}' - additionalParameters = @{} + location = $location + resourceGroupName = $resourceGroupName + subscriptionId = $subscriptionId + managementGroupId = $managementGroupId + additionalParameters = @{} } # Handle template file - if((Split-Path '$(parameterFilePath)' -Leaf) -like '*parameters.*') { - # CASE: MODULE USES ORIGINAL JSON PARAMETER FILES - # =============================================== - $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' - $functionInput['parameterFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' - $moduleTemplatePossibleParameters = ((Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashTable).parameters.keys + if ((Split-Path $moduleTestFilePath -Leaf) -like '*parameters.*') { + # CASE: MODULE USES ORIGINAL JSON PARAMETER FILES + # =============================================== + $functionInput['templateFilePath'] = $moduleTemplateFilePath + $functionInput['parameterFilePath'] = $moduleTestFilePath } else { - # CASE: MODULE USES NEW TEST FILES - # ================================ - $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' - - # Handle test template parameters - # ------------------------------- - if((Split-Path $functionInput.templateFilePath -Extension) -eq '.bicep') { - $testFileContent = az bicep build --file $functionInput.templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable - $testTemplatePossibleParameters = $testFileContent.parameters.Keys - } else { - $testTemplatePossibleParameters = ((Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashTable).parameters.keys - } - - if($testTemplatePossibleParameters -contains 'namePrefix') { - $functionInput['additionalParameters'] += @{ - namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value + # CASE: MODULE USES NEW TEST FILES + # ================================ + $functionInput['templateFilePath'] = $moduleTestFilePath + + # Handle test template parameters + # ------------------------------- + if (Split-Path $moduleTestFilePath -eq '.bicep') { + $testFileContent = az bicep build --file $functionInput.templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + $testTemplatePossibleParameters = $testFileContent.parameters.Keys + } else { + $testTemplatePossibleParameters = ((Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys } - } - # Handle module template parameters - # --------------------------------- - if(Test-Path (Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' 'deploy.bicep')) { - $moduleTemplateContent = az bicep build --file (Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' 'deploy.bicep') --stdout --no-restore | ConvertFrom-Json -AsHashtable - $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys - } else { - $moduleTemplatePossibleParameters = ((Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashTable).parameters.keys - } + if ($testTemplatePossibleParameters -contains 'namePrefix') { + $functionInput['additionalParameters'] += @{ + namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value + } + } } # Handle additional parameters + # ---------------------------- if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and ($moduleTemplatePossibleParameters.Keys -contains 'enableDefaultTelemetry')) { $functionInput['additionalParameters'] += @{ enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry @@ -272,71 +279,78 @@ jobs: ScriptType: InlineScript inline: | # Load used functions - . (Join-Path '$(System.DefaultWorkingDirectory)' '$(pipelineFunctionsPath)' 'resourceDeployment' 'New-TemplateDeployment.ps1') + . (Join-Path '$(System.DefaultWorkingDirectory)' '$(pipelineFunctionsPath)' 'resourceDeployment' 'Test-TemplateDeployment.ps1') + # Prepare general parameters + # -------------------------- $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json - # ----------------- # - # INVOKE DEPLOYMENT # - # ----------------- # + $location = '${{ parameters.location }}' + $resourceGroupName = '${{ parameters.resourceGroupName }}' + $subscriptionId = '${{ parameters.subscriptionId }}' + $managementGroupId = '${{ parameters.managementGroupId }}' + + $moduleTemplateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' + $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' + + if (Split-Path $moduleTemplateFilePath -eq '.bicep') { + $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys + } else { + $moduleTemplatePossibleParameters = ((Get-Content $moduleTemplateFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys + } + + # ----------- # + # INVOKE TEST # + # ----------- # # Building input object $functionInput = @{ - location = '${{ parameters.location }}' - resourceGroupName = '${{ parameters.resourceGroupName }}' - subscriptionId = '${{ parameters.subscriptionId }}' - managementGroupId = '${{ parameters.managementGroupId }}' - doNotThrow = $true - additionalParameters = @{} + location = $location + resourceGroupName = $resourceGroupName + subscriptionId = $subscriptionId + managementGroupId = $managementGroupId + additionalParameters = @{} } - # Handle template file - if((Split-Path '$(parameterFilePath)' -Leaf) -like '*parameters.*') { - # CASE: MODULE USES ORIGINAL JSON PARAMETER FILES - # =============================================== - $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' - $functionInput['parameterFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' - $moduleTemplatePossibleParameters = ((Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashTable).parameters.keys + if ((Split-Path $moduleTestFilePath -Leaf) -like '*parameters.*') { + + # CASE: MODULE USES ORIGINAL JSON PARAMETER FILES + # =============================================== + + $functionInput['templateFilePath'] = $moduleTemplateFilePath + $functionInput['parameterFilePath'] = $moduleTestFilePath } else { - # CASE: MODULE USES NEW TEST FILES - # ================================ - $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' - # Handle test template parameters - # ------------------------------- - if((Split-Path $functionInput.templateFilePath -Extension) -eq '.bicep') { - $testFileContent = az bicep build --file $functionInput.templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable - $testTemplatePossibleParameters = $testFileContent.parameters.Keys - } else { - $testTemplatePossibleParameters = ((Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashTable).parameters.keys - } + # CASE: MODULE USES NEW TEST FILES + # ================================ - if($testTemplatePossibleParameters -contains 'namePrefix') { - $functionInput['additionalParameters'] += @{ - namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value + $functionInput['templateFilePath'] = $moduleTestFilePath + + # Handle test template parameters + # ------------------------------- + if (Split-Path $moduleTestFilePath -eq '.bicep') { + $testFileContent = az bicep build --file $functionInput.templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + $testTemplatePossibleParameters = $testFileContent.parameters.Keys + } else { + $testTemplatePossibleParameters = ((Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys } - } - # Handle module template parameters - # --------------------------------- - if(Test-Path (Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' 'deploy.bicep')) { - $moduleTemplateContent = az bicep build --file (Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' 'deploy.bicep') --stdout --no-restore | ConvertFrom-Json -AsHashtable - $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys - } else { - $moduleTemplatePossibleParameters = ((Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashTable).parameters.keys - } + if ($testTemplatePossibleParameters -contains 'namePrefix') { + $functionInput['additionalParameters'] += @{ + namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value + } + } } # Handle additional parameters + # ---------------------------- if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and ($moduleTemplatePossibleParameters.Keys -contains 'enableDefaultTelemetry')) { $functionInput['additionalParameters'] += @{ enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry } } - Write-Verbose "Invoke task with" -Verbose - Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose - # Invoke deployment $res = New-TemplateDeployment @functionInput -Verbose From c3ba3ed42a8d7ed03ec3e138b4d2729d6a5d43e5 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 17:58:41 +0200 Subject: [PATCH 057/274] Update to latest --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 71eec0ccb9..35c5ed247f 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -206,7 +206,7 @@ jobs: $moduleTemplateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' - if (Split-Path $moduleTemplateFilePath -eq '.bicep') { + if ((Split-Path $moduleTemplateFilePath -Extension) -eq '.bicep') { $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys } else { @@ -293,7 +293,7 @@ jobs: $moduleTemplateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' - if (Split-Path $moduleTemplateFilePath -eq '.bicep') { + if ((Split-Path $moduleTemplateFilePath -Extension) -eq '.bicep') { $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys } else { From 76b1b963fff623744c76fcb0699b74df817d162a Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 18:01:16 +0200 Subject: [PATCH 058/274] Update to latest --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 35c5ed247f..0494f4d95e 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -239,7 +239,7 @@ jobs: # Handle test template parameters # ------------------------------- - if (Split-Path $moduleTestFilePath -eq '.bicep') { + if ((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { $testFileContent = az bicep build --file $functionInput.templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable $testTemplatePossibleParameters = $testFileContent.parameters.Keys } else { @@ -329,7 +329,7 @@ jobs: # Handle test template parameters # ------------------------------- - if (Split-Path $moduleTestFilePath -eq '.bicep') { + if ((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { $testFileContent = az bicep build --file $functionInput.templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable $testTemplatePossibleParameters = $testFileContent.parameters.Keys } else { From 124bfdd727abdb88d44b88be9700979535c2384d Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 18:05:58 +0200 Subject: [PATCH 059/274] Fixed deployment ref --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 0494f4d95e..42bda8d8ff 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -193,7 +193,7 @@ jobs: pwsh: true inline: | # Load used functions - . (Join-Path '$(System.DefaultWorkingDirectory)' '$(pipelineFunctionsPath)' 'resourceDeployment' 'Test-TemplateDeployment.ps1') + . (Join-Path '$(System.DefaultWorkingDirectory)' '$(pipelineFunctionsPath)' 'resourceDeployment' 'New-TemplateDeployment.ps1') $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json From 510442c5e291dee2b813330456d1b2cfa839f184 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 18:06:41 +0200 Subject: [PATCH 060/274] Update to latest --- .azuredevops/pipelineTemplates/stages.module.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.azuredevops/pipelineTemplates/stages.module.yml b/.azuredevops/pipelineTemplates/stages.module.yml index 6f85e37038..647517a17e 100644 --- a/.azuredevops/pipelineTemplates/stages.module.yml +++ b/.azuredevops/pipelineTemplates/stages.module.yml @@ -5,10 +5,10 @@ parameters: defaultJobTimeoutInMinutes: 120 stages: - # - stage: validation - # displayName: Static validation - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml + - stage: validation + displayName: Static validation + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - stage: deployment displayName: Deployment validation From 23f13e007f7dcda2130924918b2595fe44e4280e Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 18:26:53 +0200 Subject: [PATCH 061/274] Updated GH piplines + minor improvements --- .../jobs.validateModuleDeployment.yml | 21 ++- .../validateModuleDeployment/action.yml | 121 +++++++++++++----- 2 files changed, 102 insertions(+), 40 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 42bda8d8ff..cc5e6dba0d 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -195,6 +195,8 @@ jobs: # Load used functions . (Join-Path '$(System.DefaultWorkingDirectory)' '$(pipelineFunctionsPath)' 'resourceDeployment' 'New-TemplateDeployment.ps1') + # Prepare general parameters + # -------------------------- $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json # Fetching parameters @@ -228,22 +230,25 @@ jobs: # Handle template file if ((Split-Path $moduleTestFilePath -Leaf) -like '*parameters.*') { + # CASE: MODULE USES ORIGINAL JSON PARAMETER FILES # =============================================== + $functionInput['templateFilePath'] = $moduleTemplateFilePath $functionInput['parameterFilePath'] = $moduleTestFilePath } else { + # CASE: MODULE USES NEW TEST FILES # ================================ + $functionInput['templateFilePath'] = $moduleTestFilePath # Handle test template parameters # ------------------------------- if ((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { - $testFileContent = az bicep build --file $functionInput.templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable - $testTemplatePossibleParameters = $testFileContent.parameters.Keys + $testTemplatePossibleParameters = (az bicep build --file $moduleTestFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable).parameters.Keys } else { - $testTemplatePossibleParameters = ((Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys + $testTemplatePossibleParameters = ((Get-Content $moduleTestFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys } if ($testTemplatePossibleParameters -contains 'namePrefix') { @@ -313,6 +318,7 @@ jobs: additionalParameters = @{} } + # Handle template file if ((Split-Path $moduleTestFilePath -Leaf) -like '*parameters.*') { # CASE: MODULE USES ORIGINAL JSON PARAMETER FILES @@ -320,6 +326,7 @@ jobs: $functionInput['templateFilePath'] = $moduleTemplateFilePath $functionInput['parameterFilePath'] = $moduleTestFilePath + } else { # CASE: MODULE USES NEW TEST FILES @@ -330,10 +337,9 @@ jobs: # Handle test template parameters # ------------------------------- if ((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { - $testFileContent = az bicep build --file $functionInput.templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable - $testTemplatePossibleParameters = $testFileContent.parameters.Keys + $testTemplatePossibleParameters = (az bicep build --file $moduleTestFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable).parameters.Keys } else { - $testTemplatePossibleParameters = ((Get-Content $functionInput.templateFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys + $testTemplatePossibleParameters = ((Get-Content $moduleTestFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys } if ($testTemplatePossibleParameters -contains 'namePrefix') { @@ -351,6 +357,9 @@ jobs: } } + Write-Verbose 'Invoke task with' -Verbose + Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose + # Invoke deployment $res = New-TemplateDeployment @functionInput -Verbose diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 855e68c9b7..470d74366d 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -185,43 +185,68 @@ runs: # Load used functions . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourceDeployment' 'Test-TemplateDeployment.ps1') - $templateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' + # Load used functions + . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourceDeployment' 'Test-TemplateDeployment.ps1') + + # Prepare general parameters + # -------------------------- + $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json + + # Fetching parameters + $location = '${{ inputs.location }}' + $resourceGroupName = '${{ inputs.resourceGroupName }}' + $subscriptionId = '${{ inputs.subscriptionId }}' + $managementGroupId = '${{ inputs.managementGroupId }}' + + $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' + $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Split-Path (Split-Path $moduleTestFilePath -Parent) -Parent)) + + if ((Split-Path $moduleTemplateFilePath -Extension) -eq '.bicep') { + $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys + } else { + $moduleTemplatePossibleParameters = ((Get-Content $moduleTemplateFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys + } # ----------- # # INVOKE TEST # # ----------- # $functionInput = @{ - templateFilePath = $templateFilePath - location = '${{ inputs.location }}' - resourceGroupName = '${{ inputs.resourceGroupName }}' - subscriptionId = '${{ inputs.subscriptionId }}' - managementGroupId = '${{ inputs.managementGroupId }}' + templateFilePath = $moduleTestFilePath + location = $location + resourceGroupName = $resourceGroupName + subscriptionId = $subscriptionId + managementGroupId = $managementGroupId additionalParameters = @{} } - if(-not [String]::IsNullOrEmpty('${{ inputs.parameterFilePath }}')) { + if (-not [String]::IsNullOrEmpty('${{ inputs.parameterFilePath }}')) { $functionInput['parameterFilePath'] = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' } - # Passing the resource group name as a deployment parameter if accepted - # TODO: MUST ALSO WORK WITH PURE JSON - $templateContent = az bicep build --file $templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable - $parameters = $templateContent.parameters.Keys + # Handle test template parameters + # ------------------------------- + if ((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { + $testTemplatePossibleParameters = (az bicep build --file $moduleTestFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable).parameters.Keys + } else { + $testTemplatePossibleParameters = ((Get-Content $moduleTestFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys + } - $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json - if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { + if ($testTemplatePossibleParameters -contains 'namePrefix') { $functionInput['additionalParameters'] += @{ - enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry + namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value } } - if($parameters -contains 'namePrefix') { + # Handle additional parameters + # ---------------------------- + if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and ($moduleTemplatePossibleParameters.Keys -contains 'enableDefaultTelemetry')) { $functionInput['additionalParameters'] += @{ - namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value + enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry } } - Write-Verbose "Invoke task with" -Verbose + Write-Verbose 'Invoke task with' -Verbose Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose Test-TemplateDeployment @functionInput -Verbose @@ -242,40 +267,68 @@ runs: # Load used functions . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourceDeployment' 'New-TemplateDeployment.ps1') - $templateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' + # Load used functions + . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourceDeployment' 'Test-TemplateDeployment.ps1') + # Prepare general parameters + # -------------------------- + $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json + + # Fetching parameters + $location = '${{ inputs.location }}' + $resourceGroupName = '${{ inputs.resourceGroupName }}' + $subscriptionId = '${{ inputs.subscriptionId }}' + $managementGroupId = '${{ inputs.managementGroupId }}' + + $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' + $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Split-Path (Split-Path $moduleTestFilePath -Parent) -Parent)) + + if ((Split-Path $moduleTemplateFilePath -Extension) -eq '.bicep') { + $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys + } else { + $moduleTemplatePossibleParameters = ((Get-Content $moduleTemplateFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys + } + + # ----------- # + # INVOKE TEST # + # ----------- # $functionInput = @{ - templateFilePath = $templateFilePath - location = '${{ inputs.location }}' - resourceGroupName = '${{ inputs.resourceGroupName }}' - subscriptionId = '${{ inputs.subscriptionId }}' - managementGroupId = '${{ inputs.managementGroupId }}' - doNotThrow = $true + templateFilePath = $moduleTestFilePath + location = $location + resourceGroupName = $resourceGroupName + subscriptionId = $subscriptionId + managementGroupId = $managementGroupId additionalParameters = @{} } - if(-not [String]::IsNullOrEmpty('${{ inputs.parameterFilePath }}')) { + if (-not [String]::IsNullOrEmpty('${{ inputs.parameterFilePath }}')) { $functionInput['parameterFilePath'] = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' } - # Passing the resource group name as a deployment parameter if accepted - $templateContent = az bicep build --file $templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable - $parameters = $templateContent.parameters.Keys + # Handle test template parameters + # ------------------------------- + if ((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { + $testTemplatePossibleParameters = (az bicep build --file $moduleTestFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable).parameters.Keys + } else { + $testTemplatePossibleParameters = ((Get-Content $moduleTestFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys + } - $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json - if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { + if ($testTemplatePossibleParameters -contains 'namePrefix') { $functionInput['additionalParameters'] += @{ - enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry + namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value } } - if($parameters -contains 'namePrefix') { + # Handle additional parameters + # ---------------------------- + if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and ($moduleTemplatePossibleParameters.Keys -contains 'enableDefaultTelemetry')) { $functionInput['additionalParameters'] += @{ - namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value + enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry } } - Write-Verbose "Invoke task with" -Verbose + Write-Verbose 'Invoke task with' -Verbose Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose # Invoke deployment From ca757946bc88d0c43549be0a4debf276011a01a1 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 18:32:44 +0200 Subject: [PATCH 062/274] Fixed ref --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index cc5e6dba0d..bc521b9e03 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -193,7 +193,7 @@ jobs: pwsh: true inline: | # Load used functions - . (Join-Path '$(System.DefaultWorkingDirectory)' '$(pipelineFunctionsPath)' 'resourceDeployment' 'New-TemplateDeployment.ps1') + . (Join-Path '$(System.DefaultWorkingDirectory)' '$(pipelineFunctionsPath)' 'resourceDeployment' 'Test-TemplateDeployment.ps1') # Prepare general parameters # -------------------------- @@ -284,7 +284,7 @@ jobs: ScriptType: InlineScript inline: | # Load used functions - . (Join-Path '$(System.DefaultWorkingDirectory)' '$(pipelineFunctionsPath)' 'resourceDeployment' 'Test-TemplateDeployment.ps1') + . (Join-Path '$(System.DefaultWorkingDirectory)' '$(pipelineFunctionsPath)' 'resourceDeployment' 'New-TemplateDeployment.ps1') # Prepare general parameters # -------------------------- From c3c3c8c27939fbeb8f4d183c86115506cb54b15a Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 19:48:24 +0200 Subject: [PATCH 063/274] another try --- .../validateModuleDeployment/action.yml | 48 ++++++++++--------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 470d74366d..6f284895a4 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -185,9 +185,6 @@ runs: # Load used functions . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourceDeployment' 'Test-TemplateDeployment.ps1') - # Load used functions - . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourceDeployment' 'Test-TemplateDeployment.ps1') - # Prepare general parameters # -------------------------- $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json @@ -198,8 +195,13 @@ runs: $subscriptionId = '${{ inputs.subscriptionId }}' $managementGroupId = '${{ inputs.managementGroupId }}' - $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' - $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Split-Path (Split-Path $moduleTestFilePath -Parent) -Parent)) + if ('${{ inputs.templateFilePath }}' -like '*/.test/*') { + $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' + $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Split-Path (Split-Path $moduleTestFilePath -Parent) -Parent)) + } else { + $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' + $moduleTemplateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' + } if ((Split-Path $moduleTemplateFilePath -Extension) -eq '.bicep') { $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable @@ -221,21 +223,21 @@ runs: } if (-not [String]::IsNullOrEmpty('${{ inputs.parameterFilePath }}')) { - $functionInput['parameterFilePath'] = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' + $functionInput['parameterFilePath'] = $moduleTestFilePath } # Handle test template parameters # ------------------------------- if ((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { - $testTemplatePossibleParameters = (az bicep build --file $moduleTestFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable).parameters.Keys + $testTemplatePossibleParameters = (az bicep build --file $moduleTestFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable).parameters.Keys } else { - $testTemplatePossibleParameters = ((Get-Content $moduleTestFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys + $testTemplatePossibleParameters = ((Get-Content $moduleTestFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys } if ($testTemplatePossibleParameters -contains 'namePrefix') { - $functionInput['additionalParameters'] += @{ - namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value - } + $functionInput['additionalParameters'] += @{ + namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value + } } # Handle additional parameters @@ -267,9 +269,6 @@ runs: # Load used functions . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourceDeployment' 'New-TemplateDeployment.ps1') - # Load used functions - . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourceDeployment' 'Test-TemplateDeployment.ps1') - # Prepare general parameters # -------------------------- $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json @@ -280,8 +279,13 @@ runs: $subscriptionId = '${{ inputs.subscriptionId }}' $managementGroupId = '${{ inputs.managementGroupId }}' - $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' - $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Split-Path (Split-Path $moduleTestFilePath -Parent) -Parent)) + if ('${{ inputs.templateFilePath }}' -like '*/.test/*') { + $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' + $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Split-Path (Split-Path $moduleTestFilePath -Parent) -Parent)) + } else { + $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' + $moduleTemplateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' + } if ((Split-Path $moduleTemplateFilePath -Extension) -eq '.bicep') { $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable @@ -303,21 +307,21 @@ runs: } if (-not [String]::IsNullOrEmpty('${{ inputs.parameterFilePath }}')) { - $functionInput['parameterFilePath'] = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' + $functionInput['parameterFilePath'] = $moduleTestFilePath } # Handle test template parameters # ------------------------------- if ((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { - $testTemplatePossibleParameters = (az bicep build --file $moduleTestFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable).parameters.Keys + $testTemplatePossibleParameters = (az bicep build --file $moduleTestFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable).parameters.Keys } else { - $testTemplatePossibleParameters = ((Get-Content $moduleTestFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys + $testTemplatePossibleParameters = ((Get-Content $moduleTestFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys } if ($testTemplatePossibleParameters -contains 'namePrefix') { - $functionInput['additionalParameters'] += @{ - namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value - } + $functionInput['additionalParameters'] += @{ + namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value + } } # Handle additional parameters From b4d5d3cb81b41cf6029916519487d835018ce7fc Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 20:06:28 +0200 Subject: [PATCH 064/274] Another try --- .../validateModuleDeployment/action.yml | 76 ++++++++++++------- 1 file changed, 50 insertions(+), 26 deletions(-) diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 6f284895a4..24cf5d0447 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -200,7 +200,7 @@ runs: $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Split-Path (Split-Path $moduleTestFilePath -Parent) -Parent)) } else { $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' - $moduleTemplateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' + $moduleTemplateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' } if ((Split-Path $moduleTemplateFilePath -Extension) -eq '.bicep') { @@ -214,7 +214,6 @@ runs: # INVOKE TEST # # ----------- # $functionInput = @{ - templateFilePath = $moduleTestFilePath location = $location resourceGroupName = $resourceGroupName subscriptionId = $subscriptionId @@ -222,21 +221,34 @@ runs: additionalParameters = @{} } - if (-not [String]::IsNullOrEmpty('${{ inputs.parameterFilePath }}')) { + # Handle template file + if ((Split-Path $moduleTestFilePath -Leaf) -like '*parameters.*') { + + # CASE: MODULE USES ORIGINAL JSON PARAMETER FILES + # =============================================== + + $functionInput['templateFilePath'] = $moduleTemplateFilePath $functionInput['parameterFilePath'] = $moduleTestFilePath - } - # Handle test template parameters - # ------------------------------- - if ((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { - $testTemplatePossibleParameters = (az bicep build --file $moduleTestFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable).parameters.Keys } else { - $testTemplatePossibleParameters = ((Get-Content $moduleTestFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys - } - if ($testTemplatePossibleParameters -contains 'namePrefix') { - $functionInput['additionalParameters'] += @{ - namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value + # CASE: MODULE USES NEW TEST FILES + # ================================ + + $functionInput['templateFilePath'] = $moduleTestFilePath + + # Handle test template parameters + # ------------------------------- + if ((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { + $testTemplatePossibleParameters = (az bicep build --file $moduleTestFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable).parameters.Keys + } else { + $testTemplatePossibleParameters = ((Get-Content $moduleTestFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys + } + + if ($testTemplatePossibleParameters -contains 'namePrefix') { + $functionInput['additionalParameters'] += @{ + namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value + } } } @@ -284,7 +296,7 @@ runs: $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Split-Path (Split-Path $moduleTestFilePath -Parent) -Parent)) } else { $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' - $moduleTemplateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' + $moduleTemplateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' } if ((Split-Path $moduleTemplateFilePath -Extension) -eq '.bicep') { @@ -298,7 +310,6 @@ runs: # INVOKE TEST # # ----------- # $functionInput = @{ - templateFilePath = $moduleTestFilePath location = $location resourceGroupName = $resourceGroupName subscriptionId = $subscriptionId @@ -306,21 +317,34 @@ runs: additionalParameters = @{} } - if (-not [String]::IsNullOrEmpty('${{ inputs.parameterFilePath }}')) { + # Handle template file + if ((Split-Path $moduleTestFilePath -Leaf) -like '*parameters.*') { + + # CASE: MODULE USES ORIGINAL JSON PARAMETER FILES + # =============================================== + + $functionInput['templateFilePath'] = $moduleTemplateFilePath $functionInput['parameterFilePath'] = $moduleTestFilePath - } - # Handle test template parameters - # ------------------------------- - if ((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { - $testTemplatePossibleParameters = (az bicep build --file $moduleTestFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable).parameters.Keys } else { - $testTemplatePossibleParameters = ((Get-Content $moduleTestFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys - } - if ($testTemplatePossibleParameters -contains 'namePrefix') { - $functionInput['additionalParameters'] += @{ - namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value + # CASE: MODULE USES NEW TEST FILES + # ================================ + + $functionInput['templateFilePath'] = $moduleTestFilePath + + # Handle test template parameters + # ------------------------------- + if ((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { + $testTemplatePossibleParameters = (az bicep build --file $moduleTestFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable).parameters.Keys + } else { + $testTemplatePossibleParameters = ((Get-Content $moduleTestFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys + } + + if ($testTemplatePossibleParameters -contains 'namePrefix') { + $functionInput['additionalParameters'] += @{ + namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value + } } } From 467bd16692b769e9e7111750d9326e6cce91d912 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 20:44:14 +0200 Subject: [PATCH 065/274] Fixed GH pipeline --- .github/workflows/ms.network.vpnsites.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ms.network.vpnsites.yml b/.github/workflows/ms.network.vpnsites.yml index a1c278bfa1..4357f93ebd 100644 --- a/.github/workflows/ms.network.vpnsites.yml +++ b/.github/workflows/ms.network.vpnsites.yml @@ -102,8 +102,7 @@ jobs: - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' + templateFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' From 2d536fee4d785be098b380f5428a290e8db0fe81 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 20:52:29 +0200 Subject: [PATCH 066/274] Updated names --- .../servers/.test/default.bicep | 8 ++++---- .../Microsoft.AnalysisServices/servers/.test/max.bicep | 8 ++++---- modules/Microsoft.Network/vpnSites/.test/min.bicep | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/Microsoft.AnalysisServices/servers/.test/default.bicep b/modules/Microsoft.AnalysisServices/servers/.test/default.bicep index e20c0239b9..5ec44296b6 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/default.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/default.bicep @@ -42,10 +42,10 @@ module diagnosticDependencies '../../../.global/dependencyConstructs/diagnostic. scope: resourceGroup name: '${uniqueString(deployment().name, location)}-diagDep' params: { - storageAccountName: 'adp${namePrefix}azsa${serviceShort}01' - logAnalyticsWorkspaceName: 'adp-${namePrefix}-law-${serviceShort}-01' - eventHubNamespaceEventHubName: 'adp-${namePrefix}-evh-${serviceShort}-01' - eventHubNamespaceName: 'adp-${namePrefix}-evhns-${serviceShort}-01' + storageAccountName: 'dep${namePrefix}azsa${serviceShort}01' + logAnalyticsWorkspaceName: 'dep-${namePrefix}-law-${serviceShort}-01' + eventHubNamespaceEventHubName: 'dep-${namePrefix}-evh-${serviceShort}-01' + eventHubNamespaceName: 'dep-${namePrefix}-evhns-${serviceShort}-01' location: location } } diff --git a/modules/Microsoft.AnalysisServices/servers/.test/max.bicep b/modules/Microsoft.AnalysisServices/servers/.test/max.bicep index d69ae09ca3..5631a8d56c 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/max.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/max.bicep @@ -42,10 +42,10 @@ module diagnosticDependencies '../../../.global/dependencyConstructs/diagnostic. scope: resourceGroup name: '${uniqueString(deployment().name, location)}-diagDep' params: { - storageAccountName: 'adp${namePrefix}azsa${serviceShort}01' - logAnalyticsWorkspaceName: 'adp-${namePrefix}-law-${serviceShort}-01' - eventHubNamespaceEventHubName: 'adp-${namePrefix}-evh-${serviceShort}-01' - eventHubNamespaceName: 'adp-${namePrefix}-evhns-${serviceShort}-01' + storageAccountName: 'dep${namePrefix}azsa${serviceShort}01' + logAnalyticsWorkspaceName: 'dep-${namePrefix}-law-${serviceShort}-01' + eventHubNamespaceEventHubName: 'dep-${namePrefix}-evh-${serviceShort}-01' + eventHubNamespaceName: 'dep-${namePrefix}-evhns-${serviceShort}-01' location: location } } diff --git a/modules/Microsoft.Network/vpnSites/.test/min.bicep b/modules/Microsoft.Network/vpnSites/.test/min.bicep index 1a0c39b44c..a95d360349 100644 --- a/modules/Microsoft.Network/vpnSites/.test/min.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/min.bicep @@ -33,7 +33,7 @@ module resourceGroupResources 'nestedTemplates/min.parameters.nested.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - virtualWANName: 'apd-${namePrefix}-az-vw-${serviceShort}-001' + virtualWANName: 'dep-${namePrefix}-az-vw-${serviceShort}-001' } } From b81d4d5c9a9d28c73f6f53e289d3a4a61fa6aca5 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 21:02:39 +0200 Subject: [PATCH 067/274] Rename --- modules/Microsoft.Network/vpnSites/.test/default.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/Microsoft.Network/vpnSites/.test/default.bicep b/modules/Microsoft.Network/vpnSites/.test/default.bicep index 5cd2eb4fd0..510a94ec04 100644 --- a/modules/Microsoft.Network/vpnSites/.test/default.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/default.bicep @@ -34,7 +34,7 @@ module resourceGroupResources 'nestedTemplates/default.parameters.nested.bicep' name: '${uniqueString(deployment().name, location)}-paramNested' params: { managedIdentityName: 'dep-${namePrefix}-az-msi-${serviceShort}-01' - virtualWANName: 'apd-${namePrefix}-az-vw-${serviceShort}-001' + virtualWANName: 'dep-${namePrefix}-az-vw-${serviceShort}-001' } } From 28224b6a7d4ce04b9d97018356020a5a9a4484a6 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 23:30:45 +0200 Subject: [PATCH 068/274] Stardted refactoring the readme function --- utilities/tools/Set-ModuleReadMe.ps1 | 202 ++++++++++++++++++--------- 1 file changed, 134 insertions(+), 68 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index 390ec2413c..27e0923212 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -351,93 +351,159 @@ function Set-DeploymentExamplesSection { $moduleRoot = Split-Path $TemplateFilePath -Parent $resourceTypeIdentifier = $moduleRoot.Replace('\', '/').Split('/modules/')[1].TrimStart('/') - $parameterFiles = Get-ChildItem (Join-Path $moduleRoot '.test') -Filter '*parameters.json' -Recurse + $resourceType = $resourceTypeIdentifier.Split('/')[1] + $parameterFiles = (Get-ChildItem (Join-Path -Path $moduleRoot -ChildPath '.test') -File).FullName | Where-Object { $_ -match '.+\.[bicep|json]' } $index = 1 - foreach ($parameterFilePath in $parameterFiles.FullName) { - $contentInJSONFormat = Get-Content -Path $parameterFilePath -Encoding 'utf8' | Out-String + foreach ($parameterFilePath in $parameterFiles) { + + $rawContentArray = Get-Content -Path $parameterFilePath + $rawContent = Get-Content -Path $parameterFilePath -Encoding 'utf8' | Out-String $SectionContent += @( - "

Example $index

" + '

Example {0}: {1}

' -f $index, ((Split-Path $parameterFilePath -Leaf) -split '\.')[0] ) - if ($addJson) { - $SectionContent += @( - '', - '
', - '', - 'via JSON Parameter file', - '', - '```json', - $contentInJSONFormat.TrimEnd(), - '```', - '', - '
' - ) - } + if ((Split-Path $parameterFilePath -Extension) -eq '.bicep') { + # Bicep to JSON + # ============= + $bicepTestStartIndex = $rawContentArray.IndexOf("module testDeployment '../deploy.bicep' = {") + + + $bicepTestEndIndex = $bicepTestStartIndex + do { + $bicepTestEndIndex++ + } while ($rawContentArray[$bicepTestEndIndex] -ne '}') + + $rawBicepExample = $rawContentArray[$bicepTestStartIndex..$bicepTestEndIndex] + + if ($addBicep) { + $rawBicepExample[0] = "module $resourceType './$resourceTypeIdentifier/deploy.bicep = {'" + $rawBicepExample = $rawBicepExample | Where-Object { $_ -notmatch 'scope: *' } + + + $SectionContent += @( + '', + '
' + '' + 'via Bicep module' + '' + '```bicep', + ($rawBicepExample | ForEach-Object { " $_" }).TrimEnd(), + '```', + '', + '
' + '

' + ) + } + + if ($addJson) { + # TODO: Add JSON support - if ($addBicep) { - $JSONParametersHashTable = (ConvertFrom-Json $contentInJSONFormat -AsHashtable -Depth 99).parameters - - # Handle KeyVaut references - $keyVaultReferences = $JSONParametersHashTable.Keys | Where-Object { $JSONParametersHashTable[$_].Keys -contains 'reference' } - - if ($keyVaultReferences.Count -gt 0) { - $keyVaultReferenceData = @() - foreach ($reference in $keyVaultReferences) { - $resourceIdElem = $JSONParametersHashTable[$reference].reference.keyVault.id -split '/' - $keyVaultReferenceData += @{ - subscriptionId = $resourceIdElem[2] - resourceGroupName = $resourceIdElem[4] - vaultName = $resourceIdElem[-1] - secretName = $JSONParametersHashTable[$reference].reference.secretName - parameterName = $reference + $jsonExample = @() + + $SectionContent += @( + '', + '

' + '' + 'via JSON Parameter file' + '' + '```json', + '{', + ' "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",', + ' "contentVersion": "1.0.0.0",', + ' "parameters": {' + ($jsonExample | ForEach-Object { " $_" }).TrimEnd(), + ' }', + '}', + '```', + '', + '
' + '

' + ) + } + } else { + # JSON to Bicep + # ============= + # TODO: Support JSON test template files? + + if ($addJson) { + $SectionContent += @( + '', + '

', + '', + 'via JSON Parameter file', + '', + '```json', + $rawContent.TrimEnd(), + '```', + '', + '
' + ) + } + + if ($addBicep) { + $JSONParametersHashTable = (ConvertFrom-Json $rawContent -AsHashtable -Depth 99).parameters + + # Handle KeyVaut references + $keyVaultReferences = $JSONParametersHashTable.Keys | Where-Object { $JSONParametersHashTable[$_].Keys -contains 'reference' } + + if ($keyVaultReferences.Count -gt 0) { + $keyVaultReferenceData = @() + foreach ($reference in $keyVaultReferences) { + $resourceIdElem = $JSONParametersHashTable[$reference].reference.keyVault.id -split '/' + $keyVaultReferenceData += @{ + subscriptionId = $resourceIdElem[2] + resourceGroupName = $resourceIdElem[4] + vaultName = $resourceIdElem[-1] + secretName = $JSONParametersHashTable[$reference].reference.secretName + parameterName = $reference + } } } - } - $extendedKeyVaultReferences = @() - $counter = 0 - foreach ($reference in ($keyVaultReferenceData | Sort-Object -Property 'vaultName' -Unique)) { - $counter++ - $extendedKeyVaultReferences += @( - "resource kv$counter 'Microsoft.KeyVault/vaults@2019-09-01' existing = {", + $extendedKeyVaultReferences = @() + $counter = 0 + foreach ($reference in ($keyVaultReferenceData | Sort-Object -Property 'vaultName' -Unique)) { + $counter++ + $extendedKeyVaultReferences += @( + "resource kv$counter 'Microsoft.KeyVault/vaults@2019-09-01' existing = {", (" name: '{0}'" -f $reference.vaultName), (" scope: resourceGroup('{0}','{1}')" -f $reference.subscriptionId, $reference.resourceGroupName), - '}', - '' - ) + '}', + '' + ) - # Add attribute for later correct reference - $keyVaultReferenceData | Where-Object { $_.vaultName -eq $reference.vaultName } | ForEach-Object { - $_['vaultResourceReference'] = "kv$counter" + # Add attribute for later correct reference + $keyVaultReferenceData | Where-Object { $_.vaultName -eq $reference.vaultName } | ForEach-Object { + $_['vaultResourceReference'] = "kv$counter" + } } - } - # Handle VALUE references (i.e. remove them) - $JSONParameters = (ConvertFrom-Json $contentInJSONFormat -Depth 99).PSObject.properties['parameters'].value - $JSONParametersWithoutValue = [ordered]@{} - foreach ($parameter in $JSONParameters.PSObject.Properties) { - if ($parameter.value.PSObject.Properties.name -eq 'value') { - $JSONParametersWithoutValue[$parameter.name] = $parameter.value.PSObject.Properties['value'].value - } else { - # replace key vault references - $matchingTuple = $keyVaultReferenceData | Where-Object { $_.parameterName -eq $parameter.Name } - $JSONParametersWithoutValue[$parameter.name] = "{0}.getSecret('{1}')" -f $matchingTuple.vaultResourceReference, $matchingTuple.secretName + # Handle VALUE references (i.e. remove them) + $JSONParameters = (ConvertFrom-Json $rawContent -Depth 99).PSObject.properties['parameters'].value + $JSONParametersWithoutValue = [ordered]@{} + foreach ($parameter in $JSONParameters.PSObject.Properties) { + if ($parameter.value.PSObject.Properties.name -eq 'value') { + $JSONParametersWithoutValue[$parameter.name] = $parameter.value.PSObject.Properties['value'].value + } else { + # replace key vault references + $matchingTuple = $keyVaultReferenceData | Where-Object { $_.parameterName -eq $parameter.Name } + $JSONParametersWithoutValue[$parameter.name] = "{0}.getSecret('{1}')" -f $matchingTuple.vaultResourceReference, $matchingTuple.secretName + } } - } - $templateParameterObject = $JSONParametersWithoutValue | ConvertTo-Json -Depth 99 - if ($templateParameterObject -ne '{}') { - $contentInBicepFormat = $templateParameterObject -replace '"', "'" # Update any [xyz: "xyz"] to [xyz: 'xyz'] - $contentInBicepFormat = $contentInBicepFormat -replace ',', '' # Update any [xyz: xyz,] to [xyz: xyz] - $contentInBicepFormat = $contentInBicepFormat -replace "'(\w+)':", '$1:' # Update any ['xyz': xyz] to [xyz: xyz] - $contentInBicepFormat = $contentInBicepFormat -replace "'(.+.getSecret\('.+'\))'", '$1' # Update any [xyz: 'xyz.GetSecret()'] to [xyz: xyz.GetSecret()] + $templateParameterObject = $JSONParametersWithoutValue | ConvertTo-Json -Depth 99 + if ($templateParameterObject -ne '{}') { + $contentInBicepFormat = $templateParameterObject -replace '"', "'" # Update any [xyz: "xyz"] to [xyz: 'xyz'] + $contentInBicepFormat = $contentInBicepFormat -replace ',', '' # Update any [xyz: xyz,] to [xyz: xyz] + $contentInBicepFormat = $contentInBicepFormat -replace "'(\w+)':", '$1:' # Update any ['xyz': xyz] to [xyz: xyz] + $contentInBicepFormat = $contentInBicepFormat -replace "'(.+.getSecret\('.+'\))'", '$1' # Update any [xyz: 'xyz.GetSecret()'] to [xyz: xyz.GetSecret()] - $bicepParamsArray = $contentInBicepFormat -split ('\n') - $bicepParamsArray = $bicepParamsArray[1..($bicepParamsArray.count - 2)] + $bicepParamsArray = $contentInBicepFormat -split ('\n') + $bicepParamsArray = $bicepParamsArray[1..($bicepParamsArray.count - 2)] + } } - $resourceType = $resourceTypeIdentifier.Split('/')[1] $SectionContent += @( '', From ee95d1c2a83584173629522e4e603be39a406254 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 23:32:39 +0200 Subject: [PATCH 069/274] Renamed var --- modules/.global/global.module.tests.ps1 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/.global/global.module.tests.ps1 b/modules/.global/global.module.tests.ps1 index b44e87e8e7..293c9b26b4 100644 --- a/modules/.global/global.module.tests.ps1 +++ b/modules/.global/global.module.tests.ps1 @@ -120,15 +120,15 @@ Describe 'File/folder tests' -Tag Modules { [string] $moduleFolderName, $moduleFolderPath ) - $parameterFolderPath = Join-Path $moduleFolderPath '.test' - (Get-ChildItem $parameterFolderPath -Filter '*parameters.json' -Force).Count | Should -BeGreaterThan 0 + $testFolderPath = Join-Path $moduleFolderPath '.test' + (Get-ChildItem $testFolderPath -Filter '*parameters.json' -Force).Count | Should -BeGreaterThan 0 } $parameterFolderFilesTestCases = [System.Collections.ArrayList] @() foreach ($moduleFolderPath in $moduleFolderPaths) { - $parameterFolderPath = Join-Path $moduleFolderPath '.test' - if (Test-Path $parameterFolderPath) { - foreach ($parameterFile in (Get-ChildItem $parameterFolderPath -Filter '*parameters.json' -Force)) { + $testFolderPath = Join-Path $moduleFolderPath '.test' + if (Test-Path $testFolderPath) { + foreach ($parameterFile in (Get-ChildItem $testFolderPath -Filter '*parameters.json' -Force)) { $parameterFolderFilesTestCases += @{ moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1] parameterFilePath = $parameterFile.FullName From 6f8504dcc725ac36a77c3d5010772f49c6d7822f Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Wed, 29 Jun 2022 23:33:51 +0200 Subject: [PATCH 070/274] Update modules/.global/global.module.tests.ps1 Co-authored-by: Marius Storhaug --- modules/.global/global.module.tests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/.global/global.module.tests.ps1 b/modules/.global/global.module.tests.ps1 index 293c9b26b4..77ba21996d 100644 --- a/modules/.global/global.module.tests.ps1 +++ b/modules/.global/global.module.tests.ps1 @@ -948,7 +948,7 @@ Describe 'Deployment template tests' -Tag Template { $incorrectReferencesFound = $ParameterFileContent | Select-String -Pattern $tokenValue -AllMatches if ($incorrectReferencesFound.Matches) { - $incorrectReferencesFound.Matches.Count | Should -Be 0 -Because ('Parameter file should not contain the [ { 0 }] value, instead should reference the token value [ { 1 }]. Please check the { 2 } lines: [ { 3 }]' -f $tokenName, $ParameterFileTokenName, $incorrectReferencesFound.Matches.Count, ($incorrectReferencesFound.Line.Trim() -join ",`n")) + $incorrectReferencesFound.Matches.Count | Should -Be 0 -Because ('Parameter file should not contain the [{0}] value, instead should reference the token value [{1}]. Please check the {2} lines: [{3}]' -f $tokenName, $ParameterFileTokenName, $incorrectReferencesFound.Matches.Count, ($incorrectReferencesFound.Line.Trim() -join ",`n")) } } } From ba05015c0ca9f6a2ebe0cd126d8fdd0d36a64217 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 23:37:07 +0200 Subject: [PATCH 071/274] Update to latest --- .../templates/getParameterFiles/action.yml | 4 +- modules/.global/global.module.tests.ps1 | 47 ++++++++++++------- 2 files changed, 32 insertions(+), 19 deletions(-) diff --git a/.github/actions/templates/getParameterFiles/action.yml b/.github/actions/templates/getParameterFiles/action.yml index 4bece51252..fac1cbb3cd 100644 --- a/.github/actions/templates/getParameterFiles/action.yml +++ b/.github/actions/templates/getParameterFiles/action.yml @@ -28,9 +28,9 @@ runs: Write-Verbose "Invoke task with" -Verbose Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose # Get the list of parameter file paths - $parameterFilePaths = Get-ModuleTestFileList @functionInput -Verbose + $testFilePaths = Get-ModuleTestFileList @functionInput -Verbose # Output values to be accessed by next jobs - $compressedOutput = $parameterFilePaths | ConvertTo-Json -Compress + $compressedOutput = $testFilePaths | ConvertTo-Json -Compress if($compressedOutput -notmatch "\[.*\]") { $compressedOutput = "[$compressedOutput]" } diff --git a/modules/.global/global.module.tests.ps1 b/modules/.global/global.module.tests.ps1 index 293c9b26b4..ee5abd52ba 100644 --- a/modules/.global/global.module.tests.ps1 +++ b/modules/.global/global.module.tests.ps1 @@ -29,7 +29,7 @@ $script:jsonTemplateLoadFailedException = "Unable to load the deploy.json templa $script:templateNotFoundException = 'No template file found in folder [{0}]' # -f $moduleFolderPath # Import any helper function used in this test script -Import-Module (Join-Path $PSScriptRoot 'shared\helper.psm1') -Force +Import-Module (Join-Path $PSScriptRoot 'helper\helper.psm1') -Force Describe 'File/folder tests' -Tag Modules { @@ -118,32 +118,37 @@ Describe 'File/folder tests' -Tag Modules { param( [string] $moduleFolderName, - $moduleFolderPath + [string] $moduleFolderPath ) - $testFolderPath = Join-Path $moduleFolderPath '.test' - (Get-ChildItem $testFolderPath -Filter '*parameters.json' -Force).Count | Should -BeGreaterThan 0 + + $moduleTestFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test') -File).FullName | Where-Object { $_ -match '.+\.[bicep|json]' } + $moduleTestFilePaths.Count | Should -BeGreaterThan 0 } $parameterFolderFilesTestCases = [System.Collections.ArrayList] @() foreach ($moduleFolderPath in $moduleFolderPaths) { - $testFolderPath = Join-Path $moduleFolderPath '.test' - if (Test-Path $testFolderPath) { - foreach ($parameterFile in (Get-ChildItem $testFolderPath -Filter '*parameters.json' -Force)) { + $parameterFolderPath = Join-Path $moduleFolderPath '.test' + if (Test-Path $parameterFolderPath) { + foreach ($parameterFilePath in ((Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test') -File).FullName | Where-Object { $_ -match '.+\.[bicep|json]' })) { $parameterFolderFilesTestCases += @{ moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1] - parameterFilePath = $parameterFile.FullName + parameterFilePath = $parameterFilePath } } } } - It '[] *parameters.json files in the .parameters folder should be valid json' -TestCases $parameterFolderFilesTestCases { + It '[] *parameters.json files in the .test folder should be valid json' -TestCases $parameterFolderFilesTestCases { param( [string] $moduleFolderName, - $parameterFilePath + [string] $parameterFilePath ) - (Get-Content $parameterFilePath) | ConvertFrom-Json + if ((Split-Path $parameterFilePath -Extension) -eq '.json') { + { (Get-Content $parameterFilePath) | ConvertFrom-Json } | Should -Not -Throw + } else { + Set-ItResult -Skipped -Because 'the module has no JSON parameter file.' + } } } } @@ -506,13 +511,21 @@ Describe 'Deployment template tests' -Tag Template { $TemplateFile_RequiredParametersNames = ($templateFile_Parameters.Keys | Where-Object { -not $templateFile_Parameters[$_].ContainsKey('defaultValue') }) | Sort-Object if (Test-Path (Join-Path $moduleFolderPath '.test')) { - $ParameterFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test' -AdditionalChildPath '*parameters.json') -Recurse -Force).FullName - foreach ($ParameterFilePath in $ParameterFilePaths) { - $parameterFile_AllParameterNames = ((Get-Content $ParameterFilePath) | ConvertFrom-Json -AsHashtable).parameters.Keys | Sort-Object + + # Can be removed after full migration to bicep test files + $moduleTestFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test') -File).FullName | Where-Object { $_ -match '.+\.[bicep|json]' } + + foreach ($moduleTestFilePath in $moduleTestFilePaths) { + if ((Split-Path $moduleTestFilePath -Extension) -eq '.json') { + $deploymentTestFile_AllParameterNames = ((Get-Content $moduleTestFilePath) | ConvertFrom-Json -AsHashtable).parameters.Keys | Sort-Object + } else { + $deploymentFileContent = az bicep build --file $moduleTestFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + $deploymentTestFile_AllParameterNames = $deploymentFileContent.resources[-1].properties.parameters.keys | Sort-Object # The last resource should be the test + } $parameterFileTestCases += @{ - parameterFile_Path = $ParameterFilePath - parameterFile_Name = Split-Path $ParameterFilePath -Leaf - parameterFile_AllParameterNames = $parameterFile_AllParameterNames + parameterFile_Path = $moduleTestFilePath + parameterFile_Name = Split-Path $moduleTestFilePath -Leaf + parameterFile_AllParameterNames = $deploymentTestFile_AllParameterNames templateFile_AllParameterNames = $TemplateFile_AllParameterNames templateFile_RequiredParametersNames = $TemplateFile_RequiredParametersNames tokenSettings = $Settings.parameterFileTokens From 1ad3623a166290de2e753b17447ffd7fc4487010 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 23:40:00 +0200 Subject: [PATCH 072/274] Renamed variable --- modules/.global/global.module.tests.ps1 | 22 +++++++++++----------- utilities/tools/Set-ModuleReadMe.ps1 | 4 ++-- utilities/tools/Test-ModuleLocally.ps1 | 8 ++++---- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/modules/.global/global.module.tests.ps1 b/modules/.global/global.module.tests.ps1 index df31a78270..0636d8bb24 100644 --- a/modules/.global/global.module.tests.ps1 +++ b/modules/.global/global.module.tests.ps1 @@ -129,10 +129,10 @@ Describe 'File/folder tests' -Tag Modules { foreach ($moduleFolderPath in $moduleFolderPaths) { $parameterFolderPath = Join-Path $moduleFolderPath '.test' if (Test-Path $parameterFolderPath) { - foreach ($parameterFilePath in ((Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test') -File).FullName | Where-Object { $_ -match '.+\.[bicep|json]' })) { + foreach ($testFilePath in ((Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test') -File).FullName | Where-Object { $_ -match '.+\.[bicep|json]' })) { $parameterFolderFilesTestCases += @{ moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1] - parameterFilePath = $parameterFilePath + parameterFilePath = $testFilePath } } } @@ -142,10 +142,10 @@ Describe 'File/folder tests' -Tag Modules { param( [string] $moduleFolderName, - [string] $parameterFilePath + [string] $testFilePath ) - if ((Split-Path $parameterFilePath -Extension) -eq '.json') { - { (Get-Content $parameterFilePath) | ConvertFrom-Json } | Should -Not -Throw + if ((Split-Path $testFilePath -Extension) -eq '.json') { + { (Get-Content $testFilePath) | ConvertFrom-Json } | Should -Not -Throw } else { Set-ItResult -Skipped -Because 'the module has no JSON parameter file.' } @@ -931,12 +931,12 @@ Describe 'Deployment template tests' -Tag Template { foreach ($moduleFolderPath in $moduleFolderPaths) { if (Test-Path (Join-Path $moduleFolderPath '.test')) { - $ParameterFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.testeters.json') -Recurse -Force).FullName - foreach ($ParameterFilePath in $ParameterFilePaths) { + $testFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.testeters.json') -Recurse -Force).FullName + foreach ($testFilePath in $testFilePaths) { foreach ($token in $enforcedTokenList.Keys) { $parameterFileTokenTestCases += @{ - parameterFilePath = $ParameterFilePath - parameterFileName = Split-Path $ParameterFilePath -Leaf + parameterFilePath = $testFilePath + parameterFileName = Split-Path $testFilePath -Leaf tokenSettings = $Settings.parameterFileTokens tokenName = $token tokenValue = $enforcedTokenList[$token] @@ -949,7 +949,7 @@ Describe 'Deployment template tests' -Tag Template { It '[] [Tokens] Parameter file [] should not contain the plain value for token [] guid' -TestCases $parameterFileTokenTestCases { param ( - [string] $parameterFilePath, + [string] $testFilePath, [string] $parameterFileName, [hashtable] $tokenSettings, [string] $tokenName, @@ -957,7 +957,7 @@ Describe 'Deployment template tests' -Tag Template { [string] $moduleFolderName ) $ParameterFileTokenName = -join ($tokenSettings.tokenPrefix, $tokenName, $tokenSettings.tokenSuffix) - $ParameterFileContent = Get-Content -Path $parameterFilePath + $ParameterFileContent = Get-Content -Path $testFilePath $incorrectReferencesFound = $ParameterFileContent | Select-String -Pattern $tokenValue -AllMatches if ($incorrectReferencesFound.Matches) { diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index 390ec2413c..8daf716a73 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -354,8 +354,8 @@ function Set-DeploymentExamplesSection { $parameterFiles = Get-ChildItem (Join-Path $moduleRoot '.test') -Filter '*parameters.json' -Recurse $index = 1 - foreach ($parameterFilePath in $parameterFiles.FullName) { - $contentInJSONFormat = Get-Content -Path $parameterFilePath -Encoding 'utf8' | Out-String + foreach ($testFilePath in $parameterFiles.FullName) { + $contentInJSONFormat = Get-Content -Path $testFilePath -Encoding 'utf8' | Out-String $SectionContent += @( "

Example $index

" diff --git a/utilities/tools/Test-ModuleLocally.ps1 b/utilities/tools/Test-ModuleLocally.ps1 index 34c40d59cd..70bec18ef0 100644 --- a/utilities/tools/Test-ModuleLocally.ps1 +++ b/utilities/tools/Test-ModuleLocally.ps1 @@ -115,7 +115,7 @@ function Test-ModuleLocally { [string] $TemplateFilePath, [Parameter(Mandatory = $false)] - [string] $parameterFilePath = (Join-Path (Split-Path $TemplateFilePath -Parent) '.test'), + [string] $testFilePath = (Join-Path (Split-Path $TemplateFilePath -Parent) '.test'), [Parameter(Mandatory = $false)] [Psobject] $ValidateOrDeployParameters = @{}, @@ -187,10 +187,10 @@ function Test-ModuleLocally { # Find Test Parameter Files # ------------------------- - if ((Get-Item -Path $parameterFilePath) -is [System.IO.DirectoryInfo]) { - $ModuleParameterFiles = (Get-ChildItem -Path $parameterFilePath).FullName + if ((Get-Item -Path $testFilePath) -is [System.IO.DirectoryInfo]) { + $ModuleParameterFiles = (Get-ChildItem -Path $testFilePath).FullName } else { - $ModuleParameterFiles = @($parameterFilePath) + $ModuleParameterFiles = @($testFilePath) } # Replace parameter file tokens From c13158479841626dcce7b4e0b6b97650c0e2aeba Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 29 Jun 2022 23:49:00 +0200 Subject: [PATCH 073/274] Further updates --- modules/.global/global.module.tests.ps1 | 48 +++++++++---------- .../.global/{shared => helper}/helper.psm1 | 0 2 files changed, 24 insertions(+), 24 deletions(-) rename modules/.global/{shared => helper}/helper.psm1 (100%) diff --git a/modules/.global/global.module.tests.ps1 b/modules/.global/global.module.tests.ps1 index 0636d8bb24..e8b08a8ea0 100644 --- a/modules/.global/global.module.tests.ps1 +++ b/modules/.global/global.module.tests.ps1 @@ -125,20 +125,20 @@ Describe 'File/folder tests' -Tag Modules { $moduleTestFilePaths.Count | Should -BeGreaterThan 0 } - $parameterFolderFilesTestCases = [System.Collections.ArrayList] @() + $testFolderFilesTestCases = [System.Collections.ArrayList] @() foreach ($moduleFolderPath in $moduleFolderPaths) { - $parameterFolderPath = Join-Path $moduleFolderPath '.test' - if (Test-Path $parameterFolderPath) { + $testFolderPath = Join-Path $moduleFolderPath '.test' + if (Test-Path $testFolderPath) { foreach ($testFilePath in ((Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test') -File).FullName | Where-Object { $_ -match '.+\.[bicep|json]' })) { - $parameterFolderFilesTestCases += @{ - moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1] - parameterFilePath = $testFilePath + $testFolderFilesTestCases += @{ + moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1] + testFilePath = $testFilePath } } } } - It '[] *parameters.json files in the .test folder should be valid json' -TestCases $parameterFolderFilesTestCases { + It '[] *parameters.json files in the .test folder should be valid json' -TestCases $testFolderFilesTestCases { param( [string] $moduleFolderName, @@ -505,7 +505,7 @@ Describe 'Deployment template tests' -Tag Template { } # Parameter file test cases - $parameterFileTestCases = @() + $testFileTestCases = @() $templateFile_Parameters = $templateContent.parameters $TemplateFile_AllParameterNames = $templateFile_Parameters.Keys | Sort-Object $TemplateFile_RequiredParametersNames = ($templateFile_Parameters.Keys | Where-Object { -not $templateFile_Parameters[$_].ContainsKey('defaultValue') }) | Sort-Object @@ -522,10 +522,10 @@ Describe 'Deployment template tests' -Tag Template { $deploymentFileContent = az bicep build --file $moduleTestFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable $deploymentTestFile_AllParameterNames = $deploymentFileContent.resources[-1].properties.parameters.keys | Sort-Object # The last resource should be the test } - $parameterFileTestCases += @{ - parameterFile_Path = $moduleTestFilePath - parameterFile_Name = Split-Path $moduleTestFilePath -Leaf - parameterFile_AllParameterNames = $deploymentTestFile_AllParameterNames + $testFileTestCases += @{ + testFile_Path = $moduleTestFilePath + testFile_Name = Split-Path $moduleTestFilePath -Leaf + testFile_AllParameterNames = $deploymentTestFile_AllParameterNames templateFile_AllParameterNames = $TemplateFile_AllParameterNames templateFile_RequiredParametersNames = $TemplateFile_RequiredParametersNames tokenSettings = $Settings.parameterFileTokens @@ -535,10 +535,10 @@ Describe 'Deployment template tests' -Tag Template { # Test file setup $deploymentFolderTestCases += @{ - moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1] - templateContent = $templateContent - templateFilePath = $templateFilePath - parameterFileTestCases = $parameterFileTestCases + moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1] + templateContent = $templateContent + templateFilePath = $templateFilePath + testFileTestCases = $testFileTestCases } } @@ -897,28 +897,28 @@ Describe 'Deployment template tests' -Tag Template { # PARAMETER Tests It '[] All parameters in parameters files exist in template file (deploy.json)' -TestCases $deploymentFolderTestCases { param ( - [hashtable[]] $parameterFileTestCases + [hashtable[]] $testFileTestCases ) - foreach ($parameterFileTestCase in $parameterFileTestCases) { - $parameterFile_AllParameterNames = $parameterFileTestCase.parameterFile_AllParameterNames + foreach ($parameterFileTestCase in $testFileTestCases) { + $testFile_AllParameterNames = $parameterFileTestCase.testFile_AllParameterNames $templateFile_AllParameterNames = $parameterFileTestCase.templateFile_AllParameterNames - $nonExistentParameters = $parameterFile_AllParameterNames | Where-Object { $templateFile_AllParameterNames -notcontains $_ } + $nonExistentParameters = $testFile_AllParameterNames | Where-Object { $templateFile_AllParameterNames -notcontains $_ } $nonExistentParameters.Count | Should -Be 0 -Because ('no parameter in the parameter file should not exist in the template file. Found excess items: [{0}]' -f ($nonExistentParameters -join ', ')) } } It '[] All required parameters in template file (deploy.json) should exist in parameters files' -TestCases $deploymentFolderTestCases { param ( - [hashtable[]] $parameterFileTestCases + [hashtable[]] $testFileTestCases ) - foreach ($parameterFileTestCase in $parameterFileTestCases) { + foreach ($parameterFileTestCase in $testFileTestCases) { $TemplateFile_RequiredParametersNames = $parameterFileTestCase.TemplateFile_RequiredParametersNames - $parameterFile_AllParameterNames = $parameterFileTestCase.parameterFile_AllParameterNames + $testFile_AllParameterNames = $parameterFileTestCase.testFile_AllParameterNames - $missingParameters = $templateFile_RequiredParametersNames | Where-Object { $parameterFile_AllParameterNames -notcontains $_ } + $missingParameters = $templateFile_RequiredParametersNames | Where-Object { $testFile_AllParameterNames -notcontains $_ } $missingParameters.Count | Should -Be 0 -Because ('no required parameters in the template file should be missing in the parameter file. Found missing items: [{0}]' -f ($missingParameters -join ', ')) } } diff --git a/modules/.global/shared/helper.psm1 b/modules/.global/helper/helper.psm1 similarity index 100% rename from modules/.global/shared/helper.psm1 rename to modules/.global/helper/helper.psm1 From 0dca935d7f4cb191566cc1ce71be1b3ae0cea8c3 Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Thu, 30 Jun 2022 16:40:12 +0200 Subject: [PATCH 074/274] [Utilities] Updated ReadMe Utility to handle bicep test files when generating deployment examples (#1628) * Update to latest * Fixed incorrect param file ref (#1626) * Further updates * Further updates * Updated tool * Upper case title update --- .../jobs.validateModuleDeployment.yml | 4 +- .../validateModuleDeployment/action.yml | 4 +- modules/.global/global.module.tests.ps1 | 2 +- utilities/tools/Set-ModuleReadMe.ps1 | 295 ++++++++++++++---- 4 files changed, 231 insertions(+), 74 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index bc521b9e03..f03517b844 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -253,7 +253,7 @@ jobs: if ($testTemplatePossibleParameters -contains 'namePrefix') { $functionInput['additionalParameters'] += @{ - namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value + namePrefix = ($projectSettings.parameterFileTokens.localTokens | Where-Object { $_.name -eq 'namePrefix' }).value } } } @@ -344,7 +344,7 @@ jobs: if ($testTemplatePossibleParameters -contains 'namePrefix') { $functionInput['additionalParameters'] += @{ - namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value + namePrefix = ($projectSettings.parameterFileTokens.localTokens | Where-Object { $_.name -eq 'namePrefix' }).value } } } diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index be516ed43a..116d82a934 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -247,7 +247,7 @@ runs: if ($testTemplatePossibleParameters -contains 'namePrefix') { $functionInput['additionalParameters'] += @{ - namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value + namePrefix = ($projectSettings.parameterFileTokens.localTokens | Where-Object { $_.name -eq 'namePrefix' }).value } } } @@ -343,7 +343,7 @@ runs: if ($testTemplatePossibleParameters -contains 'namePrefix') { $functionInput['additionalParameters'] += @{ - namePrefix = $projectSettings.parameterFileTokens.localTokens[0].value + namePrefix = ($projectSettings.parameterFileTokens.localTokens | Where-Object { $_.name -eq 'namePrefix' }).value } } } diff --git a/modules/.global/global.module.tests.ps1 b/modules/.global/global.module.tests.ps1 index e8b08a8ea0..f81f6efe87 100644 --- a/modules/.global/global.module.tests.ps1 +++ b/modules/.global/global.module.tests.ps1 @@ -931,7 +931,7 @@ Describe 'Deployment template tests' -Tag Template { foreach ($moduleFolderPath in $moduleFolderPaths) { if (Test-Path (Join-Path $moduleFolderPath '.test')) { - $testFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.testeters.json') -Recurse -Force).FullName + $testFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.parameters.json') -Recurse -Force).FullName foreach ($testFilePath in $testFilePaths) { foreach ($token in $enforcedTokenList.Keys) { $parameterFileTokenTestCases += @{ diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index 8daf716a73..e0dbe22354 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -321,6 +321,9 @@ Optional. A switch to control whether or not to add a ARM-JSON-Parameter file ex .PARAMETER addBicep Optional. A switch to control whether or not to add a Bicep deployment example. Defaults to true. +.PARAMETER ProjectSettings +Optional. Projects settings to draw information from. For example the `namePrefix`. + .EXAMPLE Set-DeploymentExamplesSection -TemplateFileContent @{ resource = @{}; ... } -ReadMeFileContent @('# Title', '', '## Section 1', ...) @@ -342,6 +345,9 @@ function Set-DeploymentExamplesSection { [Parameter(Mandatory = $false)] [bool] $addBicep = $true, + [Parameter(Mandatory = $false)] + [hashtable] $ProjectSettings = @{}, + [Parameter(Mandatory = $false)] [string] $SectionStartIdentifier = '## Deployment examples' ) @@ -351,93 +357,234 @@ function Set-DeploymentExamplesSection { $moduleRoot = Split-Path $TemplateFilePath -Parent $resourceTypeIdentifier = $moduleRoot.Replace('\', '/').Split('/modules/')[1].TrimStart('/') - $parameterFiles = Get-ChildItem (Join-Path $moduleRoot '.test') -Filter '*parameters.json' -Recurse + $resourceType = $resourceTypeIdentifier.Split('/')[1] + $testFilePaths = (Get-ChildItem (Join-Path -Path $moduleRoot -ChildPath '.test') -File).FullName | Where-Object { $_ -match '.+\.[bicep|json]' } - $index = 1 - foreach ($testFilePath in $parameterFiles.FullName) { - $contentInJSONFormat = Get-Content -Path $testFilePath -Encoding 'utf8' | Out-String + $pathIndex = 1 + foreach ($testFilePath in $testFilePaths) { + $rawContentArray = Get-Content -Path $testFilePath + $rawContent = Get-Content -Path $testFilePath -Encoding 'utf8' | Out-String + + $exampleTitle = ((Split-Path $testFilePath -LeafBase) -replace '\.', ' ') -replace ' parameters', '' + $TextInfo = (Get-Culture).TextInfo + $exampleTitle = $TextInfo.ToTitleCase($exampleTitle) $SectionContent += @( - "

Example $index

" + '

Example {0}: {1}

' -f $pathIndex, $exampleTitle ) - if ($addJson) { - $SectionContent += @( - '', - '
', - '', - 'via JSON Parameter file', - '', - '```json', - $contentInJSONFormat.TrimEnd(), - '```', - '', - '
' - ) - } + if ((Split-Path $testFilePath -Extension) -eq '.bicep') { + # Bicep to JSON + # ============= + $bicepTestStartIndex = $rawContentArray.IndexOf("module testDeployment '../deploy.bicep' = {") + + + $bicepTestEndIndex = $bicepTestStartIndex + do { + $bicepTestEndIndex++ + } while ($rawContentArray[$bicepTestEndIndex] -ne '}') + + $rawBicepExample = $rawContentArray[$bicepTestStartIndex..$bicepTestEndIndex] + + # Replace placeholders + $namePrefix = ($ProjectSettings.parameterFileTokens.localTokens | Where-Object { $_.name -eq 'namePrefix' }).value + $serviceShort = ([regex]::Match($rawContent, "(?m)^param serviceShort string = '(.+)'\s*$")).Captures.Groups[1].Value + + $rawBicepExampleString = ($rawBicepExample | Out-String) + $rawBicepExampleString = $rawBicepExampleString -replace '\$\{serviceShort\}', $serviceShort + $rawBicepExampleString = $rawBicepExampleString -replace '\$\{namePrefix\}', $namePrefix + + $rawBicepExample = $rawBicepExampleString -split '\n' + + # Generate content + if ($addBicep) { + $rawBicepExample[0] = "module $resourceType './$resourceTypeIdentifier/deploy.bicep = {'" + $rawBicepExample = $rawBicepExample | Where-Object { $_ -notmatch 'scope: *' } + + $SectionContent += @( + '', + '
' + '' + 'via Bicep module' + '' + '```bicep', + ($rawBicepExample | ForEach-Object { " $_" }).TrimEnd(), + '```', + '', + '
' + '

' + ) + } + + if ($addJson) { + + $paramStartIndex = 0 + do { + $paramStartIndex++ + } while ($rawBicepExample[$paramStartIndex] -notmatch '\s+params: {') + + $paramBlockIndent = ([regex]::Match($rawBicepExample[$paramStartIndex], '^(\s+).*')).Captures.Groups[1].Value.Length + + $paramEndIndex = 0 + do { + $paramEndIndex++ + } while ($rawBicepExample[$paramEndIndex] -notmatch "^\s{$paramBlockIndent}\}\s*$") + + $paramBlock = $rawBicepExample[($paramStartIndex + 1)..($paramEndIndex - 1)] + + $paramInJsonFormat = @( + '{', + $paramBlock + '}' + ) | Out-String + + # Formatting + $paramInJsonFormat = $paramInJsonFormat -replace "'", '"' + $paramInJsonFormat = $paramInJsonFormat -replace '([0-9a-zA-Z]+):', '"$1":' + + $paramInJSONFormatArray = $paramInJsonFormat -split '\n' | Where-Object { $_ } - if ($addBicep) { - $JSONParametersHashTable = (ConvertFrom-Json $contentInJSONFormat -AsHashtable -Depth 99).parameters - - # Handle KeyVaut references - $keyVaultReferences = $JSONParametersHashTable.Keys | Where-Object { $JSONParametersHashTable[$_].Keys -contains 'reference' } - - if ($keyVaultReferences.Count -gt 0) { - $keyVaultReferenceData = @() - foreach ($reference in $keyVaultReferences) { - $resourceIdElem = $JSONParametersHashTable[$reference].reference.keyVault.id -split '/' - $keyVaultReferenceData += @{ - subscriptionId = $resourceIdElem[2] - resourceGroupName = $resourceIdElem[4] - vaultName = $resourceIdElem[-1] - secretName = $JSONParametersHashTable[$reference].reference.secretName - parameterName = $reference + + # Replace resource IDs + for ($index = 0; $index -lt $paramInJSONFormatArray.Count; $index++) { + if ($paramInJSONFormatArray[$index] -like '*:*' -and ($paramInJSONFormatArray[$index] -split ':')[1].Trim() -notmatch '".+"' -and $paramInJSONFormatArray[$index] -like '*.*') { + # In case of a reference like : "virtualWanId": resourceGroupResources.outputs.virtualWWANResourceId + $paramInJSONFormatArray[$index] = '{0}: "<{1}>"' -f ($paramInJSONFormatArray[$index] -split ':')[0], ([regex]::Match(($paramInJSONFormatArray[$index] -split ':')[0], '"(.+)"')).Captures.Groups[1].Value + } + if ($paramInJSONFormatArray[$index] -notlike '*:*' -and $paramInJSONFormatArray[$index] -notlike '*"*"*' -and $paramInJSONFormatArray[$index] -like '*.*') { + # In case of a reference like : [ \n resourceGroupResources.outputs.managedIdentityPrincipalId \n ] + $paramInJSONFormatArray[$index] = '"{0}"' -f $paramInJSONFormatArray[$index].Split('.')[-1].Trim() + } + } + + # Handle comma + for ($index = 0; $index -lt $paramInJSONFormatArray.Count; $index++) { + if ($paramInJSONFormatArray[$index] -match '[\{|\[]') { + # If we're just opening an object/array, skip + continue + } else { + if ((($index -lt $paramInJSONFormatArray.Count - 1) -and $paramInJSONFormatArray[$index + 1] -match '[\]|\}]') -or ($index -eq $paramInJSONFormatArray.Count - 1)) { + # -or ($index -eq $paramInJSONFormatArray.Count - 2 -and $paramInJSONFormatArray[$index + 1] -eq '')) { + # If the next item closes an object/array, or is the last line, skip + continue + } + $paramInJSONFormatArray[$index] = '{0},' -f $paramInJSONFormatArray[$index].Trim() + } + } + + # Add 'value' middle-layer for top-level parameters + $paramInJsonFormatObject = $paramInJSONFormatArray | Out-String | ConvertFrom-Json -AsHashtable -Depth 99 + $paramInJsonFormatObjectWithValue = @{} + foreach ($paramKey in $paramInJsonFormatObject.Keys) { + $paramInJsonFormatObjectWithValue[$paramKey] = @{ + value = $paramInJsonFormatObject[$paramKey] } } + + $jsonExample = [ordered]@{ + '$schema' = 'https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#' + contentVersion = '1.0.0.0' + parameters = $paramInJsonFormatObjectWithValue + } + + $jsonExample = ($jsonExample | ConvertTo-Json -Depth 99) -split '\n' + + $SectionContent += @( + '', + '

' + '' + 'via JSON Parameter file' + '' + '```json', + $jsonExample + '```', + '', + '
' + '

' + ) + } + } else { + # JSON to Bicep + # ============= + # TODO: Support JSON test template files? + + if ($addJson) { + $SectionContent += @( + '', + '

', + '', + 'via JSON Parameter file', + '', + '```json', + $rawContent.TrimEnd(), + '```', + '', + '
' + ) } - $extendedKeyVaultReferences = @() - $counter = 0 - foreach ($reference in ($keyVaultReferenceData | Sort-Object -Property 'vaultName' -Unique)) { - $counter++ - $extendedKeyVaultReferences += @( - "resource kv$counter 'Microsoft.KeyVault/vaults@2019-09-01' existing = {", + if ($addBicep) { + $JSONParametersHashTable = (ConvertFrom-Json $rawContent -AsHashtable -Depth 99).parameters + + # Handle KeyVaut references + $keyVaultReferences = $JSONParametersHashTable.Keys | Where-Object { $JSONParametersHashTable[$_].Keys -contains 'reference' } + + if ($keyVaultReferences.Count -gt 0) { + $keyVaultReferenceData = @() + foreach ($reference in $keyVaultReferences) { + $resourceIdElem = $JSONParametersHashTable[$reference].reference.keyVault.id -split '/' + $keyVaultReferenceData += @{ + subscriptionId = $resourceIdElem[2] + resourceGroupName = $resourceIdElem[4] + vaultName = $resourceIdElem[-1] + secretName = $JSONParametersHashTable[$reference].reference.secretName + parameterName = $reference + } + } + } + + $extendedKeyVaultReferences = @() + $counter = 0 + foreach ($reference in ($keyVaultReferenceData | Sort-Object -Property 'vaultName' -Unique)) { + $counter++ + $extendedKeyVaultReferences += @( + "resource kv$counter 'Microsoft.KeyVault/vaults@2019-09-01' existing = {", (" name: '{0}'" -f $reference.vaultName), (" scope: resourceGroup('{0}','{1}')" -f $reference.subscriptionId, $reference.resourceGroupName), - '}', - '' - ) + '}', + '' + ) - # Add attribute for later correct reference - $keyVaultReferenceData | Where-Object { $_.vaultName -eq $reference.vaultName } | ForEach-Object { - $_['vaultResourceReference'] = "kv$counter" + # Add attribute for later correct reference + $keyVaultReferenceData | Where-Object { $_.vaultName -eq $reference.vaultName } | ForEach-Object { + $_['vaultResourceReference'] = "kv$counter" + } } - } - # Handle VALUE references (i.e. remove them) - $JSONParameters = (ConvertFrom-Json $contentInJSONFormat -Depth 99).PSObject.properties['parameters'].value - $JSONParametersWithoutValue = [ordered]@{} - foreach ($parameter in $JSONParameters.PSObject.Properties) { - if ($parameter.value.PSObject.Properties.name -eq 'value') { - $JSONParametersWithoutValue[$parameter.name] = $parameter.value.PSObject.Properties['value'].value - } else { - # replace key vault references - $matchingTuple = $keyVaultReferenceData | Where-Object { $_.parameterName -eq $parameter.Name } - $JSONParametersWithoutValue[$parameter.name] = "{0}.getSecret('{1}')" -f $matchingTuple.vaultResourceReference, $matchingTuple.secretName + # Handle VALUE references (i.e. remove them) + $JSONParameters = (ConvertFrom-Json $rawContent -Depth 99).PSObject.properties['parameters'].value + $JSONParametersWithoutValue = [ordered]@{} + foreach ($parameter in $JSONParameters.PSObject.Properties) { + if ($parameter.value.PSObject.Properties.name -eq 'value') { + $JSONParametersWithoutValue[$parameter.name] = $parameter.value.PSObject.Properties['value'].value + } else { + # replace key vault references + $matchingTuple = $keyVaultReferenceData | Where-Object { $_.parameterName -eq $parameter.Name } + $JSONParametersWithoutValue[$parameter.name] = "{0}.getSecret('{1}')" -f $matchingTuple.vaultResourceReference, $matchingTuple.secretName + } } - } - $templateParameterObject = $JSONParametersWithoutValue | ConvertTo-Json -Depth 99 - if ($templateParameterObject -ne '{}') { - $contentInBicepFormat = $templateParameterObject -replace '"', "'" # Update any [xyz: "xyz"] to [xyz: 'xyz'] - $contentInBicepFormat = $contentInBicepFormat -replace ',', '' # Update any [xyz: xyz,] to [xyz: xyz] - $contentInBicepFormat = $contentInBicepFormat -replace "'(\w+)':", '$1:' # Update any ['xyz': xyz] to [xyz: xyz] - $contentInBicepFormat = $contentInBicepFormat -replace "'(.+.getSecret\('.+'\))'", '$1' # Update any [xyz: 'xyz.GetSecret()'] to [xyz: xyz.GetSecret()] + $templateParameterObject = $JSONParametersWithoutValue | ConvertTo-Json -Depth 99 + if ($templateParameterObject -ne '{}') { + $contentInBicepFormat = $templateParameterObject -replace '"', "'" # Update any [xyz: "xyz"] to [xyz: 'xyz'] + $contentInBicepFormat = $contentInBicepFormat -replace ',', '' # Update any [xyz: xyz,] to [xyz: xyz] + $contentInBicepFormat = $contentInBicepFormat -replace "'(\w+)':", '$1:' # Update any ['xyz': xyz] to [xyz: xyz] + $contentInBicepFormat = $contentInBicepFormat -replace "'(.+.getSecret\('.+'\))'", '$1' # Update any [xyz: 'xyz.GetSecret()'] to [xyz: xyz.GetSecret()] - $bicepParamsArray = $contentInBicepFormat -split ('\n') - $bicepParamsArray = $bicepParamsArray[1..($bicepParamsArray.count - 2)] + $bicepParamsArray = $contentInBicepFormat -split ('\n') + $bicepParamsArray = $bicepParamsArray[1..($bicepParamsArray.count - 2)] + } } - $resourceType = $resourceTypeIdentifier.Split('/')[1] $SectionContent += @( '', @@ -464,7 +611,7 @@ function Set-DeploymentExamplesSection { '' ) - $index++ + $pathIndex++ } # Build result @@ -641,6 +788,15 @@ function Set-ModuleReadMe { $fullResourcePath = (Split-Path $TemplateFilePath -Parent).Replace('\', '/').split('/modules/')[1] + $root = (Get-Item $PSScriptRoot).Parent.Parent.FullName + $projectSettingsPath = Join-Path $root 'settings.json' + if (Test-Path $projectSettingsPath) { + $projectSettings = Get-Content $projectSettingsPath | ConvertFrom-Json -AsHashtable + } else { + Write-Warning "No settings file found in path [$projectSettingsPath]" + $projectSettings = @{} + } + # Check readme if (-not (Test-Path $ReadMeFilePath) -or ([String]::IsNullOrEmpty((Get-Content $ReadMeFilePath -Raw)))) { # Create new readme file @@ -724,6 +880,7 @@ function Set-ModuleReadMe { $inputObject = @{ ReadMeFileContent = $readMeFileContent TemplateFilePath = $TemplateFilePath + ProjectSettings = $projectSettings } $readMeFileContent = Set-DeploymentExamplesSection @inputObject } From b9434f2cf44473e245e2131b5b2b9a9ae3c0a897 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Thu, 30 Jun 2022 16:48:18 +0200 Subject: [PATCH 075/274] Commenting --- utilities/tools/Set-ModuleReadMe.ps1 | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index e0dbe22354..bb7094882c 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -360,6 +360,9 @@ function Set-DeploymentExamplesSection { $resourceType = $resourceTypeIdentifier.Split('/')[1] $testFilePaths = (Get-ChildItem (Join-Path -Path $moduleRoot -ChildPath '.test') -File).FullName | Where-Object { $_ -match '.+\.[bicep|json]' } + ############################ + ## Process test files ## + ############################ $pathIndex = 1 foreach ($testFilePath in $testFilePaths) { @@ -373,9 +376,13 @@ function Set-DeploymentExamplesSection { '

Example {0}: {1}

' -f $pathIndex, $exampleTitle ) + ## ----------------------------------- ## + ## Handle by type (Bicep vs. JSON) ## + ## ----------------------------------- ## if ((Split-Path $testFilePath -Extension) -eq '.bicep') { - # Bicep to JSON - # ============= + # ----------------- # + # Bicep to JSON # + # ----------------- # $bicepTestStartIndex = $rawContentArray.IndexOf("module testDeployment '../deploy.bicep' = {") @@ -504,8 +511,9 @@ function Set-DeploymentExamplesSection { ) } } else { - # JSON to Bicep - # ============= + # ----------------- # + # JSON to Bicep # + # ----------------- # # TODO: Support JSON test template files? if ($addJson) { @@ -614,7 +622,9 @@ function Set-DeploymentExamplesSection { $pathIndex++ } - # Build result + ###################### + ## Built result ## + ###################### if ($SectionContent) { if ($PSCmdlet.ShouldProcess('Original file with new template references content', 'Merge')) { return Merge-FileWithNewContent -oldContent $ReadMeFileContent -newContent $SectionContent -SectionStartIdentifier $SectionStartIdentifier From 445129a61920eab820a0f9d12bfd2b58fffcf00a Mon Sep 17 00:00:00 2001 From: MrMCake Date: Thu, 30 Jun 2022 16:54:22 +0200 Subject: [PATCH 076/274] Formatting update --- utilities/tools/Set-ModuleReadMe.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index bb7094882c..249c3f5c31 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -406,7 +406,7 @@ function Set-DeploymentExamplesSection { # Generate content if ($addBicep) { $rawBicepExample[0] = "module $resourceType './$resourceTypeIdentifier/deploy.bicep = {'" - $rawBicepExample = $rawBicepExample | Where-Object { $_ -notmatch 'scope: *' } + $rawBicepExample = $rawBicepExample | Where-Object { $_ -notmatch 'scope: *' } | Where-Object { -not [String]::IsNullOrEmpty($_) } $SectionContent += @( '', @@ -415,7 +415,7 @@ function Set-DeploymentExamplesSection { 'via Bicep module' '' '```bicep', - ($rawBicepExample | ForEach-Object { " $_" }).TrimEnd(), + ($rawBicepExample | ForEach-Object { "$_" }).TrimEnd(), '```', '', '' From f02cb141973f8c80403ae839ff522fb09928e19d Mon Sep 17 00:00:00 2001 From: MrMCake Date: Thu, 30 Jun 2022 19:41:07 +0200 Subject: [PATCH 077/274] Added order --- .../servers/readme.md | 303 +++++++++--------- utilities/tools/Set-ModuleReadMe.ps1 | 8 +- 2 files changed, 158 insertions(+), 153 deletions(-) diff --git a/modules/Microsoft.AnalysisServices/servers/readme.md b/modules/Microsoft.AnalysisServices/servers/readme.md index a5e08d351a..40fc4243f5 100644 --- a/modules/Microsoft.AnalysisServices/servers/readme.md +++ b/modules/Microsoft.AnalysisServices/servers/readme.md @@ -157,7 +157,38 @@ roleAssignments: [ ## Deployment examples -

Example 1

+

Example 1: Default

+ +
+ +via Bicep module + +```bicep +module servers './Microsoft.AnalysisServices/servers/deploy.bicep = {' + name: '${uniqueString(deployment().name)}-servers-aspar' + params: { + name: 'carmlazasaspar001' + lock: 'CanNotDelete' + skuName: 'S0' + roleAssignments: [ + { + roleDefinitionIdOrName: 'Reader' + principalIds: [ + resourceGroupResources.outputs.managedIdentityPrincipalId + ] + } + ] + diagnosticLogsRetentionInDays: 7 + diagnosticStorageAccountId: diagnosticDependencies.outputs.storageAccountResourceId + diagnosticWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId + diagnosticEventHubAuthorizationRuleId: diagnosticDependencies.outputs.eventHubAuthorizationRuleId + diagnosticEventHubName: diagnosticDependencies.outputs.eventHubNamespaceEventHubName + } +} +``` + +
+

@@ -165,84 +196,61 @@ roleAssignments: [ ```json { - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>azasweumax001" - }, - "lock": { - "value": "CanNotDelete" - }, - "skuName": { - "value": "S0" - }, - "skuCapacity": { - "value": 1 - }, - "firewallSettings": { - "value": { - "firewallRules": [ - { - "firewallRuleName": "AllowFromAll", - "rangeStart": "0.0.0.0", - "rangeEnd": "255.255.255.255" - } - ], - "enablePowerBIService": true - } - }, - "diagnosticLogsRetentionInDays": { - "value": 365 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogCategoriesToEnable": { - "value": [ - "Engine", - "Service" - ] - }, - "diagnosticMetricsToEnable": { - "value": [ - "AllMetrics" - ] + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "carmlazasaspar001" + }, + "lock": { + "value": "CanNotDelete" + }, + "skuName": { + "value": "S0" + }, + "roleAssignments": { + "value": [ + { + "principalIds": [ + "managedIdentityPrincipalId" + ], + "roleDefinitionIdOrName": "Reader" } + ] + }, + "diagnosticLogsRetentionInDays": { + "value": 7 + }, + "diagnosticStorageAccountId": { + "value": "" + }, + "diagnosticWorkspaceId": { + "value": "" + }, + "diagnosticEventHubAuthorizationRuleId": { + "value": "" + }, + "diagnosticEventHubName": { + "value": "" } + } } ```
+

+ +

Example 2: Max

via Bicep module ```bicep -module servers './Microsoft.AnalysisServices/servers/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-servers' +module servers './Microsoft.AnalysisServices/servers/deploy.bicep = {' + name: '${uniqueString(deployment().name)}-servers-asmax' params: { - name: '<>azasweumax001' + name: 'carmlazasasmax001' lock: 'CanNotDelete' skuName: 'S0' skuCapacity: 1 @@ -256,19 +264,19 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep' = { ] enablePowerBIService: true } - diagnosticLogsRetentionInDays: 365 - diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' - diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' - diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' - diagnosticEventHubName: 'adp-<>-az-evh-x-001' roleAssignments: [ { roleDefinitionIdOrName: 'Reader' principalIds: [ - '<>' + resourceGroupResources.outputs.managedIdentityPrincipalId ] } ] + diagnosticLogsRetentionInDays: 7 + diagnosticStorageAccountId: diagnosticDependencies.outputs.storageAccountResourceId + diagnosticWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId + diagnosticEventHubAuthorizationRuleId: diagnosticDependencies.outputs.eventHubAuthorizationRuleId + diagnosticEventHubName: diagnosticDependencies.outputs.eventHubNamespaceEventHubName diagnosticLogCategoriesToEnable: [ 'Engine' 'Service' @@ -283,35 +291,93 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep' = {

-

Example 2

-
via JSON Parameter file ```json { - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>azasweumin001" + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "carmlazasasmax001" + }, + "lock": { + "value": "CanNotDelete" + }, + "skuName": { + "value": "S0" + }, + "skuCapacity": { + "value": 1 + }, + "firewallSettings": { + "value": { + "firewallRules": [ + { + "rangeEnd": "255.255.255.255", + "rangeStart": "0.0.0.0", + "firewallRuleName": "AllowFromAll" + } + ], + "enablePowerBIService": true + } + }, + "roleAssignments": { + "value": [ + { + "principalIds": [ + "managedIdentityPrincipalId" + ], + "roleDefinitionIdOrName": "Reader" } + ] + }, + "diagnosticLogsRetentionInDays": { + "value": 7 + }, + "diagnosticStorageAccountId": { + "value": "" + }, + "diagnosticWorkspaceId": { + "value": "" + }, + "diagnosticEventHubAuthorizationRuleId": { + "value": "" + }, + "diagnosticEventHubName": { + "value": "" + }, + "diagnosticLogCategoriesToEnable": { + "value": [ + "Engine", + "Service" + ] + }, + "diagnosticMetricsToEnable": { + "value": [ + "AllMetrics" + ] } + } } ```
+

+ +

Example 3: Min

via Bicep module ```bicep -module servers './Microsoft.AnalysisServices/servers/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-servers' +module servers './Microsoft.AnalysisServices/servers/deploy.bicep = {' + name: '${uniqueString(deployment().name)}-servers-asmin' params: { - name: '<>azasweumin001' + name: 'carmlazasasmin001' } } ``` @@ -319,81 +385,18 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep' = {

-

Example 3

-
via JSON Parameter file ```json { - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>azasweux001" - }, - "lock": { - "value": "CanNotDelete" - }, - "skuName": { - "value": "S0" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "carmlazasasmin001" } -} -``` - -
- -
- -via Bicep module - -```bicep -module servers './Microsoft.AnalysisServices/servers/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-servers' - params: { - name: '<>azasweux001' - lock: 'CanNotDelete' - skuName: 'S0' - roleAssignments: [ - { - roleDefinitionIdOrName: 'Reader' - principalIds: [ - '<>' - ] - } - ] - diagnosticLogsRetentionInDays: 7 - diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' - diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' - diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' - diagnosticEventHubName: 'adp-<>-az-evh-x-001' } } ``` diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index 249c3f5c31..2dd711deb1 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -385,7 +385,6 @@ function Set-DeploymentExamplesSection { # ----------------- # $bicepTestStartIndex = $rawContentArray.IndexOf("module testDeployment '../deploy.bicep' = {") - $bicepTestEndIndex = $bicepTestStartIndex do { $bicepTestEndIndex++ @@ -439,6 +438,9 @@ function Set-DeploymentExamplesSection { $paramBlock = $rawBicepExample[($paramStartIndex + 1)..($paramEndIndex - 1)] + $topLevelParamIndent = ([regex]::Match($rawBicepExample[$paramStartIndex + 1], '^(\s+).*')).Captures.Groups[1].Value.Length + $topLevelParamsInOrder = $rawBicepExample | Where-Object { $_ -match "^\s{$topLevelParamIndent}[0-9a-zA-Z]+:.*" } | ForEach-Object { ($_ -split ':')[0].Trim() } + $paramInJsonFormat = @( '{', $paramBlock @@ -481,8 +483,8 @@ function Set-DeploymentExamplesSection { # Add 'value' middle-layer for top-level parameters $paramInJsonFormatObject = $paramInJSONFormatArray | Out-String | ConvertFrom-Json -AsHashtable -Depth 99 - $paramInJsonFormatObjectWithValue = @{} - foreach ($paramKey in $paramInJsonFormatObject.Keys) { + $paramInJsonFormatObjectWithValue = [ordered]@{} + foreach ($paramKey in $topLevelParamsInOrder) { $paramInJsonFormatObjectWithValue[$paramKey] = @{ value = $paramInJsonFormatObject[$paramKey] } From a0b23c95d02e42692f9aa338fceef0ec50e03795 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 1 Jul 2022 08:31:44 +0200 Subject: [PATCH 078/274] Added support for ARM deployment test file --- .../servers/.test/default.bicep | 2 +- .../servers/.test/max.bicep | 2 +- .../servers/.test/min.bicep | 2 +- .../vpnSites/.test/default.bicep | 2 +- .../vpnSites/.test/min.bicep | 2 +- utilities/tools/Set-ModuleReadMe.ps1 | 33 +++++++++++++++++-- 6 files changed, 35 insertions(+), 8 deletions(-) diff --git a/modules/Microsoft.AnalysisServices/servers/.test/default.bicep b/modules/Microsoft.AnalysisServices/servers/.test/default.bicep index 5ec44296b6..89e5d50823 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/default.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/default.bicep @@ -56,7 +56,7 @@ module diagnosticDependencies '../../../.global/dependencyConstructs/diagnostic. module testDeployment '../deploy.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name)}-servers-${serviceShort}' + name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { name: '${namePrefix}azas${serviceShort}001' lock: 'CanNotDelete' diff --git a/modules/Microsoft.AnalysisServices/servers/.test/max.bicep b/modules/Microsoft.AnalysisServices/servers/.test/max.bicep index 5631a8d56c..282e6ca898 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/max.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/max.bicep @@ -56,7 +56,7 @@ module diagnosticDependencies '../../../.global/dependencyConstructs/diagnostic. module testDeployment '../deploy.bicep' = { scope: az.resourceGroup(resourceGroupName) - name: '${uniqueString(deployment().name)}-servers-${serviceShort}' + name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { name: '${namePrefix}azas${serviceShort}001' lock: 'CanNotDelete' diff --git a/modules/Microsoft.AnalysisServices/servers/.test/min.bicep b/modules/Microsoft.AnalysisServices/servers/.test/min.bicep index b73c4da9e1..5ca4220f72 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/min.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/min.bicep @@ -35,7 +35,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { module testDeployment '../deploy.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name)}-servers-${serviceShort}' + name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { name: '${namePrefix}azas${serviceShort}001' } diff --git a/modules/Microsoft.Network/vpnSites/.test/default.bicep b/modules/Microsoft.Network/vpnSites/.test/default.bicep index 510a94ec04..f06283c35c 100644 --- a/modules/Microsoft.Network/vpnSites/.test/default.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/default.bicep @@ -44,7 +44,7 @@ module resourceGroupResources 'nestedTemplates/default.parameters.nested.bicep' module testDeployment '../deploy.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name)}-vpnSites-${serviceShort}' + name: '${uniqueString(deployment().name)}-test-vpnSites-${serviceShort}' params: { name: '${namePrefix}-az-${serviceShort}-001' virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId diff --git a/modules/Microsoft.Network/vpnSites/.test/min.bicep b/modules/Microsoft.Network/vpnSites/.test/min.bicep index a95d360349..6dccf4206e 100644 --- a/modules/Microsoft.Network/vpnSites/.test/min.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/min.bicep @@ -43,7 +43,7 @@ module resourceGroupResources 'nestedTemplates/min.parameters.nested.bicep' = { module testDeployment '../deploy.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name)}-vpnSites-${serviceShort}' + name: '${uniqueString(deployment().name)}-test-vpnSites-${serviceShort}' params: { name: '${namePrefix}-az-${serviceShort}-001' virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index 2dd711deb1..86c27c8a08 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -516,9 +516,36 @@ function Set-DeploymentExamplesSection { # ----------------- # # JSON to Bicep # # ----------------- # - # TODO: Support JSON test template files? + # Handle case of deployment test file (instead of ARM-JSON parameter file) + $rawContentHashtable = $rawContent | ConvertFrom-Json -Depth 99 + $isParameterFile = $rawContentHashtable.'$schema' -like '*deploymentParameters*' + if (-not $isParameterFile) { + # Uses deployment test file (instead of parameter file). Need to extract parameters. + $testResource = $rawContentHashtable.resources | Where-Object { $_.name -like '*-test-*' } + + $JSONResourceParameters = $testResource.properties.parameters + + $formattedJSONParameters = [ordered]@{} + foreach ($parameter in $JSONResourceParameters.PSObject.Properties.Name) { + $formattedJSONParameters[$parameter] = $JSONResourceParameters.$parameter + } + + $jsonParameterContent = [ordered]@{ + '$schema' = 'https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#' + contentVersion = '1.0.0.0' + parameters = $formattedJSONParameters + } + + $jsonParameterContent = ($jsonParameterContent | ConvertTo-Json -Depth 99) -split '\n' + } else { + # Use plan ARM-JSON parameter file + $jsonParameterContent = $rawContent.TrimEnd() + } + + # TODO: Add test to check for one resource with '-test-' in name (if not parameter file) if ($addJson) { + $SectionContent += @( '', '
', @@ -526,7 +553,7 @@ function Set-DeploymentExamplesSection { 'via JSON Parameter file', '', '```json', - $rawContent.TrimEnd(), + $jsonParameterContent, '```', '', '
' @@ -534,7 +561,7 @@ function Set-DeploymentExamplesSection { } if ($addBicep) { - $JSONParametersHashTable = (ConvertFrom-Json $rawContent -AsHashtable -Depth 99).parameters + $JSONParametersHashTable = (ConvertFrom-Json $jsonParameterContent -AsHashtable -Depth 99).parameters # Handle KeyVaut references $keyVaultReferences = $JSONParametersHashTable.Keys | Where-Object { $JSONParametersHashTable[$_].Keys -contains 'reference' } From 09cf9247443663744b3a5eb5694c3398e7367262 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 1 Jul 2022 13:15:02 +0200 Subject: [PATCH 079/274] Updated handling of ARM-JSON deployment files + updated tests --- modules/.global/global.module.tests.ps1 | 207 ++++++++++--- modules/Microsoft.Network/vpnSites/readme.md | 292 ++++++++++--------- utilities/tools/Set-ModuleReadMe.ps1 | 32 +- 3 files changed, 332 insertions(+), 199 deletions(-) diff --git a/modules/.global/global.module.tests.ps1 b/modules/.global/global.module.tests.ps1 index f81f6efe87..19bbc68842 100644 --- a/modules/.global/global.module.tests.ps1 +++ b/modules/.global/global.module.tests.ps1 @@ -468,6 +468,159 @@ Describe 'Readme tests' -Tag Readme { } } +Describe 'Parameter file tests' -Tag 'Parameter' { + + Context 'Deployment test file tests' { + + $deploymentTestFileTestCases = @() + + foreach ($moduleFolderPath in $moduleFolderPaths) { + if (Test-Path (Join-Path $moduleFolderPath '.test')) { + $testFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test') -File).FullName | Where-Object { $_ -match '.+\.[bicep|json]' } + foreach ($testFilePath in $testFilePaths) { + $testFileContent = Get-Content $testFilePath + + if ((Split-Path $testFilePath -Extension) -eq '.json') { + # Skip any classic parameter files + $contentHashtable = $testFileContent | ConvertFrom-Json -Depth 99 + $isParameterFile = $contentHashtable.'$schema' -like '*deploymentParameters*' + if ($isParameterFile) { + continue + } + } + + $deploymentTestFileTestCases += @{ + testFilePath = $testFilePath + testFileContent = $testFileContent + moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1] + } + } + } + } + + It "[] Bicep test deployment files should invoke test like [module testDeployment '../deploy.bicep' = {]" -TestCases ($deploymentTestFileTestCases | Where-Object { (Split-Path $_.testFilePath -Extension) -eq '.bicep' }) { + + param( + [object[]] $testFileContent + ) + + $expectedTestFormat = ($testFileContent | Out-String) -match "\s*module testDeployment '../deploy.bicep' = {\s*" + + $expectedTestFormat | Should -Be $true -Because 'the module test invocation should be in the expected format to allow identification.' + } + + It '[] Bicep test deployment name should contain [-test-]' -TestCases ($deploymentTestFileTestCases | Where-Object { (Split-Path $_.testFilePath -Extension) -eq '.bicep' }) { + + param( + [object[]] $testFileContent + ) + + $expectedNameFormat = ($testFileContent | Out-String) -match '\s*name:.+-test-.+\s*' + + $expectedNameFormat | Should -Be $true -Because 'the handle ''-test-'' should be part of the module test invocation''s resource name to allow identification.' + } + + It '[] Bicep test deployment should have parameter [namePrefix]' -TestCases ($deploymentTestFileTestCases | Where-Object { (Split-Path $_.testFilePath -Extension) -eq '.bicep' }) { + + param( + [object[]] $testFileContent + ) + + $hasExpectedParam = ($testFileContent | Out-String) -match '\s*param\s+namePrefix\s+string\s*' + + $hasExpectedParam | Should -Be $true + } + + It '[] Bicep test deployment should have parameter [serviceShort]' -TestCases ($deploymentTestFileTestCases | Where-Object { (Split-Path $_.testFilePath -Extension) -eq '.bicep' }) { + + param( + [object[]] $testFileContent + ) + + $hasExpectedParam = ($testFileContent | Out-String) -match '\s*param\s+serviceShort\s+string\s*' + + $hasExpectedParam | Should -Be $true + } + + It '[] JSON test deployment name should contain [-test-]' -TestCases ($deploymentTestFileTestCases | Where-Object { (Split-Path $_.testFilePath -Extension) -eq '.json' }) { + + param( + [object[]] $testFileContent + ) + + # Handle case of deployment test file (instead of ARM-JSON parameter file) + $rawContentHashtable = $testFileContent | ConvertFrom-Json -Depth 99 + + # Uses deployment test file (instead of parameter file). Need to extract parameters. + $testResource = $rawContentHashtable.resources | Where-Object { $_.name -like '*-test-*' } + + $testResource | Should -Not -BeNullOrEmpty -Because 'the handle ''-test-'' should be part of the module test invocation''s resource name to allow identification.' + } + + It '[] JSON test deployment should have parameter [namePrefix]' -TestCases ($deploymentTestFileTestCases | Where-Object { (Split-Path $_.testFilePath -Extension) -eq '.json' }) { + + param( + [object[]] $testFileContent + ) + + $rawContentHashtable = $testFileContent | ConvertFrom-Json -Depth 99 -AsHashtable + $rawContentHashtable.parameters.keys | Should -Contain 'namePrefix' + } + + It '[] JSON test deployment should have parameter [serviceShort]' -TestCases ($deploymentTestFileTestCases | Where-Object { (Split-Path $_.testFilePath -Extension) -eq '.json' }) { + + param( + [object[]] $testFileContent + ) + + $rawContentHashtable = $testFileContent | ConvertFrom-Json -Depth 99 -AsHashtable + $rawContentHashtable.parameters.keys | Should -Contain 'serviceShort' + } + } + + Context 'Parameter file token tests' { + + # Parameter file test cases + $parameterFileTokenTestCases = @() + + foreach ($moduleFolderPath in $moduleFolderPaths) { + if (Test-Path (Join-Path $moduleFolderPath '.test')) { + $testFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.parameters.json') -Recurse -Force).FullName + foreach ($testFilePath in $testFilePaths) { + foreach ($token in $enforcedTokenList.Keys) { + $parameterFileTokenTestCases += @{ + parameterFilePath = $testFilePath + parameterFileName = Split-Path $testFilePath -Leaf + tokenSettings = $Settings.parameterFileTokens + tokenName = $token + tokenValue = $enforcedTokenList[$token] + moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1] + } + } + } + } + } + + It '[] [Tokens] Parameter file [] should not contain the plain value for token [] guid' -TestCases $parameterFileTokenTestCases { + param ( + [string] $testFilePath, + [string] $parameterFileName, + [hashtable] $tokenSettings, + [string] $tokenName, + [string] $tokenValue, + [string] $moduleFolderName + ) + $ParameterFileTokenName = -join ($tokenSettings.tokenPrefix, $tokenName, $tokenSettings.tokenSuffix) + $ParameterFileContent = Get-Content -Path $testFilePath + + $incorrectReferencesFound = $ParameterFileContent | Select-String -Pattern $tokenValue -AllMatches + if ($incorrectReferencesFound.Matches) { + $incorrectReferencesFound.Matches.Count | Should -Be 0 -Because ('Parameter file should not contain the [{0}] value, instead should reference the token value [{1}]. Please check the {2} lines: [{3}]' -f $tokenName, $ParameterFileTokenName, $incorrectReferencesFound.Matches.Count, ($incorrectReferencesFound.Line.Trim() -join ",`n")) + } + } + } +} + Describe 'Deployment template tests' -Tag Template { Context 'Deployment template tests' { @@ -517,7 +670,16 @@ Describe 'Deployment template tests' -Tag Template { foreach ($moduleTestFilePath in $moduleTestFilePaths) { if ((Split-Path $moduleTestFilePath -Extension) -eq '.json') { - $deploymentTestFile_AllParameterNames = ((Get-Content $moduleTestFilePath) | ConvertFrom-Json -AsHashtable).parameters.Keys | Sort-Object + + $rawContentHashtable = (Get-Content $moduleTestFilePath) | ConvertFrom-Json -AsHashtable + + # Skipping any file that is not actually a ARM-JSON parameter file + $isParameterFile = $rawContentHashtable.'$schema' -like '*deploymentParameters*' + if (-not $isParameterFile) { + continue + } + + $deploymentTestFile_AllParameterNames = $rawContentHashtable.parameters.Keys | Sort-Object } else { $deploymentFileContent = az bicep build --file $moduleTestFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable $deploymentTestFile_AllParameterNames = $deploymentFileContent.resources[-1].properties.parameters.keys | Sort-Object # The last resource should be the test @@ -914,6 +1076,8 @@ Describe 'Deployment template tests' -Tag Template { [hashtable[]] $testFileTestCases ) + # TODO: Skip any non-parameter json files + foreach ($parameterFileTestCase in $testFileTestCases) { $TemplateFile_RequiredParametersNames = $parameterFileTestCase.TemplateFile_RequiredParametersNames $testFile_AllParameterNames = $parameterFileTestCase.testFile_AllParameterNames @@ -924,47 +1088,6 @@ Describe 'Deployment template tests' -Tag Template { } } - Context 'Parameter file token tests' { - - # Parameter file test cases - $parameterFileTokenTestCases = @() - - foreach ($moduleFolderPath in $moduleFolderPaths) { - if (Test-Path (Join-Path $moduleFolderPath '.test')) { - $testFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.parameters.json') -Recurse -Force).FullName - foreach ($testFilePath in $testFilePaths) { - foreach ($token in $enforcedTokenList.Keys) { - $parameterFileTokenTestCases += @{ - parameterFilePath = $testFilePath - parameterFileName = Split-Path $testFilePath -Leaf - tokenSettings = $Settings.parameterFileTokens - tokenName = $token - tokenValue = $enforcedTokenList[$token] - moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1] - } - } - } - } - } - - It '[] [Tokens] Parameter file [] should not contain the plain value for token [] guid' -TestCases $parameterFileTokenTestCases { - param ( - [string] $testFilePath, - [string] $parameterFileName, - [hashtable] $tokenSettings, - [string] $tokenName, - [string] $tokenValue, - [string] $moduleFolderName - ) - $ParameterFileTokenName = -join ($tokenSettings.tokenPrefix, $tokenName, $tokenSettings.tokenSuffix) - $ParameterFileContent = Get-Content -Path $testFilePath - - $incorrectReferencesFound = $ParameterFileContent | Select-String -Pattern $tokenValue -AllMatches - if ($incorrectReferencesFound.Matches) { - $incorrectReferencesFound.Matches.Count | Should -Be 0 -Because ('Parameter file should not contain the [{0}] value, instead should reference the token value [{1}]. Please check the {2} lines: [{3}]' -f $tokenName, $ParameterFileTokenName, $incorrectReferencesFound.Matches.Count, ($incorrectReferencesFound.Line.Trim() -join ",`n")) - } - } - } } Describe "API version tests [All apiVersions in the template should be 'recent']" -Tag ApiCheck { diff --git a/modules/Microsoft.Network/vpnSites/readme.md b/modules/Microsoft.Network/vpnSites/readme.md index 249b3d1195..390199682e 100644 --- a/modules/Microsoft.Network/vpnSites/readme.md +++ b/modules/Microsoft.Network/vpnSites/readme.md @@ -322,155 +322,18 @@ roleAssignments: [ ## Deployment examples -

Example 1

- -
- -via JSON Parameter file - -```json -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-vSite-min-001" - }, - "addressPrefixes": { - "value": [ - "10.0.0.0/16" - ] - }, - "ipAddress": { - "value": "1.2.3.4" - }, - "virtualWanId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/apd-<>-az-vw-x-001" - } - } -} -``` - -
+

Example 1: Default

via Bicep module ```bicep -module vpnSites './Microsoft.Network/vpnSites/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-vpnSites' +module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = {' + name: '${uniqueString(deployment().name)}-test-vpnSites-vsipar' params: { - name: '<>-az-vSite-min-001' - addressPrefixes: [ - '10.0.0.0/16' - ] - ipAddress: '1.2.3.4' - virtualWanId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/apd-<>-az-vw-x-001' - } -} -``` - -
-

- -

Example 2

- -
- -via JSON Parameter file - -```json -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-vSite-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "tags": { - "value": { - "tagA": "valueA", - "tagB": "valueB" - } - }, - "deviceProperties": { - "value": { - "linkSpeedInMbps": 0 - } - }, - "virtualWanId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/apd-<>-az-vw-x-001" - }, - "vpnSiteLinks": { - "value": [ - { - "name": "<>-az-vSite-x-001", - "properties": { - "bgpProperties": { - "asn": 65010, - "bgpPeeringAddress": "1.1.1.1" - }, - "ipAddress": "1.2.3.4", - "linkProperties": { - "linkProviderName": "contoso", - "linkSpeedInMbps": 5 - } - } - }, - { - "name": "Link1", - "properties": { - "bgpProperties": { - "asn": 65020, - "bgpPeeringAddress": "192.168.1.0" - }, - "ipAddress": "2.2.2.2", - "linkProperties": { - "linkProviderName": "contoso", - "linkSpeedInMbps": 5 - } - } - } - ] - }, - "o365Policy": { - "value": { - "breakOutCategories": { - "optimize": true, - "allow": true, - "default": true - } - } - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - } -} -``` - -
- -
- -via Bicep module - -```bicep -module vpnSites './Microsoft.Network/vpnSites/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-vpnSites' - params: { - name: '<>-az-vSite-x-001' + name: 'carml-az-vsipar-001' + virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId lock: 'CanNotDelete' tags: { tagA: 'valueA' @@ -479,10 +342,9 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep' = { deviceProperties: { linkSpeedInMbps: 0 } - virtualWanId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/apd-<>-az-vw-x-001' vpnSiteLinks: [ { - name: '<>-az-vSite-x-001' + name: 'carml-az-vSite-vsipar-001' properties: { bgpProperties: { asn: 65010 @@ -521,7 +383,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep' = { { roleDefinitionIdOrName: 'Reader' principalIds: [ - '<>' + resourceGroupResources.outputs.managedIdentityPrincipalId ] } ] @@ -531,3 +393,143 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep' = {

+ +

+ +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "carml-az-vsipar-001" + }, + "virtualWanId": { + "value": "" + }, + "lock": { + "value": "CanNotDelete" + }, + "tags": { + "value": { + "tagB": "valueB", + "tagA": "valueA" + } + }, + "deviceProperties": { + "value": { + "linkSpeedInMbps": 0 + } + }, + "vpnSiteLinks": { + "value": [ + { + "properties": { + "linkProperties": { + "linkSpeedInMbps": 5, + "linkProviderName": "contoso" + }, + "ipAddress": "1.2.3.4", + "bgpProperties": { + "bgpPeeringAddress": "1.1.1.1", + "asn": 65010 + } + }, + "name": "carml-az-vSite-vsipar-001" + }, + { + "properties": { + "linkProperties": { + "linkSpeedInMbps": 5, + "linkProviderName": "contoso" + }, + "ipAddress": "2.2.2.2", + "bgpProperties": { + "bgpPeeringAddress": "192.168.1.0", + "asn": 65020 + } + }, + "name": "Link1" + } + ] + }, + "o365Policy": { + "value": { + "breakOutCategories": { + "optimize": true, + "allow": true, + "default": true + } + } + }, + "roleAssignments": { + "value": [ + { + "principalIds": [ + "managedIdentityPrincipalId" + ], + "roleDefinitionIdOrName": "Reader" + } + ] + } + } +} +``` + +
+

+ +

Example 2: Min

+ +
+ +via Bicep module + +```bicep +module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = {' + name: '${uniqueString(deployment().name)}-test-vpnSites-vsimin' + params: { + name: 'carml-az-vsimin-001' + virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId + addressPrefixes: [ + '10.0.0.0/16' + ] + ipAddress: '1.2.3.4' + } +} +``` + +
+

+ +

+ +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "carml-az-vsimin-001" + }, + "virtualWanId": { + "value": "" + }, + "addressPrefixes": { + "value": [ + "10.0.0.0/16" + ] + }, + "ipAddress": { + "value": "1.2.3.4" + } + } +} +``` + +
+

diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index 86c27c8a08..336c847ee2 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -404,7 +404,7 @@ function Set-DeploymentExamplesSection { # Generate content if ($addBicep) { - $rawBicepExample[0] = "module $resourceType './$resourceTypeIdentifier/deploy.bicep = {'" + $rawBicepExample[0] = "module $resourceType './$resourceTypeIdentifier/deploy.bicep = {" $rawBicepExample = $rawBicepExample | Where-Object { $_ -notmatch 'scope: *' } | Where-Object { -not [String]::IsNullOrEmpty($_) } $SectionContent += @( @@ -543,7 +543,6 @@ function Set-DeploymentExamplesSection { $jsonParameterContent = $rawContent.TrimEnd() } - # TODO: Add test to check for one resource with '-test-' in name (if not parameter file) if ($addJson) { $SectionContent += @( @@ -561,7 +560,7 @@ function Set-DeploymentExamplesSection { } if ($addBicep) { - $JSONParametersHashTable = (ConvertFrom-Json $jsonParameterContent -AsHashtable -Depth 99).parameters + $JSONParametersHashTable = (ConvertFrom-Json ($jsonParameterContent | Out-String) -AsHashtable -Depth 99).parameters # Handle KeyVaut references $keyVaultReferences = $JSONParametersHashTable.Keys | Where-Object { $JSONParametersHashTable[$_].Keys -contains 'reference' } @@ -599,15 +598,24 @@ function Set-DeploymentExamplesSection { } # Handle VALUE references (i.e. remove them) - $JSONParameters = (ConvertFrom-Json $rawContent -Depth 99).PSObject.properties['parameters'].value - $JSONParametersWithoutValue = [ordered]@{} - foreach ($parameter in $JSONParameters.PSObject.Properties) { - if ($parameter.value.PSObject.Properties.name -eq 'value') { - $JSONParametersWithoutValue[$parameter.name] = $parameter.value.PSObject.Properties['value'].value - } else { - # replace key vault references - $matchingTuple = $keyVaultReferenceData | Where-Object { $_.parameterName -eq $parameter.Name } - $JSONParametersWithoutValue[$parameter.name] = "{0}.getSecret('{1}')" -f $matchingTuple.vaultResourceReference, $matchingTuple.secretName + if ((ConvertFrom-Json $rawContent -Depth 99).'$schema' -like '*deploymentParameters*') { + # If handling a classic parameter file + $JSONParameters = (ConvertFrom-Json $rawContent -Depth 99).PSObject.properties['parameters'].value + $JSONParametersWithoutValue = [ordered]@{} + foreach ($parameter in $JSONParameters.PSObject.Properties) { + if ($parameter.Value.PSObject.Properties.name -eq 'value') { + $JSONParametersWithoutValue[$parameter.name] = $parameter.value.PSObject.Properties['value'].value + } else { + # replace key vault references + $matchingTuple = $keyVaultReferenceData | Where-Object { $_.parameterName -eq $parameter.Name } + $JSONParametersWithoutValue[$parameter.name] = "{0}.getSecret('{1}')" -f $matchingTuple.vaultResourceReference, $matchingTuple.secretName + } + } + } else { + # If handling a test deployment file + $JSONParametersWithoutValue = [ordered]@{} + foreach ($parameter in $formattedJSONParameters.Keys) { + $JSONParametersWithoutValue[$parameter] = $formattedJSONParameters.$parameter.value } } From d07f74f22ee72549b3d70e25210620cc057a97ba Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 1 Jul 2022 13:16:41 +0200 Subject: [PATCH 080/274] Update to latest --- modules/Microsoft.AnalysisServices/servers/readme.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/Microsoft.AnalysisServices/servers/readme.md b/modules/Microsoft.AnalysisServices/servers/readme.md index 40fc4243f5..39a8a8872d 100644 --- a/modules/Microsoft.AnalysisServices/servers/readme.md +++ b/modules/Microsoft.AnalysisServices/servers/readme.md @@ -165,7 +165,7 @@ roleAssignments: [ ```bicep module servers './Microsoft.AnalysisServices/servers/deploy.bicep = {' - name: '${uniqueString(deployment().name)}-servers-aspar' + name: '${uniqueString(deployment().name)}-test-servers-aspar' params: { name: 'carmlazasaspar001' lock: 'CanNotDelete' @@ -248,7 +248,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = {' ```bicep module servers './Microsoft.AnalysisServices/servers/deploy.bicep = {' - name: '${uniqueString(deployment().name)}-servers-asmax' + name: '${uniqueString(deployment().name)}-test-servers-asmax' params: { name: 'carmlazasasmax001' lock: 'CanNotDelete' @@ -316,9 +316,9 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = {' "value": { "firewallRules": [ { - "rangeEnd": "255.255.255.255", "rangeStart": "0.0.0.0", - "firewallRuleName": "AllowFromAll" + "firewallRuleName": "AllowFromAll", + "rangeEnd": "255.255.255.255" } ], "enablePowerBIService": true @@ -375,7 +375,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = {' ```bicep module servers './Microsoft.AnalysisServices/servers/deploy.bicep = {' - name: '${uniqueString(deployment().name)}-servers-asmin' + name: '${uniqueString(deployment().name)}-test-servers-asmin' params: { name: 'carmlazasasmin001' } From defae14ca93cb18e3a8b34462a1bde1b54562f5b Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 1 Jul 2022 14:11:22 +0200 Subject: [PATCH 081/274] Small updates --- utilities/tools/Set-ModuleReadMe.ps1 | 75 ++++++++++++++-------------- 1 file changed, 38 insertions(+), 37 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index 336c847ee2..f6f6318d3e 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -417,7 +417,7 @@ function Set-DeploymentExamplesSection { ($rawBicepExample | ForEach-Object { "$_" }).TrimEnd(), '```', '', - '

' + '', '

' ) } @@ -508,7 +508,7 @@ function Set-DeploymentExamplesSection { $jsonExample '```', '', - '' + '', '

' ) } @@ -543,22 +543,6 @@ function Set-DeploymentExamplesSection { $jsonParameterContent = $rawContent.TrimEnd() } - if ($addJson) { - - $SectionContent += @( - '', - '

', - '', - 'via JSON Parameter file', - '', - '```json', - $jsonParameterContent, - '```', - '', - '
' - ) - } - if ($addBicep) { $JSONParametersHashTable = (ConvertFrom-Json ($jsonParameterContent | Out-String) -AsHashtable -Depth 99).parameters @@ -629,27 +613,44 @@ function Set-DeploymentExamplesSection { $bicepParamsArray = $contentInBicepFormat -split ('\n') $bicepParamsArray = $bicepParamsArray[1..($bicepParamsArray.count - 2)] } - } - $SectionContent += @( - '', - '
' - '' - 'via Bicep module' - '' - '```bicep', - $extendedKeyVaultReferences, - "module $resourceType './$resourceTypeIdentifier/deploy.bicep' = {" - " name: '`${uniqueString(deployment().name)}-$resourceType'" - ' params: {' + $SectionContent += @( + '', + '
' + '' + 'via Bicep module' + '' + '```bicep', + $extendedKeyVaultReferences, + "module $resourceType './$resourceTypeIdentifier/deploy.bicep' = {" + " name: '`${uniqueString(deployment().name)}-$resourceType'" + ' params: {' ($bicepParamsArray | ForEach-Object { " $_" }).TrimEnd(), - ' }' - '}' - '```', - '', - '
' - '

' - ) + ' }' + '}' + '```', + '', + '

' + '

' + ) + } + + if ($addJson) { + + $SectionContent += @( + '', + '

', + '', + 'via JSON Parameter file', + '', + '```json', + $jsonParameterContent, + '```', + '', + '
', + '

' + ) + } } $SectionContent += @( From 303f224209253e6b50923ea80dab871059188613 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 1 Jul 2022 14:11:54 +0200 Subject: [PATCH 082/274] Small updates --- .../servers/readme.md | 22 +++++++-------- modules/Microsoft.Network/vpnSites/readme.md | 28 +++++++++---------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/modules/Microsoft.AnalysisServices/servers/readme.md b/modules/Microsoft.AnalysisServices/servers/readme.md index 39a8a8872d..eafab6fdc9 100644 --- a/modules/Microsoft.AnalysisServices/servers/readme.md +++ b/modules/Microsoft.AnalysisServices/servers/readme.md @@ -164,7 +164,7 @@ roleAssignments: [

via Bicep module ```bicep -module servers './Microsoft.AnalysisServices/servers/deploy.bicep = {' +module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-servers-aspar' params: { name: 'carmlazasaspar001' @@ -211,10 +211,10 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = {' "roleAssignments": { "value": [ { + "roleDefinitionIdOrName": "Reader", "principalIds": [ "managedIdentityPrincipalId" - ], - "roleDefinitionIdOrName": "Reader" + ] } ] }, @@ -247,7 +247,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = {' via Bicep module ```bicep -module servers './Microsoft.AnalysisServices/servers/deploy.bicep = {' +module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-servers-asmax' params: { name: 'carmlazasasmax001' @@ -314,23 +314,23 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = {' }, "firewallSettings": { "value": { + "enablePowerBIService": true, "firewallRules": [ { - "rangeStart": "0.0.0.0", "firewallRuleName": "AllowFromAll", - "rangeEnd": "255.255.255.255" + "rangeEnd": "255.255.255.255", + "rangeStart": "0.0.0.0" } - ], - "enablePowerBIService": true + ] } }, "roleAssignments": { "value": [ { + "roleDefinitionIdOrName": "Reader", "principalIds": [ "managedIdentityPrincipalId" - ], - "roleDefinitionIdOrName": "Reader" + ] } ] }, @@ -374,7 +374,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = {' via Bicep module ```bicep -module servers './Microsoft.AnalysisServices/servers/deploy.bicep = {' +module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-servers-asmin' params: { name: 'carmlazasasmin001' diff --git a/modules/Microsoft.Network/vpnSites/readme.md b/modules/Microsoft.Network/vpnSites/readme.md index 390199682e..3b430eff69 100644 --- a/modules/Microsoft.Network/vpnSites/readme.md +++ b/modules/Microsoft.Network/vpnSites/readme.md @@ -329,7 +329,7 @@ roleAssignments: [ via Bicep module ```bicep -module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = {' +module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-vpnSites-vsipar' params: { name: 'carml-az-vsipar-001' @@ -428,13 +428,13 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = {' { "properties": { "linkProperties": { - "linkSpeedInMbps": 5, - "linkProviderName": "contoso" + "linkProviderName": "contoso", + "linkSpeedInMbps": 5 }, "ipAddress": "1.2.3.4", "bgpProperties": { - "bgpPeeringAddress": "1.1.1.1", - "asn": 65010 + "asn": 65010, + "bgpPeeringAddress": "1.1.1.1" } }, "name": "carml-az-vSite-vsipar-001" @@ -442,13 +442,13 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = {' { "properties": { "linkProperties": { - "linkSpeedInMbps": 5, - "linkProviderName": "contoso" + "linkProviderName": "contoso", + "linkSpeedInMbps": 5 }, "ipAddress": "2.2.2.2", "bgpProperties": { - "bgpPeeringAddress": "192.168.1.0", - "asn": 65020 + "asn": 65020, + "bgpPeeringAddress": "192.168.1.0" } }, "name": "Link1" @@ -459,18 +459,18 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = {' "value": { "breakOutCategories": { "optimize": true, - "allow": true, - "default": true + "default": true, + "allow": true } } }, "roleAssignments": { "value": [ { + "roleDefinitionIdOrName": "Reader", "principalIds": [ "managedIdentityPrincipalId" - ], - "roleDefinitionIdOrName": "Reader" + ] } ] } @@ -488,7 +488,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = {' via Bicep module ```bicep -module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = {' +module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-vpnSites-vsimin' params: { name: 'carml-az-vsimin-001' From 0b12667f734585af6edd0eb3ae7507c3a67fd3ab Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 1 Jul 2022 15:27:15 +0200 Subject: [PATCH 083/274] Added documentation --- utilities/tools/Set-ModuleReadMe.ps1 | 86 +++++++++++++++++----------- 1 file changed, 54 insertions(+), 32 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index f6f6318d3e..d10a704674 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -366,9 +366,11 @@ function Set-DeploymentExamplesSection { $pathIndex = 1 foreach ($testFilePath in $testFilePaths) { + # Read content $rawContentArray = Get-Content -Path $testFilePath $rawContent = Get-Content -Path $testFilePath -Encoding 'utf8' | Out-String + # Format example header $exampleTitle = ((Split-Path $testFilePath -LeafBase) -replace '\.', ' ') -replace ' parameters', '' $TextInfo = (Get-Culture).TextInfo $exampleTitle = $TextInfo.ToTitleCase($exampleTitle) @@ -380,9 +382,12 @@ function Set-DeploymentExamplesSection { ## Handle by type (Bicep vs. JSON) ## ## ----------------------------------- ## if ((Split-Path $testFilePath -Extension) -eq '.bicep') { - # ----------------- # - # Bicep to JSON # - # ----------------- # + + # ------------------------- # + # Prepare Bicep to JSON # + # ------------------------- # + + # [1/3] Search for the relevant parameter start & end index $bicepTestStartIndex = $rawContentArray.IndexOf("module testDeployment '../deploy.bicep' = {") $bicepTestEndIndex = $bicepTestStartIndex @@ -392,7 +397,7 @@ function Set-DeploymentExamplesSection { $rawBicepExample = $rawContentArray[$bicepTestStartIndex..$bicepTestEndIndex] - # Replace placeholders + # [2/3] Replace placeholders $namePrefix = ($ProjectSettings.parameterFileTokens.localTokens | Where-Object { $_.name -eq 'namePrefix' }).value $serviceShort = ([regex]::Match($rawContent, "(?m)^param serviceShort string = '(.+)'\s*$")).Captures.Groups[1].Value @@ -400,13 +405,15 @@ function Set-DeploymentExamplesSection { $rawBicepExampleString = $rawBicepExampleString -replace '\$\{serviceShort\}', $serviceShort $rawBicepExampleString = $rawBicepExampleString -replace '\$\{namePrefix\}', $namePrefix + # [3/4] Format header, remove scope property & any empty line $rawBicepExample = $rawBicepExampleString -split '\n' + $rawBicepExample[0] = "module $resourceType './$resourceTypeIdentifier/deploy.bicep = {" + $rawBicepExample = $rawBicepExample | Where-Object { $_ -notmatch 'scope: *' } | Where-Object { -not [String]::IsNullOrEmpty($_) } - # Generate content + # --------------------- # + # Add Bicep example # + # --------------------- # if ($addBicep) { - $rawBicepExample[0] = "module $resourceType './$resourceTypeIdentifier/deploy.bicep = {" - $rawBicepExample = $rawBicepExample | Where-Object { $_ -notmatch 'scope: *' } | Where-Object { -not [String]::IsNullOrEmpty($_) } - $SectionContent += @( '', '
' @@ -422,8 +429,12 @@ function Set-DeploymentExamplesSection { ) } + # -------------------- # + # Add JSON example # + # -------------------- # if ($addJson) { + # [1/3] Find the start and end of the deployment's param block $paramStartIndex = 0 do { $paramStartIndex++ @@ -438,23 +449,23 @@ function Set-DeploymentExamplesSection { $paramBlock = $rawBicepExample[($paramStartIndex + 1)..($paramEndIndex - 1)] - $topLevelParamIndent = ([regex]::Match($rawBicepExample[$paramStartIndex + 1], '^(\s+).*')).Captures.Groups[1].Value.Length - $topLevelParamsInOrder = $rawBicepExample | Where-Object { $_ -match "^\s{$topLevelParamIndent}[0-9a-zA-Z]+:.*" } | ForEach-Object { ($_ -split ':')[0].Trim() } - + # [2/3] Add JSON-specific syntax to the Bicep param block to enable us to treat is as such + # [2.1/3] Syntax: Outer brackets $paramInJsonFormat = @( '{', $paramBlock '}' ) | Out-String - # Formatting + # [2.2/3] Syntax: All single-quotes are double-quotes $paramInJsonFormat = $paramInJsonFormat -replace "'", '"' + # [2.3/3] Syntax: Everything left of a ':' should be wrapped in quotes (as a parameter name is always a string) $paramInJsonFormat = $paramInJsonFormat -replace '([0-9a-zA-Z]+):', '"$1":' + # [2.4/3] Split the object to format line-by-line (& also remove any empty lines) $paramInJSONFormatArray = $paramInJsonFormat -split '\n' | Where-Object { $_ } - - # Replace resource IDs + # [2.5/3] Syntax: Replace Bicep resource ID references for ($index = 0; $index -lt $paramInJSONFormatArray.Count; $index++) { if ($paramInJSONFormatArray[$index] -like '*:*' -and ($paramInJSONFormatArray[$index] -split ':')[1].Trim() -notmatch '".+"' -and $paramInJSONFormatArray[$index] -like '*.*') { # In case of a reference like : "virtualWanId": resourceGroupResources.outputs.virtualWWANResourceId @@ -466,23 +477,25 @@ function Set-DeploymentExamplesSection { } } - # Handle comma + # [2.6/3] Syntax: Add comma everywhere unless: + # - the current line has an opening 'object: {' or 'array: [' character + # - the line after the current line has a closing 'object: {' or 'array: [' character + # - it's the last closing bracket for ($index = 0; $index -lt $paramInJSONFormatArray.Count; $index++) { - if ($paramInJSONFormatArray[$index] -match '[\{|\[]') { - # If we're just opening an object/array, skip + if (($paramInJSONFormatArray[$index] -match '[\{|\[]') -or (($index -lt $paramInJSONFormatArray.Count - 1) -and $paramInJSONFormatArray[$index + 1] -match '[\]|\}]') -or ($index -eq $paramInJSONFormatArray.Count - 1)) { continue - } else { - if ((($index -lt $paramInJSONFormatArray.Count - 1) -and $paramInJSONFormatArray[$index + 1] -match '[\]|\}]') -or ($index -eq $paramInJSONFormatArray.Count - 1)) { - # -or ($index -eq $paramInJSONFormatArray.Count - 2 -and $paramInJSONFormatArray[$index + 1] -eq '')) { - # If the next item closes an object/array, or is the last line, skip - continue - } - $paramInJSONFormatArray[$index] = '{0},' -f $paramInJSONFormatArray[$index].Trim() } + $paramInJSONFormatArray[$index] = '{0},' -f $paramInJSONFormatArray[$index].Trim() } - # Add 'value' middle-layer for top-level parameters + # [2.7/3] Syntax: Add 'value' object wrapper for all top-level parameters + $topLevelParamIndent = ([regex]::Match($rawBicepExample[$paramStartIndex + 1], '^(\s+).*')).Captures.Groups[1].Value.Length + $topLevelParamsInOrder = $rawBicepExample | Where-Object { $_ -match "^\s{$topLevelParamIndent}[0-9a-zA-Z]+:.*" } | ForEach-Object { ($_ -split ':')[0].Trim() } + + # [2.8/3] Format the final JSON string to an object to enable processing $paramInJsonFormatObject = $paramInJSONFormatArray | Out-String | ConvertFrom-Json -AsHashtable -Depth 99 + + # [2.9/3] Restore the original order of parameters (which are lost by the 'ConvertFrom-JSON' method invocation) $paramInJsonFormatObjectWithValue = [ordered]@{} foreach ($paramKey in $topLevelParamsInOrder) { $paramInJsonFormatObjectWithValue[$paramKey] = @{ @@ -490,6 +503,7 @@ function Set-DeploymentExamplesSection { } } + # [3/3] Build the full JSON example object $jsonExample = [ordered]@{ '$schema' = 'https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#' contentVersion = '1.0.0.0' @@ -513,19 +527,21 @@ function Set-DeploymentExamplesSection { ) } } else { - # ----------------- # - # JSON to Bicep # - # ----------------- # + # ------------------------- # + # Prepare JSON to Bicep # + # ------------------------- # - # Handle case of deployment test file (instead of ARM-JSON parameter file) $rawContentHashtable = $rawContent | ConvertFrom-Json -Depth 99 + + # First we need to check if we're dealing with a classic JSON-Parameter file, or a deployment test file (which contains resource deployments & parameters) $isParameterFile = $rawContentHashtable.'$schema' -like '*deploymentParameters*' if (-not $isParameterFile) { - # Uses deployment test file (instead of parameter file). Need to extract parameters. + # Uses deployment test file (instead of parameter file). Need to extract parameters. The target is to get an object which 1:1 represents a classic JSON-Parameter file (aside from KeyVault references) $testResource = $rawContentHashtable.resources | Where-Object { $_.name -like '*-test-*' } $JSONResourceParameters = $testResource.properties.parameters + # Restore the original order of parameters (which are lost by the 'ConvertFrom-JSON' method invocation) $formattedJSONParameters = [ordered]@{} foreach ($parameter in $JSONResourceParameters.PSObject.Properties.Name) { $formattedJSONParameters[$parameter] = $JSONResourceParameters.$parameter @@ -537,14 +553,17 @@ function Set-DeploymentExamplesSection { parameters = $formattedJSONParameters } - $jsonParameterContent = ($jsonParameterContent | ConvertTo-Json -Depth 99) -split '\n' + $jsonParameterContent = ($jsonParameterContent | ConvertTo-Json -Depth 99).TrimEnd() } else { # Use plan ARM-JSON parameter file $jsonParameterContent = $rawContent.TrimEnd() } + # --------------------- # + # Add Bicep example # + # --------------------- # if ($addBicep) { - $JSONParametersHashTable = (ConvertFrom-Json ($jsonParameterContent | Out-String) -AsHashtable -Depth 99).parameters + $JSONParametersHashTable = (ConvertFrom-Json $jsonParameterContent -AsHashtable -Depth 99).parameters # Handle KeyVaut references $keyVaultReferences = $JSONParametersHashTable.Keys | Where-Object { $JSONParametersHashTable[$_].Keys -contains 'reference' } @@ -635,6 +654,9 @@ function Set-DeploymentExamplesSection { ) } + # -------------------- # + # Add JSON example # + # -------------------- # if ($addJson) { $SectionContent += @( From 7078e9c0460b8fa68d1d517607928765e334436c Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 2 Jul 2022 11:38:16 +0200 Subject: [PATCH 084/274] Added docs --- utilities/tools/Set-ModuleReadMe.ps1 | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index d10a704674..b610d6bc57 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -536,26 +536,27 @@ function Set-DeploymentExamplesSection { # First we need to check if we're dealing with a classic JSON-Parameter file, or a deployment test file (which contains resource deployments & parameters) $isParameterFile = $rawContentHashtable.'$schema' -like '*deploymentParameters*' if (-not $isParameterFile) { - # Uses deployment test file (instead of parameter file). Need to extract parameters. The target is to get an object which 1:1 represents a classic JSON-Parameter file (aside from KeyVault references) + # Case 1: Uses deployment test file (instead of parameter file). + # [1/3] Need to extract parameters. The target is to get an object which 1:1 represents a classic JSON-Parameter file (aside from KeyVault references) $testResource = $rawContentHashtable.resources | Where-Object { $_.name -like '*-test-*' } $JSONResourceParameters = $testResource.properties.parameters - # Restore the original order of parameters (which are lost by the 'ConvertFrom-JSON' method invocation) + # [2/3] Restore the original order of parameters (which are lost by the 'ConvertFrom-JSON' method invocation) $formattedJSONParameters = [ordered]@{} foreach ($parameter in $JSONResourceParameters.PSObject.Properties.Name) { $formattedJSONParameters[$parameter] = $JSONResourceParameters.$parameter } + # [3/3] Build the full ARM-JSON parameter file $jsonParameterContent = [ordered]@{ '$schema' = 'https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#' contentVersion = '1.0.0.0' parameters = $formattedJSONParameters } - $jsonParameterContent = ($jsonParameterContent | ConvertTo-Json -Depth 99).TrimEnd() } else { - # Use plan ARM-JSON parameter file + # Case 2: Uses ARM-JSON parameter file $jsonParameterContent = $rawContent.TrimEnd() } @@ -563,9 +564,12 @@ function Set-DeploymentExamplesSection { # Add Bicep example # # --------------------- # if ($addBicep) { + + # [1/] Get all parameters from the parameter object $JSONParametersHashTable = (ConvertFrom-Json $jsonParameterContent -AsHashtable -Depth 99).parameters - # Handle KeyVaut references + # [2/] Handle the special case of Key Vault secret references (that have a 'reference' instead of a 'value' property) + # [2.1/] Find all references and split them into managable objects $keyVaultReferences = $JSONParametersHashTable.Keys | Where-Object { $JSONParametersHashTable[$_].Keys -contains 'reference' } if ($keyVaultReferences.Count -gt 0) { @@ -582,6 +586,8 @@ function Set-DeploymentExamplesSection { } } + # [2.2/] Remove any duplicates from the referenced key vaults and build 'existing' Key Vault references in Bicep format from them. + # Also, add a link to the corresponding Key Vault 'resource' to each identified Key Vault secret reference $extendedKeyVaultReferences = @() $counter = 0 foreach ($reference in ($keyVaultReferenceData | Sort-Object -Property 'vaultName' -Unique)) { @@ -600,7 +606,8 @@ function Set-DeploymentExamplesSection { } } - # Handle VALUE references (i.e. remove them) + # [3/] Remove the 'value' property from each parameter + # If we're handling a classic ARM-JSON parameter file that includes replacing all 'references' with the link to one of the 'existing' Key Vault resources if ((ConvertFrom-Json $rawContent -Depth 99).'$schema' -like '*deploymentParameters*') { # If handling a classic parameter file $JSONParameters = (ConvertFrom-Json $rawContent -Depth 99).PSObject.properties['parameters'].value @@ -622,6 +629,7 @@ function Set-DeploymentExamplesSection { } } + # [4/] Remove any JSON specific formatting $templateParameterObject = $JSONParametersWithoutValue | ConvertTo-Json -Depth 99 if ($templateParameterObject -ne '{}') { $contentInBicepFormat = $templateParameterObject -replace '"', "'" # Update any [xyz: "xyz"] to [xyz: 'xyz'] @@ -633,6 +641,10 @@ function Set-DeploymentExamplesSection { $bicepParamsArray = $bicepParamsArray[1..($bicepParamsArray.count - 2)] } + # [5/] Create the final content block: That means + # - the 'existing' Key Vault resources + # - a 'module' header that mimics a module deployment + # - all parameters in Bicep format $SectionContent += @( '', '
' From f65d18e4eb850a45fe9721012d43ed4d703c924d Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 3 Jul 2022 20:16:31 +0200 Subject: [PATCH 085/274] Update to latest --- utilities/tools/Set-ModuleReadMe.ps1 | 32 ++++++++++++++-------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index b610d6bc57..c43e4f6973 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -450,22 +450,22 @@ function Set-DeploymentExamplesSection { $paramBlock = $rawBicepExample[($paramStartIndex + 1)..($paramEndIndex - 1)] # [2/3] Add JSON-specific syntax to the Bicep param block to enable us to treat is as such - # [2.1/3] Syntax: Outer brackets + # [2.1] Syntax: Outer brackets $paramInJsonFormat = @( '{', $paramBlock '}' ) | Out-String - # [2.2/3] Syntax: All single-quotes are double-quotes + # [2.2] Syntax: All single-quotes are double-quotes $paramInJsonFormat = $paramInJsonFormat -replace "'", '"' - # [2.3/3] Syntax: Everything left of a ':' should be wrapped in quotes (as a parameter name is always a string) + # [2.3] Syntax: Everything left of a ':' should be wrapped in quotes (as a parameter name is always a string) $paramInJsonFormat = $paramInJsonFormat -replace '([0-9a-zA-Z]+):', '"$1":' - # [2.4/3] Split the object to format line-by-line (& also remove any empty lines) + # [2.4] Split the object to format line-by-line (& also remove any empty lines) $paramInJSONFormatArray = $paramInJsonFormat -split '\n' | Where-Object { $_ } - # [2.5/3] Syntax: Replace Bicep resource ID references + # [2.5] Syntax: Replace Bicep resource ID references for ($index = 0; $index -lt $paramInJSONFormatArray.Count; $index++) { if ($paramInJSONFormatArray[$index] -like '*:*' -and ($paramInJSONFormatArray[$index] -split ':')[1].Trim() -notmatch '".+"' -and $paramInJSONFormatArray[$index] -like '*.*') { # In case of a reference like : "virtualWanId": resourceGroupResources.outputs.virtualWWANResourceId @@ -477,7 +477,7 @@ function Set-DeploymentExamplesSection { } } - # [2.6/3] Syntax: Add comma everywhere unless: + # [2.6] Syntax: Add comma everywhere unless: # - the current line has an opening 'object: {' or 'array: [' character # - the line after the current line has a closing 'object: {' or 'array: [' character # - it's the last closing bracket @@ -488,14 +488,14 @@ function Set-DeploymentExamplesSection { $paramInJSONFormatArray[$index] = '{0},' -f $paramInJSONFormatArray[$index].Trim() } - # [2.7/3] Syntax: Add 'value' object wrapper for all top-level parameters + # [2.7] Syntax: Add 'value' object wrapper for all top-level parameters $topLevelParamIndent = ([regex]::Match($rawBicepExample[$paramStartIndex + 1], '^(\s+).*')).Captures.Groups[1].Value.Length $topLevelParamsInOrder = $rawBicepExample | Where-Object { $_ -match "^\s{$topLevelParamIndent}[0-9a-zA-Z]+:.*" } | ForEach-Object { ($_ -split ':')[0].Trim() } - # [2.8/3] Format the final JSON string to an object to enable processing + # [2.8] Format the final JSON string to an object to enable processing $paramInJsonFormatObject = $paramInJSONFormatArray | Out-String | ConvertFrom-Json -AsHashtable -Depth 99 - # [2.9/3] Restore the original order of parameters (which are lost by the 'ConvertFrom-JSON' method invocation) + # [2.9] Restore the original order of parameters (which are lost by the 'ConvertFrom-JSON' method invocation) $paramInJsonFormatObjectWithValue = [ordered]@{} foreach ($paramKey in $topLevelParamsInOrder) { $paramInJsonFormatObjectWithValue[$paramKey] = @{ @@ -565,11 +565,11 @@ function Set-DeploymentExamplesSection { # --------------------- # if ($addBicep) { - # [1/] Get all parameters from the parameter object + # [1/5] Get all parameters from the parameter object $JSONParametersHashTable = (ConvertFrom-Json $jsonParameterContent -AsHashtable -Depth 99).parameters - # [2/] Handle the special case of Key Vault secret references (that have a 'reference' instead of a 'value' property) - # [2.1/] Find all references and split them into managable objects + # [2/5] Handle the special case of Key Vault secret references (that have a 'reference' instead of a 'value' property) + # [2.1] Find all references and split them into managable objects $keyVaultReferences = $JSONParametersHashTable.Keys | Where-Object { $JSONParametersHashTable[$_].Keys -contains 'reference' } if ($keyVaultReferences.Count -gt 0) { @@ -586,7 +586,7 @@ function Set-DeploymentExamplesSection { } } - # [2.2/] Remove any duplicates from the referenced key vaults and build 'existing' Key Vault references in Bicep format from them. + # [2.2] Remove any duplicates from the referenced key vaults and build 'existing' Key Vault references in Bicep format from them. # Also, add a link to the corresponding Key Vault 'resource' to each identified Key Vault secret reference $extendedKeyVaultReferences = @() $counter = 0 @@ -606,7 +606,7 @@ function Set-DeploymentExamplesSection { } } - # [3/] Remove the 'value' property from each parameter + # [3/5] Remove the 'value' property from each parameter # If we're handling a classic ARM-JSON parameter file that includes replacing all 'references' with the link to one of the 'existing' Key Vault resources if ((ConvertFrom-Json $rawContent -Depth 99).'$schema' -like '*deploymentParameters*') { # If handling a classic parameter file @@ -629,7 +629,7 @@ function Set-DeploymentExamplesSection { } } - # [4/] Remove any JSON specific formatting + # [4/5] Remove any JSON specific formatting $templateParameterObject = $JSONParametersWithoutValue | ConvertTo-Json -Depth 99 if ($templateParameterObject -ne '{}') { $contentInBicepFormat = $templateParameterObject -replace '"', "'" # Update any [xyz: "xyz"] to [xyz: 'xyz'] @@ -641,7 +641,7 @@ function Set-DeploymentExamplesSection { $bicepParamsArray = $bicepParamsArray[1..($bicepParamsArray.count - 2)] } - # [5/] Create the final content block: That means + # [5/5] Create the final content block: That means # - the 'existing' Key Vault resources # - a 'module' header that mimics a module deployment # - all parameters in Bicep format From 7d149f29646d45a12cc77d2a558f36b1d5ce15ad Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 4 Jul 2022 17:40:08 +0200 Subject: [PATCH 086/274] Regenerated docs --- .../servers/readme.md | 16 +- modules/Microsoft.KeyVault/vaults/readme.md | 232 +++++++++--------- modules/Microsoft.Network/vpnSites/readme.md | 28 +-- 3 files changed, 139 insertions(+), 137 deletions(-) diff --git a/modules/Microsoft.AnalysisServices/servers/readme.md b/modules/Microsoft.AnalysisServices/servers/readme.md index eafab6fdc9..076b78fb67 100644 --- a/modules/Microsoft.AnalysisServices/servers/readme.md +++ b/modules/Microsoft.AnalysisServices/servers/readme.md @@ -211,10 +211,10 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { "roleAssignments": { "value": [ { - "roleDefinitionIdOrName": "Reader", "principalIds": [ "managedIdentityPrincipalId" - ] + ], + "roleDefinitionIdOrName": "Reader" } ] }, @@ -314,23 +314,23 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { }, "firewallSettings": { "value": { - "enablePowerBIService": true, "firewallRules": [ { - "firewallRuleName": "AllowFromAll", "rangeEnd": "255.255.255.255", - "rangeStart": "0.0.0.0" + "rangeStart": "0.0.0.0", + "firewallRuleName": "AllowFromAll" } - ] + ], + "enablePowerBIService": true } }, "roleAssignments": { "value": [ { - "roleDefinitionIdOrName": "Reader", "principalIds": [ "managedIdentityPrincipalId" - ] + ], + "roleDefinitionIdOrName": "Reader" } ] }, diff --git a/modules/Microsoft.KeyVault/vaults/readme.md b/modules/Microsoft.KeyVault/vaults/readme.md index 9c6dce362a..e8aea707b4 100644 --- a/modules/Microsoft.KeyVault/vaults/readme.md +++ b/modules/Microsoft.KeyVault/vaults/readme.md @@ -380,7 +380,23 @@ privateEndpoints: [ ## Deployment examples -

Example 1

+

Example 1: Min

+ +
+ +via Bicep module + +```bicep +module vaults './Microsoft.KeyVault/vaults/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-vaults' + params: { + + } +} +``` + +
+

@@ -395,6 +411,9 @@ privateEndpoints: [ ```
+

+ +

Example 2: Parameters

@@ -404,7 +423,103 @@ privateEndpoints: [ module vaults './Microsoft.KeyVault/vaults/deploy.bicep' = { name: '${uniqueString(deployment().name)}-vaults' params: { - + name: '<>-az-kv-x-002' + lock: 'CanNotDelete' + softDeleteRetentionInDays: 7 + enableRbacAuthorization: false + privateEndpoints: [ + { + subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints' + service: 'vault' + } + ] + networkAcls: { + bypass: 'AzureServices' + defaultAction: 'Deny' + virtualNetworkRules: [ + { + id: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001' + action: 'Allow' + } + ] + ipRules: [] + } + roleAssignments: [ + { + roleDefinitionIdOrName: 'Reader' + principalIds: [ + '<>' + ] + } + ] + secrets: { + secureList: [ + { + name: 'secretName' + value: 'secretValue' + contentType: 'Something' + attributesExp: 1702648632 + attributesNbf: 10000 + roleAssignments: [ + { + roleDefinitionIdOrName: 'Reader' + principalIds: [ + '<>' + ] + } + ] + } + ] + } + keys: [ + { + name: 'keyName' + attributesExp: 1702648632 + attributesNbf: 10000 + roleAssignments: [ + { + roleDefinitionIdOrName: 'Reader' + principalIds: [ + '<>' + ] + } + ] + } + ] + accessPolicies: [ + { + objectId: '<>' + permissions: { + keys: [ + 'get' + 'list' + 'update' + ] + secrets: [ + 'all' + ] + } + tenantId: '<>' + } + { + objectId: '<>' + permissions: { + certificates: [ + 'backup' + 'create' + 'delete' + ] + secrets: [ + 'all' + ] + } + } + ] + diagnosticLogsRetentionInDays: 7 + diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' + diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' + diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' + diagnosticEventHubName: 'adp-<>-az-evh-x-001' } } ``` @@ -412,8 +527,6 @@ module vaults './Microsoft.KeyVault/vaults/deploy.bicep' = {

-

Example 2

-
via JSON Parameter file @@ -554,116 +667,5 @@ module vaults './Microsoft.KeyVault/vaults/deploy.bicep' = { } ``` -
- -
- -via Bicep module - -```bicep -module vaults './Microsoft.KeyVault/vaults/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-vaults' - params: { - name: '<>-az-kv-x-002' - lock: 'CanNotDelete' - softDeleteRetentionInDays: 7 - enableRbacAuthorization: false - privateEndpoints: [ - { - subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints' - service: 'vault' - } - ] - networkAcls: { - bypass: 'AzureServices' - defaultAction: 'Deny' - virtualNetworkRules: [ - { - id: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001' - action: 'Allow' - } - ] - ipRules: [] - } - roleAssignments: [ - { - roleDefinitionIdOrName: 'Reader' - principalIds: [ - '<>' - ] - } - ] - secrets: { - secureList: [ - { - name: 'secretName' - value: 'secretValue' - contentType: 'Something' - attributesExp: 1702648632 - attributesNbf: 10000 - roleAssignments: [ - { - roleDefinitionIdOrName: 'Reader' - principalIds: [ - '<>' - ] - } - ] - } - ] - } - keys: [ - { - name: 'keyName' - attributesExp: 1702648632 - attributesNbf: 10000 - roleAssignments: [ - { - roleDefinitionIdOrName: 'Reader' - principalIds: [ - '<>' - ] - } - ] - } - ] - accessPolicies: [ - { - objectId: '<>' - permissions: { - keys: [ - 'get' - 'list' - 'update' - ] - secrets: [ - 'all' - ] - } - tenantId: '<>' - } - { - objectId: '<>' - permissions: { - certificates: [ - 'backup' - 'create' - 'delete' - ] - secrets: [ - 'all' - ] - } - } - ] - diagnosticLogsRetentionInDays: 7 - diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' - diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' - diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' - diagnosticEventHubName: 'adp-<>-az-evh-x-001' - } -} -``` -

diff --git a/modules/Microsoft.Network/vpnSites/readme.md b/modules/Microsoft.Network/vpnSites/readme.md index 3b430eff69..9eed9fff3a 100644 --- a/modules/Microsoft.Network/vpnSites/readme.md +++ b/modules/Microsoft.Network/vpnSites/readme.md @@ -414,8 +414,8 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { }, "tags": { "value": { - "tagB": "valueB", - "tagA": "valueA" + "tagA": "valueA", + "tagB": "valueB" } }, "deviceProperties": { @@ -431,11 +431,11 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { "linkProviderName": "contoso", "linkSpeedInMbps": 5 }, - "ipAddress": "1.2.3.4", "bgpProperties": { - "asn": 65010, - "bgpPeeringAddress": "1.1.1.1" - } + "bgpPeeringAddress": "1.1.1.1", + "asn": 65010 + }, + "ipAddress": "1.2.3.4" }, "name": "carml-az-vSite-vsipar-001" }, @@ -445,11 +445,11 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { "linkProviderName": "contoso", "linkSpeedInMbps": 5 }, - "ipAddress": "2.2.2.2", "bgpProperties": { - "asn": 65020, - "bgpPeeringAddress": "192.168.1.0" - } + "bgpPeeringAddress": "192.168.1.0", + "asn": 65020 + }, + "ipAddress": "2.2.2.2" }, "name": "Link1" } @@ -459,18 +459,18 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { "value": { "breakOutCategories": { "optimize": true, - "default": true, - "allow": true + "allow": true, + "default": true } } }, "roleAssignments": { "value": [ { - "roleDefinitionIdOrName": "Reader", "principalIds": [ "managedIdentityPrincipalId" - ] + ], + "roleDefinitionIdOrName": "Reader" } ] } From c6e4cd8c4cee4179b8558b0914ab925aaac88e86 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 4 Jul 2022 17:46:41 +0200 Subject: [PATCH 087/274] Added config exception --- bicepconfig.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bicepconfig.json b/bicepconfig.json index 6f7008fa9f..b8fe8fba49 100644 --- a/bicepconfig.json +++ b/bicepconfig.json @@ -7,6 +7,9 @@ "rules": { "explicit-values-for-loc-params": { "level": "off" // Reason: Our modules default to e.g. the location of their parent resource group which is sufficient if deploying a self-contained solution + }, + "prefer-unquoted-property-names": { + "level": "off" // Reason: Our modules default to e.g. the location of their parent resource group which is sufficient if deploying a self-contained solution } } } From 8944fb735ed16e3d93b8f972c69e1b4b2e6c4662 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 4 Jul 2022 17:47:30 +0200 Subject: [PATCH 088/274] Added config exception --- bicepconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bicepconfig.json b/bicepconfig.json index b8fe8fba49..af7838eca4 100644 --- a/bicepconfig.json +++ b/bicepconfig.json @@ -9,7 +9,7 @@ "level": "off" // Reason: Our modules default to e.g. the location of their parent resource group which is sufficient if deploying a self-contained solution }, "prefer-unquoted-property-names": { - "level": "off" // Reason: Our modules default to e.g. the location of their parent resource group which is sufficient if deploying a self-contained solution + "level": "off" // Reason: This is complains primarily about RBAC roles which are all in quotes to be consistent within the list of roles with and without spaces in their name } } } From 50175bc4fd7df9dc5202da299ecb0b0b5e07f24e Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 8 Jul 2022 22:43:25 +0200 Subject: [PATCH 089/274] Mergef first couple changes from PR 1632 --- utilities/tools/Set-ModuleReadMe.ps1 | 20 ++- .../helper/ConvertTo-OrderedHashtable.ps1 | 116 ++++++++++++++++++ 2 files changed, 134 insertions(+), 2 deletions(-) create mode 100644 utilities/tools/helper/ConvertTo-OrderedHashtable.ps1 diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index c43e4f6973..4ffc009945 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -309,6 +309,9 @@ Generate 'Deployment examples' for the ReadMe out of the parameter files current .PARAMETER TemplateFileContent Mandatory. The template file content object to crawl data from +.PARAMETER TemplateFilePath +Mandatory. The path to the template file + .PARAMETER ReadMeFileContent Mandatory. The readme file content array to update @@ -325,7 +328,7 @@ Optional. A switch to control whether or not to add a Bicep deployment example. Optional. Projects settings to draw information from. For example the `namePrefix`. .EXAMPLE -Set-DeploymentExamplesSection -TemplateFileContent @{ resource = @{}; ... } -ReadMeFileContent @('# Title', '', '## Section 1', ...) +Set-DeploymentExamplesSection -TemplateFileContent @{ resource = @{}; ... } -TemplateFilePath 'C:/deploy.bicep' -ReadMeFileContent @('# Title', '', '## Section 1', ...) Update the given readme file's 'Deployment Examples' section based on the given template file content #> @@ -336,6 +339,9 @@ function Set-DeploymentExamplesSection { [Parameter(Mandatory = $true)] [string] $TemplateFilePath, + [Parameter(Mandatory)] + [hashtable] $TemplateFileContent, + [Parameter(Mandatory = $true)] [object[]] $ReadMeFileContent, @@ -352,14 +358,24 @@ function Set-DeploymentExamplesSection { [string] $SectionStartIdentifier = '## Deployment examples' ) + # Load used function(s) + . (Join-Path $PSScriptRoot 'helper' 'ConvertTo-OrderedHashtable.ps1') + # Process content - $SectionContent = [System.Collections.ArrayList]@() + $SectionContent = [System.Collections.ArrayList]@( + 'The following module usage examples are retrieved from the content of the files hosted in the module''s `.test` folder.', + ' >**Note**: The name of each example is based on the name of the file from which it is taken.', + ' >**Note**: Each example lists all the required parameters first, followed by the rest - each in alphabetical order.', + '' + ) $moduleRoot = Split-Path $TemplateFilePath -Parent $resourceTypeIdentifier = $moduleRoot.Replace('\', '/').Split('/modules/')[1].TrimStart('/') $resourceType = $resourceTypeIdentifier.Split('/')[1] $testFilePaths = (Get-ChildItem (Join-Path -Path $moduleRoot -ChildPath '.test') -File).FullName | Where-Object { $_ -match '.+\.[bicep|json]' } + $requiredParameterNames = $TemplateFileContent.parameters.Keys | Where-Object { $TemplateFileContent.parameters[$_].Keys -notcontains 'defaultValue' } | Sort-Object + ############################ ## Process test files ## ############################ diff --git a/utilities/tools/helper/ConvertTo-OrderedHashtable.ps1 b/utilities/tools/helper/ConvertTo-OrderedHashtable.ps1 new file mode 100644 index 0000000000..7311b4d8bb --- /dev/null +++ b/utilities/tools/helper/ConvertTo-OrderedHashtable.ps1 @@ -0,0 +1,116 @@ +<# +.SYNOPSIS +Convert a given JSON string into an ordered HashTable. + +.DESCRIPTION +Convert a given JSON string into an ordered HashTable. + +.PARAMETER JSONInputObject +Mandatory. The JSON string to convert into an ordered HashTable object. + +.EXAMPLE +ConvertTo-OrderedHashtable -JSONInputObject "@{ b = 'b'; a = 'a' ; c = @( 3, 1, 2 )}" + +Convert the given JSON string into a sorted HashTable. Would return the HashTable: + + @{ + a = 'a' + b = 'b' + c = @( + 1, + 2, + 3 + ) + } + +.EXAMPLE +ConvertTo-OrderedHashtable -JSONInputObject '{"elem":[3,1,2,"a",{"a":"a","b":"b"},[23,1],["23","1"]],"arr":["one"]}' + +Convert the given JSON string into a sorted HashTable. Would return the HashTable: + + @{ + arr = @('one') + elem = @( + 1, + @( + 1, + 23 + ), + @( + '1', + '23' + ) + 2, + 3, + 'a' + ) + } +#> +function ConvertTo-OrderedHashtable { + + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string] $JSONInputObject # Must be string to workaround auto-conversion + ) + + $JSONObject = ConvertFrom-Json $JSONInputObject -AsHashtable -Depth 99 -NoEnumerate + $orderedLevel = [ordered]@{} + + if (-not ($JSONObject -is [hashtable])) { + return $JSONObject # E.g. in primitive data types [1,2,3] + } + + foreach ($currentLevelKey in ($JSONObject.Keys | Sort-Object)) { + + if ($null -eq $JSONObject[$currentLevelKey]) { + # Handle case in which the value is 'null' and hence has no type + $orderedLevel[$currentLevelKey] = $null + continue + } + + switch ($JSONObject[$currentLevelKey].GetType().BaseType.Name) { + 'Object' { + $orderedLevel[$currentLevelKey] = ConvertTo-OrderedHashtable -JSONInputObject ($JSONObject[$currentLevelKey] | ConvertTo-Json -Depth 99) + } + 'Array' { + $arrayOutput = @() + + # Case: Array of arrays + $arrayElements = $JSONObject[$currentLevelKey] | Where-Object { $_.GetType().Name -eq 'Object[]' } + foreach ($array in $arrayElements) { + if ($array.Count -gt 1) { + # Only sort for arrays with more than one item. Otherwise single-item arrays are casted + $array = $array | Sort-Object + } + $arrayOutput += , (ConvertTo-OrderedHashtable -JSONInputObject ($array | ConvertTo-Json -Depth 99)) + } + + # Case: Array of objects + $hashTableElements = $JSONObject[$currentLevelKey] | Where-Object { $_.GetType().Name -eq 'Hashtable' } + foreach ($hashTable in $hashTableElements) { + $arrayOutput += , (ConvertTo-OrderedHashtable -JSONInputObject ($hashTable | ConvertTo-Json -Depth 99)) + } + + # Case: Primitive data types + $primitiveElements = $JSONObject[$currentLevelKey] | Where-Object { $_.GetType().Name -notin @('Object[]', 'Hashtable') } | ConvertTo-Json | ConvertFrom-Json -AsHashtable -NoEnumerate + if ($primitiveElements.Count -gt 1) { + $primitiveElements = $primitiveElements | Sort-Object + } + $arrayOutput += $primitiveElements + + if ($array.Count -gt 1) { + # Only sort for arrays with more than one item. Otherwise single-item arrays are casted + $arrayOutput = $arrayOutput | Sort-Object + } + $orderedLevel[$currentLevelKey] = $arrayOutput + } + Default { + # string/int/etc. + $orderedLevel[$currentLevelKey] = $JSONObject[$currentLevelKey] + } + } + } + + return $orderedLevel +} From 62c94e5b21354ff431f8f1ccac1ca2492a78691f Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 10 Jul 2022 14:57:57 +0200 Subject: [PATCH 090/274] Merged first batch of set-moduleReadMe script updates (not yet compatible with bicep-json) --- utilities/tools/Set-ModuleReadMe.ps1 | 318 +++++++++++++++++++++------ 1 file changed, 252 insertions(+), 66 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index 4ffc009945..c031063394 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -299,6 +299,166 @@ function Set-OutputsSection { return $updatedFileContent } +function Get-OrderedBicepParameterList { + + param( + [Parameter(Mandatory = $true)] + [Object[]] $BicepExample, + + [Parameter(Mandatory = $true)] + [string[]] $RequiredParametersList + ) + + $orderedBicepParameters = [ordered]@{} + $orderedTopLevelParameterNames = $BicepExample.psbase.Keys # We must use PS-Base to handle conflicts of HashTable properties & keys (e.g. for a key 'keys'). + # [2.1] Add required parameters first + $orderedTopLevelParameterNames | Where-Object { $_ -in $RequiredParametersList } | ForEach-Object { $orderedBicepParameters[$_] = $BicepExample[$_] } + # [2.2] Add rest after + $orderedTopLevelParameterNames | Where-Object { $_ -notin $RequiredParametersList } | ForEach-Object { $orderedBicepParameters[$_] = $BicepExample[$_] } + + # [3/3] Handle empty dictionaries (in case the parmaeter file was empty) + if ($orderedBicepParameters.count -eq 0) { + $orderedBicepParameters = '' + } + + return $orderedBicepParameters +} + +function Add-BicepParameterTypeComment { + + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string] $BicepExample, + + [Parameter(Mandatory = $true)] + [string[]] $AllParametersList, + + [Parameter(Mandatory = $true)] + [string[]] $RequiredParametersList + ) + + if ($RequiredParametersList.Count -ge 1 -and $AllParametersList.Count -ge 2) { + + $bicepExampleArray = $BicepExample -split '\n' + + # [1/4] Check where the 'last' required parameter is located in the example (and what its indent is) + $parameterToSplitAt = $RequiredParametersList[-1] + $requiredParameterIndent = ([regex]::Match($bicepExampleArray[0], '^(\s+).*')).Captures.Groups[1].Value.Length + + # [1/4] Add a comment where the required parameters start + $bicepExampleArray = @('{0}// Required parameters' -f (' ' * $requiredParameterIndent)) + $bicepExampleArray[(0 .. ($bicepExampleArray.Count))] + + # [1/4] Find the location if the last required parameter + $requiredParameterStartIndex = ($bicepExampleArray | Select-String ('^[\s]{0}{1}:.+' -f "{$requiredParameterIndent}", $parameterToSplitAt) | ForEach-Object { $_.LineNumber - 1 })[0] + + # [1/4] If we have more than only required parameters, let's add a corresponding comment + if ($AllParametersList.Count -gt $RequiredParametersList.Count) { + $nextLineIndent = ([regex]::Match($bicepExampleArray[$requiredParameterStartIndex + 1], '^(\s+).*')).Captures.Groups[1].Value.Length + if ($nextLineIndent -gt $requiredParameterIndent) { + # Case Param is object/array: Search in rest of array for the next closing bracket with the same indent - and then add the search index (1) & initial index (1) count back in + $requiredParameterEndIndex = ($bicepExampleArray[($requiredParameterStartIndex + 1)..($bicepExampleArray.Count)] | Select-String "^[\s]{$requiredParameterIndent}\S+" | ForEach-Object { $_.LineNumber - 1 })[0] + 1 + $requiredParameterStartIndex + } else { + # Case Param is single line bool/string/int: Add an index (1) for the 'required' comment + $requiredParameterEndIndex = $requiredParameterStartIndex + } + + # Add a comment where the non-required parameters start + $bicepExampleArray = $bicepExampleArray[0..$requiredParameterEndIndex] + ('{0}// Non-required parameters' -f (' ' * $requiredParameterIndent)) + $bicepExampleArray[(($requiredParameterEndIndex + 1) .. ($bicepExampleArray.Count))] + } + + $BicepExample = ($bicepExampleArray | Out-String).TrimEnd() + } + + return $BicepExample +} + +function Get-OrderedParametersJSON { + + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string] $ParametersJSON, + + [Parameter(Mandatory = $true)] + [string[]] $RequiredParametersList + ) + + # Load used function(s) + . (Join-Path $PSScriptRoot 'helper' 'ConvertTo-OrderedHashtable.ps1') + + # [1/3] Get all parameters from the parameter object and order them recursively + $orderedContentInJSONFormat = ConvertTo-OrderedHashtable -JSONInputObject $parametersJSON + + # [2/3] Sort 'required' parameters to the front + $orderedJSONParameters = [ordered]@{} + $orderedTopLevelParameterNames = $orderedContentInJSONFormat.psbase.Keys # We must use PS-Base to handle conflicts of HashTable properties & keys (e.g. for a key 'keys'). + # [2.1] Add required parameters first + $orderedTopLevelParameterNames | Where-Object { $_ -in $RequiredParametersList } | ForEach-Object { $orderedJSONParameters[$_] = $orderedContentInJSONFormat[$_] } + # [2.2] Add rest after + $orderedTopLevelParameterNames | Where-Object { $_ -notin $RequiredParametersList } | ForEach-Object { $orderedJSONParameters[$_] = $orderedContentInJSONFormat[$_] } + + # [3/3] Handle empty dictionaries (in case the parmaeter file was empty) + if ($orderedJSONParameters.count -eq 0) { + $orderedJSONParameters = '' + } + + return $orderedJSONParameters +} + +function Build-OrderedJSONObject { + + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string] $ParametersJSON, + + [Parameter(Mandatory = $true)] + [string[]] $RequiredParametersList + ) + + # [1/9] Sort parameter alphabetically + $orderedJSONParameters = Get-OrderedParametersJSON -ParametersJSON $ParametersJSON -RequiredParametersList $RequiredParametersList + + # [2/9] Build the ordered parameter file syntax back up + $jsonExample = ([ordered]@{ + '$schema' = 'https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#' + contentVersion = '1.0.0.0' + parameters = (-not [String]::IsNullOrEmpty($orderedJSONParameters)) ? $orderedJSONParameters : @{} + } | ConvertTo-Json -Depth 99) + + # [3/8] If we have at least one required and one other parameter we want to add a comment + if ($RequiredParametersList.Count -ge 1 -and $OrderedJSONParameters.Keys.Count -ge 2) { + + $jsonExampleArray = $jsonExample -split '\n' + + # [4/8] Check where the 'last' required parameter is located in the example (and what its indent is) + $parameterToSplitAt = $RequiredParametersList[-1] + $parameterStartIndex = ($jsonExampleArray | Select-String '.*"parameters": \{.*' | ForEach-Object { $_.LineNumber - 1 })[0] + $requiredParameterIndent = ([regex]::Match($jsonExampleArray[($parameterStartIndex + 1)], '^(\s+).*')).Captures.Groups[1].Value.Length + + # [5/8] Add a comment where the required parameters start + $jsonExampleArray = $jsonExampleArray[0..$parameterStartIndex] + ('{0}// Required parameters' -f (' ' * $requiredParameterIndent)) + $jsonExampleArray[(($parameterStartIndex + 1) .. ($jsonExampleArray.Count))] + + # [6/8] Find the location if the last required parameter + $requiredParameterStartIndex = ($jsonExampleArray | Select-String "^[\s]{$requiredParameterIndent}`"$parameterToSplitAt`": \{.*" | ForEach-Object { $_.LineNumber - 1 })[0] + + # [7/8] If we have more than only required parameters, let's add a corresponding comment + if ($orderedJSONParameters.Keys.Count -gt $RequiredParametersList.Count ) { + # Search in rest of array for the next closing bracket with the same indent - and then add the search index (1) & initial index (1) count back in + $requiredParameterEndIndex = ($jsonExampleArray[($requiredParameterStartIndex + 1)..($jsonExampleArray.Count)] | Select-String "^[\s]{$requiredParameterIndent}\}" | ForEach-Object { $_.LineNumber - 1 })[0] + 1 + $requiredParameterStartIndex + + # Add a comment where the non-required parameters start + $jsonExampleArray = $jsonExampleArray[0..$requiredParameterEndIndex] + ('{0}// Non-required parameters' -f (' ' * $requiredParameterIndent)) + $jsonExampleArray[(($requiredParameterEndIndex + 1) .. ($jsonExampleArray.Count))] + } + + # [8/8] Convert the processed array back into a string + $jsonExample = $jsonExampleArray | Out-String + } + + return $jsonExample +} + <# .SYNOPSIS Generate 'Deployment examples' for the ReadMe out of the parameter files currently used to test the template @@ -358,9 +518,6 @@ function Set-DeploymentExamplesSection { [string] $SectionStartIdentifier = '## Deployment examples' ) - # Load used function(s) - . (Join-Path $PSScriptRoot 'helper' 'ConvertTo-OrderedHashtable.ps1') - # Process content $SectionContent = [System.Collections.ArrayList]@( 'The following module usage examples are retrieved from the content of the files hosted in the module''s `.test` folder.', @@ -374,7 +531,7 @@ function Set-DeploymentExamplesSection { $resourceType = $resourceTypeIdentifier.Split('/')[1] $testFilePaths = (Get-ChildItem (Join-Path -Path $moduleRoot -ChildPath '.test') -File).FullName | Where-Object { $_ -match '.+\.[bicep|json]' } - $requiredParameterNames = $TemplateFileContent.parameters.Keys | Where-Object { $TemplateFileContent.parameters[$_].Keys -notcontains 'defaultValue' } | Sort-Object + $RequiredParametersList = $TemplateFileContent.parameters.Keys | Where-Object { $TemplateFileContent.parameters[$_].Keys -notcontains 'defaultValue' } | Sort-Object ############################ ## Process test files ## @@ -426,6 +583,32 @@ function Set-DeploymentExamplesSection { $rawBicepExample[0] = "module $resourceType './$resourceTypeIdentifier/deploy.bicep = {" $rawBicepExample = $rawBicepExample | Where-Object { $_ -notmatch 'scope: *' } | Where-Object { -not [String]::IsNullOrEmpty($_) } + # Sort param block + $rawBicepExampleArray = $rawBicepExample -split '\n' + $moduleDeploymentPropertyIndent = ([regex]::Match($rawBicepExampleArray[1], '^(\s+).*')).Captures.Groups[1].Value.Length + $paramsStartIndex = ($rawBicepExampleArray | Select-String ("^[\s]{$moduleDeploymentPropertyIndent}params:[\s]*\{") | ForEach-Object { $_.LineNumber - 1 })[0] + 1 + $paramsEndIndex = ($rawBicepExampleArray[($paramsStartIndex + 1)..($rawBicepExampleArray.Count)] | Select-String "^[\s]{$moduleDeploymentPropertyIndent}\}" | ForEach-Object { $_.LineNumber - 1 })[0] + $paramsStartIndex + $paramBlock = ($rawBicepExampleArray[$paramsStartIndex..$paramsEndIndex] | Out-String).TrimEnd() + + $topLevelParamIndent = ([regex]::Match($paramBlock[0], '^(\s+).*')).Captures.Groups[1].Value.Length + $topLevelParams = $paramBlock | Where-Object { $_ -match "^\s{$topLevelParamIndent}[0-9a-zA-Z]+:.*" } | ForEach-Object { ($_ -split ':')[0].Trim() } + + # TODO: Order parameters - via JSON? + $orderBicepInputObject = @{ + BicepExample = $paramBlock + RequiredParametersList = $RequiredParametersList + } + $formattedBicepParams = Get-OrderedBicepParameterList @orderBicepInputObject + + $splitInputObject = @{ + BicepExample = $paramBlock + RequiredParametersList = $RequiredParametersList + AllParametersList = $topLevelParams + } + $formattedBicepParams = Add-BicepParameterTypeComment @splitInputObject + + $formattedBicepExample = $rawBicepExample[0..($paramsStartIndex - 1)] + ($formattedBicepParams -split '\n') + $rawBicepExample[($paramsEndIndex + 1)..($rawBicepExample.Count)] + # --------------------- # # Add Bicep example # # --------------------- # @@ -437,7 +620,7 @@ function Set-DeploymentExamplesSection { '

via Bicep module' '' '```bicep', - ($rawBicepExample | ForEach-Object { "$_" }).TrimEnd(), + ($formattedBicepExample | ForEach-Object { "$_" }).TrimEnd(), '```', '', '
', @@ -450,38 +633,23 @@ function Set-DeploymentExamplesSection { # -------------------- # if ($addJson) { - # [1/3] Find the start and end of the deployment's param block - $paramStartIndex = 0 - do { - $paramStartIndex++ - } while ($rawBicepExample[$paramStartIndex] -notmatch '\s+params: {') - - $paramBlockIndent = ([regex]::Match($rawBicepExample[$paramStartIndex], '^(\s+).*')).Captures.Groups[1].Value.Length - - $paramEndIndex = 0 - do { - $paramEndIndex++ - } while ($rawBicepExample[$paramEndIndex] -notmatch "^\s{$paramBlockIndent}\}\s*$") - - $paramBlock = $rawBicepExample[($paramStartIndex + 1)..($paramEndIndex - 1)] - - # [2/3] Add JSON-specific syntax to the Bicep param block to enable us to treat is as such - # [2.1] Syntax: Outer brackets + # [1/3] Add JSON-specific syntax to the Bicep param block to enable us to treat is as such + # [1.1] Syntax: Outer brackets $paramInJsonFormat = @( '{', $paramBlock '}' ) | Out-String - # [2.2] Syntax: All single-quotes are double-quotes + # [1.2] Syntax: All single-quotes are double-quotes $paramInJsonFormat = $paramInJsonFormat -replace "'", '"' - # [2.3] Syntax: Everything left of a ':' should be wrapped in quotes (as a parameter name is always a string) + # [1.3] Syntax: Everything left of a ':' should be wrapped in quotes (as a parameter name is always a string) $paramInJsonFormat = $paramInJsonFormat -replace '([0-9a-zA-Z]+):', '"$1":' - # [2.4] Split the object to format line-by-line (& also remove any empty lines) + # [1.4] Split the object to format line-by-line (& also remove any empty lines) $paramInJSONFormatArray = $paramInJsonFormat -split '\n' | Where-Object { $_ } - # [2.5] Syntax: Replace Bicep resource ID references + # [1.5] Syntax: Replace Bicep resource ID references for ($index = 0; $index -lt $paramInJSONFormatArray.Count; $index++) { if ($paramInJSONFormatArray[$index] -like '*:*' -and ($paramInJSONFormatArray[$index] -split ':')[1].Trim() -notmatch '".+"' -and $paramInJSONFormatArray[$index] -like '*.*') { # In case of a reference like : "virtualWanId": resourceGroupResources.outputs.virtualWWANResourceId @@ -493,7 +661,7 @@ function Set-DeploymentExamplesSection { } } - # [2.6] Syntax: Add comma everywhere unless: + # [1.6] Syntax: Add comma everywhere unless: # - the current line has an opening 'object: {' or 'array: [' character # - the line after the current line has a closing 'object: {' or 'array: [' character # - it's the last closing bracket @@ -504,30 +672,25 @@ function Set-DeploymentExamplesSection { $paramInJSONFormatArray[$index] = '{0},' -f $paramInJSONFormatArray[$index].Trim() } - # [2.7] Syntax: Add 'value' object wrapper for all top-level parameters - $topLevelParamIndent = ([regex]::Match($rawBicepExample[$paramStartIndex + 1], '^(\s+).*')).Captures.Groups[1].Value.Length - $topLevelParamsInOrder = $rawBicepExample | Where-Object { $_ -match "^\s{$topLevelParamIndent}[0-9a-zA-Z]+:.*" } | ForEach-Object { ($_ -split ':')[0].Trim() } - - # [2.8] Format the final JSON string to an object to enable processing + # [1.7] Format the final JSON string to an object to enable processing $paramInJsonFormatObject = $paramInJSONFormatArray | Out-String | ConvertFrom-Json -AsHashtable -Depth 99 - # [2.9] Restore the original order of parameters (which are lost by the 'ConvertFrom-JSON' method invocation) - $paramInJsonFormatObjectWithValue = [ordered]@{} - foreach ($paramKey in $topLevelParamsInOrder) { + # [1.8] Restore the original order of parameters (which are lost by the 'ConvertFrom-JSON' method invocation) + $paramInJsonFormatObjectWithValue = @{} + foreach ($paramKey in $topLevelParams) { $paramInJsonFormatObjectWithValue[$paramKey] = @{ value = $paramInJsonFormatObject[$paramKey] } } - # [3/3] Build the full JSON example object - $jsonExample = [ordered]@{ - '$schema' = 'https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#' - contentVersion = '1.0.0.0' - parameters = $paramInJsonFormatObjectWithValue + # [2/3] Get all parameters from the parameter object and order them recursively + $orderingInputObject = @{ + ParametersJSON = $paramInJsonFormatObjectWithValue | ConvertTo-Json -Depth 99 + RequiredParametersList = $RequiredParametersList } + $orderedJSONExample = Build-OrderedJSONObject @orderingInputObject - $jsonExample = ($jsonExample | ConvertTo-Json -Depth 99) -split '\n' - + # [3/3] Create the final content block $SectionContent += @( '', '
' @@ -535,7 +698,7 @@ function Set-DeploymentExamplesSection { 'via JSON Parameter file' '' '```json', - $jsonExample + $orderedJSONExample.Trim() '```', '', '
', @@ -549,11 +712,11 @@ function Set-DeploymentExamplesSection { $rawContentHashtable = $rawContent | ConvertFrom-Json -Depth 99 - # First we need to check if we're dealing with a classic JSON-Parameter file, or a deployment test file (which contains resource deployments & parameters) + # First we need to check if we're dealing with classic JSON-Parameter file, or a deployment test file (which contains resource deployments & parameters) $isParameterFile = $rawContentHashtable.'$schema' -like '*deploymentParameters*' if (-not $isParameterFile) { # Case 1: Uses deployment test file (instead of parameter file). - # [1/3] Need to extract parameters. The target is to get an object which 1:1 represents a classic JSON-Parameter file (aside from KeyVault references) + # [1/3] Need to extract parameters. The taarget is to get an object which 1:1 represents a classic JSON-Parameter file (aside from KeyVault references) $testResource = $rawContentHashtable.resources | Where-Object { $_.name -like '*-test-*' } $JSONResourceParameters = $testResource.properties.parameters @@ -581,10 +744,10 @@ function Set-DeploymentExamplesSection { # --------------------- # if ($addBicep) { - # [1/5] Get all parameters from the parameter object + # [1/8] Get all parameters from the parameter object $JSONParametersHashTable = (ConvertFrom-Json $jsonParameterContent -AsHashtable -Depth 99).parameters - # [2/5] Handle the special case of Key Vault secret references (that have a 'reference' instead of a 'value' property) + # [2/8] Handle the special case of Key Vault secret references (that have a 'reference' instead of a 'value' property) # [2.1] Find all references and split them into managable objects $keyVaultReferences = $JSONParametersHashTable.Keys | Where-Object { $JSONParametersHashTable[$_].Keys -contains 'reference' } @@ -622,42 +785,56 @@ function Set-DeploymentExamplesSection { } } - # [3/5] Remove the 'value' property from each parameter + # [3/8] Remove the 'value' property from each parameter # If we're handling a classic ARM-JSON parameter file that includes replacing all 'references' with the link to one of the 'existing' Key Vault resources if ((ConvertFrom-Json $rawContent -Depth 99).'$schema' -like '*deploymentParameters*') { # If handling a classic parameter file - $JSONParameters = (ConvertFrom-Json $rawContent -Depth 99).PSObject.properties['parameters'].value - $JSONParametersWithoutValue = [ordered]@{} - foreach ($parameter in $JSONParameters.PSObject.Properties) { - if ($parameter.Value.PSObject.Properties.name -eq 'value') { - $JSONParametersWithoutValue[$parameter.name] = $parameter.value.PSObject.Properties['value'].value + $JSONParameters = (ConvertFrom-Json $rawContent -Depth 99 -AsHashtable).parameters + $JSONParametersWithoutValue = @{} + foreach ($parameterName in $JSONParameters.Keys) { + if ($JSONParameters[$parameterName].Keys -eq 'value') { + $JSONParametersWithoutValue[$parameterName] = $JSONParameters[$parameterName]['value'] } else { # replace key vault references - $matchingTuple = $keyVaultReferenceData | Where-Object { $_.parameterName -eq $parameter.Name } - $JSONParametersWithoutValue[$parameter.name] = "{0}.getSecret('{1}')" -f $matchingTuple.vaultResourceReference, $matchingTuple.secretName + $matchingTuple = $keyVaultReferenceData | Where-Object { $_.parameterName -eq $parameterName } + $JSONParametersWithoutValue[$parameterName] = "{0}.getSecret('{1}')" -f $matchingTuple.vaultResourceReference, $matchingTuple.secretName } } } else { # If handling a test deployment file - $JSONParametersWithoutValue = [ordered]@{} + $JSONParametersWithoutValue = @{} foreach ($parameter in $formattedJSONParameters.Keys) { $JSONParametersWithoutValue[$parameter] = $formattedJSONParameters.$parameter.value } } - # [4/5] Remove any JSON specific formatting - $templateParameterObject = $JSONParametersWithoutValue | ConvertTo-Json -Depth 99 + # [4/8] Order parameters recursively + $orderedJSONParameters = Get-OrderedParametersJSON -ParametersJSON ($JSONParametersWithoutValue | ConvertTo-Json -Depth 99) -RequiredParametersList $RequiredParametersList + + # [5/8] Remove any JSON specific formatting + $templateParameterObject = $orderedJSONParameters | ConvertTo-Json -Depth 99 if ($templateParameterObject -ne '{}') { $contentInBicepFormat = $templateParameterObject -replace '"', "'" # Update any [xyz: "xyz"] to [xyz: 'xyz'] $contentInBicepFormat = $contentInBicepFormat -replace ',', '' # Update any [xyz: xyz,] to [xyz: xyz] $contentInBicepFormat = $contentInBicepFormat -replace "'(\w+)':", '$1:' # Update any ['xyz': xyz] to [xyz: xyz] $contentInBicepFormat = $contentInBicepFormat -replace "'(.+.getSecret\('.+'\))'", '$1' # Update any [xyz: 'xyz.GetSecret()'] to [xyz: xyz.GetSecret()] - $bicepParamsArray = $contentInBicepFormat -split ('\n') + $bicepParamsArray = $contentInBicepFormat -split '\n' $bicepParamsArray = $bicepParamsArray[1..($bicepParamsArray.count - 2)] } - # [5/5] Create the final content block: That means + # [6/8] Format params with indent + $bicepExample = $bicepParamsArray | ForEach-Object { " $_" } | Out-String + + # [7/8] Add comment where required & optional parameters start + $splitInputObject = @{ + BicepExample = $bicepExample + RequiredParametersList = $RequiredParametersList + AllParametersList = $JSONParametersWithoutValue.Keys + } + $bicepExample = Add-BicepParameterTypeComment @splitInputObject + + # [8/8] Create the final content block: That means # - the 'existing' Key Vault resources # - a 'module' header that mimics a module deployment # - all parameters in Bicep format @@ -672,7 +849,7 @@ function Set-DeploymentExamplesSection { "module $resourceType './$resourceTypeIdentifier/deploy.bicep' = {" " name: '`${uniqueString(deployment().name)}-$resourceType'" ' params: {' - ($bicepParamsArray | ForEach-Object { " $_" }).TrimEnd(), + $bicepExample.TrimEnd(), ' }' '}' '```', @@ -687,6 +864,14 @@ function Set-DeploymentExamplesSection { # -------------------- # if ($addJson) { + # [1/2] Get all parameters from the parameter object and order them recursively + $orderingInputObject = @{ + ParametersJSON = (($jsonParameterContent | ConvertFrom-Json).parameters | ConvertTo-Json -Depth 99) + RequiredParametersList = $RequiredParametersList + } + $orderedJSONExample = Build-OrderedJSONObject @orderingInputObject + + # [2/2] Create the final content block $SectionContent += @( '', '
', @@ -694,10 +879,10 @@ function Set-DeploymentExamplesSection { 'via JSON Parameter file', '', '```json', - $jsonParameterContent, + $orderedJSONExample.TrimEnd(), '```', '', - '
', + '
' '

' ) } @@ -976,9 +1161,10 @@ function Set-ModuleReadMe { # Handle [Deployment examples] section # =================================== $inputObject = @{ - ReadMeFileContent = $readMeFileContent - TemplateFilePath = $TemplateFilePath - ProjectSettings = $projectSettings + ReadMeFileContent = $readMeFileContent + TemplateFilePath = $TemplateFilePath + TemplateFileContent = $templateFileContent + ProjectSettings = $projectSettings } $readMeFileContent = Set-DeploymentExamplesSection @inputObject } From de6068c9c65dadd8c8e8c51cda000c1e62e14cbf Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 10 Jul 2022 18:30:51 +0200 Subject: [PATCH 091/274] Latest draft including bicep to json intermediate format --- utilities/tools/Set-ModuleReadMe.ps1 | 268 ++++++++++++++------------- 1 file changed, 135 insertions(+), 133 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index c031063394..f5a09f978d 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -299,31 +299,6 @@ function Set-OutputsSection { return $updatedFileContent } -function Get-OrderedBicepParameterList { - - param( - [Parameter(Mandatory = $true)] - [Object[]] $BicepExample, - - [Parameter(Mandatory = $true)] - [string[]] $RequiredParametersList - ) - - $orderedBicepParameters = [ordered]@{} - $orderedTopLevelParameterNames = $BicepExample.psbase.Keys # We must use PS-Base to handle conflicts of HashTable properties & keys (e.g. for a key 'keys'). - # [2.1] Add required parameters first - $orderedTopLevelParameterNames | Where-Object { $_ -in $RequiredParametersList } | ForEach-Object { $orderedBicepParameters[$_] = $BicepExample[$_] } - # [2.2] Add rest after - $orderedTopLevelParameterNames | Where-Object { $_ -notin $RequiredParametersList } | ForEach-Object { $orderedBicepParameters[$_] = $BicepExample[$_] } - - # [3/3] Handle empty dictionaries (in case the parmaeter file was empty) - if ($orderedBicepParameters.count -eq 0) { - $orderedBicepParameters = '' - } - - return $orderedBicepParameters -} - function Add-BicepParameterTypeComment { [CmdletBinding()] @@ -459,6 +434,113 @@ function Build-OrderedJSONObject { return $jsonExample } +function ConvertTo-FormattedJSONParameterObject { + + [CmdletBinding()] + param ( + [Parameter()] + [string] $BicepParamBlock + ) + + # [1/4] Detect top level params for later processing + $bicepParamBlockArray = $BicepParamBlock -split '\n' + $topLevelParamIndent = ([regex]::Match($bicepParamBlockArray[0], '^(\s+).*')).Captures.Groups[1].Value.Length + $topLevelParams = $bicepParamBlockArray | Where-Object { $_ -match "^\s{$topLevelParamIndent}[0-9a-zA-Z]+:.*" } | ForEach-Object { ($_ -split ':')[0].Trim() } + + # [2/4] Add JSON-specific syntax to the Bicep param block to enable us to treat is as such + # [1.1] Syntax: Outer brackets + $paramInJsonFormat = @( + '{', + $BicepParamBlock + '}' + ) | Out-String + + # [1.2] Syntax: All single-quotes are double-quotes + $paramInJsonFormat = $paramInJsonFormat -replace "'", '"' + # [1.3] Syntax: Everything left of a ':' should be wrapped in quotes (as a parameter name is always a string) + $paramInJsonFormat = $paramInJsonFormat -replace '([0-9a-zA-Z]+):', '"$1":' + + # [1.4] Split the object to format line-by-line (& also remove any empty lines) + $paramInJSONFormatArray = $paramInJsonFormat -split '\n' | Where-Object { $_ } + + # [1.5] Syntax: Replace Bicep resource ID references + for ($index = 0; $index -lt $paramInJSONFormatArray.Count; $index++) { + if ($paramInJSONFormatArray[$index] -like '*:*' -and ($paramInJSONFormatArray[$index] -split ':')[1].Trim() -notmatch '".+"' -and $paramInJSONFormatArray[$index] -like '*.*') { + # In case of a reference like : "virtualWanId": resourceGroupResources.outputs.virtualWWANResourceId + $paramInJSONFormatArray[$index] = '{0}: "<{1}>"' -f ($paramInJSONFormatArray[$index] -split ':')[0], ([regex]::Match(($paramInJSONFormatArray[$index] -split ':')[0], '"(.+)"')).Captures.Groups[1].Value + } + if ($paramInJSONFormatArray[$index] -notlike '*:*' -and $paramInJSONFormatArray[$index] -notlike '*"*"*' -and $paramInJSONFormatArray[$index] -like '*.*') { + # In case of a reference like : [ \n resourceGroupResources.outputs.managedIdentityPrincipalId \n ] + $paramInJSONFormatArray[$index] = '"{0}"' -f $paramInJSONFormatArray[$index].Split('.')[-1].Trim() + } + } + + # [1.6] Syntax: Add comma everywhere unless: + # - the current line has an opening 'object: {' or 'array: [' character + # - the line after the current line has a closing 'object: {' or 'array: [' character + # - it's the last closing bracket + for ($index = 0; $index -lt $paramInJSONFormatArray.Count; $index++) { + if (($paramInJSONFormatArray[$index] -match '[\{|\[]') -or (($index -lt $paramInJSONFormatArray.Count - 1) -and $paramInJSONFormatArray[$index + 1] -match '[\]|\}]') -or ($index -eq $paramInJSONFormatArray.Count - 1)) { + continue + } + $paramInJSONFormatArray[$index] = '{0},' -f $paramInJSONFormatArray[$index].Trim() + } + + # [1.7] Format the final JSON string to an object to enable processing + $paramInJsonFormatObject = $paramInJSONFormatArray | Out-String | ConvertFrom-Json -AsHashtable -Depth 99 + + # [3/4] Inject top-level 'value`' properties + $paramInJsonFormatObjectWithValue = @{} + foreach ($paramKey in $topLevelParams) { + $paramInJsonFormatObjectWithValue[$paramKey] = @{ + value = $paramInJsonFormatObject[$paramKey] + } + } + + # [4/4] Return result + return $paramInJsonFormatObjectWithValue +} + +function ConvertTo-FormattedBicep { + + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [hashtable] $JSONParameters, + + [Parameter(Mandatory = $true)] + [string[]] $RequiredParametersList + ) + + # [1/4] Order parameters recursively + $orderedJSONParameters = Get-OrderedParametersJSON -ParametersJSON ($JSONParameters | ConvertTo-Json -Depth 99) -RequiredParametersList $RequiredParametersList + + # [2/4] Remove any JSON specific formatting + $templateParameterObject = $orderedJSONParameters | ConvertTo-Json -Depth 99 + if ($templateParameterObject -ne '{}') { + $contentInBicepFormat = $templateParameterObject -replace '"', "'" # Update any [xyz: "xyz"] to [xyz: 'xyz'] + $contentInBicepFormat = $contentInBicepFormat -replace ',', '' # Update any [xyz: xyz,] to [xyz: xyz] + $contentInBicepFormat = $contentInBicepFormat -replace "'(\w+)':", '$1:' # Update any ['xyz': xyz] to [xyz: xyz] + $contentInBicepFormat = $contentInBicepFormat -replace "'(.+.getSecret\('.+'\))'", '$1' # Update any [xyz: 'xyz.GetSecret()'] to [xyz: xyz.GetSecret()] + + $bicepParamsArray = $contentInBicepFormat -split '\n' + $bicepParamsArray = $bicepParamsArray[1..($bicepParamsArray.count - 2)] + } + + # [3/4] Format params with indent + $bicepExample = ($bicepParamsArray | ForEach-Object { " $_" } | Out-String).TrimEnd() + + # [4/4] Add comment where required & optional parameters start + $splitInputObject = @{ + BicepExample = $bicepExample + RequiredParametersList = $RequiredParametersList + AllParametersList = $JSONParameters.Keys + } + $bicepExample = Add-BicepParameterTypeComment @splitInputObject + + return $bicepExample +} + <# .SYNOPSIS Generate 'Deployment examples' for the ReadMe out of the parameter files currently used to test the template @@ -560,7 +642,7 @@ function Set-DeploymentExamplesSection { # Prepare Bicep to JSON # # ------------------------- # - # [1/3] Search for the relevant parameter start & end index + # [1/6] Search for the relevant parameter start & end index $bicepTestStartIndex = $rawContentArray.IndexOf("module testDeployment '../deploy.bicep' = {") $bicepTestEndIndex = $bicepTestStartIndex @@ -570,7 +652,7 @@ function Set-DeploymentExamplesSection { $rawBicepExample = $rawContentArray[$bicepTestStartIndex..$bicepTestEndIndex] - # [2/3] Replace placeholders + # [2/6] Replace placeholders $namePrefix = ($ProjectSettings.parameterFileTokens.localTokens | Where-Object { $_.name -eq 'namePrefix' }).value $serviceShort = ([regex]::Match($rawContent, "(?m)^param serviceShort string = '(.+)'\s*$")).Captures.Groups[1].Value @@ -578,41 +660,38 @@ function Set-DeploymentExamplesSection { $rawBicepExampleString = $rawBicepExampleString -replace '\$\{serviceShort\}', $serviceShort $rawBicepExampleString = $rawBicepExampleString -replace '\$\{namePrefix\}', $namePrefix - # [3/4] Format header, remove scope property & any empty line + # [3/6] Format header, remove scope property & any empty line $rawBicepExample = $rawBicepExampleString -split '\n' $rawBicepExample[0] = "module $resourceType './$resourceTypeIdentifier/deploy.bicep = {" $rawBicepExample = $rawBicepExample | Where-Object { $_ -notmatch 'scope: *' } | Where-Object { -not [String]::IsNullOrEmpty($_) } - # Sort param block + # [4/6] Extract param block $rawBicepExampleArray = $rawBicepExample -split '\n' $moduleDeploymentPropertyIndent = ([regex]::Match($rawBicepExampleArray[1], '^(\s+).*')).Captures.Groups[1].Value.Length $paramsStartIndex = ($rawBicepExampleArray | Select-String ("^[\s]{$moduleDeploymentPropertyIndent}params:[\s]*\{") | ForEach-Object { $_.LineNumber - 1 })[0] + 1 $paramsEndIndex = ($rawBicepExampleArray[($paramsStartIndex + 1)..($rawBicepExampleArray.Count)] | Select-String "^[\s]{$moduleDeploymentPropertyIndent}\}" | ForEach-Object { $_.LineNumber - 1 })[0] + $paramsStartIndex $paramBlock = ($rawBicepExampleArray[$paramsStartIndex..$paramsEndIndex] | Out-String).TrimEnd() - $topLevelParamIndent = ([regex]::Match($paramBlock[0], '^(\s+).*')).Captures.Groups[1].Value.Length - $topLevelParams = $paramBlock | Where-Object { $_ -match "^\s{$topLevelParamIndent}[0-9a-zA-Z]+:.*" } | ForEach-Object { ($_ -split ':')[0].Trim() } - - # TODO: Order parameters - via JSON? - $orderBicepInputObject = @{ - BicepExample = $paramBlock - RequiredParametersList = $RequiredParametersList + # [5/6] Convert Bicep parameter block to JSON parameter block to enable processing + $conversionInputObject = @{ + BicepParamBlock = $paramBlock } - $formattedBicepParams = Get-OrderedBicepParameterList @orderBicepInputObject + $paramsInJSONFormat = ConvertTo-FormattedJSONParameterObject @conversionInputObject - $splitInputObject = @{ - BicepExample = $paramBlock + # [6/6] Convert JSON parameters back to Bicep and order & format them + $conversionInputObject = @{ + JSONParameters = $paramsInJSONFormat RequiredParametersList = $RequiredParametersList - AllParametersList = $topLevelParams } - $formattedBicepParams = Add-BicepParameterTypeComment @splitInputObject - - $formattedBicepExample = $rawBicepExample[0..($paramsStartIndex - 1)] + ($formattedBicepParams -split '\n') + $rawBicepExample[($paramsEndIndex + 1)..($rawBicepExample.Count)] + $bicepExample = ConvertTo-FormattedBicep @conversionInputObject # --------------------- # # Add Bicep example # # --------------------- # if ($addBicep) { + + $formattedBicepExample = $rawBicepExample[0..($paramsStartIndex - 1)] + ($bicepExample -split '\n') + $rawBicepExample[($paramsEndIndex + 1)..($rawBicepExample.Count)] + $SectionContent += @( '', '

' @@ -633,59 +712,9 @@ function Set-DeploymentExamplesSection { # -------------------- # if ($addJson) { - # [1/3] Add JSON-specific syntax to the Bicep param block to enable us to treat is as such - # [1.1] Syntax: Outer brackets - $paramInJsonFormat = @( - '{', - $paramBlock - '}' - ) | Out-String - - # [1.2] Syntax: All single-quotes are double-quotes - $paramInJsonFormat = $paramInJsonFormat -replace "'", '"' - # [1.3] Syntax: Everything left of a ':' should be wrapped in quotes (as a parameter name is always a string) - $paramInJsonFormat = $paramInJsonFormat -replace '([0-9a-zA-Z]+):', '"$1":' - - # [1.4] Split the object to format line-by-line (& also remove any empty lines) - $paramInJSONFormatArray = $paramInJsonFormat -split '\n' | Where-Object { $_ } - - # [1.5] Syntax: Replace Bicep resource ID references - for ($index = 0; $index -lt $paramInJSONFormatArray.Count; $index++) { - if ($paramInJSONFormatArray[$index] -like '*:*' -and ($paramInJSONFormatArray[$index] -split ':')[1].Trim() -notmatch '".+"' -and $paramInJSONFormatArray[$index] -like '*.*') { - # In case of a reference like : "virtualWanId": resourceGroupResources.outputs.virtualWWANResourceId - $paramInJSONFormatArray[$index] = '{0}: "<{1}>"' -f ($paramInJSONFormatArray[$index] -split ':')[0], ([regex]::Match(($paramInJSONFormatArray[$index] -split ':')[0], '"(.+)"')).Captures.Groups[1].Value - } - if ($paramInJSONFormatArray[$index] -notlike '*:*' -and $paramInJSONFormatArray[$index] -notlike '*"*"*' -and $paramInJSONFormatArray[$index] -like '*.*') { - # In case of a reference like : [ \n resourceGroupResources.outputs.managedIdentityPrincipalId \n ] - $paramInJSONFormatArray[$index] = '"{0}"' -f $paramInJSONFormatArray[$index].Split('.')[-1].Trim() - } - } - - # [1.6] Syntax: Add comma everywhere unless: - # - the current line has an opening 'object: {' or 'array: [' character - # - the line after the current line has a closing 'object: {' or 'array: [' character - # - it's the last closing bracket - for ($index = 0; $index -lt $paramInJSONFormatArray.Count; $index++) { - if (($paramInJSONFormatArray[$index] -match '[\{|\[]') -or (($index -lt $paramInJSONFormatArray.Count - 1) -and $paramInJSONFormatArray[$index + 1] -match '[\]|\}]') -or ($index -eq $paramInJSONFormatArray.Count - 1)) { - continue - } - $paramInJSONFormatArray[$index] = '{0},' -f $paramInJSONFormatArray[$index].Trim() - } - - # [1.7] Format the final JSON string to an object to enable processing - $paramInJsonFormatObject = $paramInJSONFormatArray | Out-String | ConvertFrom-Json -AsHashtable -Depth 99 - - # [1.8] Restore the original order of parameters (which are lost by the 'ConvertFrom-JSON' method invocation) - $paramInJsonFormatObjectWithValue = @{} - foreach ($paramKey in $topLevelParams) { - $paramInJsonFormatObjectWithValue[$paramKey] = @{ - value = $paramInJsonFormatObject[$paramKey] - } - } - # [2/3] Get all parameters from the parameter object and order them recursively $orderingInputObject = @{ - ParametersJSON = $paramInJsonFormatObjectWithValue | ConvertTo-Json -Depth 99 + ParametersJSON = $paramsInJSONFormat | ConvertTo-Json -Depth 99 RequiredParametersList = $RequiredParametersList } $orderedJSONExample = Build-OrderedJSONObject @orderingInputObject @@ -710,28 +739,20 @@ function Set-DeploymentExamplesSection { # Prepare JSON to Bicep # # ------------------------- # - $rawContentHashtable = $rawContent | ConvertFrom-Json -Depth 99 + $rawContentHashtable = $rawContent | ConvertFrom-Json -Depth 99 -AsHashtable -NoEnumerate # First we need to check if we're dealing with classic JSON-Parameter file, or a deployment test file (which contains resource deployments & parameters) $isParameterFile = $rawContentHashtable.'$schema' -like '*deploymentParameters*' if (-not $isParameterFile) { # Case 1: Uses deployment test file (instead of parameter file). - # [1/3] Need to extract parameters. The taarget is to get an object which 1:1 represents a classic JSON-Parameter file (aside from KeyVault references) + # [1/2] Need to extract parameters. The taarget is to get an object which 1:1 represents a classic JSON-Parameter file (aside from KeyVault references) $testResource = $rawContentHashtable.resources | Where-Object { $_.name -like '*-test-*' } - $JSONResourceParameters = $testResource.properties.parameters - - # [2/3] Restore the original order of parameters (which are lost by the 'ConvertFrom-JSON' method invocation) - $formattedJSONParameters = [ordered]@{} - foreach ($parameter in $JSONResourceParameters.PSObject.Properties.Name) { - $formattedJSONParameters[$parameter] = $JSONResourceParameters.$parameter - } - - # [3/3] Build the full ARM-JSON parameter file + # [2/2] Build the full ARM-JSON parameter file $jsonParameterContent = [ordered]@{ '$schema' = 'https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#' contentVersion = '1.0.0.0' - parameters = $formattedJSONParameters + parameters = $testResource.parameters } $jsonParameterContent = ($jsonParameterContent | ConvertTo-Json -Depth 99).TrimEnd() } else { @@ -744,10 +765,10 @@ function Set-DeploymentExamplesSection { # --------------------- # if ($addBicep) { - # [1/8] Get all parameters from the parameter object + # [1/4] Get all parameters from the parameter object $JSONParametersHashTable = (ConvertFrom-Json $jsonParameterContent -AsHashtable -Depth 99).parameters - # [2/8] Handle the special case of Key Vault secret references (that have a 'reference' instead of a 'value' property) + # [2/4] Handle the special case of Key Vault secret references (that have a 'reference' instead of a 'value' property) # [2.1] Find all references and split them into managable objects $keyVaultReferences = $JSONParametersHashTable.Keys | Where-Object { $JSONParametersHashTable[$_].Keys -contains 'reference' } @@ -785,7 +806,7 @@ function Set-DeploymentExamplesSection { } } - # [3/8] Remove the 'value' property from each parameter + # [3/5] Remove the 'value' property from each parameter # If we're handling a classic ARM-JSON parameter file that includes replacing all 'references' with the link to one of the 'existing' Key Vault resources if ((ConvertFrom-Json $rawContent -Depth 99).'$schema' -like '*deploymentParameters*') { # If handling a classic parameter file @@ -808,33 +829,14 @@ function Set-DeploymentExamplesSection { } } - # [4/8] Order parameters recursively - $orderedJSONParameters = Get-OrderedParametersJSON -ParametersJSON ($JSONParametersWithoutValue | ConvertTo-Json -Depth 99) -RequiredParametersList $RequiredParametersList - - # [5/8] Remove any JSON specific formatting - $templateParameterObject = $orderedJSONParameters | ConvertTo-Json -Depth 99 - if ($templateParameterObject -ne '{}') { - $contentInBicepFormat = $templateParameterObject -replace '"', "'" # Update any [xyz: "xyz"] to [xyz: 'xyz'] - $contentInBicepFormat = $contentInBicepFormat -replace ',', '' # Update any [xyz: xyz,] to [xyz: xyz] - $contentInBicepFormat = $contentInBicepFormat -replace "'(\w+)':", '$1:' # Update any ['xyz': xyz] to [xyz: xyz] - $contentInBicepFormat = $contentInBicepFormat -replace "'(.+.getSecret\('.+'\))'", '$1' # Update any [xyz: 'xyz.GetSecret()'] to [xyz: xyz.GetSecret()] - - $bicepParamsArray = $contentInBicepFormat -split '\n' - $bicepParamsArray = $bicepParamsArray[1..($bicepParamsArray.count - 2)] - } - - # [6/8] Format params with indent - $bicepExample = $bicepParamsArray | ForEach-Object { " $_" } | Out-String - - # [7/8] Add comment where required & optional parameters start - $splitInputObject = @{ - BicepExample = $bicepExample + # [4/5] Convert the JSON parameters to a Bicep parameters block + $conversionInputObject = @{ + JSONParameters = $JSONParametersWithoutValue RequiredParametersList = $RequiredParametersList - AllParametersList = $JSONParametersWithoutValue.Keys } - $bicepExample = Add-BicepParameterTypeComment @splitInputObject + $bicepExample = ConvertTo-FormattedBicep @conversionInputObject - # [8/8] Create the final content block: That means + # [5/5] Create the final content block: That means # - the 'existing' Key Vault resources # - a 'module' header that mimics a module deployment # - all parameters in Bicep format From 80e5edbbc7639e739a5c3cdf1dd8e2636298436c Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 10 Jul 2022 19:59:05 +0200 Subject: [PATCH 092/274] Further improvements when dealing with classic parameter files --- utilities/tools/Set-ModuleReadMe.ps1 | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index f5a09f978d..8a4e6cf5b4 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -512,8 +512,18 @@ function ConvertTo-FormattedBicep { [string[]] $RequiredParametersList ) + # Remove 'value' parameter property, if any (e.g. when dealing with a classic parameter file) + $JSONParametersWithoutValue = @{} + foreach ($parameter in $JSONParameters.Keys) { + if ($JSONParameters[$parameter].Keys -eq 'value') { + $JSONParametersWithoutValue[$parameter] = $JSONParameters.$parameter.value + } else { + $JSONParametersWithoutValue[$parameter] = $JSONParameters.$parameter + } + } + # [1/4] Order parameters recursively - $orderedJSONParameters = Get-OrderedParametersJSON -ParametersJSON ($JSONParameters | ConvertTo-Json -Depth 99) -RequiredParametersList $RequiredParametersList + $orderedJSONParameters = Get-OrderedParametersJSON -ParametersJSON ($JSONParametersWithoutValue | ConvertTo-Json -Depth 99) -RequiredParametersList $RequiredParametersList # [2/4] Remove any JSON specific formatting $templateParameterObject = $orderedJSONParameters | ConvertTo-Json -Depth 99 @@ -534,7 +544,7 @@ function ConvertTo-FormattedBicep { $splitInputObject = @{ BicepExample = $bicepExample RequiredParametersList = $RequiredParametersList - AllParametersList = $JSONParameters.Keys + AllParametersList = $JSONParametersWithoutValue.Keys } $bicepExample = Add-BicepParameterTypeComment @splitInputObject From 1a56e58cbb10a4cb02f24fcb6d0f7cbe0099b154 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 10 Jul 2022 22:07:35 +0200 Subject: [PATCH 093/274] Updated function & tested arm converted test file --- utilities/tools/Set-ModuleReadMe.ps1 | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index 8a4e6cf5b4..80b0d22aa4 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -471,7 +471,7 @@ function ConvertTo-FormattedJSONParameterObject { } if ($paramInJSONFormatArray[$index] -notlike '*:*' -and $paramInJSONFormatArray[$index] -notlike '*"*"*' -and $paramInJSONFormatArray[$index] -like '*.*') { # In case of a reference like : [ \n resourceGroupResources.outputs.managedIdentityPrincipalId \n ] - $paramInJSONFormatArray[$index] = '"{0}"' -f $paramInJSONFormatArray[$index].Split('.')[-1].Trim() + $paramInJSONFormatArray[$index] = '"<{0}>"' -f $paramInJSONFormatArray[$index].Split('.')[-1].Trim() } } @@ -755,16 +755,25 @@ function Set-DeploymentExamplesSection { $isParameterFile = $rawContentHashtable.'$schema' -like '*deploymentParameters*' if (-not $isParameterFile) { # Case 1: Uses deployment test file (instead of parameter file). - # [1/2] Need to extract parameters. The taarget is to get an object which 1:1 represents a classic JSON-Parameter file (aside from KeyVault references) + # [1/3] Need to extract parameters. The taarget is to get an object which 1:1 represents a classic JSON-Parameter file (aside from KeyVault references) $testResource = $rawContentHashtable.resources | Where-Object { $_.name -like '*-test-*' } - # [2/2] Build the full ARM-JSON parameter file + # [2/3] Build the full ARM-JSON parameter file $jsonParameterContent = [ordered]@{ '$schema' = 'https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#' contentVersion = '1.0.0.0' - parameters = $testResource.parameters + parameters = $testResource.properties.parameters } $jsonParameterContent = ($jsonParameterContent | ConvertTo-Json -Depth 99).TrimEnd() + + # [3/3] Remove 'externalResourceReferences' that are generated for Bicep's 'existing' resource references. Removing them will make the file more readable + $jsonParameterContentArray = $jsonParameterContent -split '\n' + foreach ($row in ($jsonParameterContentArray | Where-Object { $_ -like '*reference(extensionResourceId*' })) { + $expectedValue = ([regex]::Match($row, '.+\[reference\(extensionResourceId.+\.(.+)\.value\]"')).Captures.Groups[1].Value + $toReplaceValue = ([regex]::Match($row, '"(\[reference\(extensionResourceId.+)"')).Captures.Groups[1].Value + + $jsonParameterContent = $jsonParameterContent.Replace($toReplaceValue, ('<{0}>' -f $expectedValue)) + } } else { # Case 2: Uses ARM-JSON parameter file $jsonParameterContent = $rawContent.TrimEnd() @@ -834,8 +843,8 @@ function Set-DeploymentExamplesSection { } else { # If handling a test deployment file $JSONParametersWithoutValue = @{} - foreach ($parameter in $formattedJSONParameters.Keys) { - $JSONParametersWithoutValue[$parameter] = $formattedJSONParameters.$parameter.value + foreach ($parameter in $JSONParametersHashTable.Keys) { + $JSONParametersWithoutValue[$parameter] = $JSONParametersHashTable.$parameter.value } } From cd4dde8a2470043182a4747c36dd599d3ecb819c Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 10 Jul 2022 23:45:34 +0200 Subject: [PATCH 094/274] Updated comments --- utilities/tools/Set-ModuleReadMe.ps1 | 171 ++++++++++++++++++++++++--- 1 file changed, 156 insertions(+), 15 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index 80b0d22aa4..aac726deca 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -299,12 +299,42 @@ function Set-OutputsSection { return $updatedFileContent } +<# +.SYNOPSIS +Add comments to indicate required & non-required parameters to the given Bicep example + +.DESCRIPTION +Add comments to indicate required & non-required parameters to the given Bicep example. +'Required' is only added if the example has at least one required parameter +'Non-Required' is only added if the example has at least one required parameter and at least one non-required parameter + +.PARAMETER BicepParams +Mandatory. The Bicep parameter block to add the comments to (i.e., should contain everything in between the brackets of a 'params: {...} block) + +.PARAMETER AllParametersList +Mandatory. A list of all top-level (i.e. non-nested) parameter names + +.PARAMETER RequiredParametersList +Mandatory. A list of all required top-level (i.e. non-nested) parameter names + +.EXAMPLE +Add-BicepParameterTypeComment -AllParametersList @('name', 'lock') -RequiredParametersList @('name') -BicepParams "name: 'carml'\nlock: 'CanNotDelete'" + +Add type comments to given bicep params string, using one required parameter 'name'. Would return: + +' + // Required parameters + name: 'carml' + // Non-required parameters + lock: 'CanNotDelete' +' +#> function Add-BicepParameterTypeComment { [CmdletBinding()] param ( [Parameter(Mandatory = $true)] - [string] $BicepExample, + [string] $BicepParams, [Parameter(Mandatory = $true)] [string[]] $AllParametersList, @@ -315,39 +345,63 @@ function Add-BicepParameterTypeComment { if ($RequiredParametersList.Count -ge 1 -and $AllParametersList.Count -ge 2) { - $bicepExampleArray = $BicepExample -split '\n' + $BicepParamsArray = $BicepParams -split '\n' # [1/4] Check where the 'last' required parameter is located in the example (and what its indent is) $parameterToSplitAt = $RequiredParametersList[-1] - $requiredParameterIndent = ([regex]::Match($bicepExampleArray[0], '^(\s+).*')).Captures.Groups[1].Value.Length + $requiredParameterIndent = ([regex]::Match($BicepParamsArray[0], '^(\s+).*')).Captures.Groups[1].Value.Length # [1/4] Add a comment where the required parameters start - $bicepExampleArray = @('{0}// Required parameters' -f (' ' * $requiredParameterIndent)) + $bicepExampleArray[(0 .. ($bicepExampleArray.Count))] + $BicepParamsArray = @('{0}// Required parameters' -f (' ' * $requiredParameterIndent)) + $BicepParamsArray[(0 .. ($BicepParamsArray.Count))] # [1/4] Find the location if the last required parameter - $requiredParameterStartIndex = ($bicepExampleArray | Select-String ('^[\s]{0}{1}:.+' -f "{$requiredParameterIndent}", $parameterToSplitAt) | ForEach-Object { $_.LineNumber - 1 })[0] + $requiredParameterStartIndex = ($BicepParamsArray | Select-String ('^[\s]{0}{1}:.+' -f "{$requiredParameterIndent}", $parameterToSplitAt) | ForEach-Object { $_.LineNumber - 1 })[0] # [1/4] If we have more than only required parameters, let's add a corresponding comment if ($AllParametersList.Count -gt $RequiredParametersList.Count) { - $nextLineIndent = ([regex]::Match($bicepExampleArray[$requiredParameterStartIndex + 1], '^(\s+).*')).Captures.Groups[1].Value.Length + $nextLineIndent = ([regex]::Match($BicepParamsArray[$requiredParameterStartIndex + 1], '^(\s+).*')).Captures.Groups[1].Value.Length if ($nextLineIndent -gt $requiredParameterIndent) { # Case Param is object/array: Search in rest of array for the next closing bracket with the same indent - and then add the search index (1) & initial index (1) count back in - $requiredParameterEndIndex = ($bicepExampleArray[($requiredParameterStartIndex + 1)..($bicepExampleArray.Count)] | Select-String "^[\s]{$requiredParameterIndent}\S+" | ForEach-Object { $_.LineNumber - 1 })[0] + 1 + $requiredParameterStartIndex + $requiredParameterEndIndex = ($BicepParamsArray[($requiredParameterStartIndex + 1)..($BicepParamsArray.Count)] | Select-String "^[\s]{$requiredParameterIndent}\S+" | ForEach-Object { $_.LineNumber - 1 })[0] + 1 + $requiredParameterStartIndex } else { # Case Param is single line bool/string/int: Add an index (1) for the 'required' comment $requiredParameterEndIndex = $requiredParameterStartIndex } # Add a comment where the non-required parameters start - $bicepExampleArray = $bicepExampleArray[0..$requiredParameterEndIndex] + ('{0}// Non-required parameters' -f (' ' * $requiredParameterIndent)) + $bicepExampleArray[(($requiredParameterEndIndex + 1) .. ($bicepExampleArray.Count))] + $BicepParamsArray = $BicepParamsArray[0..$requiredParameterEndIndex] + ('{0}// Non-required parameters' -f (' ' * $requiredParameterIndent)) + $BicepParamsArray[(($requiredParameterEndIndex + 1) .. ($BicepParamsArray.Count))] } - $BicepExample = ($bicepExampleArray | Out-String).TrimEnd() + return ($BicepParamsArray | Out-String).TrimEnd() } - return $BicepExample + return $BicepParams } +<# +.SYNOPSIS +Sort the given JSON paramters into required & non-required parameters, each sorted alphabetically + +.DESCRIPTION +Sort the given JSON paramters into required & non-required parameters, each sorted alphabetically + +.PARAMETER ParametersJSON +Mandatory. The JSON parameters block to process (ideally already without 'value' property) + +.PARAMETER RequiredParametersList +Mandatory. A list of all required top-level (i.e. non-nested) parameter names + +.EXAMPLE +Get-OrderedParametersJSON -RequiredParametersList @('name') -ParametersJSON '{ "diagnosticLogsRetentionInDays": 7,"lock": "CanNotDelete","name": "carml" }' + +Order the given JSON object alphabetically. Would result into: + +@{ + name: 'carml' + diagnosticLogsRetentionInDays: 7 + lock: 'CanNotDelete' +} +#> function Get-OrderedParametersJSON { [CmdletBinding()] @@ -381,6 +435,43 @@ function Get-OrderedParametersJSON { return $orderedJSONParameters } +<# +.SYNOPSIS +Sort the given JSON parameters into a new JSON parameter object, all parameter sorted into required & non-required parameters, each sorted alphabetically + +.DESCRIPTION +Sort the given JSON parameters into a new JSON parameter object, all parameter sorted into required & non-required parameters, each sorted alphabetically. +The location where required & non-required parameters start is highlighted with by a corresponding comment + +.PARAMETER ParametersJSON +Mandatory. The parameter JSON object to process + +.PARAMETER RequiredParametersList +Mandatory. A list of all required top-level (i.e. non-nested) parameter names + +.EXAMPLE +Build-OrderedJSONObject -RequiredParametersList @('name') -ParametersJSON '{ "lock": { "value": "CanNotDelete" }, "name": { "value": "carml" }, "diagnosticLogsRetentionInDays": { "value": 7 } }' + +Build a formatted Parameter-JSON object with one required parameter. Would result into: + +'{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + // Required parameters + "name": { + "value": "carml" + }, + // Non-required parameters + "diagnosticLogsRetentionInDays": { + "value": 7 + }, + "lock": { + "value": "CanNotDelete" + } + } +}' +#> function Build-OrderedJSONObject { [CmdletBinding()] @@ -428,12 +519,36 @@ function Build-OrderedJSONObject { } # [8/8] Convert the processed array back into a string - $jsonExample = $jsonExampleArray | Out-String + return $jsonExampleArray | Out-String } return $jsonExample } +<# +.SYNOPSIS +Convert the given Bicep parameter block to JSON parameter block + +.DESCRIPTION +Convert the given Bicep parameter block to JSON parameter block + +.PARAMETER BicepParamBlock +Mandatory. The Bicep parameter block to process + +.EXAMPLE +ConvertTo-FormattedJSONParameterObject -BicepParamBlock "name: 'carml'\nlock: 'CanNotDelete'" + +Convert the Bicep string "name: 'carml'\nlock: 'CanNotDelete'" into a parameter JSON object. Would result into: + +@{ + lock = @{ + value = 'carml' + } + lock = @{ + value = 'CanNotDelete' + } +} +#> function ConvertTo-FormattedJSONParameterObject { [CmdletBinding()] @@ -501,6 +616,32 @@ function ConvertTo-FormattedJSONParameterObject { return $paramInJsonFormatObjectWithValue } +<# +.SYNOPSIS +Convert the given parameter JSON object into a formatted Bicep object (i.e., sorted & with required/non-required comments) + +.DESCRIPTION +Convert the given parameter JSON object into a formatted Bicep object (i.e., sorted & with required/non-required comments) + +.PARAMETER JSONParameters +Mandatory. The parameter JSON object to process. + +.PARAMETER RequiredParametersList +Mandatory. A list of all required top-level (i.e. non-nested) parameter names + +.EXAMPLE +ConvertTo-FormattedBicep -RequiredParametersList @('name') -JSONParameters @{ lock = @{ value = 'carml' }; lock = @{ value = 'CanNotDelete' } } + +Convert the given JSONParameters object with one required parameter to a formatted Bicep object. Would result into: + +' + // Required parameters + name: 'carml' + // Non-required parameters + diagnosticLogsRetentionInDays: 7 + lock: 'CanNotDelete' +' +#> function ConvertTo-FormattedBicep { [CmdletBinding()] @@ -538,17 +679,17 @@ function ConvertTo-FormattedBicep { } # [3/4] Format params with indent - $bicepExample = ($bicepParamsArray | ForEach-Object { " $_" } | Out-String).TrimEnd() + $BicepParams = ($bicepParamsArray | ForEach-Object { " $_" } | Out-String).TrimEnd() # [4/4] Add comment where required & optional parameters start $splitInputObject = @{ - BicepExample = $bicepExample + BicepParams = $BicepParams RequiredParametersList = $RequiredParametersList AllParametersList = $JSONParametersWithoutValue.Keys } - $bicepExample = Add-BicepParameterTypeComment @splitInputObject + $commentedBicepParams = Add-BicepParameterTypeComment @splitInputObject - return $bicepExample + return $commentedBicepParams } <# From 1438e137cf709aa4ccafa7deb303fe0aa8fdc05c Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 13 Jul 2022 00:09:25 +0200 Subject: [PATCH 095/274] Added SQL server example & updated readme robustness --- utilities/tools/Set-ModuleReadMe.ps1 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index aac726deca..b73aadbcfc 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -810,6 +810,7 @@ function Set-DeploymentExamplesSection { $rawBicepExampleString = ($rawBicepExample | Out-String) $rawBicepExampleString = $rawBicepExampleString -replace '\$\{serviceShort\}', $serviceShort $rawBicepExampleString = $rawBicepExampleString -replace '\$\{namePrefix\}', $namePrefix + $rawBicepExampleString = $rawBicepExampleString -replace '(?m):\s*location\s*$', ': ''''' # [3/6] Format header, remove scope property & any empty line $rawBicepExample = $rawBicepExampleString -split '\n' @@ -1319,7 +1320,8 @@ function Set-ModuleReadMe { $readMeFileContent = Set-OutputsSection @inputObject } - if ($SectionsToRefresh -contains 'Deployment examples') { + $isTopLevelModule = $TemplateFilePath.Replace('\', '/').Split('/modules/')[1].Split('/').Count -eq 3 # //deploy.* + if ($SectionsToRefresh -contains 'Deployment examples' -and $isTopLevelModule) { # Handle [Deployment examples] section # =================================== $inputObject = @{ From a74a2d6d6c5a0d114c276fe3c1fc868a78f1beb0 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 13 Jul 2022 00:09:33 +0200 Subject: [PATCH 096/274] Added SQL server example & updated readme robustness --- .../nestedTemplates/default.nested.bicep | 2 +- .../max.parameters.nested.bicep | 2 +- .../default.parameters.nested.bicep | 4 +- .../min.parameters.nested.bicep | 2 +- .../Microsoft.Sql/servers/.test/admin.bicep | 57 +++ .../servers/.test/admin.parameters.json | 18 - .../Microsoft.Sql/servers/.test/default.bicep | 138 +++++++ .../default.parameters.nested.bicep | 106 +++++ .../min.parameters.nested.bicep | 13 + .../servers/.test/parameters.json | 109 ----- .../Microsoft.Sql/servers/databases/readme.md | 7 + modules/Microsoft.Sql/servers/readme.md | 377 +++++++++--------- 12 files changed, 514 insertions(+), 321 deletions(-) create mode 100644 modules/Microsoft.Sql/servers/.test/admin.bicep delete mode 100644 modules/Microsoft.Sql/servers/.test/admin.parameters.json create mode 100644 modules/Microsoft.Sql/servers/.test/default.bicep create mode 100644 modules/Microsoft.Sql/servers/.test/nestedTemplates/default.parameters.nested.bicep create mode 100644 modules/Microsoft.Sql/servers/.test/nestedTemplates/min.parameters.nested.bicep delete mode 100644 modules/Microsoft.Sql/servers/.test/parameters.json diff --git a/modules/Microsoft.AnalysisServices/servers/.test/nestedTemplates/default.nested.bicep b/modules/Microsoft.AnalysisServices/servers/.test/nestedTemplates/default.nested.bicep index 953e3a00ef..b3a1b11a15 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/nestedTemplates/default.nested.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/nestedTemplates/default.nested.bicep @@ -9,5 +9,5 @@ resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018- location: location } -@description('The principal of the created managed identity') +@description('The principal ID of the created managed identity') output managedIdentityPrincipalId string = managedIdentity.properties.principalId diff --git a/modules/Microsoft.AnalysisServices/servers/.test/nestedTemplates/max.parameters.nested.bicep b/modules/Microsoft.AnalysisServices/servers/.test/nestedTemplates/max.parameters.nested.bicep index 953e3a00ef..b3a1b11a15 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/nestedTemplates/max.parameters.nested.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/nestedTemplates/max.parameters.nested.bicep @@ -9,5 +9,5 @@ resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018- location: location } -@description('The principal of the created managed identity') +@description('The principal ID of the created managed identity') output managedIdentityPrincipalId string = managedIdentity.properties.principalId diff --git a/modules/Microsoft.Network/vpnSites/.test/nestedTemplates/default.parameters.nested.bicep b/modules/Microsoft.Network/vpnSites/.test/nestedTemplates/default.parameters.nested.bicep index 1e747da698..4746417567 100644 --- a/modules/Microsoft.Network/vpnSites/.test/nestedTemplates/default.parameters.nested.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/nestedTemplates/default.parameters.nested.bicep @@ -17,8 +17,8 @@ resource virtualWan 'Microsoft.Network/virtualWans@2021-05-01' = { location: location } -@description('The principal of the created managed identity') +@description('The principal ID of the created managed identity') output managedIdentityPrincipalId string = managedIdentity.properties.principalId -@description('The principal of the created managed identity') +@description('The principal ID of the created managed identity') output virtualWWANResourceId string = virtualWan.id diff --git a/modules/Microsoft.Network/vpnSites/.test/nestedTemplates/min.parameters.nested.bicep b/modules/Microsoft.Network/vpnSites/.test/nestedTemplates/min.parameters.nested.bicep index f83db52264..ec7653d7a5 100644 --- a/modules/Microsoft.Network/vpnSites/.test/nestedTemplates/min.parameters.nested.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/nestedTemplates/min.parameters.nested.bicep @@ -9,5 +9,5 @@ resource virtualWan 'Microsoft.Network/virtualWans@2021-05-01' = { location: location } -@description('The principal of the created managed identity') +@description('The principal ID of the created managed identity') output virtualWWANResourceId string = virtualWan.id diff --git a/modules/Microsoft.Sql/servers/.test/admin.bicep b/modules/Microsoft.Sql/servers/.test/admin.bicep new file mode 100644 index 0000000000..a892a7f992 --- /dev/null +++ b/modules/Microsoft.Sql/servers/.test/admin.bicep @@ -0,0 +1,57 @@ +targetScope = 'subscription' + +// ========== // +// Parameters // +// ========== // + +// Resource Group +@description('Required. The name prefix to inject into all resource names') +param namePrefix string + +@description('Optional. The name of the resource group to deploy for a testing purposes') +@maxLength(90) +param resourceGroupName string = '${serviceShort}-ms.sql-servers-rg' + +@description('Optional. The location to deploy resources to') +param location string = deployment().location + +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') +param serviceShort string = 'sqladmin' + +// =========== // +// Deployments // +// =========== // + +// General resources +// ================= +resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { + name: resourceGroupName + location: location +} + +module resourceGroupResources 'nestedTemplates/min.parameters.nested.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-paramNested' + params: { + managedIdentityName: 'dep-${namePrefix}-az-msi-${serviceShort}-01' + } +} + +// ============== // +// Test Execution // +// ============== // + +module testDeployment '../deploy.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' + params: { + name: '${namePrefix}-az-${serviceShort}-admin-001' + administrators: { + azureADOnlyAuthentication: true + login: 'myspn' + sid: resourceGroupResources.outputs.managedIdentityPrincipalId + principalType: 'Application' + tenantId: tenant().tenantId + } + } +} diff --git a/modules/Microsoft.Sql/servers/.test/admin.parameters.json b/modules/Microsoft.Sql/servers/.test/admin.parameters.json deleted file mode 100644 index eadb38deec..0000000000 --- a/modules/Microsoft.Sql/servers/.test/admin.parameters.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-sqlsrv-admin-001" - }, - "administrators": { - "value": { - "azureADOnlyAuthentication": true, - "login": "myspn", - "sid": "<>", - "principalType": "Application", - "tenantId": "<>" - } - } - } -} diff --git a/modules/Microsoft.Sql/servers/.test/default.bicep b/modules/Microsoft.Sql/servers/.test/default.bicep new file mode 100644 index 0000000000..d00d4e625a --- /dev/null +++ b/modules/Microsoft.Sql/servers/.test/default.bicep @@ -0,0 +1,138 @@ +targetScope = 'subscription' + +// ========== // +// Parameters // +// ========== // + +// Resource Group +@description('Required. The name prefix to inject into all resource names') +param namePrefix string + +@description('Optional. The name of the resource group to deploy for a testing purposes') +@maxLength(90) +param resourceGroupName string = '${serviceShort}-ms.sql-servers-rg' + +@description('Optional. The location to deploy resources to') +param location string = deployment().location + +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') +param serviceShort string = 'sqlpar' + +// =========== // +// Deployments // +// =========== // + +// General resources +// ================= +resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { + name: resourceGroupName + location: location +} + +module resourceGroupResources 'nestedTemplates/default.parameters.nested.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-paramNested' + params: { + managedIdentityName: 'dep-${namePrefix}-az-msi-${serviceShort}-01' + virtualNetworkName: 'adp-${namePrefix}-vnet-${serviceShort}-01' + deploymentScriptName: 'adp-${namePrefix}-ds-kv-${serviceShort}-01' + keyVaultName: 'adp-${namePrefix}-kv-${serviceShort}-01' + passwordSecretName: 'adminPassword' + location: location + } +} + +resource keyVaultReference 'Microsoft.KeyVault/vaults@2021-10-01' existing = { + name: 'adp-${namePrefix}-kv-${serviceShort}-01' + scope: resourceGroup +} + +// Diagnostics +// =========== +module diagnosticDependencies '../../../.global/dependencyConstructs/diagnostic.dependencies.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-diagDep' + params: { + storageAccountName: 'dep${namePrefix}azsa${serviceShort}01' + logAnalyticsWorkspaceName: 'dep-${namePrefix}-law-${serviceShort}-01' + eventHubNamespaceEventHubName: 'dep-${namePrefix}-evh-${serviceShort}-01' + eventHubNamespaceName: 'dep-${namePrefix}-evhns-${serviceShort}-01' + location: location + } +} + +// ============== // +// Test Execution // +// ============== // + +module testDeployment '../deploy.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' + params: { + name: '${namePrefix}-az-${serviceShort}-x-001' + lock: 'CanNotDelete' + administratorLogin: 'adminUserName' + administratorLoginPassword: keyVaultReference.getSecret(resourceGroupResources.outputs.secretName) + location: location + minimalTlsVersion: '1.2' + roleAssignments: [ + { + roleDefinitionIdOrName: 'Reader' + principalIds: [ + resourceGroupResources.outputs.managedIdentityPrincipalId + ] + } + ] + vulnerabilityAssessmentsObj: { + name: 'default' + emailSubscriptionAdmins: true + recurringScansIsEnabled: true + recurringScansEmails: [ + 'test1@contoso.com' + 'test2@contoso.com' + ] + vulnerabilityAssessmentsStorageAccountId: diagnosticDependencies.outputs.storageAccountResourceId + } + databases: [ + { + name: '${namePrefix}-az-${serviceShort}db-x-001' + collation: 'SQL_Latin1_General_CP1_CI_AS' + skuTier: 'BusinessCritical' + skuName: 'BC_Gen5' + skuCapacity: 12 + skuFamily: 'Gen5' + maxSizeBytes: 34359738368 + licenseType: 'LicenseIncluded' + diagnosticLogsRetentionInDays: 7 + diagnosticStorageAccountId: diagnosticDependencies.outputs.storageAccountResourceId + diagnosticWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId + diagnosticEventHubAuthorizationRuleId: diagnosticDependencies.outputs.eventHubAuthorizationRuleId + diagnosticEventHubName: diagnosticDependencies.outputs.eventHubNamespaceEventHubName + } + ] + firewallRules: [ + { + name: 'AllowAllWindowsAzureIps' + endIpAddress: '0.0.0.0' + startIpAddress: '0.0.0.0' + } + ] + securityAlertPolicies: [ + { + name: 'Default' + state: 'Enabled' + emailAccountAdmins: true + } + ] + systemAssignedIdentity: true + userAssignedIdentities: { + '${resourceGroupResources.outputs.managedIdentitResourceId}': {} + } + privateEndpoints: [ + { + subnetResourceId: resourceGroupResources.outputs.privateEndpointSubnetResourceId + service: 'sqlServer' + } + ] + } +} diff --git a/modules/Microsoft.Sql/servers/.test/nestedTemplates/default.parameters.nested.bicep b/modules/Microsoft.Sql/servers/.test/nestedTemplates/default.parameters.nested.bicep new file mode 100644 index 0000000000..1243477f95 --- /dev/null +++ b/modules/Microsoft.Sql/servers/.test/nestedTemplates/default.parameters.nested.bicep @@ -0,0 +1,106 @@ +@description('Required. The name of the Managed Identity to create.') +param managedIdentityName string + +@description('Required. The name of the Virtual Network to create.') +param virtualNetworkName string + +@description('Required. The name of the Key Vault to create.') +param keyVaultName string + +@description('Required. The name of the Deployment Script used to create secrets in the deployed Key Vault.') +param deploymentScriptName string + +@description('Required. The name of the secret to create in the Key Vault.') +param passwordSecretName string + +@description('Optional. The location to deploy to') +param location string = resourceGroup().location + +resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { + name: managedIdentityName + location: location +} + +resource vnet 'Microsoft.Network/virtualNetworks@2022-01-01' = { + name: virtualNetworkName + location: location + properties: { + addressSpace: { + addressPrefixes: [ + '10.0.0.0/16' + ] + } + subnets: [ + { + name: 'sxx-subnet-pe-01' + properties: { + + addressPrefix: '10.0.0.0/24' + } + } + ] + } +} + +resource keyVault 'Microsoft.KeyVault/vaults@2021-11-01-preview' = { + name: keyVaultName + location: location + properties: { + sku: { + family: 'A' + name: 'standard' + } + tenantId: tenant().tenantId + accessPolicies: [ + { + objectId: managedIdentity.properties.principalId + permissions: { + secrets: [ + 'All' + ] + } + tenantId: tenant().tenantId + } + ] + } +} + +resource keyVaultdeploymentScript 'Microsoft.Resources/deploymentScripts@2020-10-01' = { + name: deploymentScriptName + location: location + kind: 'AzurePowerShell' + identity: { + type: 'UserAssigned' + userAssignedIdentities: { + '${managedIdentity.id}': {} + } + } + properties: { + azPowerShellVersion: '3.0' + retentionInterval: 'P1D' + arguments: ' -KeyVaultName "${keyVault.name}" -PasswordSecretName "${passwordSecretName}"' + cleanupPreference: 'OnSuccess' + scriptContent: ''' + param( + [string] $KeyVaultName, + [string] $PasswordSecretName + ) + $passwordString = (New-Guid).Guid.SubString(0,19) + $password = ConvertTo-SecureString -String $passwordString -AsPlainText -Force + + Set-AzKeyVaultSecret -VaultName $keyVaultName -Name $PasswordSecretName -SecretValue $password + ''' + } +} + +@description('The principal ID of the created managed identity') +output managedIdentityPrincipalId string = managedIdentity.properties.principalId + +@description('The resource ID of the created managed identity') +output managedIdentitResourceId string = managedIdentity.properties.principalId + +@description('The resource ID of the created virtual network subnet') +output privateEndpointSubnetResourceId string = vnet.properties.subnets[0].id + +@description('The name of the password secret.') +output secretName string = passwordSecretName diff --git a/modules/Microsoft.Sql/servers/.test/nestedTemplates/min.parameters.nested.bicep b/modules/Microsoft.Sql/servers/.test/nestedTemplates/min.parameters.nested.bicep new file mode 100644 index 0000000000..b3a1b11a15 --- /dev/null +++ b/modules/Microsoft.Sql/servers/.test/nestedTemplates/min.parameters.nested.bicep @@ -0,0 +1,13 @@ +@description('Required. The name of the managed identity to create') +param managedIdentityName string + +@description('Optional. The location to deploy to') +param location string = resourceGroup().location + +resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { + name: managedIdentityName + location: location +} + +@description('The principal ID of the created managed identity') +output managedIdentityPrincipalId string = managedIdentity.properties.principalId diff --git a/modules/Microsoft.Sql/servers/.test/parameters.json b/modules/Microsoft.Sql/servers/.test/parameters.json deleted file mode 100644 index 13ec2f832b..0000000000 --- a/modules/Microsoft.Sql/servers/.test/parameters.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-sqlsrv-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "administratorLogin": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/<>/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "administratorLogin" - } - }, - "administratorLoginPassword": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/<>/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "administratorLoginPassword" - } - }, - "location": { - "value": "westeurope" - }, - "minimalTlsVersion": { - "value": "1.2" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "vulnerabilityAssessmentsObj": { - "value": { - "name": "default", - "emailSubscriptionAdmins": true, - "recurringScansIsEnabled": true, - "recurringScansEmails": [ - "test1@contoso.com", - "test2@contoso.com" - ], - "vulnerabilityAssessmentsStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - } - }, - "databases": { - "value": [ - { - "name": "<>-az-sqldb-x-001", - "collation": "SQL_Latin1_General_CP1_CI_AS", - "skuTier": "BusinessCritical", - "skuName": "BC_Gen5", - "skuCapacity": 12, - "skuFamily": "Gen5", - "maxSizeBytes": 34359738368, - "licenseType": "LicenseIncluded", - "diagnosticLogsRetentionInDays": 7, - "diagnosticStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", - "diagnosticWorkspaceId": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001", - "diagnosticEventHubAuthorizationRuleId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", - "diagnosticEventHubName": "adp-<>-az-evh-x-001" - } - ] - }, - "firewallRules": { - "value": [ - { - "name": "AllowAllWindowsAzureIps", - "endIpAddress": "0.0.0.0", - "startIpAddress": "0.0.0.0" - } - ] - }, - "securityAlertPolicies": { - "value": [ - { - "name": "Default", - "state": "Enabled", - "emailAccountAdmins": true - } - ] - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "privateEndpoints": { - "value": [ - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "sqlServer" - } - ] - } - } -} diff --git a/modules/Microsoft.Sql/servers/databases/readme.md b/modules/Microsoft.Sql/servers/databases/readme.md index 6d735cb721..5ce42a92cb 100644 --- a/modules/Microsoft.Sql/servers/databases/readme.md +++ b/modules/Microsoft.Sql/servers/databases/readme.md @@ -7,6 +7,7 @@ This module deploys an Azure SQL Server. - [Resource types](#Resource-types) - [Parameters](#Parameters) - [Outputs](#Outputs) +- [Deployment examples](#Deployment-examples) ## Resource types @@ -109,3 +110,9 @@ tags: { | `name` | string | The name of the deployed database. | | `resourceGroupName` | string | The resource group of the deployed database. | | `resourceId` | string | The resource ID of the deployed database. | + +## Deployment examples + +The following module usage examples are retrieved from the content of the files hosted in the module's `.test` folder. + >**Note**: The name of each example is based on the name of the file from which it is taken. + >**Note**: Each example lists all the required parameters first, followed by the rest - each in alphabetical order. diff --git a/modules/Microsoft.Sql/servers/readme.md b/modules/Microsoft.Sql/servers/readme.md index 529b1018b5..13eedfea0f 100644 --- a/modules/Microsoft.Sql/servers/readme.md +++ b/modules/Microsoft.Sql/servers/readme.md @@ -318,50 +318,29 @@ privateEndpoints: [ ## Deployment examples -

Example 1

+The following module usage examples are retrieved from the content of the files hosted in the module's `.test` folder. + >**Note**: The name of each example is based on the name of the file from which it is taken. + >**Note**: Each example lists all the required parameters first, followed by the rest - each in alphabetical order. -
- -via JSON Parameter file - -```json -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-sqlsrv-admin-001" - }, - "administrators": { - "value": { - "azureADOnlyAuthentication": true, - "login": "myspn", - "sid": "<>", - "principalType": "Application", - "tenantId": "<>" - } - } - } -} -``` - -
+

Example 1: Admin

via Bicep module ```bicep -module servers './Microsoft.Sql/servers/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-servers' +module servers './Microsoft.Sql/servers/deploy.bicep = { + name: '${uniqueString(deployment().name)}-test-servers-sqladmin' params: { - name: '<>-az-sqlsrv-admin-001' + // Required parameters + name: 'carml-az-sqladmin-admin-001' + // Non-required parameters administrators: { azureADOnlyAuthentication: true login: 'myspn' - sid: '<>' principalType: 'Application' - tenantId: '<>' + sid: '' + tenantId: '' } } } @@ -370,204 +349,224 @@ module servers './Microsoft.Sql/servers/deploy.bicep' = {

-

Example 2

-
via JSON Parameter file ```json { - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-sqlsrv-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "administratorLogin": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/<>/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "administratorLogin" - } - }, - "administratorLoginPassword": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/<>/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "administratorLoginPassword" - } - }, - "location": { - "value": "westeurope" - }, - "minimalTlsVersion": { - "value": "1.2" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "vulnerabilityAssessmentsObj": { - "value": { - "name": "default", - "emailSubscriptionAdmins": true, - "recurringScansIsEnabled": true, - "recurringScansEmails": [ - "test1@contoso.com", - "test2@contoso.com" - ], - "vulnerabilityAssessmentsStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - } - }, - "databases": { - "value": [ - { - "name": "<>-az-sqldb-x-001", - "collation": "SQL_Latin1_General_CP1_CI_AS", - "skuTier": "BusinessCritical", - "skuName": "BC_Gen5", - "skuCapacity": 12, - "skuFamily": "Gen5", - "maxSizeBytes": 34359738368, - "licenseType": "LicenseIncluded", - "diagnosticLogsRetentionInDays": 7, - "diagnosticStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", - "diagnosticWorkspaceId": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001", - "diagnosticEventHubAuthorizationRuleId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", - "diagnosticEventHubName": "adp-<>-az-evh-x-001" - } - ] - }, - "firewallRules": { - "value": [ - { - "name": "AllowAllWindowsAzureIps", - "endIpAddress": "0.0.0.0", - "startIpAddress": "0.0.0.0" - } - ] - }, - "securityAlertPolicies": { - "value": [ - { - "name": "Default", - "state": "Enabled", - "emailAccountAdmins": true - } - ] - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "privateEndpoints": { - "value": [ - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "sqlServer" - } - ] - } + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + // Required parameters + "name": { + "value": "carml-az-sqladmin-admin-001" + }, + // Non-required parameters + "administrators": { + "value": { + "azureADOnlyAuthentication": true, + "login": "myspn", + "principalType": "Application", + "sid": "", + "tenantId": "" + } } + } } ```
+

+ +

Example 2: Default

via Bicep module ```bicep -resource kv1 'Microsoft.KeyVault/vaults@2019-09-01' existing = { - name: 'adp-<>-az-kv-x-001' - scope: resourceGroup('<>','<>') -} - -module servers './Microsoft.Sql/servers/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-servers' +module servers './Microsoft.Sql/servers/deploy.bicep = { + name: '${uniqueString(deployment().name)}-test-servers-sqlpar' params: { - name: '<>-az-sqlsrv-x-001' - lock: 'CanNotDelete' - administratorLogin: kv1.getSecret('administratorLogin') - administratorLoginPassword: kv1.getSecret('administratorLoginPassword') - location: 'westeurope' - minimalTlsVersion: '1.2' - roleAssignments: [ - { - roleDefinitionIdOrName: 'Reader' - principalIds: [ - '<>' - ] - } - ] - vulnerabilityAssessmentsObj: { - name: 'default' - emailSubscriptionAdmins: true - recurringScansIsEnabled: true - recurringScansEmails: [ - 'test1@contoso.com' - 'test2@contoso.com' - ] - vulnerabilityAssessmentsStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' - } + // Required parameters + name: 'carml-az-sqlpar-x-001' + // Non-required parameters + administratorLogin: 'adminUserName' + administratorLoginPassword: '' databases: [ { - name: '<>-az-sqldb-x-001' collation: 'SQL_Latin1_General_CP1_CI_AS' - skuTier: 'BusinessCritical' - skuName: 'BC_Gen5' + diagnosticEventHubAuthorizationRuleId: '' + diagnosticEventHubName: '' + diagnosticLogsRetentionInDays: 7 + diagnosticStorageAccountId: '' + diagnosticWorkspaceId: '' + licenseType: 'LicenseIncluded' + maxSizeBytes: 34359738368 + name: 'carml-az-sqlpardb-x-001' skuCapacity: 12 skuFamily: 'Gen5' - maxSizeBytes: 34359738368 - licenseType: 'LicenseIncluded' - diagnosticLogsRetentionInDays: 7 - diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' - diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' - diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' - diagnosticEventHubName: 'adp-<>-az-evh-x-001' + skuName: 'BC_Gen5' + skuTier: 'BusinessCritical' } ] firewallRules: [ { - name: 'AllowAllWindowsAzureIps' endIpAddress: '0.0.0.0' + name: 'AllowAllWindowsAzureIps' startIpAddress: '0.0.0.0' } ] + location: '' + lock: 'CanNotDelete' + minimalTlsVersion: '1.2' + privateEndpoints: [ + { + service: 'sqlServer' + subnetResourceId: '' + } + ] + roleAssignments: [ + { + principalIds: [ + '' + ] + roleDefinitionIdOrName: 'Reader' + } + ] securityAlertPolicies: [ { + emailAccountAdmins: true name: 'Default' state: 'Enabled' - emailAccountAdmins: true } ] systemAssignedIdentity: true userAssignedIdentities: { - '/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} + '${resourceGroupResources.outputs.managedIdentitResourceId}': '<${resourceGroupResources.outputs.managedIdentitResourceId}>' } - privateEndpoints: [ - { - subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints' - service: 'sqlServer' + vulnerabilityAssessmentsObj: { + emailSubscriptionAdmins: true + name: 'default' + recurringScansEmails: [ + 'test1@contoso.com' + 'test2@contoso.com' + ] + recurringScansIsEnabled: true + vulnerabilityAssessmentsStorageAccountId: '' + } + } +} +``` + +
+

+ +

+ +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + // Required parameters + "name": { + "value": "carml-az-sqlpar-x-001" + }, + // Non-required parameters + "administratorLogin": { + "value": "adminUserName" + }, + "administratorLoginPassword": { + "value": "" + }, + "databases": { + "value": [ + { + "collation": "SQL_Latin1_General_CP1_CI_AS", + "diagnosticEventHubAuthorizationRuleId": "", + "diagnosticEventHubName": "", + "diagnosticLogsRetentionInDays": 7, + "diagnosticStorageAccountId": "", + "diagnosticWorkspaceId": "", + "licenseType": "LicenseIncluded", + "maxSizeBytes": 34359738368, + "name": "carml-az-sqlpardb-x-001", + "skuCapacity": 12, + "skuFamily": "Gen5", + "skuName": "BC_Gen5", + "skuTier": "BusinessCritical" + } + ] + }, + "firewallRules": { + "value": [ + { + "endIpAddress": "0.0.0.0", + "name": "AllowAllWindowsAzureIps", + "startIpAddress": "0.0.0.0" + } + ] + }, + "location": { + "value": "" + }, + "lock": { + "value": "CanNotDelete" + }, + "minimalTlsVersion": { + "value": "1.2" + }, + "privateEndpoints": { + "value": [ + { + "service": "sqlServer", + "subnetResourceId": "" + } + ] + }, + "roleAssignments": { + "value": [ + { + "principalIds": [ + "" + ], + "roleDefinitionIdOrName": "Reader" + } + ] + }, + "securityAlertPolicies": { + "value": [ + { + "emailAccountAdmins": true, + "name": "Default", + "state": "Enabled" + } + ] + }, + "systemAssignedIdentity": { + "value": true + }, + "userAssignedIdentities": { + "value": { + "${resourceGroupResources.outputs.managedIdentitResourceId}": "<${resourceGroupResources.outputs.managedIdentitResourceId}>" } - ] + }, + "vulnerabilityAssessmentsObj": { + "value": { + "emailSubscriptionAdmins": true, + "name": "default", + "recurringScansEmails": [ + "test1@contoso.com", + "test2@contoso.com" + ], + "recurringScansIsEnabled": true, + "vulnerabilityAssessmentsStorageAccountId": "" + } + } } } ``` From f8a23ddb459ad4cd607725730f721380536425e4 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 13 Jul 2022 08:22:45 +0200 Subject: [PATCH 097/274] Updated pipeline --- .github/workflows/ms.sql.servers.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ms.sql.servers.yml b/.github/workflows/ms.sql.servers.yml index b3fc8ef823..990f959325 100644 --- a/.github/workflows/ms.sql.servers.yml +++ b/.github/workflows/ms.sql.servers.yml @@ -102,8 +102,7 @@ jobs: - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' + templateFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' From 567f8566abb41925fe4a1c5df5839e38bb7a8227 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 13 Jul 2022 10:19:58 +0200 Subject: [PATCH 098/274] Added additional error handling --- .../New-TemplateDeployment.ps1 | 12 ++++ utilities/tools/Test-ModuleLocally.ps1 | 59 ++++++++++++++----- 2 files changed, 57 insertions(+), 14 deletions(-) diff --git a/utilities/pipelines/resourceDeployment/New-TemplateDeployment.ps1 b/utilities/pipelines/resourceDeployment/New-TemplateDeployment.ps1 index ea77202a1c..c882866976 100644 --- a/utilities/pipelines/resourceDeployment/New-TemplateDeployment.ps1 +++ b/utilities/pipelines/resourceDeployment/New-TemplateDeployment.ps1 @@ -252,6 +252,18 @@ function New-DeploymentWithParameterFile { $Stoploop = $true } } + if ($res.ProvisioningState -eq 'Failed') { + # Deployment failed but no exception was thrown. Hence we must do it for the command. + + $errorInputObject = @{ + DeploymentScope = $deploymentScope + DeploymentName = $deploymentName + ResourceGroupName = $resourceGroupName + } + $exceptionMessage = Get-ErrorMessageForScope @errorInputObject + + throw "Deployed failed with provisioning state [Failed]. Error Message: [$exceptionMessage]. Please review the Azure logs of deployment [$deploymentName] in scope [$deploymentScope] for further details." + } $Stoploop = $true } catch { if ($retryCount -ge $retryLimit) { diff --git a/utilities/tools/Test-ModuleLocally.ps1 b/utilities/tools/Test-ModuleLocally.ps1 index 70bec18ef0..985a75259c 100644 --- a/utilities/tools/Test-ModuleLocally.ps1 +++ b/utilities/tools/Test-ModuleLocally.ps1 @@ -187,10 +187,12 @@ function Test-ModuleLocally { # Find Test Parameter Files # ------------------------- - if ((Get-Item -Path $testFilePath) -is [System.IO.DirectoryInfo]) { - $ModuleParameterFiles = (Get-ChildItem -Path $testFilePath).FullName - } else { - $ModuleParameterFiles = @($testFilePath) + if ($TemplateFilePath -notlike '*.test*') { + if ((Get-Item -Path $testFilePath) -is [System.IO.DirectoryInfo]) { + $moduleTestFiles = (Get-ChildItem -Path $testFilePath).FullName + } else { + $moduleTestFiles = @($testFilePath) + } } # Replace parameter file tokens @@ -229,7 +231,9 @@ function Test-ModuleLocally { } # Invoke Token Replacement Functionality and Convert Tokens in Parameter Files - $ModuleParameterFiles | ForEach-Object { $null = Convert-TokensInFile @ConvertTokensInputs -FilePath $_ } + if ($moduleTestFiles) { + $moduleTestFiles | ForEach-Object { $null = Convert-TokensInFile @ConvertTokensInputs -FilePath $_ } + } # Deployment & Validation Testing # ------------------------------- @@ -241,14 +245,36 @@ function Test-ModuleLocally { managementGroupId = $ValidateOrDeployParameters.ManagementGroupId Verbose = $true } + + if (-not $moduleTestFiles) { + # Using new testing templates - adding special parameters + if ((Split-Path $TemplateFilePath -Extension) -eq '.bicep') { + $testTemplatePossibleParameters = (az bicep build --file $TemplateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable).parameters.Keys + } else { + $testTemplatePossibleParameters = ((Get-Content $TemplateFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys + } + + if (Test-Path $settingsFilePath) { + if ($testTemplatePossibleParameters -contains 'namePrefix') { + $functionInput['additionalParameters'] += @{ + namePrefix = ($Settings.parameterFileTokens.localTokens | Where-Object { $_.name -eq 'namePrefix' }).value + } + } + } + } + try { # Validate template # ----------------- if ($ValidationTest) { # Loop through test parameter files - foreach ($paramFilePath in $moduleParameterFiles) { - Write-Verbose ('Validating module [{0}] with parameter file [{1}]' -f $ModuleName, (Split-Path $paramFilePath -Leaf)) -Verbose - Test-TemplateDeployment @functionInput -ParameterFilePath $paramFilePath + if ($moduleTestFiles) { + foreach ($paramFilePath in $moduleTestFiles) { + Write-Verbose ('Validating module [{0}] with parameter file [{1}]' -f $ModuleName, (Split-Path $paramFilePath -Leaf)) -Verbose + Test-TemplateDeployment @functionInput -ParameterFilePath $paramFilePath + } + } else { + Test-TemplateDeployment @functionInput } } @@ -258,11 +284,16 @@ function Test-ModuleLocally { if ($DeploymentTest) { $functionInput['retryLimit'] = 1 # Overwrite default of 3 # Loop through test parameter files - foreach ($paramFilePath in $moduleParameterFiles) { - Write-Verbose ('Deploy module [{0}] with parameter file [{1}]' -f $ModuleName, (Split-Path $paramFilePath -Leaf)) -Verbose - if ($PSCmdlet.ShouldProcess(('Module [{0}] with parameter file [{1}]' -f $ModuleName, (Split-Path $paramFilePath -Leaf)), 'Deploy')) { - New-TemplateDeployment @functionInput -ParameterFilePath $paramFilePath + if ($moduleTestFiles) { + + foreach ($paramFilePath in $moduleTestFiles) { + Write-Verbose ('Deploy module [{0}] with parameter file [{1}]' -f $ModuleName, (Split-Path $paramFilePath -Leaf)) -Verbose + if ($PSCmdlet.ShouldProcess(('Module [{0}] with parameter file [{1}]' -f $ModuleName, (Split-Path $paramFilePath -Leaf)), 'Deploy')) { + New-TemplateDeployment @functionInput -ParameterFilePath $paramFilePath + } } + } else { + New-TemplateDeployment @functionInput } } } catch { @@ -270,10 +301,10 @@ function Test-ModuleLocally { } finally { # Restore parameter files # ----------------------- - if (($ValidationTest -or $DeploymentTest) -and $ValidateOrDeployParameters) { + if (($ValidationTest -or $DeploymentTest) -and $ValidateOrDeployParameters -and $moduleTestFiles) { # Replace Values with Tokens For Repo Updates Write-Verbose 'Restoring Tokens' - $ModuleParameterFiles | ForEach-Object { $null = Convert-TokensInFile @ConvertTokensInputs -FilePath $_ -SwapValueWithName $true } + $moduleTestFiles | ForEach-Object { $null = Convert-TokensInFile @ConvertTokensInputs -FilePath $_ -SwapValueWithName $true } } } } From 710d9f291065359ff1839c47447f65ea46c6d04a Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 13 Jul 2022 17:32:26 +0200 Subject: [PATCH 099/274] Fixed dpeloyment test --- .../Microsoft.Sql/servers/.test/default.bicep | 3 ++ .../default.parameters.nested.bicep | 31 +++++++++++-------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/modules/Microsoft.Sql/servers/.test/default.bicep b/modules/Microsoft.Sql/servers/.test/default.bicep index d00d4e625a..da003cc993 100644 --- a/modules/Microsoft.Sql/servers/.test/default.bicep +++ b/modules/Microsoft.Sql/servers/.test/default.bicep @@ -135,4 +135,7 @@ module testDeployment '../deploy.bicep' = { } ] } + dependsOn: [ + keyVaultReference + ] } diff --git a/modules/Microsoft.Sql/servers/.test/nestedTemplates/default.parameters.nested.bicep b/modules/Microsoft.Sql/servers/.test/nestedTemplates/default.parameters.nested.bicep index 1243477f95..f90f984573 100644 --- a/modules/Microsoft.Sql/servers/.test/nestedTemplates/default.parameters.nested.bicep +++ b/modules/Microsoft.Sql/servers/.test/nestedTemplates/default.parameters.nested.bicep @@ -42,7 +42,7 @@ resource vnet 'Microsoft.Network/virtualNetworks@2022-01-01' = { } } -resource keyVault 'Microsoft.KeyVault/vaults@2021-11-01-preview' = { +resource keyVault 'Microsoft.KeyVault/vaults@2021-10-01' = { name: keyVaultName location: location properties: { @@ -51,18 +51,20 @@ resource keyVault 'Microsoft.KeyVault/vaults@2021-11-01-preview' = { name: 'standard' } tenantId: tenant().tenantId - accessPolicies: [ - { - objectId: managedIdentity.properties.principalId - permissions: { - secrets: [ - 'All' - ] - } - tenantId: tenant().tenantId - } - ] + enableRbacAuthorization: true + enabledForTemplateDeployment: true + } +} + +resource kvRoleAssignment 'Microsoft.Authorization/roleAssignments@2020-10-01-preview' = { + name: guid(keyVault.id, 'msi', 'Key Vault Secrets Officer') + properties: { + description: 'Secrets access for MSI' + roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b86a8fe4-44ce-4948-aee5-eccb2c155cd7') + principalId: managedIdentity.properties.principalId + principalType: 'ServicePrincipal' } + scope: keyVault } resource keyVaultdeploymentScript 'Microsoft.Resources/deploymentScripts@2020-10-01' = { @@ -91,13 +93,16 @@ resource keyVaultdeploymentScript 'Microsoft.Resources/deploymentScripts@2020-10 Set-AzKeyVaultSecret -VaultName $keyVaultName -Name $PasswordSecretName -SecretValue $password ''' } + dependsOn: [ + kvRoleAssignment + ] } @description('The principal ID of the created managed identity') output managedIdentityPrincipalId string = managedIdentity.properties.principalId @description('The resource ID of the created managed identity') -output managedIdentitResourceId string = managedIdentity.properties.principalId +output managedIdentitResourceId string = managedIdentity.id @description('The resource ID of the created virtual network subnet') output privateEndpointSubnetResourceId string = vnet.properties.subnets[0].id From 36f804e397f70a47fafae6fd43903902e6f57322 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 13 Jul 2022 17:41:30 +0200 Subject: [PATCH 100/274] Updated docs --- modules/Microsoft.Sql/servers/readme.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/Microsoft.Sql/servers/readme.md b/modules/Microsoft.Sql/servers/readme.md index 12a326f21f..3c14140bc1 100644 --- a/modules/Microsoft.Sql/servers/readme.md +++ b/modules/Microsoft.Sql/servers/readme.md @@ -457,6 +457,9 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { vulnerabilityAssessmentsStorageAccountId: '' } } + dependsOn: [ + keyVaultReference + ] } ``` From d47137e0130fa6ec156f17f2a78dacd937f74f6c Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 13 Jul 2022 19:16:27 +0200 Subject: [PATCH 101/274] Adjusted publishing --- .../jobs.validateModuleDeployment.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index f03517b844..f8d274ffa9 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -364,10 +364,10 @@ jobs: $res = New-TemplateDeployment @functionInput -Verbose # Get deployment name - Write-Host ('##vso[task.setvariable variable=deploymentName]{0}' -f $res.deploymentName) - $deploymentName=$res.deploymentName + $deploymentName = $res.deploymentName Write-Verbose "Deployment name: $deploymentName" -Verbose - Write-Output ('##vso[task.setvariable variable={0};isOutput=true]{1}' -f 'deploymentName', $deploymentName) + Write-Host "##vso[task.setvariable variable=deploymentName]$deploymentName" + Write-Host "##vso[task.setvariable variable=deploymentName;isOutput=true]$deploymentName" # Populate further outputs $deploymentOutputHash=@{} @@ -379,7 +379,7 @@ jobs: $deploymentOutput = $deploymentOutputHash | ConvertTo-Json -Compress -Depth 100 Write-Verbose "Deployment output: $deploymentOutput" -Verbose - Write-Output ('##vso[task.setvariable variable={0};isOutput=true]{1}' -f 'deploymentOutput', $deploymentOutput) + Write-Output "##vso[task.setvariable variable=deploymentOutput;isOutput=true]$deploymentOutput" if ($res.ContainsKey('exception')) { # Happens only if there is an exception @@ -390,7 +390,7 @@ jobs: #------------------ - task: AzurePowerShell@5 displayName: 'Remove deployed resources via [${{ parameters.serviceConnection }}]' - condition: and(succeededOrFailed(), eq('${{ parameters.removeDeployment }}', 'true'), not(eq( '$(deploymentName)', '')), not(startsWith( '$(deploymentName)', '$(' ))) + condition: and(succeededOrFailed(), eq('${{ parameters.removeDeployment }}', 'True'), not(eq( '$(deploymentName)', '')), not(startsWith( '$(deploymentName)', '$(' ))) inputs: azureSubscription: ${{ parameters.serviceConnection }} azurePowerShellVersion: ${{ parameters.azurePowerShellVersion }} From ae7a619ca477cfd2f6c2b847f79c7a5b4be2ec89 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 13 Jul 2022 19:29:48 +0200 Subject: [PATCH 102/274] Adjusted var syntax --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index f8d274ffa9..4d8d457810 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -390,7 +390,7 @@ jobs: #------------------ - task: AzurePowerShell@5 displayName: 'Remove deployed resources via [${{ parameters.serviceConnection }}]' - condition: and(succeededOrFailed(), eq('${{ parameters.removeDeployment }}', 'True'), not(eq( '$(deploymentName)', '')), not(startsWith( '$(deploymentName)', '$(' ))) + condition: and(succeededOrFailed(), eq('${{ parameters.removeDeployment }}', 'True'), not(eq(variables['deploymentName'],'')), not(startsWith(variables['deploymentName'], 'variables[' ))) inputs: azureSubscription: ${{ parameters.serviceConnection }} azurePowerShellVersion: ${{ parameters.azurePowerShellVersion }} From 2b86826e0cf8230cc4132a10cb98c3ec8fc3da9b Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 13 Jul 2022 22:46:58 +0200 Subject: [PATCH 103/274] Added initial draft for virtualHub --- .github/workflows/ms.network.virtualhubs.yml | 3 +- .../servers/.test/default.bicep | 4 +- .../servers/.test/max.bicep | 4 +- .../servers/.test/min.bicep | 2 +- .../virtualHubs/.test/default.bicep | 80 +++++++++++++++++++ .../virtualHubs/.test/min.bicep | 52 ++++++++++++ .../virtualHubs/.test/min.parameters.json | 15 ---- .../default.parameters.nested.bicep | 40 ++++++++++ .../min.parameters.nested.bicep | 13 +++ .../virtualHubs/.test/parameters.json | 48 ----------- .../vpnSites/.test/default.bicep | 8 +- .../vpnSites/.test/min.bicep | 4 +- .../default.parameters.nested.bicep | 2 +- .../min.parameters.nested.bicep | 2 +- .../Microsoft.Sql/servers/.test/admin.bicep | 4 +- .../Microsoft.Sql/servers/.test/default.bicep | 6 +- 16 files changed, 204 insertions(+), 83 deletions(-) create mode 100644 modules/Microsoft.Network/virtualHubs/.test/default.bicep create mode 100644 modules/Microsoft.Network/virtualHubs/.test/min.bicep delete mode 100644 modules/Microsoft.Network/virtualHubs/.test/min.parameters.json create mode 100644 modules/Microsoft.Network/virtualHubs/.test/nestedTemplates/default.parameters.nested.bicep create mode 100644 modules/Microsoft.Network/virtualHubs/.test/nestedTemplates/min.parameters.nested.bicep delete mode 100644 modules/Microsoft.Network/virtualHubs/.test/parameters.json diff --git a/.github/workflows/ms.network.virtualhubs.yml b/.github/workflows/ms.network.virtualhubs.yml index bffaede924..1ba9e4d860 100644 --- a/.github/workflows/ms.network.virtualhubs.yml +++ b/.github/workflows/ms.network.virtualhubs.yml @@ -102,8 +102,7 @@ jobs: - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' + templateFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/modules/Microsoft.AnalysisServices/servers/.test/default.bicep b/modules/Microsoft.AnalysisServices/servers/.test/default.bicep index 89e5d50823..66364e0892 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/default.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/default.bicep @@ -32,7 +32,7 @@ module resourceGroupResources 'nestedTemplates/default.nested.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-${namePrefix}-az-msi-${serviceShort}-01' + managedIdentityName: 'dep-${namePrefix}-msi-${serviceShort}-01' } } @@ -58,7 +58,7 @@ module testDeployment '../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { - name: '${namePrefix}azas${serviceShort}001' + name: '${namePrefix}az${serviceShort}001' lock: 'CanNotDelete' skuName: 'S0' roleAssignments: [ diff --git a/modules/Microsoft.AnalysisServices/servers/.test/max.bicep b/modules/Microsoft.AnalysisServices/servers/.test/max.bicep index 282e6ca898..59ccc570f9 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/max.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/max.bicep @@ -32,7 +32,7 @@ module resourceGroupResources 'nestedTemplates/max.parameters.nested.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-${namePrefix}-az-msi-${serviceShort}-01' + managedIdentityName: 'dep-${namePrefix}-msi-${serviceShort}-01' } } @@ -58,7 +58,7 @@ module testDeployment '../deploy.bicep' = { scope: az.resourceGroup(resourceGroupName) name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { - name: '${namePrefix}azas${serviceShort}001' + name: '${namePrefix}az${serviceShort}001' lock: 'CanNotDelete' skuName: 'S0' skuCapacity: 1 diff --git a/modules/Microsoft.AnalysisServices/servers/.test/min.bicep b/modules/Microsoft.AnalysisServices/servers/.test/min.bicep index 5ca4220f72..f2ca5d69bc 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/min.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/min.bicep @@ -37,6 +37,6 @@ module testDeployment '../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { - name: '${namePrefix}azas${serviceShort}001' + name: '${namePrefix}az${serviceShort}001' } } diff --git a/modules/Microsoft.Network/virtualHubs/.test/default.bicep b/modules/Microsoft.Network/virtualHubs/.test/default.bicep new file mode 100644 index 0000000000..a0dc87a70f --- /dev/null +++ b/modules/Microsoft.Network/virtualHubs/.test/default.bicep @@ -0,0 +1,80 @@ +targetScope = 'subscription' + +// ========== // +// Parameters // +// ========== // + +// Resource Group +@description('Required. The name prefix to inject into all resource names') +param namePrefix string + +@description('Optional. The name of the resource group to deploy for a testing purposes') +@maxLength(90) +param resourceGroupName string = '${serviceShort}-ms.network-vpnSites-rg' + +@description('Optional. The location to deploy resources to') +param location string = deployment().location + +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') +param serviceShort string = 'vhpar' + +// =========== // +// Deployments // +// =========== // + +// General resources +// ================= +resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { + name: resourceGroupName + location: location +} + +module resourceGroupResources 'nestedTemplates/default.parameters.nested.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-paramNested' + params: { + virtualWANName: 'dep-${namePrefix}-vw-${serviceShort}-001' + virtualNetworkName: 'dep-${namePrefix}-vnet-${serviceShort}-001' + } +} + +// ============== // +// Test Execution // +// ============== // + +module testDeployment '../deploy.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name)}-test-virtualHub-${serviceShort}' + params: { + name: '${namePrefix}-${serviceShort}-001' + lock: 'CanNotDelete' + addressPrefix: '10.1.0.0/16' + virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId + hubRouteTables: [ + { + name: 'routeTable1' + } + ] + hubVirtualNetworkConnections: [ + { + name: 'connection1' + remoteVirtualNetworkId: resourceGroupResources.outputs.virtualNetworkResourceId + routingConfiguration: { + associatedRouteTable: { + id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/${namePrefix}-${serviceShort}-001/hubRouteTables/routeTable1' + } + propagatedRouteTables: { + ids: [ + { + id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/${namePrefix}-${serviceShort}-001/hubRouteTables/routeTable1' + } + ] + labels: [ + 'none' + ] + } + } + } + ] + } +} diff --git a/modules/Microsoft.Network/virtualHubs/.test/min.bicep b/modules/Microsoft.Network/virtualHubs/.test/min.bicep new file mode 100644 index 0000000000..517860f331 --- /dev/null +++ b/modules/Microsoft.Network/virtualHubs/.test/min.bicep @@ -0,0 +1,52 @@ +targetScope = 'subscription' + +// ========== // +// Parameters // +// ========== // + +// Resource Group +@description('Required. The name prefix to inject into all resource names') +param namePrefix string + +@description('Optional. The name of the resource group to deploy for a testing purposes') +@maxLength(90) +param resourceGroupName string = '${serviceShort}-ms.network-vpnSites-rg' + +@description('Optional. The location to deploy resources to') +param location string = deployment().location + +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') +param serviceShort string = 'vhmin' + +// =========== // +// Deployments // +// =========== // + +// General resources +// ================= +resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { + name: resourceGroupName + location: location +} + +module resourceGroupResources 'nestedTemplates/min.parameters.nested.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-paramNested' + params: { + virtualWANName: 'dep-${namePrefix}-vw-${serviceShort}-001' + } +} + +// ============== // +// Test Execution // +// ============== // + +module testDeployment '../deploy.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name)}-test-virtualHub-${serviceShort}' + params: { + name: '${namePrefix}-${serviceShort}-001' + addressPrefix: '10.0.0.0/16' + virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId + } +} diff --git a/modules/Microsoft.Network/virtualHubs/.test/min.parameters.json b/modules/Microsoft.Network/virtualHubs/.test/min.parameters.json deleted file mode 100644 index dbe2fa650a..0000000000 --- a/modules/Microsoft.Network/virtualHubs/.test/min.parameters.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-vhub-min-001" - }, - "addressPrefix": { - "value": "10.0.0.0/16" - }, - "virtualWanId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/adp-<>-az-vw-x-001" - } - } -} diff --git a/modules/Microsoft.Network/virtualHubs/.test/nestedTemplates/default.parameters.nested.bicep b/modules/Microsoft.Network/virtualHubs/.test/nestedTemplates/default.parameters.nested.bicep new file mode 100644 index 0000000000..8fab63beca --- /dev/null +++ b/modules/Microsoft.Network/virtualHubs/.test/nestedTemplates/default.parameters.nested.bicep @@ -0,0 +1,40 @@ +@description('Required. The name of the Virtual WAN to create') +param virtualWANName string + +@description('Required. The name of the Virtual Network to create') +param virtualNetworkName string + +@description('Optional. The location to deploy to') +param location string = resourceGroup().location + +resource virtualWan 'Microsoft.Network/virtualWans@2021-05-01' = { + name: virtualWANName + location: location +} + +resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { + name: virtualNetworkName + location: location + properties: { + addressSpace: { + addressPrefixes: [ + '10.0.0.0/16' + ] + } + subnets: [ + { + name: 'sxx-subnet-01' + properties: { + + addressPrefix: '10.0.0.0/24' + } + } + ] + } +} + +@description('The resource ID of the created Virtual WAN') +output virtualWWANResourceId string = virtualWan.id + +@description('The resource ID of the created Virtual Network') +output virtualNetworkResourceId string = virtualNetwork.id diff --git a/modules/Microsoft.Network/virtualHubs/.test/nestedTemplates/min.parameters.nested.bicep b/modules/Microsoft.Network/virtualHubs/.test/nestedTemplates/min.parameters.nested.bicep new file mode 100644 index 0000000000..32823c80bd --- /dev/null +++ b/modules/Microsoft.Network/virtualHubs/.test/nestedTemplates/min.parameters.nested.bicep @@ -0,0 +1,13 @@ +@description('Required. The name of the virtual WAN to create') +param virtualWANName string + +@description('Optional. The location to deploy to') +param location string = resourceGroup().location + +resource virtualWan 'Microsoft.Network/virtualWans@2021-05-01' = { + name: virtualWANName + location: location +} + +@description('The resource ID of the created Virtual WAN') +output virtualWWANResourceId string = virtualWan.id diff --git a/modules/Microsoft.Network/virtualHubs/.test/parameters.json b/modules/Microsoft.Network/virtualHubs/.test/parameters.json deleted file mode 100644 index 2660f1be93..0000000000 --- a/modules/Microsoft.Network/virtualHubs/.test/parameters.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-vhub-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "addressPrefix": { - "value": "10.1.0.0/16" - }, - "virtualWanId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/adp-<>-az-vw-x-001" - }, - "hubRouteTables": { - "value": [ - { - "name": "routeTable1" - } - ] - }, - "hubVirtualNetworkConnections": { - "value": [ - { - "name": "connection1", - "remoteVirtualNetworkId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-vhub", - "routingConfiguration": { - "associatedRouteTable": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vHub-x-001/hubRouteTables/routeTable1" - }, - "propagatedRouteTables": { - "ids": [ - { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vHub-x-001/hubRouteTables/routeTable1" - } - ], - "labels": [ - "none" - ] - } - } - } - ] - } - } -} diff --git a/modules/Microsoft.Network/vpnSites/.test/default.bicep b/modules/Microsoft.Network/vpnSites/.test/default.bicep index f06283c35c..edf350b7c9 100644 --- a/modules/Microsoft.Network/vpnSites/.test/default.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/default.bicep @@ -33,8 +33,8 @@ module resourceGroupResources 'nestedTemplates/default.parameters.nested.bicep' scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-${namePrefix}-az-msi-${serviceShort}-01' - virtualWANName: 'dep-${namePrefix}-az-vw-${serviceShort}-001' + managedIdentityName: 'dep-${namePrefix}-msi-${serviceShort}-01' + virtualWANName: 'dep-${namePrefix}-vw-${serviceShort}-001' } } @@ -46,7 +46,7 @@ module testDeployment '../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-vpnSites-${serviceShort}' params: { - name: '${namePrefix}-az-${serviceShort}-001' + name: '${namePrefix}-${serviceShort}-001' virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId lock: 'CanNotDelete' tags: { @@ -58,7 +58,7 @@ module testDeployment '../deploy.bicep' = { } vpnSiteLinks: [ { - name: '${namePrefix}-az-vSite-${serviceShort}-001' + name: '${namePrefix}-vSite-${serviceShort}-001' properties: { bgpProperties: { asn: 65010 diff --git a/modules/Microsoft.Network/vpnSites/.test/min.bicep b/modules/Microsoft.Network/vpnSites/.test/min.bicep index 6dccf4206e..d182c4d4b6 100644 --- a/modules/Microsoft.Network/vpnSites/.test/min.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/min.bicep @@ -33,7 +33,7 @@ module resourceGroupResources 'nestedTemplates/min.parameters.nested.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - virtualWANName: 'dep-${namePrefix}-az-vw-${serviceShort}-001' + virtualWANName: 'dep-${namePrefix}-vw-${serviceShort}-001' } } @@ -45,7 +45,7 @@ module testDeployment '../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-vpnSites-${serviceShort}' params: { - name: '${namePrefix}-az-${serviceShort}-001' + name: '${namePrefix}-${serviceShort}-001' virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId addressPrefixes: [ '10.0.0.0/16' diff --git a/modules/Microsoft.Network/vpnSites/.test/nestedTemplates/default.parameters.nested.bicep b/modules/Microsoft.Network/vpnSites/.test/nestedTemplates/default.parameters.nested.bicep index 4746417567..8fe419a3b7 100644 --- a/modules/Microsoft.Network/vpnSites/.test/nestedTemplates/default.parameters.nested.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/nestedTemplates/default.parameters.nested.bicep @@ -20,5 +20,5 @@ resource virtualWan 'Microsoft.Network/virtualWans@2021-05-01' = { @description('The principal ID of the created managed identity') output managedIdentityPrincipalId string = managedIdentity.properties.principalId -@description('The principal ID of the created managed identity') +@description('The resource ID of the created Virtual WAN') output virtualWWANResourceId string = virtualWan.id diff --git a/modules/Microsoft.Network/vpnSites/.test/nestedTemplates/min.parameters.nested.bicep b/modules/Microsoft.Network/vpnSites/.test/nestedTemplates/min.parameters.nested.bicep index ec7653d7a5..32823c80bd 100644 --- a/modules/Microsoft.Network/vpnSites/.test/nestedTemplates/min.parameters.nested.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/nestedTemplates/min.parameters.nested.bicep @@ -9,5 +9,5 @@ resource virtualWan 'Microsoft.Network/virtualWans@2021-05-01' = { location: location } -@description('The principal ID of the created managed identity') +@description('The resource ID of the created Virtual WAN') output virtualWWANResourceId string = virtualWan.id diff --git a/modules/Microsoft.Sql/servers/.test/admin.bicep b/modules/Microsoft.Sql/servers/.test/admin.bicep index a892a7f992..278a0ccbbc 100644 --- a/modules/Microsoft.Sql/servers/.test/admin.bicep +++ b/modules/Microsoft.Sql/servers/.test/admin.bicep @@ -33,7 +33,7 @@ module resourceGroupResources 'nestedTemplates/min.parameters.nested.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-${namePrefix}-az-msi-${serviceShort}-01' + managedIdentityName: 'dep-${namePrefix}-msi-${serviceShort}-01' } } @@ -45,7 +45,7 @@ module testDeployment '../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { - name: '${namePrefix}-az-${serviceShort}-admin-001' + name: '${namePrefix}-${serviceShort}-001' administrators: { azureADOnlyAuthentication: true login: 'myspn' diff --git a/modules/Microsoft.Sql/servers/.test/default.bicep b/modules/Microsoft.Sql/servers/.test/default.bicep index da003cc993..aaca047ee9 100644 --- a/modules/Microsoft.Sql/servers/.test/default.bicep +++ b/modules/Microsoft.Sql/servers/.test/default.bicep @@ -33,7 +33,7 @@ module resourceGroupResources 'nestedTemplates/default.parameters.nested.bicep' scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-${namePrefix}-az-msi-${serviceShort}-01' + managedIdentityName: 'dep-${namePrefix}-msi-${serviceShort}-01' virtualNetworkName: 'adp-${namePrefix}-vnet-${serviceShort}-01' deploymentScriptName: 'adp-${namePrefix}-ds-kv-${serviceShort}-01' keyVaultName: 'adp-${namePrefix}-kv-${serviceShort}-01' @@ -69,7 +69,7 @@ module testDeployment '../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { - name: '${namePrefix}-az-${serviceShort}-x-001' + name: '${namePrefix}-${serviceShort}-001' lock: 'CanNotDelete' administratorLogin: 'adminUserName' administratorLoginPassword: keyVaultReference.getSecret(resourceGroupResources.outputs.secretName) @@ -95,7 +95,7 @@ module testDeployment '../deploy.bicep' = { } databases: [ { - name: '${namePrefix}-az-${serviceShort}db-x-001' + name: '${namePrefix}-${serviceShort}db-001' collation: 'SQL_Latin1_General_CP1_CI_AS' skuTier: 'BusinessCritical' skuName: 'BC_Gen5' From 26377f04c767466f4b767a94124f2109ecd97c7d Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 13 Jul 2022 22:48:15 +0200 Subject: [PATCH 104/274] Updated readme --- .../Microsoft.Network/virtualHubs/readme.md | 222 +++++++++--------- 1 file changed, 117 insertions(+), 105 deletions(-) diff --git a/modules/Microsoft.Network/virtualHubs/readme.md b/modules/Microsoft.Network/virtualHubs/readme.md index 9d3449bbc6..1783a566e2 100644 --- a/modules/Microsoft.Network/virtualHubs/readme.md +++ b/modules/Microsoft.Network/virtualHubs/readme.md @@ -103,43 +103,52 @@ tags: { ## Deployment examples -

Example 1

+The following module usage examples are retrieved from the content of the files hosted in the module's `.test` folder. + >**Note**: The name of each example is based on the name of the file from which it is taken. + >**Note**: Each example lists all the required parameters first, followed by the rest - each in alphabetical order. -
- -via JSON Parameter file - -```json -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-vhub-min-001" - }, - "addressPrefix": { - "value": "10.0.0.0/16" - }, - "virtualWanId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/adp-<>-az-vw-x-001" - } - } -} -``` - -
+

Example 1: Default

via Bicep module ```bicep -module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-virtualHubs' +module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { + name: '${uniqueString(deployment().name)}-test-virtualHub-vhpar' params: { - name: '<>-az-vhub-min-001' - addressPrefix: '10.0.0.0/16' - virtualWanId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/adp-<>-az-vw-x-001' + // Required parameters + addressPrefix: '10.1.0.0/16' + name: 'carml-vhpar-001' + virtualWanId: '' + // Non-required parameters + hubRouteTables: [ + { + name: 'routeTable1' + } + ] + hubVirtualNetworkConnections: [ + { + name: 'connection1' + remoteVirtualNetworkId: '' + routingConfiguration: { + associatedRouteTable: { + id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/carml-vhpar-001/hubRouteTables/routeTable1' + } + propagatedRouteTables: { + ids: [ + { + id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/carml-vhpar-001/hubRouteTables/routeTable1' + } + ] + labels: [ + 'none' + ] + } + } + } + ] + lock: 'CanNotDelete' } } ``` @@ -147,103 +156,106 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep' = {

-

Example 2

-
via JSON Parameter file ```json { - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-vhub-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "addressPrefix": { - "value": "10.1.0.0/16" - }, - "virtualWanId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/adp-<>-az-vw-x-001" - }, - "hubRouteTables": { - "value": [ - { - "name": "routeTable1" - } - ] - }, - "hubVirtualNetworkConnections": { - "value": [ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + // Required parameters + "addressPrefix": { + "value": "10.1.0.0/16" + }, + "name": { + "value": "carml-vhpar-001" + }, + "virtualWanId": { + "value": "" + }, + // Non-required parameters + "hubRouteTables": { + "value": [ + { + "name": "routeTable1" + } + ] + }, + "hubVirtualNetworkConnections": { + "value": [ + { + "name": "connection1", + "remoteVirtualNetworkId": "", + "routingConfiguration": { + "associatedRouteTable": { + "id": "${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/carml-vhpar-001/hubRouteTables/routeTable1" + }, + "propagatedRouteTables": { + "ids": [ { - "name": "connection1", - "remoteVirtualNetworkId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-vhub", - "routingConfiguration": { - "associatedRouteTable": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vHub-x-001/hubRouteTables/routeTable1" - }, - "propagatedRouteTables": { - "ids": [ - { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vHub-x-001/hubRouteTables/routeTable1" - } - ], - "labels": [ - "none" - ] - } - } + "id": "${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/carml-vhpar-001/hubRouteTables/routeTable1" } - ] + ], + "labels": [ + "none" + ] + } + } } + ] + }, + "lock": { + "value": "CanNotDelete" } + } } ```
+

+ +

Example 2: Min

via Bicep module ```bicep -module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-virtualHubs' +module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { + name: '${uniqueString(deployment().name)}-test-virtualHub-vhmin' params: { - name: '<>-az-vhub-x-001' - lock: 'CanNotDelete' - addressPrefix: '10.1.0.0/16' - virtualWanId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/adp-<>-az-vw-x-001' - hubRouteTables: [ - { - name: 'routeTable1' - } - ] - hubVirtualNetworkConnections: [ - { - name: 'connection1' - remoteVirtualNetworkId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-vhub' - routingConfiguration: { - associatedRouteTable: { - id: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vHub-x-001/hubRouteTables/routeTable1' - } - propagatedRouteTables: { - ids: [ - { - id: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vHub-x-001/hubRouteTables/routeTable1' - } - ] - labels: [ - 'none' - ] - } - } - } - ] + // Required parameters + addressPrefix: '10.0.0.0/16' + name: 'carml-vhmin-001' + virtualWanId: '' + } +} +``` + +
+

+ +

+ +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + // Required parameters + "addressPrefix": { + "value": "10.0.0.0/16" + }, + "name": { + "value": "carml-vhmin-001" + }, + "virtualWanId": { + "value": "" + } } } ``` From 6afb26baf2b337897ed8bd257012d6fc707a20d9 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 13 Jul 2022 23:08:15 +0200 Subject: [PATCH 105/274] Minor updates --- modules/Microsoft.Network/virtualHubs/.test/default.bicep | 2 +- modules/Microsoft.Network/virtualHubs/.test/min.bicep | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/Microsoft.Network/virtualHubs/.test/default.bicep b/modules/Microsoft.Network/virtualHubs/.test/default.bicep index a0dc87a70f..05caea997e 100644 --- a/modules/Microsoft.Network/virtualHubs/.test/default.bicep +++ b/modules/Microsoft.Network/virtualHubs/.test/default.bicep @@ -10,7 +10,7 @@ param namePrefix string @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.network-vpnSites-rg' +param resourceGroupName string = '${serviceShort}-ms.network-virtualHub-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location diff --git a/modules/Microsoft.Network/virtualHubs/.test/min.bicep b/modules/Microsoft.Network/virtualHubs/.test/min.bicep index 517860f331..7a40936c07 100644 --- a/modules/Microsoft.Network/virtualHubs/.test/min.bicep +++ b/modules/Microsoft.Network/virtualHubs/.test/min.bicep @@ -10,7 +10,7 @@ param namePrefix string @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.network-vpnSites-rg' +param resourceGroupName string = '${serviceShort}-ms.network-virtualHub-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location From 39b987e7823bf1e88b4297ac454028bc325ece31 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 13 Jul 2022 23:11:22 +0200 Subject: [PATCH 106/274] Updated readmes --- .../servers/readme.md | 184 ++++++++++-------- modules/Microsoft.Network/vpnSites/readme.md | 142 +++++++------- modules/Microsoft.Sql/servers/readme.md | 12 +- 3 files changed, 181 insertions(+), 157 deletions(-) diff --git a/modules/Microsoft.AnalysisServices/servers/readme.md b/modules/Microsoft.AnalysisServices/servers/readme.md index 076b78fb67..8e7e66b4d9 100644 --- a/modules/Microsoft.AnalysisServices/servers/readme.md +++ b/modules/Microsoft.AnalysisServices/servers/readme.md @@ -157,6 +157,10 @@ roleAssignments: [ ## Deployment examples +The following module usage examples are retrieved from the content of the files hosted in the module's `.test` folder. + >**Note**: The name of each example is based on the name of the file from which it is taken. + >**Note**: Each example lists all the required parameters first, followed by the rest - each in alphabetical order. +

Example 1: Default

@@ -167,22 +171,24 @@ roleAssignments: [ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-servers-aspar' params: { - name: 'carmlazasaspar001' + // Required parameters + name: 'carmlazaspar001' + // Non-required parameters + diagnosticEventHubAuthorizationRuleId: '' + diagnosticEventHubName: '' + diagnosticLogsRetentionInDays: 7 + diagnosticStorageAccountId: '' + diagnosticWorkspaceId: '' lock: 'CanNotDelete' - skuName: 'S0' roleAssignments: [ { - roleDefinitionIdOrName: 'Reader' principalIds: [ - resourceGroupResources.outputs.managedIdentityPrincipalId + '' ] + roleDefinitionIdOrName: 'Reader' } ] - diagnosticLogsRetentionInDays: 7 - diagnosticStorageAccountId: diagnosticDependencies.outputs.storageAccountResourceId - diagnosticWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId - diagnosticEventHubAuthorizationRuleId: diagnosticDependencies.outputs.eventHubAuthorizationRuleId - diagnosticEventHubName: diagnosticDependencies.outputs.eventHubNamespaceEventHubName + skuName: 'S0' } } ``` @@ -199,24 +205,16 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { + // Required parameters "name": { - "value": "carmlazasaspar001" + "value": "carmlazaspar001" }, - "lock": { - "value": "CanNotDelete" - }, - "skuName": { - "value": "S0" + // Non-required parameters + "diagnosticEventHubAuthorizationRuleId": { + "value": "" }, - "roleAssignments": { - "value": [ - { - "principalIds": [ - "managedIdentityPrincipalId" - ], - "roleDefinitionIdOrName": "Reader" - } - ] + "diagnosticEventHubName": { + "value": "" }, "diagnosticLogsRetentionInDays": { "value": 7 @@ -227,11 +225,21 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { "diagnosticWorkspaceId": { "value": "" }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "" + "lock": { + "value": "CanNotDelete" }, - "diagnosticEventHubName": { - "value": "" + "roleAssignments": { + "value": [ + { + "principalIds": [ + "" + ], + "roleDefinitionIdOrName": "Reader" + } + ] + }, + "skuName": { + "value": "S0" } } } @@ -250,40 +258,42 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-servers-asmax' params: { - name: 'carmlazasasmax001' - lock: 'CanNotDelete' - skuName: 'S0' - skuCapacity: 1 + // Required parameters + name: 'carmlazasmax001' + // Non-required parameters + diagnosticEventHubAuthorizationRuleId: '' + diagnosticEventHubName: '' + diagnosticLogCategoriesToEnable: [ + 'Engine' + 'Service' + ] + diagnosticLogsRetentionInDays: 7 + diagnosticMetricsToEnable: [ + 'AllMetrics' + ] + diagnosticStorageAccountId: '' + diagnosticWorkspaceId: '' firewallSettings: { + enablePowerBIService: true firewallRules: [ { firewallRuleName: 'AllowFromAll' - rangeStart: '0.0.0.0' rangeEnd: '255.255.255.255' + rangeStart: '0.0.0.0' } ] - enablePowerBIService: true } + lock: 'CanNotDelete' roleAssignments: [ { - roleDefinitionIdOrName: 'Reader' principalIds: [ - resourceGroupResources.outputs.managedIdentityPrincipalId + '' ] + roleDefinitionIdOrName: 'Reader' } ] - diagnosticLogsRetentionInDays: 7 - diagnosticStorageAccountId: diagnosticDependencies.outputs.storageAccountResourceId - diagnosticWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId - diagnosticEventHubAuthorizationRuleId: diagnosticDependencies.outputs.eventHubAuthorizationRuleId - diagnosticEventHubName: diagnosticDependencies.outputs.eventHubNamespaceEventHubName - diagnosticLogCategoriesToEnable: [ - 'Engine' - 'Service' - ] - diagnosticMetricsToEnable: [ - 'AllMetrics' - ] + skuCapacity: 1 + skuName: 'S0' } } ``` @@ -300,65 +310,67 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { + // Required parameters "name": { - "value": "carmlazasasmax001" + "value": "carmlazasmax001" }, - "lock": { - "value": "CanNotDelete" + // Non-required parameters + "diagnosticEventHubAuthorizationRuleId": { + "value": "" }, - "skuName": { - "value": "S0" + "diagnosticEventHubName": { + "value": "" }, - "skuCapacity": { - "value": 1 + "diagnosticLogCategoriesToEnable": { + "value": [ + "Engine", + "Service" + ] + }, + "diagnosticLogsRetentionInDays": { + "value": 7 + }, + "diagnosticMetricsToEnable": { + "value": [ + "AllMetrics" + ] + }, + "diagnosticStorageAccountId": { + "value": "" + }, + "diagnosticWorkspaceId": { + "value": "" }, "firewallSettings": { "value": { + "enablePowerBIService": true, "firewallRules": [ { + "firewallRuleName": "AllowFromAll", "rangeEnd": "255.255.255.255", - "rangeStart": "0.0.0.0", - "firewallRuleName": "AllowFromAll" + "rangeStart": "0.0.0.0" } - ], - "enablePowerBIService": true + ] } }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { "principalIds": [ - "managedIdentityPrincipalId" + "" ], "roleDefinitionIdOrName": "Reader" } ] }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "" - }, - "diagnosticWorkspaceId": { - "value": "" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "" - }, - "diagnosticEventHubName": { - "value": "" - }, - "diagnosticLogCategoriesToEnable": { - "value": [ - "Engine", - "Service" - ] + "skuCapacity": { + "value": 1 }, - "diagnosticMetricsToEnable": { - "value": [ - "AllMetrics" - ] + "skuName": { + "value": "S0" } } } @@ -377,7 +389,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-servers-asmin' params: { - name: 'carmlazasasmin001' + name: 'carmlazasmin001' } } ``` @@ -395,7 +407,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "carmlazasasmin001" + "value": "carmlazasmin001" } } } diff --git a/modules/Microsoft.Network/vpnSites/readme.md b/modules/Microsoft.Network/vpnSites/readme.md index 9eed9fff3a..a641daf687 100644 --- a/modules/Microsoft.Network/vpnSites/readme.md +++ b/modules/Microsoft.Network/vpnSites/readme.md @@ -322,6 +322,10 @@ roleAssignments: [ ## Deployment examples +The following module usage examples are retrieved from the content of the files hosted in the module's `.test` folder. + >**Note**: The name of each example is based on the name of the file from which it is taken. + >**Note**: Each example lists all the required parameters first, followed by the rest - each in alphabetical order. +

Example 1: Default

@@ -332,19 +336,36 @@ roleAssignments: [ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-vpnSites-vsipar' params: { - name: 'carml-az-vsipar-001' - virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId + // Required parameters + name: 'carml-vsipar-001' + virtualWanId: '' + // Non-required parameters + deviceProperties: { + linkSpeedInMbps: 0 + } lock: 'CanNotDelete' + o365Policy: { + breakOutCategories: { + allow: true + default: true + optimize: true + } + } + roleAssignments: [ + { + principalIds: [ + '' + ] + roleDefinitionIdOrName: 'Reader' + } + ] tags: { tagA: 'valueA' tagB: 'valueB' } - deviceProperties: { - linkSpeedInMbps: 0 - } vpnSiteLinks: [ { - name: 'carml-az-vSite-vsipar-001' + name: 'carml-vSite-vsipar-001' properties: { bgpProperties: { asn: 65010 @@ -372,21 +393,6 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { } } ] - o365Policy: { - breakOutCategories: { - optimize: true - allow: true - default: true - } - } - roleAssignments: [ - { - roleDefinitionIdOrName: 'Reader' - principalIds: [ - resourceGroupResources.outputs.managedIdentityPrincipalId - ] - } - ] } } ``` @@ -403,74 +409,76 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { + // Required parameters "name": { - "value": "carml-az-vsipar-001" + "value": "carml-vsipar-001" }, "virtualWanId": { "value": "" }, + // Non-required parameters + "deviceProperties": { + "value": { + "linkSpeedInMbps": 0 + } + }, "lock": { "value": "CanNotDelete" }, - "tags": { + "o365Policy": { "value": { - "tagA": "valueA", - "tagB": "valueB" + "breakOutCategories": { + "allow": true, + "default": true, + "optimize": true + } } }, - "deviceProperties": { + "roleAssignments": { + "value": [ + { + "principalIds": [ + "" + ], + "roleDefinitionIdOrName": "Reader" + } + ] + }, + "tags": { "value": { - "linkSpeedInMbps": 0 + "tagA": "valueA", + "tagB": "valueB" } }, "vpnSiteLinks": { "value": [ { + "name": "carml-vSite-vsipar-001", "properties": { + "bgpProperties": { + "asn": 65010, + "bgpPeeringAddress": "1.1.1.1" + }, + "ipAddress": "1.2.3.4", "linkProperties": { "linkProviderName": "contoso", "linkSpeedInMbps": 5 - }, - "bgpProperties": { - "bgpPeeringAddress": "1.1.1.1", - "asn": 65010 - }, - "ipAddress": "1.2.3.4" - }, - "name": "carml-az-vSite-vsipar-001" + } + } }, { + "name": "Link1", "properties": { + "bgpProperties": { + "asn": 65020, + "bgpPeeringAddress": "192.168.1.0" + }, + "ipAddress": "2.2.2.2", "linkProperties": { "linkProviderName": "contoso", "linkSpeedInMbps": 5 - }, - "bgpProperties": { - "bgpPeeringAddress": "192.168.1.0", - "asn": 65020 - }, - "ipAddress": "2.2.2.2" - }, - "name": "Link1" - } - ] - }, - "o365Policy": { - "value": { - "breakOutCategories": { - "optimize": true, - "allow": true, - "default": true - } - } - }, - "roleAssignments": { - "value": [ - { - "principalIds": [ - "managedIdentityPrincipalId" - ], - "roleDefinitionIdOrName": "Reader" + } + } } ] } @@ -491,8 +499,10 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-vpnSites-vsimin' params: { - name: 'carml-az-vsimin-001' - virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId + // Required parameters + name: 'carml-vsimin-001' + virtualWanId: '' + // Non-required parameters addressPrefixes: [ '10.0.0.0/16' ] @@ -513,12 +523,14 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { + // Required parameters "name": { - "value": "carml-az-vsimin-001" + "value": "carml-vsimin-001" }, "virtualWanId": { "value": "" }, + // Non-required parameters "addressPrefixes": { "value": [ "10.0.0.0/16" diff --git a/modules/Microsoft.Sql/servers/readme.md b/modules/Microsoft.Sql/servers/readme.md index 3c14140bc1..74bbb7b297 100644 --- a/modules/Microsoft.Sql/servers/readme.md +++ b/modules/Microsoft.Sql/servers/readme.md @@ -333,7 +333,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-servers-sqladmin' params: { // Required parameters - name: 'carml-az-sqladmin-admin-001' + name: 'carml-sqladmin-001' // Non-required parameters administrators: { azureADOnlyAuthentication: true @@ -360,7 +360,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "carml-az-sqladmin-admin-001" + "value": "carml-sqladmin-001" }, // Non-required parameters "administrators": { @@ -390,7 +390,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-servers-sqlpar' params: { // Required parameters - name: 'carml-az-sqlpar-x-001' + name: 'carml-sqlpar-001' // Non-required parameters administratorLogin: 'adminUserName' administratorLoginPassword: '' @@ -404,7 +404,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { diagnosticWorkspaceId: '' licenseType: 'LicenseIncluded' maxSizeBytes: 34359738368 - name: 'carml-az-sqlpardb-x-001' + name: 'carml-sqlpardb-001' skuCapacity: 12 skuFamily: 'Gen5' skuName: 'BC_Gen5' @@ -477,7 +477,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "carml-az-sqlpar-x-001" + "value": "carml-sqlpar-001" }, // Non-required parameters "administratorLogin": { @@ -497,7 +497,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { "diagnosticWorkspaceId": "", "licenseType": "LicenseIncluded", "maxSizeBytes": 34359738368, - "name": "carml-az-sqlpardb-x-001", + "name": "carml-sqlpardb-001", "skuCapacity": 12, "skuFamily": "Gen5", "skuName": "BC_Gen5", From 2a162f919aaefded3557f722daf9c4e8d2f815ab Mon Sep 17 00:00:00 2001 From: MrMCake Date: Thu, 14 Jul 2022 19:48:28 +0200 Subject: [PATCH 107/274] Improved robustness --- utilities/tools/Set-ModuleReadMe.ps1 | 59 ++++++++++++++++------------ 1 file changed, 34 insertions(+), 25 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index b73aadbcfc..599ce34ba3 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -31,7 +31,7 @@ function Set-ResourceTypesSection { [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSReviewUnusedParameter', 'ResourceTypesToExclude', Justification = 'Variable used inside Where-Object block.')] param ( [Parameter(Mandatory)] - [hashtable] $TemplateFileContent, + [Hashtable] $TemplateFileContent, [Parameter(Mandatory)] [object[]] $ReadMeFileContent, @@ -118,7 +118,7 @@ function Set-ParametersSection { [CmdletBinding(SupportsShouldProcess)] param ( [Parameter(Mandatory)] - [hashtable] $TemplateFileContent, + [Hashtable] $TemplateFileContent, [Parameter(Mandatory)] [object[]] $ReadMeFileContent, @@ -187,8 +187,8 @@ function Set-ParametersSection { } # Add external single quotes to all default values of type string except for those using functions - $defaultValue = ($parameter.defaultValue -is [array]) ? ('[{0}]' -f ($parameter.defaultValue -join ', ')) : (($parameter.defaultValue -is [hashtable]) ? '{object}' : (($parameter.defaultValue -is [string]) -and ($parameter.defaultValue -notmatch '\[\w+\(.*\).*\]') ? '''' + $parameter.defaultValue + '''' : $parameter.defaultValue)) - $allowedValue = ($parameter.allowedValues -is [array]) ? ('[{0}]' -f ($parameter.allowedValues -join ', ')) : (($parameter.allowedValues -is [hashtable]) ? '{object}' : $parameter.allowedValues) + $defaultValue = ($parameter.defaultValue -is [array]) ? ('[{0}]' -f ($parameter.defaultValue -join ', ')) : (($parameter.defaultValue -is [Hashtable]) ? '{object}' : (($parameter.defaultValue -is [string]) -and ($parameter.defaultValue -notmatch '\[\w+\(.*\).*\]') ? '''' + $parameter.defaultValue + '''' : $parameter.defaultValue)) + $allowedValue = ($parameter.allowedValues -is [array]) ? ('[{0}]' -f ($parameter.allowedValues -join ', ')) : (($parameter.allowedValues -is [Hashtable]) ? '{object}' : $parameter.allowedValues) $description = $parameter.metadata.description.Replace("`r`n", '

').Replace("`n", '

') # Update parameter table content based on parameter category @@ -260,7 +260,7 @@ function Set-OutputsSection { [CmdletBinding(SupportsShouldProcess)] param ( [Parameter(Mandatory)] - [hashtable] $TemplateFileContent, + [Hashtable] $TemplateFileContent, [Parameter(Mandatory)] [object[]] $ReadMeFileContent, @@ -334,13 +334,16 @@ function Add-BicepParameterTypeComment { [CmdletBinding()] param ( [Parameter(Mandatory = $true)] + [AllowEmptyString()] [string] $BicepParams, - [Parameter(Mandatory = $true)] - [string[]] $AllParametersList, + [Parameter(Mandatory = $false)] + [AllowEmptyCollection()] + [string[]] $AllParametersList = @(), - [Parameter(Mandatory = $true)] - [string[]] $RequiredParametersList + [Parameter(Mandatory = $false)] + [AllowEmptyCollection()] + [string[]] $RequiredParametersList = @() ) if ($RequiredParametersList.Count -ge 1 -and $AllParametersList.Count -ge 2) { @@ -409,8 +412,9 @@ function Get-OrderedParametersJSON { [Parameter(Mandatory = $true)] [string] $ParametersJSON, - [Parameter(Mandatory = $true)] - [string[]] $RequiredParametersList + [Parameter(Mandatory = $false)] + [AllowEmptyCollection()] + [string[]] $RequiredParametersList = @() ) # Load used function(s) @@ -479,8 +483,9 @@ function Build-OrderedJSONObject { [Parameter(Mandatory = $true)] [string] $ParametersJSON, - [Parameter(Mandatory = $true)] - [string[]] $RequiredParametersList + [Parameter(Mandatory = $false)] + [AllowEmptyCollection()] + [string[]] $RequiredParametersList = @() ) # [1/9] Sort parameter alphabetically @@ -647,15 +652,16 @@ function ConvertTo-FormattedBicep { [CmdletBinding()] param ( [Parameter(Mandatory = $true)] - [hashtable] $JSONParameters, + [Hashtable] $JSONParameters, - [Parameter(Mandatory = $true)] - [string[]] $RequiredParametersList + [Parameter(Mandatory = $false)] + [AllowEmptyCollection()] + [string[]] $RequiredParametersList = @() ) # Remove 'value' parameter property, if any (e.g. when dealing with a classic parameter file) $JSONParametersWithoutValue = @{} - foreach ($parameter in $JSONParameters.Keys) { + foreach ($parameter in $JSONParameters.psbase.Keys) { if ($JSONParameters[$parameter].Keys -eq 'value') { $JSONParametersWithoutValue[$parameter] = $JSONParameters.$parameter.value } else { @@ -664,8 +670,11 @@ function ConvertTo-FormattedBicep { } # [1/4] Order parameters recursively - $orderedJSONParameters = Get-OrderedParametersJSON -ParametersJSON ($JSONParametersWithoutValue | ConvertTo-Json -Depth 99) -RequiredParametersList $RequiredParametersList - + if ($JSONParametersWithoutValue.Keys.Count -gt 0) { + $orderedJSONParameters = Get-OrderedParametersJSON -ParametersJSON ($JSONParametersWithoutValue | ConvertTo-Json -Depth 99) -RequiredParametersList $RequiredParametersList + } else { + $orderedJSONParameters = @{} + } # [2/4] Remove any JSON specific formatting $templateParameterObject = $orderedJSONParameters | ConvertTo-Json -Depth 99 if ($templateParameterObject -ne '{}') { @@ -733,7 +742,7 @@ function Set-DeploymentExamplesSection { [string] $TemplateFilePath, [Parameter(Mandatory)] - [hashtable] $TemplateFileContent, + [Hashtable] $TemplateFileContent, [Parameter(Mandatory = $true)] [object[]] $ReadMeFileContent, @@ -745,7 +754,7 @@ function Set-DeploymentExamplesSection { [bool] $addBicep = $true, [Parameter(Mandatory = $false)] - [hashtable] $ProjectSettings = @{}, + [Hashtable] $ProjectSettings = @{}, [Parameter(Mandatory = $false)] [string] $SectionStartIdentifier = '## Deployment examples' @@ -971,9 +980,9 @@ function Set-DeploymentExamplesSection { # If we're handling a classic ARM-JSON parameter file that includes replacing all 'references' with the link to one of the 'existing' Key Vault resources if ((ConvertFrom-Json $rawContent -Depth 99).'$schema' -like '*deploymentParameters*') { # If handling a classic parameter file - $JSONParameters = (ConvertFrom-Json $rawContent -Depth 99 -AsHashtable).parameters + $JSONParameters = (ConvertFrom-Json $rawContent -Depth 99 -AsHashtable -NoEnumerate).parameters $JSONParametersWithoutValue = @{} - foreach ($parameterName in $JSONParameters.Keys) { + foreach ($parameterName in $JSONParameters.psbase.Keys) { if ($JSONParameters[$parameterName].Keys -eq 'value') { $JSONParametersWithoutValue[$parameterName] = $JSONParameters[$parameterName]['value'] } else { @@ -993,7 +1002,7 @@ function Set-DeploymentExamplesSection { # [4/5] Convert the JSON parameters to a Bicep parameters block $conversionInputObject = @{ JSONParameters = $JSONParametersWithoutValue - RequiredParametersList = $RequiredParametersList + RequiredParametersList = $null -ne $RequiredParametersList ? $RequiredParametersList : @() } $bicepExample = ConvertTo-FormattedBicep @conversionInputObject @@ -1030,7 +1039,7 @@ function Set-DeploymentExamplesSection { # [1/2] Get all parameters from the parameter object and order them recursively $orderingInputObject = @{ ParametersJSON = (($jsonParameterContent | ConvertFrom-Json).parameters | ConvertTo-Json -Depth 99) - RequiredParametersList = $RequiredParametersList + RequiredParametersList = $null -ne $RequiredParametersList ? $RequiredParametersList : @() } $orderedJSONExample = Build-OrderedJSONObject @orderingInputObject From f84bedecbef9b570236a9c4c9c0f5189fd7fd1e8 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Thu, 14 Jul 2022 20:27:33 +0200 Subject: [PATCH 108/274] Renamed folder --- .../dependencyConstructs/diagnostic.dependencies.bicep | 0 modules/Microsoft.AnalysisServices/servers/.test/default.bicep | 2 +- modules/Microsoft.AnalysisServices/servers/.test/max.bicep | 2 +- modules/Microsoft.Sql/servers/.test/default.bicep | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) rename modules/{.global => .shared}/dependencyConstructs/diagnostic.dependencies.bicep (100%) diff --git a/modules/.global/dependencyConstructs/diagnostic.dependencies.bicep b/modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep similarity index 100% rename from modules/.global/dependencyConstructs/diagnostic.dependencies.bicep rename to modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep diff --git a/modules/Microsoft.AnalysisServices/servers/.test/default.bicep b/modules/Microsoft.AnalysisServices/servers/.test/default.bicep index 66364e0892..f49d58315e 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/default.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/default.bicep @@ -38,7 +38,7 @@ module resourceGroupResources 'nestedTemplates/default.nested.bicep' = { // Diagnostics // =========== -module diagnosticDependencies '../../../.global/dependencyConstructs/diagnostic.dependencies.bicep' = { +module diagnosticDependencies '../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-diagDep' params: { diff --git a/modules/Microsoft.AnalysisServices/servers/.test/max.bicep b/modules/Microsoft.AnalysisServices/servers/.test/max.bicep index 59ccc570f9..27c234a8ed 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/max.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/max.bicep @@ -38,7 +38,7 @@ module resourceGroupResources 'nestedTemplates/max.parameters.nested.bicep' = { // Diagnostics // =========== -module diagnosticDependencies '../../../.global/dependencyConstructs/diagnostic.dependencies.bicep' = { +module diagnosticDependencies '../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-diagDep' params: { diff --git a/modules/Microsoft.Sql/servers/.test/default.bicep b/modules/Microsoft.Sql/servers/.test/default.bicep index aaca047ee9..b5dca87915 100644 --- a/modules/Microsoft.Sql/servers/.test/default.bicep +++ b/modules/Microsoft.Sql/servers/.test/default.bicep @@ -49,7 +49,7 @@ resource keyVaultReference 'Microsoft.KeyVault/vaults@2021-10-01' existing = { // Diagnostics // =========== -module diagnosticDependencies '../../../.global/dependencyConstructs/diagnostic.dependencies.bicep' = { +module diagnosticDependencies '../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-diagDep' params: { From f2fee8cc8dd4efea48eaadf6f7688c3893e9a134 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Thu, 14 Jul 2022 20:29:41 +0200 Subject: [PATCH 109/274] Adjusted output --- .../pipelines/resourceDeployment/Test-TemplateDeployment.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/pipelines/resourceDeployment/Test-TemplateDeployment.ps1 b/utilities/pipelines/resourceDeployment/Test-TemplateDeployment.ps1 index 0601075f47..168d8ccb2d 100644 --- a/utilities/pipelines/resourceDeployment/Test-TemplateDeployment.ps1 +++ b/utilities/pipelines/resourceDeployment/Test-TemplateDeployment.ps1 @@ -121,7 +121,7 @@ function Test-TemplateDeployment { } if (-not (Get-AzResourceGroup -Name $resourceGroupName -ErrorAction 'SilentlyContinue')) { if ($PSCmdlet.ShouldProcess("Resource group [$resourceGroupName] in location [$location]", 'Create')) { - New-AzResourceGroup -Name $resourceGroupName -Location $location + $null = New-AzResourceGroup -Name $resourceGroupName -Location $location } } if ($PSCmdlet.ShouldProcess('Resource group level deployment', 'Test')) { From 47c40ce84528aae81c1255d04d6044f7329bef52 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Thu, 14 Jul 2022 21:58:56 +0200 Subject: [PATCH 110/274] Removed redundant dependency --- modules/Microsoft.Sql/servers/.test/default.bicep | 3 --- modules/Microsoft.Sql/servers/readme.md | 3 --- 2 files changed, 6 deletions(-) diff --git a/modules/Microsoft.Sql/servers/.test/default.bicep b/modules/Microsoft.Sql/servers/.test/default.bicep index b5dca87915..31eb8a8b0f 100644 --- a/modules/Microsoft.Sql/servers/.test/default.bicep +++ b/modules/Microsoft.Sql/servers/.test/default.bicep @@ -135,7 +135,4 @@ module testDeployment '../deploy.bicep' = { } ] } - dependsOn: [ - keyVaultReference - ] } diff --git a/modules/Microsoft.Sql/servers/readme.md b/modules/Microsoft.Sql/servers/readme.md index 74bbb7b297..d4f2345199 100644 --- a/modules/Microsoft.Sql/servers/readme.md +++ b/modules/Microsoft.Sql/servers/readme.md @@ -457,9 +457,6 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { vulnerabilityAssessmentsStorageAccountId: '' } } - dependsOn: [ - keyVaultReference - ] } ``` From 274d682643454a38eb306b2e270c8b91f3795c38 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 18:03:02 +0200 Subject: [PATCH 111/274] Regenerated docs --- .../servers/readme.md | 206 +++++++++--------- .../Microsoft.ApiManagement/service/readme.md | 14 +- .../configurationStores/readme.md | 16 +- .../automationAccounts/readme.md | 31 +-- modules/Microsoft.Cache/redis/readme.md | 126 ++++++----- .../virtualMachines/readme.md | 2 +- .../publicIPAddresses/readme.md | 2 +- .../publicIPPrefixes/readme.md | 2 +- .../Microsoft.Network/routeTables/readme.md | 2 +- .../Microsoft.Network/virtualHubs/readme.md | 118 +++++----- .../virtualNetworkGateways/readme.md | 2 +- modules/Microsoft.Network/vpnSites/readme.md | 130 +++++------ .../webPubSub/readme.md | 4 +- modules/Microsoft.Sql/servers/readme.md | 74 +++---- .../hostingEnvironments/readme.md | 14 +- 15 files changed, 344 insertions(+), 399 deletions(-) diff --git a/modules/Microsoft.AnalysisServices/servers/readme.md b/modules/Microsoft.AnalysisServices/servers/readme.md index d8cd7f817c..8e7e66b4d9 100644 --- a/modules/Microsoft.AnalysisServices/servers/readme.md +++ b/modules/Microsoft.AnalysisServices/servers/readme.md @@ -161,7 +161,94 @@ The following module usage examples are retrieved from the content of the files >**Note**: The name of each example is based on the name of the file from which it is taken. >**Note**: Each example lists all the required parameters first, followed by the rest - each in alphabetical order. -

Example 1: Max

+

Example 1: Default

+ +
+ +via Bicep module + +```bicep +module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { + name: '${uniqueString(deployment().name)}-test-servers-aspar' + params: { + // Required parameters + name: 'carmlazaspar001' + // Non-required parameters + diagnosticEventHubAuthorizationRuleId: '' + diagnosticEventHubName: '' + diagnosticLogsRetentionInDays: 7 + diagnosticStorageAccountId: '' + diagnosticWorkspaceId: '' + lock: 'CanNotDelete' + roleAssignments: [ + { + principalIds: [ + '' + ] + roleDefinitionIdOrName: 'Reader' + } + ] + skuName: 'S0' + } +} +``` + +
+

+ +

+ +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + // Required parameters + "name": { + "value": "carmlazaspar001" + }, + // Non-required parameters + "diagnosticEventHubAuthorizationRuleId": { + "value": "" + }, + "diagnosticEventHubName": { + "value": "" + }, + "diagnosticLogsRetentionInDays": { + "value": 7 + }, + "diagnosticStorageAccountId": { + "value": "" + }, + "diagnosticWorkspaceId": { + "value": "" + }, + "lock": { + "value": "CanNotDelete" + }, + "roleAssignments": { + "value": [ + { + "principalIds": [ + "" + ], + "roleDefinitionIdOrName": "Reader" + } + ] + }, + "skuName": { + "value": "S0" + } + } +} +``` + +
+

+ +

Example 2: Max

@@ -172,20 +259,20 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-servers-asmax' params: { // Required parameters - name: '<>azasweumax001' + name: 'carmlazasmax001' // Non-required parameters - diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' - diagnosticEventHubName: 'adp-<>-az-evh-x-001' + diagnosticEventHubAuthorizationRuleId: '' + diagnosticEventHubName: '' diagnosticLogCategoriesToEnable: [ 'Engine' 'Service' ] - diagnosticLogsRetentionInDays: 365 + diagnosticLogsRetentionInDays: 7 diagnosticMetricsToEnable: [ 'AllMetrics' ] - diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' - diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' + diagnosticStorageAccountId: '' + diagnosticWorkspaceId: '' firewallSettings: { enablePowerBIService: true firewallRules: [ @@ -225,14 +312,14 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "<>azasweumax001" + "value": "carmlazasmax001" }, // Non-required parameters "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" + "value": "" }, "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" + "value": "" }, "diagnosticLogCategoriesToEnable": { "value": [ @@ -241,7 +328,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { ] }, "diagnosticLogsRetentionInDays": { - "value": 365 + "value": 7 }, "diagnosticMetricsToEnable": { "value": [ @@ -249,10 +336,10 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { ] }, "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" + "value": "" }, "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" + "value": "" }, "firewallSettings": { "value": { @@ -273,7 +360,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { "value": [ { "principalIds": [ - "<>" + "" ], "roleDefinitionIdOrName": "Reader" } @@ -292,7 +379,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = {

-

Example 2: Min

+

Example 3: Min

@@ -320,94 +407,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "<>azasweumin001" - } - } -} -``` - -
-

- -

Example 3: Parameters

- -
- -via Bicep module - -```bicep -module servers './Microsoft.AnalysisServices/servers/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-servers' - params: { - // Required parameters - name: '<>azasweux001' - // Non-required parameters - diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' - diagnosticEventHubName: 'adp-<>-az-evh-x-001' - diagnosticLogsRetentionInDays: 7 - diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' - diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' - lock: 'CanNotDelete' - roleAssignments: [ - { - principalIds: [ - '<>' - ] - roleDefinitionIdOrName: 'Reader' - } - ] - skuName: 'S0' - } -} -``` - -
-

- -

- -via JSON Parameter file - -```json -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - // Required parameters - "name": { - "value": "<>azasweux001" - }, - // Non-required parameters - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "roleAssignments": { - "value": [ - { - "principalIds": [ - "<>" - ], - "roleDefinitionIdOrName": "Reader" - } - ] - }, - "skuName": { - "value": "S0" + "value": "carmlazasmin001" } } } diff --git a/modules/Microsoft.ApiManagement/service/readme.md b/modules/Microsoft.ApiManagement/service/readme.md index f77ca283df..59707bf500 100644 --- a/modules/Microsoft.ApiManagement/service/readme.md +++ b/modules/Microsoft.ApiManagement/service/readme.md @@ -352,12 +352,7 @@ module service './Microsoft.ApiManagement/service/deploy.bicep' = { secret: true } ] - policies: [ - { - format: 'xml' - value: ' ' - } - ] + policies: ' ' portalSettings: [ { name: 'signin' @@ -670,12 +665,7 @@ module service './Microsoft.ApiManagement/service/deploy.bicep' = { publisherName: '<>-az-amorg-x-001' // Non-required parameters lock: 'CanNotDelete' - policies: [ - { - format: 'xml' - value: ' ' - } - ] + policies: ' ' portalSettings: [ { name: 'signin' diff --git a/modules/Microsoft.AppConfiguration/configurationStores/readme.md b/modules/Microsoft.AppConfiguration/configurationStores/readme.md index 7651115a55..4c988e81e4 100644 --- a/modules/Microsoft.AppConfiguration/configurationStores/readme.md +++ b/modules/Microsoft.AppConfiguration/configurationStores/readme.md @@ -340,21 +340,7 @@ module configurationStores './Microsoft.AppConfiguration/configurationStores/dep diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' disableLocalAuth: false enablePurgeProtection: false - keyValues: [ - { - contentType: 'contentType' - name: 'keyName' - roleAssignments: [ - { - principalIds: [ - '<>' - ] - roleDefinitionIdOrName: 'Reader' - } - ] - value: 'valueName' - } - ] + keyValues: 'valueName' lock: 'CanNotDelete' privateEndpoints: [ { diff --git a/modules/Microsoft.Automation/automationAccounts/readme.md b/modules/Microsoft.Automation/automationAccounts/readme.md index ec1b90645a..54ad2786f9 100644 --- a/modules/Microsoft.Automation/automationAccounts/readme.md +++ b/modules/Microsoft.Automation/automationAccounts/readme.md @@ -586,32 +586,11 @@ module automationAccounts './Microsoft.Automation/automationAccounts/deploy.bice '/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} } variables: [ - { - description: 'TestStringDescription' - name: 'TestString' - value: '\'TestString\'' - } - { - description: 'TestIntegerDescription' - name: 'TestInteger' - value: '500' - } - { - description: 'TestBooleanDescription' - name: 'TestBoolean' - value: 'false' - } - { - description: 'TestDateTimeDescription' - isEncrypted: false - name: 'TestDateTime' - value: '\'\\/Date(1637934042656)\\/\'' - } - { - description: 'TestEncryptedDescription' - name: 'TestEncryptedVariable' - value: '\'TestEncryptedValue\'' - } + '\'\\/Date(1637934042656)\\/\'' + '\'TestEncryptedValue\'' + '\'TestString\'' + '500' + 'false' ] } } diff --git a/modules/Microsoft.Cache/redis/readme.md b/modules/Microsoft.Cache/redis/readme.md index 36d14ec9ed..dc9e7ee61a 100644 --- a/modules/Microsoft.Cache/redis/readme.md +++ b/modules/Microsoft.Cache/redis/readme.md @@ -318,7 +318,27 @@ privateEndpoints: [ ## Deployment examples -

Example 1

+The following module usage examples are retrieved from the content of the files hosted in the module's `.test` folder. + >**Note**: The name of each example is based on the name of the file from which it is taken. + >**Note**: Each example lists all the required parameters first, followed by the rest - each in alphabetical order. + +

Example 1: Min

+ +
+ +via Bicep module + +```bicep +module redis './Microsoft.Cache/redis/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-redis' + params: { + name: '<>-az-redis-min-001' + } +} +``` + +
+

@@ -337,6 +357,9 @@ privateEndpoints: [ ```
+

+ +

Example 2: Parameters

@@ -346,7 +369,35 @@ privateEndpoints: [ module redis './Microsoft.Cache/redis/deploy.bicep' = { name: '${uniqueString(deployment().name)}-redis' params: { - name: '<>-az-redis-min-001' + // Required parameters + name: '<>-az-redis-full-001' + // Non-required parameters + capacity: 2 + diagnosticLogCategoriesToEnable: [ + 'ApplicationGatewayAccessLog' + 'ApplicationGatewayFirewallLog' + ] + diagnosticMetricsToEnable: [ + 'AllMetrics' + ] + diagnosticSettingsName: 'redisdiagnostics' + enableNonSslPort: true + lock: 'CanNotDelete' + minimumTlsVersion: '1.2' + privateEndpoints: [ + { + service: 'redisCache' + subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints' + } + ] + publicNetworkAccess: 'Enabled' + redisVersion: '6' + shardCount: 1 + skuName: 'Premium' + systemAssignedIdentity: true + tags: { + resourceType: 'Redis Cache' + } } } ``` @@ -354,8 +405,6 @@ module redis './Microsoft.Cache/redis/deploy.bicep' = {

-

Example 2

-
via JSON Parameter file @@ -365,9 +414,11 @@ module redis './Microsoft.Cache/redis/deploy.bicep' = { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { + // Required parameters "name": { "value": "<>-az-redis-full-001" }, + // Non-required parameters "capacity": { "value": 2 }, @@ -382,6 +433,9 @@ module redis './Microsoft.Cache/redis/deploy.bicep' = { "AllMetrics" ] }, + "diagnosticSettingsName": { + "value": "redisdiagnostics" + }, "enableNonSslPort": { "value": true }, @@ -391,8 +445,13 @@ module redis './Microsoft.Cache/redis/deploy.bicep' = { "minimumTlsVersion": { "value": "1.2" }, - "diagnosticSettingsName": { - "value": "redisdiagnostics" + "privateEndpoints": { + "value": [ + { + "service": "redisCache", + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints" + } + ] }, "publicNetworkAccess": { "value": "Enabled" @@ -400,72 +459,23 @@ module redis './Microsoft.Cache/redis/deploy.bicep' = { "redisVersion": { "value": "6" }, + "shardCount": { + "value": 1 + }, "skuName": { "value": "Premium" }, "systemAssignedIdentity": { "value": true }, - "shardCount": { - "value": 1 - }, "tags": { "value": { "resourceType": "Redis Cache" } - }, - "privateEndpoints": { - "value": [ - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "redisCache" - } - ] } } } ``` -
- -
- -via Bicep module - -```bicep -module redis './Microsoft.Cache/redis/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-redis' - params: { - name: '<>-az-redis-full-001' - capacity: 2 - diagnosticLogCategoriesToEnable: [ - 'ApplicationGatewayAccessLog' - 'ApplicationGatewayFirewallLog' - ] - diagnosticMetricsToEnable: [ - 'AllMetrics' - ] - enableNonSslPort: true - lock: 'CanNotDelete' - minimumTlsVersion: '1.2' - diagnosticSettingsName: 'redisdiagnostics' - publicNetworkAccess: 'Enabled' - redisVersion: '6' - skuName: 'Premium' - systemAssignedIdentity: true - shardCount: 1 - tags: { - resourceType: 'Redis Cache' - } - privateEndpoints: [ - { - subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints' - service: 'redisCache' - } - ] - } -} -``` -

diff --git a/modules/Microsoft.Compute/virtualMachines/readme.md b/modules/Microsoft.Compute/virtualMachines/readme.md index 2577539230..cb958231cd 100644 --- a/modules/Microsoft.Compute/virtualMachines/readme.md +++ b/modules/Microsoft.Compute/virtualMachines/readme.md @@ -22,7 +22,7 @@ This module deploys one Virtual Machine with one or multiple nics and optionally | `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | | `Microsoft.Network/networkInterfaces` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/networkInterfaces) | | `Microsoft.Network/publicIPAddresses` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/publicIPAddresses) | -| `Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems` | [2021-06-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2021-06-01/vaults/backupFabrics/protectionContainers/protectedItems) | +| `Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems` | [2022-02-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2022-02-01/vaults/backupFabrics/protectionContainers/protectedItems) | ## Parameters diff --git a/modules/Microsoft.Network/publicIPAddresses/readme.md b/modules/Microsoft.Network/publicIPAddresses/readme.md index 540b76a554..99043f3774 100644 --- a/modules/Microsoft.Network/publicIPAddresses/readme.md +++ b/modules/Microsoft.Network/publicIPAddresses/readme.md @@ -12,7 +12,7 @@ | Resource Type | API Version | | :-- | :-- | | `Microsoft.Authorization/locks` | [2017-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2017-04-01/locks) | -| `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-10-01-preview/roleAssignments) | +| `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/roleAssignments) | | `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | | `Microsoft.Network/publicIPAddresses` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/publicIPAddresses) | diff --git a/modules/Microsoft.Network/publicIPPrefixes/readme.md b/modules/Microsoft.Network/publicIPPrefixes/readme.md index e2995bfc42..3a0b4992fa 100644 --- a/modules/Microsoft.Network/publicIPPrefixes/readme.md +++ b/modules/Microsoft.Network/publicIPPrefixes/readme.md @@ -14,7 +14,7 @@ This template deploys a public IP prefix. | Resource Type | API Version | | :-- | :-- | | `Microsoft.Authorization/locks` | [2017-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2017-04-01/locks) | -| `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-10-01-preview/roleAssignments) | +| `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/roleAssignments) | | `Microsoft.Network/publicIPPrefixes` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/publicIPPrefixes) | ## Parameters diff --git a/modules/Microsoft.Network/routeTables/readme.md b/modules/Microsoft.Network/routeTables/readme.md index c514bae1e3..259286646f 100644 --- a/modules/Microsoft.Network/routeTables/readme.md +++ b/modules/Microsoft.Network/routeTables/readme.md @@ -14,7 +14,7 @@ This module deploys a user defined route table. | Resource Type | API Version | | :-- | :-- | | `Microsoft.Authorization/locks` | [2017-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2017-04-01/locks) | -| `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-10-01-preview/roleAssignments) | +| `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/roleAssignments) | | `Microsoft.Network/routeTables` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/routeTables) | ## Parameters diff --git a/modules/Microsoft.Network/virtualHubs/readme.md b/modules/Microsoft.Network/virtualHubs/readme.md index bea9fb2b49..24a5d87c05 100644 --- a/modules/Microsoft.Network/virtualHubs/readme.md +++ b/modules/Microsoft.Network/virtualHubs/readme.md @@ -15,7 +15,7 @@ This module deploys a Virtual Hub. | :-- | :-- | | `Microsoft.Authorization/locks` | [2017-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2017-04-01/locks) | | `Microsoft.Network/virtualHubs` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/virtualHubs) | -| `Microsoft.Network/virtualHubs/hubRouteTables` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/virtualHubs/hubRouteTables) | +| `Microsoft.Network/virtualHubs/hubRouteTables` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/virtualHubs/hubRouteTables) | | `Microsoft.Network/virtualHubs/hubVirtualNetworkConnections` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/virtualHubs/hubVirtualNetworkConnections) | ## Parameters @@ -107,7 +107,7 @@ The following module usage examples are retrieved from the content of the files >**Note**: The name of each example is based on the name of the file from which it is taken. >**Note**: Each example lists all the required parameters first, followed by the rest - each in alphabetical order. -

Example 1: Min

+

Example 1: Default

@@ -116,58 +116,11 @@ The following module usage examples are retrieved from the content of the files ```bicep module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-virtualHub-vhpar' - params: { - // Required parameters - addressPrefix: '10.0.0.0/16' - name: '<>-az-vhub-min-001' - virtualWanId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/adp-<>-az-vw-x-001' - } -} -``` - -
-

- -

- -via JSON Parameter file - -```json -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - // Required parameters - "addressPrefix": { - "value": "10.0.0.0/16" - }, - "name": { - "value": "<>-az-vhub-min-001" - }, - "virtualWanId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/adp-<>-az-vw-x-001" - } - } -} -``` - -
-

- -

Example 2: Parameters

- -
- -via Bicep module - -```bicep -module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-virtualHub-vhmin' params: { // Required parameters addressPrefix: '10.1.0.0/16' - name: '<>-az-vhub-x-001' - virtualWanId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/adp-<>-az-vw-x-001' + name: 'carml-vhpar-001' + virtualWanId: '' // Non-required parameters hubRouteTables: [ { @@ -177,15 +130,15 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { hubVirtualNetworkConnections: [ { name: 'connection1' - remoteVirtualNetworkId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-vhub' + remoteVirtualNetworkId: '' routingConfiguration: { associatedRouteTable: { - id: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vHub-x-001/hubRouteTables/routeTable1' + id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/carml-vhpar-001/hubRouteTables/routeTable1' } propagatedRouteTables: { ids: [ { - id: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vHub-x-001/hubRouteTables/routeTable1' + id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/carml-vhpar-001/hubRouteTables/routeTable1' } ] labels: [ @@ -217,10 +170,10 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { "value": "10.1.0.0/16" }, "name": { - "value": "<>-az-vhub-x-001" + "value": "carml-vhpar-001" }, "virtualWanId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/adp-<>-az-vw-x-001" + "value": "" }, // Non-required parameters "hubRouteTables": { @@ -234,15 +187,15 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { "value": [ { "name": "connection1", - "remoteVirtualNetworkId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-vhub", + "remoteVirtualNetworkId": "", "routingConfiguration": { "associatedRouteTable": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vHub-x-001/hubRouteTables/routeTable1" + "id": "${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/carml-vhpar-001/hubRouteTables/routeTable1" }, "propagatedRouteTables": { "ids": [ { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vHub-x-001/hubRouteTables/routeTable1" + "id": "${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/carml-vhpar-001/hubRouteTables/routeTable1" } ], "labels": [ @@ -262,3 +215,50 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = {

+ +

Example 2: Min

+ +
+ +via Bicep module + +```bicep +module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { + name: '${uniqueString(deployment().name)}-test-virtualHub-vhmin' + params: { + // Required parameters + addressPrefix: '10.0.0.0/16' + name: 'carml-vhmin-001' + virtualWanId: '' + } +} +``` + +
+

+ +

+ +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + // Required parameters + "addressPrefix": { + "value": "10.0.0.0/16" + }, + "name": { + "value": "carml-vhmin-001" + }, + "virtualWanId": { + "value": "" + } + } +} +``` + +
+

diff --git a/modules/Microsoft.Network/virtualNetworkGateways/readme.md b/modules/Microsoft.Network/virtualNetworkGateways/readme.md index c5d65bcc83..feb3772d7a 100644 --- a/modules/Microsoft.Network/virtualNetworkGateways/readme.md +++ b/modules/Microsoft.Network/virtualNetworkGateways/readme.md @@ -16,7 +16,7 @@ This module deploys a virtual network gateway. | `Microsoft.Authorization/locks` | [2017-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2017-04-01/locks) | | `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-10-01-preview/roleAssignments) | | `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | -| `Microsoft.Network/publicIPAddresses` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/publicIPAddresses) | +| `Microsoft.Network/publicIPAddresses` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/publicIPAddresses) | | `Microsoft.Network/virtualNetworkGateways` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/virtualNetworkGateways) | ## Parameters diff --git a/modules/Microsoft.Network/vpnSites/readme.md b/modules/Microsoft.Network/vpnSites/readme.md index 06ac9b0bba..a641daf687 100644 --- a/modules/Microsoft.Network/vpnSites/readme.md +++ b/modules/Microsoft.Network/vpnSites/readme.md @@ -326,7 +326,7 @@ The following module usage examples are retrieved from the content of the files >**Note**: The name of each example is based on the name of the file from which it is taken. >**Note**: Each example lists all the required parameters first, followed by the rest - each in alphabetical order. -

Example 1: Min

+

Example 1: Default

@@ -337,65 +337,8 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-vpnSites-vsipar' params: { // Required parameters - name: '<>-az-vSite-min-001' - virtualWanId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/apd-<>-az-vw-x-001' - // Non-required parameters - addressPrefixes: [ - '10.0.0.0/16' - ] - ipAddress: '1.2.3.4' - } -} -``` - -
-

- -

- -via JSON Parameter file - -```json -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - // Required parameters - "name": { - "value": "<>-az-vSite-min-001" - }, - "virtualWanId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/apd-<>-az-vw-x-001" - }, - // Non-required parameters - "addressPrefixes": { - "value": [ - "10.0.0.0/16" - ] - }, - "ipAddress": { - "value": "1.2.3.4" - } - } -} -``` - -
-

- -

Example 2: Parameters

- -
- -via Bicep module - -```bicep -module vpnSites './Microsoft.Network/vpnSites/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-vpnSites' - params: { - // Required parameters - name: '<>-az-vSite-x-001' - virtualWanId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/apd-<>-az-vw-x-001' + name: 'carml-vsipar-001' + virtualWanId: '' // Non-required parameters deviceProperties: { linkSpeedInMbps: 0 @@ -411,7 +354,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep' = { roleAssignments: [ { principalIds: [ - '<>' + '' ] roleDefinitionIdOrName: 'Reader' } @@ -468,10 +411,10 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep' = { "parameters": { // Required parameters "name": { - "value": "<>-az-vSite-x-001" + "value": "carml-vsipar-001" }, "virtualWanId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/apd-<>-az-vw-x-001" + "value": "" }, // Non-required parameters "deviceProperties": { @@ -495,7 +438,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep' = { "value": [ { "principalIds": [ - "<>" + "" ], "roleDefinitionIdOrName": "Reader" } @@ -510,7 +453,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep' = { "vpnSiteLinks": { "value": [ { - "name": "<>-az-vSite-x-001", + "name": "carml-vSite-vsipar-001", "properties": { "bgpProperties": { "asn": 65010, @@ -545,3 +488,60 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep' = {

+ +

Example 2: Min

+ +
+ +via Bicep module + +```bicep +module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { + name: '${uniqueString(deployment().name)}-test-vpnSites-vsimin' + params: { + // Required parameters + name: 'carml-vsimin-001' + virtualWanId: '' + // Non-required parameters + addressPrefixes: [ + '10.0.0.0/16' + ] + ipAddress: '1.2.3.4' + } +} +``` + +
+

+ +

+ +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + // Required parameters + "name": { + "value": "carml-vsimin-001" + }, + "virtualWanId": { + "value": "" + }, + // Non-required parameters + "addressPrefixes": { + "value": [ + "10.0.0.0/16" + ] + }, + "ipAddress": { + "value": "1.2.3.4" + } + } +} +``` + +
+

diff --git a/modules/Microsoft.SignalRService/webPubSub/readme.md b/modules/Microsoft.SignalRService/webPubSub/readme.md index 1b7bf13e22..3342c6ba66 100644 --- a/modules/Microsoft.SignalRService/webPubSub/readme.md +++ b/modules/Microsoft.SignalRService/webPubSub/readme.md @@ -396,7 +396,7 @@ module webPubSub './Microsoft.SignalRService/webPubSub/deploy.bicep' = { params: { // Required parameters name: '<>-az-pubsub-x-001' - // Additional parameters + // Non-required parameters capacity: 2 clientCertEnabled: false disableAadAuth: false @@ -465,7 +465,7 @@ module webPubSub './Microsoft.SignalRService/webPubSub/deploy.bicep' = { "name": { "value": "<>-az-pubsub-x-001" }, - // Additional parameters + // Non-required parameters "capacity": { "value": 2 }, diff --git a/modules/Microsoft.Sql/servers/readme.md b/modules/Microsoft.Sql/servers/readme.md index d3a84cd040..d4f2345199 100644 --- a/modules/Microsoft.Sql/servers/readme.md +++ b/modules/Microsoft.Sql/servers/readme.md @@ -333,14 +333,14 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-servers-sqladmin' params: { // Required parameters - name: '<>-az-sqlsrv-admin-001' + name: 'carml-sqladmin-001' // Non-required parameters administrators: { azureADOnlyAuthentication: true login: 'myspn' principalType: 'Application' - sid: '<>' - tenantId: '<>' + sid: '' + tenantId: '' } } } @@ -360,7 +360,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "<>-az-sqlsrv-admin-001" + "value": "carml-sqladmin-001" }, // Non-required parameters "administrators": { @@ -368,8 +368,8 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { "azureADOnlyAuthentication": true, "login": "myspn", "principalType": "Application", - "sid": "<>", - "tenantId": "<>" + "sid": "", + "tenantId": "" } } } @@ -379,7 +379,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = {

-

Example 2: Parameters

+

Example 2: Default

@@ -390,21 +390,21 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-servers-sqlpar' params: { // Required parameters - name: '<>-az-sqlsrv-x-001' + name: 'carml-sqlpar-001' // Non-required parameters - administratorLogin: kv1.getSecret('administratorLogin') - administratorLoginPassword: kv1.getSecret('administratorLoginPassword') + administratorLogin: 'adminUserName' + administratorLoginPassword: '' databases: [ { collation: 'SQL_Latin1_General_CP1_CI_AS' - diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' - diagnosticEventHubName: 'adp-<>-az-evh-x-001' + diagnosticEventHubAuthorizationRuleId: '' + diagnosticEventHubName: '' diagnosticLogsRetentionInDays: 7 - diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' - diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' + diagnosticStorageAccountId: '' + diagnosticWorkspaceId: '' licenseType: 'LicenseIncluded' maxSizeBytes: 34359738368 - name: '<>-az-sqldb-x-001' + name: 'carml-sqlpardb-001' skuCapacity: 12 skuFamily: 'Gen5' skuName: 'BC_Gen5' @@ -418,19 +418,19 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { startIpAddress: '0.0.0.0' } ] - location: 'westeurope' + location: '' lock: 'CanNotDelete' minimalTlsVersion: '1.2' privateEndpoints: [ { service: 'sqlServer' - subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints' + subnetResourceId: '' } ] roleAssignments: [ { principalIds: [ - '<>' + '' ] roleDefinitionIdOrName: 'Reader' } @@ -454,7 +454,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { 'test2@contoso.com' ] recurringScansIsEnabled: true - vulnerabilityAssessmentsStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' + vulnerabilityAssessmentsStorageAccountId: '' } } } @@ -474,37 +474,27 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "<>-az-sqlsrv-x-001" + "value": "carml-sqlpar-001" }, // Non-required parameters "administratorLogin": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/<>/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "administratorLogin" - } + "value": "adminUserName" }, "administratorLoginPassword": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/<>/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "administratorLoginPassword" - } + "value": "" }, "databases": { "value": [ { "collation": "SQL_Latin1_General_CP1_CI_AS", - "diagnosticEventHubAuthorizationRuleId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", - "diagnosticEventHubName": "adp-<>-az-evh-x-001", + "diagnosticEventHubAuthorizationRuleId": "", + "diagnosticEventHubName": "", "diagnosticLogsRetentionInDays": 7, - "diagnosticStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", - "diagnosticWorkspaceId": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001", + "diagnosticStorageAccountId": "", + "diagnosticWorkspaceId": "", "licenseType": "LicenseIncluded", "maxSizeBytes": 34359738368, - "name": "<>-az-sqldb-x-001", + "name": "carml-sqlpardb-001", "skuCapacity": 12, "skuFamily": "Gen5", "skuName": "BC_Gen5", @@ -522,7 +512,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { ] }, "location": { - "value": "westeurope" + "value": "" }, "lock": { "value": "CanNotDelete" @@ -534,7 +524,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { "value": [ { "service": "sqlServer", - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints" + "subnetResourceId": "" } ] }, @@ -542,7 +532,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { "value": [ { "principalIds": [ - "<>" + "" ], "roleDefinitionIdOrName": "Reader" } @@ -562,7 +552,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { }, "userAssignedIdentities": { "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} + "${resourceGroupResources.outputs.managedIdentitResourceId}": "<${resourceGroupResources.outputs.managedIdentitResourceId}>" } }, "vulnerabilityAssessmentsObj": { @@ -574,7 +564,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { "test2@contoso.com" ], "recurringScansIsEnabled": true, - "vulnerabilityAssessmentsStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" + "vulnerabilityAssessmentsStorageAccountId": "" } } } diff --git a/modules/Microsoft.Web/hostingEnvironments/readme.md b/modules/Microsoft.Web/hostingEnvironments/readme.md index 7b9c7aa52b..7150c84990 100644 --- a/modules/Microsoft.Web/hostingEnvironments/readme.md +++ b/modules/Microsoft.Web/hostingEnvironments/readme.md @@ -217,12 +217,7 @@ module hostingEnvironments './Microsoft.Web/hostingEnvironments/deploy.bicep' = name: '<>-az-appse-asev2-001' subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-008' // Non-required parameters - clusterSettings: [ - { - name: 'DisableTls1.0' - value: '1' - } - ] + clusterSettings: '1' diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' diagnosticEventHubName: 'adp-<>-az-evh-x-001' diagnosticLogsRetentionInDays: 7 @@ -326,12 +321,7 @@ module hostingEnvironments './Microsoft.Web/hostingEnvironments/deploy.bicep' = name: '<>-az-appse-asev3-001' subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-006' // Non-required parameters - clusterSettings: [ - { - name: 'DisableTls1.0' - value: '1' - } - ] + clusterSettings: '1' diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' diagnosticEventHubName: 'adp-<>-az-evh-x-001' diagnosticLogsRetentionInDays: 7 From e56989534df093ba05b9662d9cd2145d638cbf29 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 18:14:29 +0200 Subject: [PATCH 112/274] Updated Set-ModuleReadMe with Bicep support & regenerated docs --- utilities/tools/Set-ModuleReadMe.ps1 | 873 +++++++++++++++++++++------ 1 file changed, 676 insertions(+), 197 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index cefb10a64a..c2f108806b 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -31,7 +31,7 @@ function Set-ResourceTypesSection { [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSReviewUnusedParameter', 'ResourceTypesToExclude', Justification = 'Variable used inside Where-Object block.')] param ( [Parameter(Mandatory)] - [hashtable] $TemplateFileContent, + [Hashtable] $TemplateFileContent, [Parameter(Mandatory)] [object[]] $ReadMeFileContent, @@ -118,7 +118,7 @@ function Set-ParametersSection { [CmdletBinding(SupportsShouldProcess)] param ( [Parameter(Mandatory)] - [hashtable] $TemplateFileContent, + [Hashtable] $TemplateFileContent, [Parameter(Mandatory)] [object[]] $ReadMeFileContent, @@ -187,8 +187,8 @@ function Set-ParametersSection { } # Add external single quotes to all default values of type string except for those using functions - $defaultValue = ($parameter.defaultValue -is [array]) ? ('[{0}]' -f ($parameter.defaultValue -join ', ')) : (($parameter.defaultValue -is [hashtable]) ? '{object}' : (($parameter.defaultValue -is [string]) -and ($parameter.defaultValue -notmatch '\[\w+\(.*\).*\]') ? '''' + $parameter.defaultValue + '''' : $parameter.defaultValue)) - $allowedValue = ($parameter.allowedValues -is [array]) ? ('[{0}]' -f ($parameter.allowedValues -join ', ')) : (($parameter.allowedValues -is [hashtable]) ? '{object}' : $parameter.allowedValues) + $defaultValue = ($parameter.defaultValue -is [array]) ? ('[{0}]' -f ($parameter.defaultValue -join ', ')) : (($parameter.defaultValue -is [Hashtable]) ? '{object}' : (($parameter.defaultValue -is [string]) -and ($parameter.defaultValue -notmatch '\[\w+\(.*\).*\]') ? '''' + $parameter.defaultValue + '''' : $parameter.defaultValue)) + $allowedValue = ($parameter.allowedValues -is [array]) ? ('[{0}]' -f ($parameter.allowedValues -join ', ')) : (($parameter.allowedValues -is [Hashtable]) ? '{object}' : $parameter.allowedValues) $description = $parameter.metadata.description.Replace("`r`n", '

').Replace("`n", '

') # Update parameter table content based on parameter category @@ -260,7 +260,7 @@ function Set-OutputsSection { [CmdletBinding(SupportsShouldProcess)] param ( [Parameter(Mandatory)] - [hashtable] $TemplateFileContent, + [Hashtable] $TemplateFileContent, [Parameter(Mandatory)] [object[]] $ReadMeFileContent, @@ -299,6 +299,408 @@ function Set-OutputsSection { return $updatedFileContent } +<# +.SYNOPSIS +Add comments to indicate required & non-required parameters to the given Bicep example + +.DESCRIPTION +Add comments to indicate required & non-required parameters to the given Bicep example. +'Required' is only added if the example has at least one required parameter +'Non-Required' is only added if the example has at least one required parameter and at least one non-required parameter + +.PARAMETER BicepParams +Mandatory. The Bicep parameter block to add the comments to (i.e., should contain everything in between the brackets of a 'params: {...} block) + +.PARAMETER AllParametersList +Mandatory. A list of all top-level (i.e. non-nested) parameter names + +.PARAMETER RequiredParametersList +Mandatory. A list of all required top-level (i.e. non-nested) parameter names + +.EXAMPLE +Add-BicepParameterTypeComment -AllParametersList @('name', 'lock') -RequiredParametersList @('name') -BicepParams "name: 'carml'\nlock: 'CanNotDelete'" + +Add type comments to given bicep params string, using one required parameter 'name'. Would return: + +' + // Required parameters + name: 'carml' + // Non-required parameters + lock: 'CanNotDelete' +' +#> +function Add-BicepParameterTypeComment { + + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [AllowEmptyString()] + [string] $BicepParams, + + [Parameter(Mandatory = $false)] + [AllowEmptyCollection()] + [string[]] $AllParametersList = @(), + + [Parameter(Mandatory = $false)] + [AllowEmptyCollection()] + [string[]] $RequiredParametersList = @() + ) + + if ($RequiredParametersList.Count -ge 1 -and $AllParametersList.Count -ge 2) { + + $BicepParamsArray = $BicepParams -split '\n' + + # [1/4] Check where the 'last' required parameter is located in the example (and what its indent is) + $parameterToSplitAt = $RequiredParametersList[-1] + $requiredParameterIndent = ([regex]::Match($BicepParamsArray[0], '^(\s+).*')).Captures.Groups[1].Value.Length + + # [1/4] Add a comment where the required parameters start + $BicepParamsArray = @('{0}// Required parameters' -f (' ' * $requiredParameterIndent)) + $BicepParamsArray[(0 .. ($BicepParamsArray.Count))] + + # [1/4] Find the location if the last required parameter + $requiredParameterStartIndex = ($BicepParamsArray | Select-String ('^[\s]{0}{1}:.+' -f "{$requiredParameterIndent}", $parameterToSplitAt) | ForEach-Object { $_.LineNumber - 1 })[0] + + # [1/4] If we have more than only required parameters, let's add a corresponding comment + if ($AllParametersList.Count -gt $RequiredParametersList.Count) { + $nextLineIndent = ([regex]::Match($BicepParamsArray[$requiredParameterStartIndex + 1], '^(\s+).*')).Captures.Groups[1].Value.Length + if ($nextLineIndent -gt $requiredParameterIndent) { + # Case Param is object/array: Search in rest of array for the next closing bracket with the same indent - and then add the search index (1) & initial index (1) count back in + $requiredParameterEndIndex = ($BicepParamsArray[($requiredParameterStartIndex + 1)..($BicepParamsArray.Count)] | Select-String "^[\s]{$requiredParameterIndent}\S+" | ForEach-Object { $_.LineNumber - 1 })[0] + 1 + $requiredParameterStartIndex + } else { + # Case Param is single line bool/string/int: Add an index (1) for the 'required' comment + $requiredParameterEndIndex = $requiredParameterStartIndex + } + + # Add a comment where the non-required parameters start + $BicepParamsArray = $BicepParamsArray[0..$requiredParameterEndIndex] + ('{0}// Non-required parameters' -f (' ' * $requiredParameterIndent)) + $BicepParamsArray[(($requiredParameterEndIndex + 1) .. ($BicepParamsArray.Count))] + } + + return ($BicepParamsArray | Out-String).TrimEnd() + } + + return $BicepParams +} + +<# +.SYNOPSIS +Sort the given JSON paramters into required & non-required parameters, each sorted alphabetically + +.DESCRIPTION +Sort the given JSON paramters into required & non-required parameters, each sorted alphabetically + +.PARAMETER ParametersJSON +Mandatory. The JSON parameters block to process (ideally already without 'value' property) + +.PARAMETER RequiredParametersList +Mandatory. A list of all required top-level (i.e. non-nested) parameter names + +.EXAMPLE +Get-OrderedParametersJSON -RequiredParametersList @('name') -ParametersJSON '{ "diagnosticLogsRetentionInDays": 7,"lock": "CanNotDelete","name": "carml" }' + +Order the given JSON object alphabetically. Would result into: + +@{ + name: 'carml' + diagnosticLogsRetentionInDays: 7 + lock: 'CanNotDelete' +} +#> +function Get-OrderedParametersJSON { + + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string] $ParametersJSON, + + [Parameter(Mandatory = $false)] + [AllowEmptyCollection()] + [string[]] $RequiredParametersList = @() + ) + + # Load used function(s) + . (Join-Path $PSScriptRoot 'helper' 'ConvertTo-OrderedHashtable.ps1') + + # [1/3] Get all parameters from the parameter object and order them recursively + $orderedContentInJSONFormat = ConvertTo-OrderedHashtable -JSONInputObject $parametersJSON + + # [2/3] Sort 'required' parameters to the front + $orderedJSONParameters = [ordered]@{} + $orderedTopLevelParameterNames = $orderedContentInJSONFormat.psbase.Keys # We must use PS-Base to handle conflicts of HashTable properties & keys (e.g. for a key 'keys'). + # [2.1] Add required parameters first + $orderedTopLevelParameterNames | Where-Object { $_ -in $RequiredParametersList } | ForEach-Object { $orderedJSONParameters[$_] = $orderedContentInJSONFormat[$_] } + # [2.2] Add rest after + $orderedTopLevelParameterNames | Where-Object { $_ -notin $RequiredParametersList } | ForEach-Object { $orderedJSONParameters[$_] = $orderedContentInJSONFormat[$_] } + + # [3/3] Handle empty dictionaries (in case the parmaeter file was empty) + if ($orderedJSONParameters.count -eq 0) { + $orderedJSONParameters = '' + } + + return $orderedJSONParameters +} + +<# +.SYNOPSIS +Sort the given JSON parameters into a new JSON parameter object, all parameter sorted into required & non-required parameters, each sorted alphabetically + +.DESCRIPTION +Sort the given JSON parameters into a new JSON parameter object, all parameter sorted into required & non-required parameters, each sorted alphabetically. +The location where required & non-required parameters start is highlighted with by a corresponding comment + +.PARAMETER ParametersJSON +Mandatory. The parameter JSON object to process + +.PARAMETER RequiredParametersList +Mandatory. A list of all required top-level (i.e. non-nested) parameter names + +.EXAMPLE +Build-OrderedJSONObject -RequiredParametersList @('name') -ParametersJSON '{ "lock": { "value": "CanNotDelete" }, "name": { "value": "carml" }, "diagnosticLogsRetentionInDays": { "value": 7 } }' + +Build a formatted Parameter-JSON object with one required parameter. Would result into: + +'{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + // Required parameters + "name": { + "value": "carml" + }, + // Non-required parameters + "diagnosticLogsRetentionInDays": { + "value": 7 + }, + "lock": { + "value": "CanNotDelete" + } + } +}' +#> +function Build-OrderedJSONObject { + + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string] $ParametersJSON, + + [Parameter(Mandatory = $false)] + [AllowEmptyCollection()] + [string[]] $RequiredParametersList = @() + ) + + # [1/9] Sort parameter alphabetically + $orderedJSONParameters = Get-OrderedParametersJSON -ParametersJSON $ParametersJSON -RequiredParametersList $RequiredParametersList + + # [2/9] Build the ordered parameter file syntax back up + $jsonExample = ([ordered]@{ + '$schema' = 'https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#' + contentVersion = '1.0.0.0' + parameters = (-not [String]::IsNullOrEmpty($orderedJSONParameters)) ? $orderedJSONParameters : @{} + } | ConvertTo-Json -Depth 99) + + # [3/8] If we have at least one required and one other parameter we want to add a comment + if ($RequiredParametersList.Count -ge 1 -and $OrderedJSONParameters.Keys.Count -ge 2) { + + $jsonExampleArray = $jsonExample -split '\n' + + # [4/8] Check where the 'last' required parameter is located in the example (and what its indent is) + $parameterToSplitAt = $RequiredParametersList[-1] + $parameterStartIndex = ($jsonExampleArray | Select-String '.*"parameters": \{.*' | ForEach-Object { $_.LineNumber - 1 })[0] + $requiredParameterIndent = ([regex]::Match($jsonExampleArray[($parameterStartIndex + 1)], '^(\s+).*')).Captures.Groups[1].Value.Length + + # [5/8] Add a comment where the required parameters start + $jsonExampleArray = $jsonExampleArray[0..$parameterStartIndex] + ('{0}// Required parameters' -f (' ' * $requiredParameterIndent)) + $jsonExampleArray[(($parameterStartIndex + 1) .. ($jsonExampleArray.Count))] + + # [6/8] Find the location if the last required parameter + $requiredParameterStartIndex = ($jsonExampleArray | Select-String "^[\s]{$requiredParameterIndent}`"$parameterToSplitAt`": \{.*" | ForEach-Object { $_.LineNumber - 1 })[0] + + # [7/8] If we have more than only required parameters, let's add a corresponding comment + if ($orderedJSONParameters.Keys.Count -gt $RequiredParametersList.Count ) { + # Search in rest of array for the next closing bracket with the same indent - and then add the search index (1) & initial index (1) count back in + $requiredParameterEndIndex = ($jsonExampleArray[($requiredParameterStartIndex + 1)..($jsonExampleArray.Count)] | Select-String "^[\s]{$requiredParameterIndent}\}" | ForEach-Object { $_.LineNumber - 1 })[0] + 1 + $requiredParameterStartIndex + + # Add a comment where the non-required parameters start + $jsonExampleArray = $jsonExampleArray[0..$requiredParameterEndIndex] + ('{0}// Non-required parameters' -f (' ' * $requiredParameterIndent)) + $jsonExampleArray[(($requiredParameterEndIndex + 1) .. ($jsonExampleArray.Count))] + } + + # [8/8] Convert the processed array back into a string + return $jsonExampleArray | Out-String + } + + return $jsonExample +} + +<# +.SYNOPSIS +Convert the given Bicep parameter block to JSON parameter block + +.DESCRIPTION +Convert the given Bicep parameter block to JSON parameter block + +.PARAMETER BicepParamBlock +Mandatory. The Bicep parameter block to process + +.EXAMPLE +ConvertTo-FormattedJSONParameterObject -BicepParamBlock "name: 'carml'\nlock: 'CanNotDelete'" + +Convert the Bicep string "name: 'carml'\nlock: 'CanNotDelete'" into a parameter JSON object. Would result into: + +@{ + lock = @{ + value = 'carml' + } + lock = @{ + value = 'CanNotDelete' + } +} +#> +function ConvertTo-FormattedJSONParameterObject { + + [CmdletBinding()] + param ( + [Parameter()] + [string] $BicepParamBlock + ) + + # [1/4] Detect top level params for later processing + $bicepParamBlockArray = $BicepParamBlock -split '\n' + $topLevelParamIndent = ([regex]::Match($bicepParamBlockArray[0], '^(\s+).*')).Captures.Groups[1].Value.Length + $topLevelParams = $bicepParamBlockArray | Where-Object { $_ -match "^\s{$topLevelParamIndent}[0-9a-zA-Z]+:.*" } | ForEach-Object { ($_ -split ':')[0].Trim() } + + # [2/4] Add JSON-specific syntax to the Bicep param block to enable us to treat is as such + # [1.1] Syntax: Outer brackets + $paramInJsonFormat = @( + '{', + $BicepParamBlock + '}' + ) | Out-String + + # [1.2] Syntax: All single-quotes are double-quotes + $paramInJsonFormat = $paramInJsonFormat -replace "'", '"' + # [1.3] Syntax: Everything left of a ':' should be wrapped in quotes (as a parameter name is always a string) + $paramInJsonFormat = $paramInJsonFormat -replace '([0-9a-zA-Z]+):', '"$1":' + + # [1.4] Split the object to format line-by-line (& also remove any empty lines) + $paramInJSONFormatArray = $paramInJsonFormat -split '\n' | Where-Object { $_ } + + # [1.5] Syntax: Replace Bicep resource ID references + for ($index = 0; $index -lt $paramInJSONFormatArray.Count; $index++) { + if ($paramInJSONFormatArray[$index] -like '*:*' -and ($paramInJSONFormatArray[$index] -split ':')[1].Trim() -notmatch '".+"' -and $paramInJSONFormatArray[$index] -like '*.*') { + # In case of a reference like : "virtualWanId": resourceGroupResources.outputs.virtualWWANResourceId + $paramInJSONFormatArray[$index] = '{0}: "<{1}>"' -f ($paramInJSONFormatArray[$index] -split ':')[0], ([regex]::Match(($paramInJSONFormatArray[$index] -split ':')[0], '"(.+)"')).Captures.Groups[1].Value + } + if ($paramInJSONFormatArray[$index] -notlike '*:*' -and $paramInJSONFormatArray[$index] -notlike '*"*"*' -and $paramInJSONFormatArray[$index] -like '*.*') { + # In case of a reference like : [ \n resourceGroupResources.outputs.managedIdentityPrincipalId \n ] + $paramInJSONFormatArray[$index] = '"<{0}>"' -f $paramInJSONFormatArray[$index].Split('.')[-1].Trim() + } + } + + # [1.6] Syntax: Add comma everywhere unless: + # - the current line has an opening 'object: {' or 'array: [' character + # - the line after the current line has a closing 'object: {' or 'array: [' character + # - it's the last closing bracket + for ($index = 0; $index -lt $paramInJSONFormatArray.Count; $index++) { + if (($paramInJSONFormatArray[$index] -match '[\{|\[]') -or (($index -lt $paramInJSONFormatArray.Count - 1) -and $paramInJSONFormatArray[$index + 1] -match '[\]|\}]') -or ($index -eq $paramInJSONFormatArray.Count - 1)) { + continue + } + $paramInJSONFormatArray[$index] = '{0},' -f $paramInJSONFormatArray[$index].Trim() + } + + # [1.7] Format the final JSON string to an object to enable processing + $paramInJsonFormatObject = $paramInJSONFormatArray | Out-String | ConvertFrom-Json -AsHashtable -Depth 99 + + # [3/4] Inject top-level 'value`' properties + $paramInJsonFormatObjectWithValue = @{} + foreach ($paramKey in $topLevelParams) { + $paramInJsonFormatObjectWithValue[$paramKey] = @{ + value = $paramInJsonFormatObject[$paramKey] + } + } + + # [4/4] Return result + return $paramInJsonFormatObjectWithValue +} + +<# +.SYNOPSIS +Convert the given parameter JSON object into a formatted Bicep object (i.e., sorted & with required/non-required comments) + +.DESCRIPTION +Convert the given parameter JSON object into a formatted Bicep object (i.e., sorted & with required/non-required comments) + +.PARAMETER JSONParameters +Mandatory. The parameter JSON object to process. + +.PARAMETER RequiredParametersList +Mandatory. A list of all required top-level (i.e. non-nested) parameter names + +.EXAMPLE +ConvertTo-FormattedBicep -RequiredParametersList @('name') -JSONParameters @{ lock = @{ value = 'carml' }; lock = @{ value = 'CanNotDelete' } } + +Convert the given JSONParameters object with one required parameter to a formatted Bicep object. Would result into: + +' + // Required parameters + name: 'carml' + // Non-required parameters + diagnosticLogsRetentionInDays: 7 + lock: 'CanNotDelete' +' +#> +function ConvertTo-FormattedBicep { + + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [Hashtable] $JSONParameters, + + [Parameter(Mandatory = $false)] + [AllowEmptyCollection()] + [string[]] $RequiredParametersList = @() + ) + + # Remove 'value' parameter property, if any (e.g. when dealing with a classic parameter file) + $JSONParametersWithoutValue = @{} + foreach ($parameter in $JSONParameters.psbase.Keys) { + if ($JSONParameters[$parameter].Keys -eq 'value') { + $JSONParametersWithoutValue[$parameter] = $JSONParameters.$parameter.value + } else { + $JSONParametersWithoutValue[$parameter] = $JSONParameters.$parameter + } + } + + # [1/4] Order parameters recursively + if ($JSONParametersWithoutValue.Keys.Count -gt 0) { + $orderedJSONParameters = Get-OrderedParametersJSON -ParametersJSON ($JSONParametersWithoutValue | ConvertTo-Json -Depth 99) -RequiredParametersList $RequiredParametersList + } else { + $orderedJSONParameters = @{} + } + # [2/4] Remove any JSON specific formatting + $templateParameterObject = $orderedJSONParameters | ConvertTo-Json -Depth 99 + if ($templateParameterObject -ne '{}') { + $contentInBicepFormat = $templateParameterObject -replace '"', "'" # Update any [xyz: "xyz"] to [xyz: 'xyz'] + $contentInBicepFormat = $contentInBicepFormat -replace ',', '' # Update any [xyz: xyz,] to [xyz: xyz] + $contentInBicepFormat = $contentInBicepFormat -replace "'(\w+)':", '$1:' # Update any ['xyz': xyz] to [xyz: xyz] + $contentInBicepFormat = $contentInBicepFormat -replace "'(.+.getSecret\('.+'\))'", '$1' # Update any [xyz: 'xyz.GetSecret()'] to [xyz: xyz.GetSecret()] + + $bicepParamsArray = $contentInBicepFormat -split '\n' + $bicepParamsArray = $bicepParamsArray[1..($bicepParamsArray.count - 2)] + } + + # [3/4] Format params with indent + $BicepParams = ($bicepParamsArray | ForEach-Object { " $_" } | Out-String).TrimEnd() + + # [4/4] Add comment where required & optional parameters start + $splitInputObject = @{ + BicepParams = $BicepParams + RequiredParametersList = $RequiredParametersList + AllParametersList = $JSONParametersWithoutValue.Keys + } + $commentedBicepParams = Add-BicepParameterTypeComment @splitInputObject + + return $commentedBicepParams +} + <# .SYNOPSIS Generate 'Deployment examples' for the ReadMe out of the parameter files currently used to test the template @@ -312,6 +714,9 @@ Mandatory. The path to the template file .PARAMETER TemplateFileContent Mandatory. The template file content object to crawl data from +.PARAMETER TemplateFilePath +Mandatory. The path to the template file + .PARAMETER ReadMeFileContent Mandatory. The readme file content array to update @@ -324,8 +729,11 @@ Optional. A switch to control whether or not to add a ARM-JSON-Parameter file ex .PARAMETER addBicep Optional. A switch to control whether or not to add a Bicep deployment example. Defaults to true. +.PARAMETER ProjectSettings +Optional. Projects settings to draw information from. For example the `namePrefix`. + .EXAMPLE -Set-DeploymentExamplesSection -TemplateFilePath 'C:/deploy.bicep' -TemplateFileContent @{ resource = @{}; ... } -ReadMeFileContent @('# Title', '', '## Section 1', ...) +Set-DeploymentExamplesSection -TemplateFileContent @{ resource = @{}; ... } -TemplateFilePath 'C:/deploy.bicep' -ReadMeFileContent @('# Title', '', '## Section 1', ...) Update the given readme file's 'Deployment Examples' section based on the given template file content #> @@ -337,7 +745,7 @@ function Set-DeploymentExamplesSection { [string] $TemplateFilePath, [Parameter(Mandatory)] - [hashtable] $TemplateFileContent, + [Hashtable] $TemplateFileContent, [Parameter(Mandatory = $true)] [object[]] $ReadMeFileContent, @@ -348,13 +756,13 @@ function Set-DeploymentExamplesSection { [Parameter(Mandatory = $false)] [bool] $addBicep = $true, + [Parameter(Mandatory = $false)] + [Hashtable] $ProjectSettings = @{}, + [Parameter(Mandatory = $false)] [string] $SectionStartIdentifier = '## Deployment examples' ) - # Load used function(s) - . (Join-Path $PSScriptRoot 'helper' 'ConvertTo-OrderedHashtable.ps1') - # Process content $SectionContent = [System.Collections.ArrayList]@( 'The following module usage examples are retrieved from the content of the files hosted in the module''s `.test` folder.', @@ -366,17 +774,21 @@ function Set-DeploymentExamplesSection { $moduleRoot = Split-Path $TemplateFilePath -Parent $resourceTypeIdentifier = $moduleRoot.Replace('\', '/').Split('/modules/')[1].TrimStart('/') $resourceType = $resourceTypeIdentifier.Split('/')[1] - $parameterFiles = Get-ChildItem (Join-Path $moduleRoot '.test') -Filter '*parameters.json' -Recurse + $testFilePaths = (Get-ChildItem (Join-Path -Path $moduleRoot -ChildPath '.test') -File).FullName | Where-Object { $_ -match '.+\.[bicep|json]' } - $requiredParameterNames = $TemplateFileContent.parameters.Keys | Where-Object { $TemplateFileContent.parameters[$_].Keys -notcontains 'defaultValue' } | Sort-Object + $RequiredParametersList = $TemplateFileContent.parameters.Keys | Where-Object { $TemplateFileContent.parameters[$_].Keys -notcontains 'defaultValue' } | Sort-Object ############################ ## Process test files ## ############################ $pathIndex = 1 - foreach ($testFilePath in $parameterFiles.FullName) { - $contentInJSONFormat = Get-Content -Path $testFilePath -Encoding 'utf8' | Out-String + foreach ($testFilePath in $testFilePaths) { + # Read content + $rawContentArray = Get-Content -Path $testFilePath + $rawContent = Get-Content -Path $testFilePath -Encoding 'utf8' | Out-String + + # Format example header $exampleTitle = ((Split-Path $testFilePath -LeafBase) -replace '\.', ' ') -replace ' parameters', '' $TextInfo = (Get-Culture).TextInfo $exampleTitle = $TextInfo.ToTitleCase($exampleTitle) @@ -384,216 +796,271 @@ function Set-DeploymentExamplesSection { '

Example {0}: {1}

' -f $pathIndex, $exampleTitle ) - if ($addBicep) { - $JSONParametersHashTable = (ConvertFrom-Json $contentInJSONFormat -AsHashtable -Depth 99).parameters - - # Handle KeyVaut references - $keyVaultReferences = $JSONParametersHashTable.Keys | Where-Object { $JSONParametersHashTable[$_].Keys -contains 'reference' } - - if ($keyVaultReferences.Count -gt 0) { - $keyVaultReferenceData = @() - foreach ($reference in $keyVaultReferences) { - $resourceIdElem = $JSONParametersHashTable[$reference].reference.keyVault.id -split '/' - $keyVaultReferenceData += @{ - subscriptionId = $resourceIdElem[2] - resourceGroupName = $resourceIdElem[4] - vaultName = $resourceIdElem[-1] - secretName = $JSONParametersHashTable[$reference].reference.secretName - parameterName = $reference - } - } + ## ----------------------------------- ## + ## Handle by type (Bicep vs. JSON) ## + ## ----------------------------------- ## + if ((Split-Path $testFilePath -Extension) -eq '.bicep') { + + # ------------------------- # + # Prepare Bicep to JSON # + # ------------------------- # + + # [1/6] Search for the relevant parameter start & end index + $bicepTestStartIndex = $rawContentArray.IndexOf("module testDeployment '../deploy.bicep' = {") + + $bicepTestEndIndex = $bicepTestStartIndex + do { + $bicepTestEndIndex++ + } while ($rawContentArray[$bicepTestEndIndex] -ne '}') + + $rawBicepExample = $rawContentArray[$bicepTestStartIndex..$bicepTestEndIndex] + + # [2/6] Replace placeholders + $namePrefix = ($ProjectSettings.parameterFileTokens.localTokens | Where-Object { $_.name -eq 'namePrefix' }).value + $serviceShort = ([regex]::Match($rawContent, "(?m)^param serviceShort string = '(.+)'\s*$")).Captures.Groups[1].Value + + $rawBicepExampleString = ($rawBicepExample | Out-String) + $rawBicepExampleString = $rawBicepExampleString -replace '\$\{serviceShort\}', $serviceShort + $rawBicepExampleString = $rawBicepExampleString -replace '\$\{namePrefix\}', $namePrefix + $rawBicepExampleString = $rawBicepExampleString -replace '(?m):\s*location\s*$', ': ''''' + + # [3/6] Format header, remove scope property & any empty line + $rawBicepExample = $rawBicepExampleString -split '\n' + $rawBicepExample[0] = "module $resourceType './$resourceTypeIdentifier/deploy.bicep = {" + $rawBicepExample = $rawBicepExample | Where-Object { $_ -notmatch 'scope: *' } | Where-Object { -not [String]::IsNullOrEmpty($_) } + + # [4/6] Extract param block + $rawBicepExampleArray = $rawBicepExample -split '\n' + $moduleDeploymentPropertyIndent = ([regex]::Match($rawBicepExampleArray[1], '^(\s+).*')).Captures.Groups[1].Value.Length + $paramsStartIndex = ($rawBicepExampleArray | Select-String ("^[\s]{$moduleDeploymentPropertyIndent}params:[\s]*\{") | ForEach-Object { $_.LineNumber - 1 })[0] + 1 + $paramsEndIndex = ($rawBicepExampleArray[($paramsStartIndex + 1)..($rawBicepExampleArray.Count)] | Select-String "^[\s]{$moduleDeploymentPropertyIndent}\}" | ForEach-Object { $_.LineNumber - 1 })[0] + $paramsStartIndex + $paramBlock = ($rawBicepExampleArray[$paramsStartIndex..$paramsEndIndex] | Out-String).TrimEnd() + + # [5/6] Convert Bicep parameter block to JSON parameter block to enable processing + $conversionInputObject = @{ + BicepParamBlock = $paramBlock } + $paramsInJSONFormat = ConvertTo-FormattedJSONParameterObject @conversionInputObject - $extendedKeyVaultReferences = @() - $counter = 0 - foreach ($reference in ($keyVaultReferenceData | Sort-Object -Property 'vaultName' -Unique)) { - $counter++ - $extendedKeyVaultReferences += @( - "resource kv$counter 'Microsoft.KeyVault/vaults@2019-09-01' existing = {", - (" name: '{0}'" -f $reference.vaultName), - (" scope: resourceGroup('{0}','{1}')" -f $reference.subscriptionId, $reference.resourceGroupName), - '}', - '' - ) - - # Add attribute for later correct reference - $keyVaultReferenceData | Where-Object { $_.vaultName -eq $reference.vaultName } | ForEach-Object { - $_['vaultResourceReference'] = "kv$counter" - } - } - - # Handle VALUE references (i.e. remove them) - $JSONParameters = (ConvertFrom-Json $contentInJSONFormat -Depth 99 -AsHashtable).parameters - $JSONParametersWithoutValue = @{} - foreach ($parameterName in $JSONParameters.Keys) { - if ($JSONParameters[$parameterName].Keys -eq 'value') { - $JSONParametersWithoutValue[$parameterName] = $JSONParameters[$parameterName]['value'] - } else { - # replace key vault references - $matchingTuple = $keyVaultReferenceData | Where-Object { $_.parameterName -eq $parameterName } - $JSONParametersWithoutValue[$parameterName] = "{0}.getSecret('{1}')" -f $matchingTuple.vaultResourceReference, $matchingTuple.secretName - } + # [6/6] Convert JSON parameters back to Bicep and order & format them + $conversionInputObject = @{ + JSONParameters = $paramsInJSONFormat + RequiredParametersList = $RequiredParametersList } + $bicepExample = ConvertTo-FormattedBicep @conversionInputObject - # Order parameters recursively - $JSONParametersWithoutValue = ConvertTo-OrderedHashtable -JSONInputObject ($JSONParametersWithoutValue | ConvertTo-Json -Depth 99) + # --------------------- # + # Add Bicep example # + # --------------------- # + if ($addBicep) { - # Sort 'required' parameters to the front - $orderedJSONParameters = [ordered]@{} - $orderedTopLevelParameterNames = $JSONParametersWithoutValue.psbase.Keys # We must use PS-Base to handle conflicts of HashTable properties & keys (e.g. for a key 'keys'). - # Add required parameters first - $orderedTopLevelParameterNames | Where-Object { $_ -in $requiredParameterNames } | ForEach-Object { $orderedJSONParameters[$_] = $JSONParametersWithoutValue[$_] } - # Add rest after - $orderedTopLevelParameterNames | Where-Object { $_ -notin $requiredParameterNames } | ForEach-Object { $orderedJSONParameters[$_] = $JSONParametersWithoutValue[$_] } + $formattedBicepExample = $rawBicepExample[0..($paramsStartIndex - 1)] + ($bicepExample -split '\n') + $rawBicepExample[($paramsEndIndex + 1)..($rawBicepExample.Count)] - if ($orderedJSONParameters.count -eq 0) { - # Handle empty dictionaries (in case the parmaeter file was empty) - $orderedJSONParameters = @{} - } - - $templateParameterObject = $orderedJSONParameters | ConvertTo-Json -Depth 99 - if ($templateParameterObject -ne '{}') { - $contentInBicepFormat = $templateParameterObject -replace '"', "'" # Update any [xyz: "xyz"] to [xyz: 'xyz'] - $contentInBicepFormat = $contentInBicepFormat -replace ',', '' # Update any [xyz: xyz,] to [xyz: xyz] - $contentInBicepFormat = $contentInBicepFormat -replace "'(\w+)':", '$1:' # Update any ['xyz': xyz] to [xyz: xyz] - $contentInBicepFormat = $contentInBicepFormat -replace "'(.+.getSecret\('.+'\))'", '$1' # Update any [xyz: 'xyz.GetSecret()'] to [xyz: xyz.GetSecret()] - - $bicepParamsArray = $contentInBicepFormat -split '\n' - $bicepParamsArray = $bicepParamsArray[1..($bicepParamsArray.count - 2)] - } - - # Format params with indent - $bicepExample = $bicepParamsArray | ForEach-Object { " $_" } - - # Optional: Add comment where required & optional parameters start - # ---------------------------------------------------------------- - if ($requiredParameterNames -is [string]) { - $requiredParameterNames = @($requiredParameterNames) + $SectionContent += @( + '', + '
' + '' + 'via Bicep module' + '' + '```bicep', + ($formattedBicepExample | ForEach-Object { "$_" }).TrimEnd(), + '```', + '', + '
', + '

' + ) } - # If we have at least one required and one other parameter we want to add a comment - if ($requiredParameterNames.Count -ge 1 -and $orderedJSONParameters.Keys.Count -ge 2) { - - $bicepExampleArray = $bicepExample -split '\n' - - # Check where the 'last' required parameter is located in the example (and what its indent is) - $parameterToSplitAt = $requiredParameterNames[-1] - $requiredParameterIndent = ([regex]::Match($bicepExampleArray[0], '^(\s+).*')).Captures.Groups[1].Value.Length - - # Add a comment where the required parameters start - $bicepExampleArray = @('{0}// Required parameters' -f (' ' * $requiredParameterIndent)) + $bicepExampleArray[(0 .. ($bicepExampleArray.Count))] - - # Find the location if the last required parameter - $requiredParameterStartIndex = ($bicepExampleArray | Select-String ('^[\s]{0}{1}:.+' -f "{$requiredParameterIndent}", $parameterToSplitAt) | ForEach-Object { $_.LineNumber - 1 })[0] - - # If we have more than only required parameters, let's add a corresponding comment - if ($orderedJSONParameters.Keys.Count -gt $requiredParameterNames.Count) { - $nextLineIndent = ([regex]::Match($bicepExampleArray[$requiredParameterStartIndex + 1], '^(\s+).*')).Captures.Groups[1].Value.Length - if ($nextLineIndent -gt $requiredParameterIndent) { - # Case Param is object/array: Search in rest of array for the next closing bracket with the same indent - and then add the search index (1) & initial index (1) count back in - $requiredParameterEndIndex = ($bicepExampleArray[($requiredParameterStartIndex + 1)..($bicepExampleArray.Count)] | Select-String "^[\s]{$requiredParameterIndent}\S+" | ForEach-Object { $_.LineNumber - 1 })[0] + 1 + $requiredParameterStartIndex - } else { - # Case Param is single line bool/string/int: Add an index (1) for the 'required' comment - $requiredParameterEndIndex = $requiredParameterStartIndex - } + # -------------------- # + # Add JSON example # + # -------------------- # + if ($addJson) { - # Add a comment where the non-required parameters start - $bicepExampleArray = $bicepExampleArray[0..$requiredParameterEndIndex] + ('{0}// Non-required parameters' -f (' ' * $requiredParameterIndent)) + $bicepExampleArray[(($requiredParameterEndIndex + 1) .. ($bicepExampleArray.Count))] + # [2/3] Get all parameters from the parameter object and order them recursively + $orderingInputObject = @{ + ParametersJSON = $paramsInJSONFormat | ConvertTo-Json -Depth 99 + RequiredParametersList = $RequiredParametersList } + $orderedJSONExample = Build-OrderedJSONObject @orderingInputObject - $bicepExample = $bicepExampleArray | Out-String + # [3/3] Create the final content block + $SectionContent += @( + '', + '

' + '' + 'via JSON Parameter file' + '' + '```json', + $orderedJSONExample.Trim() + '```', + '', + '
', + '

' + ) } + } else { + # ------------------------- # + # Prepare JSON to Bicep # + # ------------------------- # - $SectionContent += @( - '', - '

' - '' - 'via Bicep module' - '' - '```bicep', - $extendedKeyVaultReferences, - "module $resourceType './$resourceTypeIdentifier/deploy.bicep' = {" - " name: '`${uniqueString(deployment().name)}-$resourceType'" - ' params: {' - $bicepExample.TrimEnd(), - ' }' - '}' - '```', - '', - '
' - '

' - ) - } - - if ($addJson) { - $orderedContentInJSONFormat = ConvertTo-OrderedHashtable -JSONInputObject (($contentInJSONFormat | ConvertFrom-Json).parameters | ConvertTo-Json -Depth 99) - - # Sort 'required' parameters to the front - $orderedJSONParameters = [ordered]@{} - $orderedTopLevelParameterNames = $orderedContentInJSONFormat.psbase.Keys # We must use PS-Base to handle conflicts of HashTable properties & keys (e.g. for a key 'keys'). - # Add required parameters first - $orderedTopLevelParameterNames | Where-Object { $_ -in $requiredParameterNames } | ForEach-Object { $orderedJSONParameters[$_] = $orderedContentInJSONFormat[$_] } - # Add rest after - $orderedTopLevelParameterNames | Where-Object { $_ -notin $requiredParameterNames } | ForEach-Object { $orderedJSONParameters[$_] = $orderedContentInJSONFormat[$_] } + $rawContentHashtable = $rawContent | ConvertFrom-Json -Depth 99 -AsHashtable -NoEnumerate - if ($orderedJSONParameters.count -eq 0) { - # Handle empty dictionaries (in case the parmaeter file was empty) - $orderedJSONParameters = '' - } + # First we need to check if we're dealing with classic JSON-Parameter file, or a deployment test file (which contains resource deployments & parameters) + $isParameterFile = $rawContentHashtable.'$schema' -like '*deploymentParameters*' + if (-not $isParameterFile) { + # Case 1: Uses deployment test file (instead of parameter file). + # [1/3] Need to extract parameters. The taarget is to get an object which 1:1 represents a classic JSON-Parameter file (aside from KeyVault references) + $testResource = $rawContentHashtable.resources | Where-Object { $_.name -like '*-test-*' } - $jsonExample = ([ordered]@{ + # [2/3] Build the full ARM-JSON parameter file + $jsonParameterContent = [ordered]@{ '$schema' = 'https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#' contentVersion = '1.0.0.0' - parameters = (-not [String]::IsNullOrEmpty($orderedJSONParameters)) ? $orderedJSONParameters : @{} - } | ConvertTo-Json -Depth 99) + parameters = $testResource.properties.parameters + } + $jsonParameterContent = ($jsonParameterContent | ConvertTo-Json -Depth 99).TrimEnd() + + # [3/3] Remove 'externalResourceReferences' that are generated for Bicep's 'existing' resource references. Removing them will make the file more readable + $jsonParameterContentArray = $jsonParameterContent -split '\n' + foreach ($row in ($jsonParameterContentArray | Where-Object { $_ -like '*reference(extensionResourceId*' })) { + $expectedValue = ([regex]::Match($row, '.+\[reference\(extensionResourceId.+\.(.+)\.value\]"')).Captures.Groups[1].Value + $toReplaceValue = ([regex]::Match($row, '"(\[reference\(extensionResourceId.+)"')).Captures.Groups[1].Value - # Optional: Add comment where required & optional parameters start - # ---------------------------------------------------------------- - if ($requiredParameterNames -is [string]) { - $requiredParameterNames = @($requiredParameterNames) + $jsonParameterContent = $jsonParameterContent.Replace($toReplaceValue, ('<{0}>' -f $expectedValue)) + } + } else { + # Case 2: Uses ARM-JSON parameter file + $jsonParameterContent = $rawContent.TrimEnd() } - # If we have at least one required and one other parameter we want to add a comment - if ($requiredParameterNames.Count -ge 1 -and $orderedJSONParameters.Keys.Count -ge 2) { + # --------------------- # + # Add Bicep example # + # --------------------- # + if ($addBicep) { + + # [1/4] Get all parameters from the parameter object + $JSONParametersHashTable = (ConvertFrom-Json $jsonParameterContent -AsHashtable -Depth 99).parameters + + # [2/4] Handle the special case of Key Vault secret references (that have a 'reference' instead of a 'value' property) + # [2.1] Find all references and split them into managable objects + $keyVaultReferences = $JSONParametersHashTable.Keys | Where-Object { $JSONParametersHashTable[$_].Keys -contains 'reference' } + + if ($keyVaultReferences.Count -gt 0) { + $keyVaultReferenceData = @() + foreach ($reference in $keyVaultReferences) { + $resourceIdElem = $JSONParametersHashTable[$reference].reference.keyVault.id -split '/' + $keyVaultReferenceData += @{ + subscriptionId = $resourceIdElem[2] + resourceGroupName = $resourceIdElem[4] + vaultName = $resourceIdElem[-1] + secretName = $JSONParametersHashTable[$reference].reference.secretName + parameterName = $reference + } + } + } - $jsonExampleArray = $jsonExample -split '\n' + # [2.2] Remove any duplicates from the referenced key vaults and build 'existing' Key Vault references in Bicep format from them. + # Also, add a link to the corresponding Key Vault 'resource' to each identified Key Vault secret reference + $extendedKeyVaultReferences = @() + $counter = 0 + foreach ($reference in ($keyVaultReferenceData | Sort-Object -Property 'vaultName' -Unique)) { + $counter++ + $extendedKeyVaultReferences += @( + "resource kv$counter 'Microsoft.KeyVault/vaults@2019-09-01' existing = {", + (" name: '{0}'" -f $reference.vaultName), + (" scope: resourceGroup('{0}','{1}')" -f $reference.subscriptionId, $reference.resourceGroupName), + '}', + '' + ) - # Check where the 'last' required parameter is located in the example (and what its indent is) - $parameterToSplitAt = $requiredParameterNames[-1] - $parameterStartIndex = ($jsonExampleArray | Select-String '.*"parameters": \{.*' | ForEach-Object { $_.LineNumber - 1 })[0] - $requiredParameterIndent = ([regex]::Match($jsonExampleArray[($parameterStartIndex + 1)], '^(\s+).*')).Captures.Groups[1].Value.Length + # Add attribute for later correct reference + $keyVaultReferenceData | Where-Object { $_.vaultName -eq $reference.vaultName } | ForEach-Object { + $_['vaultResourceReference'] = "kv$counter" + } + } - # Add a comment where the required parameters start - $jsonExampleArray = $jsonExampleArray[0..$parameterStartIndex] + ('{0}// Required parameters' -f (' ' * $requiredParameterIndent)) + $jsonExampleArray[(($parameterStartIndex + 1) .. ($jsonExampleArray.Count))] + # [3/5] Remove the 'value' property from each parameter + # If we're handling a classic ARM-JSON parameter file that includes replacing all 'references' with the link to one of the 'existing' Key Vault resources + if ((ConvertFrom-Json $rawContent -Depth 99).'$schema' -like '*deploymentParameters*') { + # If handling a classic parameter file + $JSONParameters = (ConvertFrom-Json $rawContent -Depth 99 -AsHashtable -NoEnumerate).parameters + $JSONParametersWithoutValue = @{} + foreach ($parameterName in $JSONParameters.psbase.Keys) { + if ($JSONParameters[$parameterName].Keys -eq 'value') { + $JSONParametersWithoutValue[$parameterName] = $JSONParameters[$parameterName]['value'] + } else { + # replace key vault references + $matchingTuple = $keyVaultReferenceData | Where-Object { $_.parameterName -eq $parameterName } + $JSONParametersWithoutValue[$parameterName] = "{0}.getSecret('{1}')" -f $matchingTuple.vaultResourceReference, $matchingTuple.secretName + } + } + } else { + # If handling a test deployment file + $JSONParametersWithoutValue = @{} + foreach ($parameter in $JSONParametersHashTable.Keys) { + $JSONParametersWithoutValue[$parameter] = $JSONParametersHashTable.$parameter.value + } + } - # Find the location if the last required parameter - $requiredParameterStartIndex = ($jsonExampleArray | Select-String "^[\s]{$requiredParameterIndent}`"$parameterToSplitAt`": \{.*" | ForEach-Object { $_.LineNumber - 1 })[0] + # [4/5] Convert the JSON parameters to a Bicep parameters block + $conversionInputObject = @{ + JSONParameters = $JSONParametersWithoutValue + RequiredParametersList = $null -ne $RequiredParametersList ? $RequiredParametersList : @() + } + $bicepExample = ConvertTo-FormattedBicep @conversionInputObject + + # [5/5] Create the final content block: That means + # - the 'existing' Key Vault resources + # - a 'module' header that mimics a module deployment + # - all parameters in Bicep format + $SectionContent += @( + '', + '

' + '' + 'via Bicep module' + '' + '```bicep', + $extendedKeyVaultReferences, + "module $resourceType './$resourceTypeIdentifier/deploy.bicep' = {" + " name: '`${uniqueString(deployment().name)}-$resourceType'" + ' params: {' + $bicepExample.TrimEnd(), + ' }' + '}' + '```', + '', + '
' + '

' + ) + } - # If we have more than only required parameters, let's add a corresponding comment - if ($orderedJSONParameters.Keys.Count -gt $requiredParameterNames.Count ) { - # Search in rest of array for the next closing bracket with the same indent - and then add the search index (1) & initial index (1) count back in - $requiredParameterEndIndex = ($jsonExampleArray[($requiredParameterStartIndex + 1)..($jsonExampleArray.Count)] | Select-String "^[\s]{$requiredParameterIndent}\}" | ForEach-Object { $_.LineNumber - 1 })[0] + 1 + $requiredParameterStartIndex + # -------------------- # + # Add JSON example # + # -------------------- # + if ($addJson) { - # Add a comment where the non-required parameters start - $jsonExampleArray = $jsonExampleArray[0..$requiredParameterEndIndex] + ('{0}// Non-required parameters' -f (' ' * $requiredParameterIndent)) + $jsonExampleArray[(($requiredParameterEndIndex + 1) .. ($jsonExampleArray.Count))] + # [1/2] Get all parameters from the parameter object and order them recursively + $orderingInputObject = @{ + ParametersJSON = (($jsonParameterContent | ConvertFrom-Json).parameters | ConvertTo-Json -Depth 99) + RequiredParametersList = $null -ne $RequiredParametersList ? $RequiredParametersList : @() } - - $jsonExample = $jsonExampleArray | Out-String + $orderedJSONExample = Build-OrderedJSONObject @orderingInputObject + + # [2/2] Create the final content block + $SectionContent += @( + '', + '

', + '', + 'via JSON Parameter file', + '', + '```json', + $orderedJSONExample.TrimEnd(), + '```', + '', + '
' + '

' + ) } - - $SectionContent += @( - '', - '

', - '', - 'via JSON Parameter file', - '', - '```json', - $jsonExample.TrimEnd(), - '```', - '', - '
' - '

' - ) } $SectionContent += @( @@ -603,7 +1070,9 @@ function Set-DeploymentExamplesSection { $pathIndex++ } - # Build result + ###################### + ## Built result ## + ###################### if ($SectionContent) { if ($PSCmdlet.ShouldProcess('Original file with new template references content', 'Merge')) { return Merge-FileWithNewContent -oldContent $ReadMeFileContent -newContent $SectionContent -SectionStartIdentifier $SectionStartIdentifier @@ -777,6 +1246,15 @@ function Set-ModuleReadMe { $fullResourcePath = (Split-Path $TemplateFilePath -Parent).Replace('\', '/').split('/modules/')[1] + $root = (Get-Item $PSScriptRoot).Parent.Parent.FullName + $projectSettingsPath = Join-Path $root 'settings.json' + if (Test-Path $projectSettingsPath) { + $projectSettings = Get-Content $projectSettingsPath | ConvertFrom-Json -AsHashtable + } else { + Write-Warning "No settings file found in path [$projectSettingsPath]" + $projectSettings = @{} + } + # Check readme if (-not (Test-Path $ReadMeFilePath) -or ([String]::IsNullOrEmpty((Get-Content $ReadMeFilePath -Raw)))) { # Create new readme file @@ -862,6 +1340,7 @@ function Set-ModuleReadMe { ReadMeFileContent = $readMeFileContent TemplateFilePath = $TemplateFilePath TemplateFileContent = $templateFileContent + ProjectSettings = $projectSettings } $readMeFileContent = Set-DeploymentExamplesSection @inputObject } From 57e9fb1a126c35693a07a4635f6203b1963c39e0 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 18:16:38 +0200 Subject: [PATCH 113/274] Updated Set-ModuleReadMe with Bicep support & regenerated docs --- .../Microsoft.ApiManagement/service/readme.md | 14 +- .../configurationStores/readme.md | 16 +-- .../automationAccounts/readme.md | 31 +---- modules/Microsoft.Cache/redis/readme.md | 126 ++++++++++-------- .../virtualMachines/readme.md | 2 +- modules/Microsoft.EventGrid/topics/readme.md | 2 +- .../Microsoft.EventHub/namespaces/readme.md | 2 +- .../webPubSub/readme.md | 4 +- modules/Microsoft.Sql/servers/readme.md | 9 +- .../hostingEnvironments/readme.md | 14 +- 10 files changed, 85 insertions(+), 135 deletions(-) diff --git a/modules/Microsoft.ApiManagement/service/readme.md b/modules/Microsoft.ApiManagement/service/readme.md index f77ca283df..59707bf500 100644 --- a/modules/Microsoft.ApiManagement/service/readme.md +++ b/modules/Microsoft.ApiManagement/service/readme.md @@ -352,12 +352,7 @@ module service './Microsoft.ApiManagement/service/deploy.bicep' = { secret: true } ] - policies: [ - { - format: 'xml' - value: ' ' - } - ] + policies: ' ' portalSettings: [ { name: 'signin' @@ -670,12 +665,7 @@ module service './Microsoft.ApiManagement/service/deploy.bicep' = { publisherName: '<>-az-amorg-x-001' // Non-required parameters lock: 'CanNotDelete' - policies: [ - { - format: 'xml' - value: ' ' - } - ] + policies: ' ' portalSettings: [ { name: 'signin' diff --git a/modules/Microsoft.AppConfiguration/configurationStores/readme.md b/modules/Microsoft.AppConfiguration/configurationStores/readme.md index 7651115a55..4c988e81e4 100644 --- a/modules/Microsoft.AppConfiguration/configurationStores/readme.md +++ b/modules/Microsoft.AppConfiguration/configurationStores/readme.md @@ -340,21 +340,7 @@ module configurationStores './Microsoft.AppConfiguration/configurationStores/dep diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' disableLocalAuth: false enablePurgeProtection: false - keyValues: [ - { - contentType: 'contentType' - name: 'keyName' - roleAssignments: [ - { - principalIds: [ - '<>' - ] - roleDefinitionIdOrName: 'Reader' - } - ] - value: 'valueName' - } - ] + keyValues: 'valueName' lock: 'CanNotDelete' privateEndpoints: [ { diff --git a/modules/Microsoft.Automation/automationAccounts/readme.md b/modules/Microsoft.Automation/automationAccounts/readme.md index ec1b90645a..54ad2786f9 100644 --- a/modules/Microsoft.Automation/automationAccounts/readme.md +++ b/modules/Microsoft.Automation/automationAccounts/readme.md @@ -586,32 +586,11 @@ module automationAccounts './Microsoft.Automation/automationAccounts/deploy.bice '/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} } variables: [ - { - description: 'TestStringDescription' - name: 'TestString' - value: '\'TestString\'' - } - { - description: 'TestIntegerDescription' - name: 'TestInteger' - value: '500' - } - { - description: 'TestBooleanDescription' - name: 'TestBoolean' - value: 'false' - } - { - description: 'TestDateTimeDescription' - isEncrypted: false - name: 'TestDateTime' - value: '\'\\/Date(1637934042656)\\/\'' - } - { - description: 'TestEncryptedDescription' - name: 'TestEncryptedVariable' - value: '\'TestEncryptedValue\'' - } + '\'\\/Date(1637934042656)\\/\'' + '\'TestEncryptedValue\'' + '\'TestString\'' + '500' + 'false' ] } } diff --git a/modules/Microsoft.Cache/redis/readme.md b/modules/Microsoft.Cache/redis/readme.md index 36d14ec9ed..dc9e7ee61a 100644 --- a/modules/Microsoft.Cache/redis/readme.md +++ b/modules/Microsoft.Cache/redis/readme.md @@ -318,7 +318,27 @@ privateEndpoints: [ ## Deployment examples -

Example 1

+The following module usage examples are retrieved from the content of the files hosted in the module's `.test` folder. + >**Note**: The name of each example is based on the name of the file from which it is taken. + >**Note**: Each example lists all the required parameters first, followed by the rest - each in alphabetical order. + +

Example 1: Min

+ +
+ +via Bicep module + +```bicep +module redis './Microsoft.Cache/redis/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-redis' + params: { + name: '<>-az-redis-min-001' + } +} +``` + +
+

@@ -337,6 +357,9 @@ privateEndpoints: [ ```
+

+ +

Example 2: Parameters

@@ -346,7 +369,35 @@ privateEndpoints: [ module redis './Microsoft.Cache/redis/deploy.bicep' = { name: '${uniqueString(deployment().name)}-redis' params: { - name: '<>-az-redis-min-001' + // Required parameters + name: '<>-az-redis-full-001' + // Non-required parameters + capacity: 2 + diagnosticLogCategoriesToEnable: [ + 'ApplicationGatewayAccessLog' + 'ApplicationGatewayFirewallLog' + ] + diagnosticMetricsToEnable: [ + 'AllMetrics' + ] + diagnosticSettingsName: 'redisdiagnostics' + enableNonSslPort: true + lock: 'CanNotDelete' + minimumTlsVersion: '1.2' + privateEndpoints: [ + { + service: 'redisCache' + subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints' + } + ] + publicNetworkAccess: 'Enabled' + redisVersion: '6' + shardCount: 1 + skuName: 'Premium' + systemAssignedIdentity: true + tags: { + resourceType: 'Redis Cache' + } } } ``` @@ -354,8 +405,6 @@ module redis './Microsoft.Cache/redis/deploy.bicep' = {

-

Example 2

-
via JSON Parameter file @@ -365,9 +414,11 @@ module redis './Microsoft.Cache/redis/deploy.bicep' = { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { + // Required parameters "name": { "value": "<>-az-redis-full-001" }, + // Non-required parameters "capacity": { "value": 2 }, @@ -382,6 +433,9 @@ module redis './Microsoft.Cache/redis/deploy.bicep' = { "AllMetrics" ] }, + "diagnosticSettingsName": { + "value": "redisdiagnostics" + }, "enableNonSslPort": { "value": true }, @@ -391,8 +445,13 @@ module redis './Microsoft.Cache/redis/deploy.bicep' = { "minimumTlsVersion": { "value": "1.2" }, - "diagnosticSettingsName": { - "value": "redisdiagnostics" + "privateEndpoints": { + "value": [ + { + "service": "redisCache", + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints" + } + ] }, "publicNetworkAccess": { "value": "Enabled" @@ -400,72 +459,23 @@ module redis './Microsoft.Cache/redis/deploy.bicep' = { "redisVersion": { "value": "6" }, + "shardCount": { + "value": 1 + }, "skuName": { "value": "Premium" }, "systemAssignedIdentity": { "value": true }, - "shardCount": { - "value": 1 - }, "tags": { "value": { "resourceType": "Redis Cache" } - }, - "privateEndpoints": { - "value": [ - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "redisCache" - } - ] } } } ``` -
- -
- -via Bicep module - -```bicep -module redis './Microsoft.Cache/redis/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-redis' - params: { - name: '<>-az-redis-full-001' - capacity: 2 - diagnosticLogCategoriesToEnable: [ - 'ApplicationGatewayAccessLog' - 'ApplicationGatewayFirewallLog' - ] - diagnosticMetricsToEnable: [ - 'AllMetrics' - ] - enableNonSslPort: true - lock: 'CanNotDelete' - minimumTlsVersion: '1.2' - diagnosticSettingsName: 'redisdiagnostics' - publicNetworkAccess: 'Enabled' - redisVersion: '6' - skuName: 'Premium' - systemAssignedIdentity: true - shardCount: 1 - tags: { - resourceType: 'Redis Cache' - } - privateEndpoints: [ - { - subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints' - service: 'redisCache' - } - ] - } -} -``` -

diff --git a/modules/Microsoft.Compute/virtualMachines/readme.md b/modules/Microsoft.Compute/virtualMachines/readme.md index 2577539230..cb958231cd 100644 --- a/modules/Microsoft.Compute/virtualMachines/readme.md +++ b/modules/Microsoft.Compute/virtualMachines/readme.md @@ -22,7 +22,7 @@ This module deploys one Virtual Machine with one or multiple nics and optionally | `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | | `Microsoft.Network/networkInterfaces` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/networkInterfaces) | | `Microsoft.Network/publicIPAddresses` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/publicIPAddresses) | -| `Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems` | [2021-06-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2021-06-01/vaults/backupFabrics/protectionContainers/protectedItems) | +| `Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems` | [2022-02-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2022-02-01/vaults/backupFabrics/protectionContainers/protectedItems) | ## Parameters diff --git a/modules/Microsoft.EventGrid/topics/readme.md b/modules/Microsoft.EventGrid/topics/readme.md index 2d51148e49..0a26c1b4c2 100644 --- a/modules/Microsoft.EventGrid/topics/readme.md +++ b/modules/Microsoft.EventGrid/topics/readme.md @@ -17,7 +17,7 @@ This module deploys an event grid topic. | `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-10-01-preview/roleAssignments) | | `Microsoft.EventGrid/topics` | [2020-06-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.EventGrid/2020-06-01/topics) | | `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | -| `Microsoft.Network/privateEndpoints` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/privateEndpoints) | +| `Microsoft.Network/privateEndpoints` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/privateEndpoints) | | `Microsoft.Network/privateEndpoints/privateDnsZoneGroups` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/privateEndpoints/privateDnsZoneGroups) | ## Parameters diff --git a/modules/Microsoft.EventHub/namespaces/readme.md b/modules/Microsoft.EventHub/namespaces/readme.md index d29240ade3..b8ab6251ae 100644 --- a/modules/Microsoft.EventHub/namespaces/readme.md +++ b/modules/Microsoft.EventHub/namespaces/readme.md @@ -17,7 +17,7 @@ This module deploys an event hub namespace. | `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-10-01-preview/roleAssignments) | | `Microsoft.EventHub/namespaces` | [2021-11-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.EventHub/2021-11-01/namespaces) | | `Microsoft.EventHub/namespaces/authorizationRules` | [2021-11-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.EventHub/2021-11-01/namespaces/authorizationRules) | -| `Microsoft.EventHub/namespaces/disasterRecoveryConfigs` | [2021-11-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.EventHub/2021-11-01/namespaces/disasterRecoveryConfigs) | +| `Microsoft.EventHub/namespaces/disasterRecoveryConfigs` | [2021-11-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.EventHub/namespaces/disasterRecoveryConfigs) | | `Microsoft.EventHub/namespaces/eventhubs` | [2021-11-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.EventHub/2021-11-01/namespaces/eventhubs) | | `Microsoft.EventHub/namespaces/eventhubs/authorizationRules` | [2021-11-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.EventHub/2021-11-01/namespaces/eventhubs/authorizationRules) | | `Microsoft.EventHub/namespaces/eventhubs/consumergroups` | [2021-11-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.EventHub/2021-11-01/namespaces/eventhubs/consumergroups) | diff --git a/modules/Microsoft.SignalRService/webPubSub/readme.md b/modules/Microsoft.SignalRService/webPubSub/readme.md index 1b7bf13e22..3342c6ba66 100644 --- a/modules/Microsoft.SignalRService/webPubSub/readme.md +++ b/modules/Microsoft.SignalRService/webPubSub/readme.md @@ -396,7 +396,7 @@ module webPubSub './Microsoft.SignalRService/webPubSub/deploy.bicep' = { params: { // Required parameters name: '<>-az-pubsub-x-001' - // Additional parameters + // Non-required parameters capacity: 2 clientCertEnabled: false disableAadAuth: false @@ -465,7 +465,7 @@ module webPubSub './Microsoft.SignalRService/webPubSub/deploy.bicep' = { "name": { "value": "<>-az-pubsub-x-001" }, - // Additional parameters + // Non-required parameters "capacity": { "value": 2 }, diff --git a/modules/Microsoft.Sql/servers/readme.md b/modules/Microsoft.Sql/servers/readme.md index a97a414d5d..78623cef94 100644 --- a/modules/Microsoft.Sql/servers/readme.md +++ b/modules/Microsoft.Sql/servers/readme.md @@ -397,7 +397,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep' = { // Required parameters name: '<>-az-sqlsrv-x-001' // Non-required parameters - administratorLogin: kv1.getSecret('administratorLogin') + administratorLogin: 'adminUserName' administratorLoginPassword: kv1.getSecret('administratorLoginPassword') databases: [ { @@ -483,12 +483,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep' = { }, // Non-required parameters "administratorLogin": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/<>/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "administratorLogin" - } + "value": "adminUserName" }, "administratorLoginPassword": { "reference": { diff --git a/modules/Microsoft.Web/hostingEnvironments/readme.md b/modules/Microsoft.Web/hostingEnvironments/readme.md index 7b9c7aa52b..7150c84990 100644 --- a/modules/Microsoft.Web/hostingEnvironments/readme.md +++ b/modules/Microsoft.Web/hostingEnvironments/readme.md @@ -217,12 +217,7 @@ module hostingEnvironments './Microsoft.Web/hostingEnvironments/deploy.bicep' = name: '<>-az-appse-asev2-001' subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-008' // Non-required parameters - clusterSettings: [ - { - name: 'DisableTls1.0' - value: '1' - } - ] + clusterSettings: '1' diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' diagnosticEventHubName: 'adp-<>-az-evh-x-001' diagnosticLogsRetentionInDays: 7 @@ -326,12 +321,7 @@ module hostingEnvironments './Microsoft.Web/hostingEnvironments/deploy.bicep' = name: '<>-az-appse-asev3-001' subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-006' // Non-required parameters - clusterSettings: [ - { - name: 'DisableTls1.0' - value: '1' - } - ] + clusterSettings: '1' diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' diagnosticEventHubName: 'adp-<>-az-evh-x-001' diagnosticLogsRetentionInDays: 7 From 6b06637e8a75049b411f5ff9ed2dc432f0e1e8ad Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 18:21:29 +0200 Subject: [PATCH 114/274] Updated comments --- utilities/tools/Set-ModuleReadMe.ps1 | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index c2f108806b..bdb5faa154 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -354,13 +354,13 @@ function Add-BicepParameterTypeComment { $parameterToSplitAt = $RequiredParametersList[-1] $requiredParameterIndent = ([regex]::Match($BicepParamsArray[0], '^(\s+).*')).Captures.Groups[1].Value.Length - # [1/4] Add a comment where the required parameters start + # [2/4] Add a comment where the required parameters start $BicepParamsArray = @('{0}// Required parameters' -f (' ' * $requiredParameterIndent)) + $BicepParamsArray[(0 .. ($BicepParamsArray.Count))] - # [1/4] Find the location if the last required parameter + # [3/4] Find the location if the last required parameter $requiredParameterStartIndex = ($BicepParamsArray | Select-String ('^[\s]{0}{1}:.+' -f "{$requiredParameterIndent}", $parameterToSplitAt) | ForEach-Object { $_.LineNumber - 1 })[0] - # [1/4] If we have more than only required parameters, let's add a corresponding comment + # [4/4] If we have more than only required parameters, let's add a corresponding comment if ($AllParametersList.Count -gt $RequiredParametersList.Count) { $nextLineIndent = ([regex]::Match($BicepParamsArray[$requiredParameterStartIndex + 1], '^(\s+).*')).Captures.Groups[1].Value.Length if ($nextLineIndent -gt $requiredParameterIndent) { @@ -568,22 +568,22 @@ function ConvertTo-FormattedJSONParameterObject { $topLevelParams = $bicepParamBlockArray | Where-Object { $_ -match "^\s{$topLevelParamIndent}[0-9a-zA-Z]+:.*" } | ForEach-Object { ($_ -split ':')[0].Trim() } # [2/4] Add JSON-specific syntax to the Bicep param block to enable us to treat is as such - # [1.1] Syntax: Outer brackets + # [2.1] Syntax: Outer brackets $paramInJsonFormat = @( '{', $BicepParamBlock '}' ) | Out-String - # [1.2] Syntax: All single-quotes are double-quotes + # [2.2] Syntax: All single-quotes are double-quotes $paramInJsonFormat = $paramInJsonFormat -replace "'", '"' - # [1.3] Syntax: Everything left of a ':' should be wrapped in quotes (as a parameter name is always a string) + # [2.3] Syntax: Everything left of a ':' should be wrapped in quotes (as a parameter name is always a string) $paramInJsonFormat = $paramInJsonFormat -replace '([0-9a-zA-Z]+):', '"$1":' - # [1.4] Split the object to format line-by-line (& also remove any empty lines) + # [2.4] Split the object to format line-by-line (& also remove any empty lines) $paramInJSONFormatArray = $paramInJsonFormat -split '\n' | Where-Object { $_ } - # [1.5] Syntax: Replace Bicep resource ID references + # [2.5] Syntax: Replace Bicep resource ID references for ($index = 0; $index -lt $paramInJSONFormatArray.Count; $index++) { if ($paramInJSONFormatArray[$index] -like '*:*' -and ($paramInJSONFormatArray[$index] -split ':')[1].Trim() -notmatch '".+"' -and $paramInJSONFormatArray[$index] -like '*.*') { # In case of a reference like : "virtualWanId": resourceGroupResources.outputs.virtualWWANResourceId @@ -595,7 +595,7 @@ function ConvertTo-FormattedJSONParameterObject { } } - # [1.6] Syntax: Add comma everywhere unless: + # [2.6] Syntax: Add comma everywhere unless: # - the current line has an opening 'object: {' or 'array: [' character # - the line after the current line has a closing 'object: {' or 'array: [' character # - it's the last closing bracket @@ -606,7 +606,7 @@ function ConvertTo-FormattedJSONParameterObject { $paramInJSONFormatArray[$index] = '{0},' -f $paramInJSONFormatArray[$index].Trim() } - # [1.7] Format the final JSON string to an object to enable processing + # [2.7] Format the final JSON string to an object to enable processing $paramInJsonFormatObject = $paramInJSONFormatArray | Out-String | ConvertFrom-Json -AsHashtable -Depth 99 # [3/4] Inject top-level 'value`' properties @@ -876,14 +876,14 @@ function Set-DeploymentExamplesSection { # -------------------- # if ($addJson) { - # [2/3] Get all parameters from the parameter object and order them recursively + # [1/2] Get all parameters from the parameter object and order them recursively $orderingInputObject = @{ ParametersJSON = $paramsInJSONFormat | ConvertTo-Json -Depth 99 RequiredParametersList = $RequiredParametersList } $orderedJSONExample = Build-OrderedJSONObject @orderingInputObject - # [3/3] Create the final content block + # [2/2] Create the final content block $SectionContent += @( '', '

' @@ -938,10 +938,10 @@ function Set-DeploymentExamplesSection { # --------------------- # if ($addBicep) { - # [1/4] Get all parameters from the parameter object + # [1/5] Get all parameters from the parameter object $JSONParametersHashTable = (ConvertFrom-Json $jsonParameterContent -AsHashtable -Depth 99).parameters - # [2/4] Handle the special case of Key Vault secret references (that have a 'reference' instead of a 'value' property) + # [2/5] Handle the special case of Key Vault secret references (that have a 'reference' instead of a 'value' property) # [2.1] Find all references and split them into managable objects $keyVaultReferences = $JSONParametersHashTable.Keys | Where-Object { $JSONParametersHashTable[$_].Keys -contains 'reference' } From 30963faf12747fe983d6170ef82fbc3233cf84cf Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 18:37:43 +0200 Subject: [PATCH 115/274] Updated robustness --- utilities/tools/Set-ModuleReadMe.ps1 | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index bdb5faa154..f7d627b55a 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -661,11 +661,12 @@ function ConvertTo-FormattedBicep { # Remove 'value' parameter property, if any (e.g. when dealing with a classic parameter file) $JSONParametersWithoutValue = @{} - foreach ($parameter in $JSONParameters.psbase.Keys) { - if ($JSONParameters[$parameter].Keys -eq 'value') { - $JSONParametersWithoutValue[$parameter] = $JSONParameters.$parameter.value + foreach ($parameterName in $JSONParameters.psbase.Keys) { + $keysOnLevel = $JSONParameters[$parameterName].Keys + if ($keysOnLevel.count -eq 1 -and $keysOnLevel -eq 'value') { + $JSONParametersWithoutValue[$parameterName] = $JSONParameters[$parameterName].value } else { - $JSONParametersWithoutValue[$parameter] = $JSONParameters.$parameter + $JSONParametersWithoutValue[$parameterName] = $JSONParameters[$parameterName] } } @@ -986,7 +987,8 @@ function Set-DeploymentExamplesSection { $JSONParameters = (ConvertFrom-Json $rawContent -Depth 99 -AsHashtable -NoEnumerate).parameters $JSONParametersWithoutValue = @{} foreach ($parameterName in $JSONParameters.psbase.Keys) { - if ($JSONParameters[$parameterName].Keys -eq 'value') { + $keysOnLevel = $JSONParameters[$parameter].Keys + if ($keysOnLevel.count -eq 1 -and $keysOnLevel -eq 'value') { $JSONParametersWithoutValue[$parameterName] = $JSONParameters[$parameterName]['value'] } else { # replace key vault references From c79f4db454e1415896309a75f7ebb838cc07f46f Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 18:40:15 +0200 Subject: [PATCH 116/274] Updated robustness --- utilities/tools/Set-ModuleReadMe.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index f7d627b55a..c1fe108be1 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -987,7 +987,7 @@ function Set-DeploymentExamplesSection { $JSONParameters = (ConvertFrom-Json $rawContent -Depth 99 -AsHashtable -NoEnumerate).parameters $JSONParametersWithoutValue = @{} foreach ($parameterName in $JSONParameters.psbase.Keys) { - $keysOnLevel = $JSONParameters[$parameter].Keys + $keysOnLevel = $JSONParameters[$parameterName].Keys if ($keysOnLevel.count -eq 1 -and $keysOnLevel -eq 'value') { $JSONParametersWithoutValue[$parameterName] = $JSONParameters[$parameterName]['value'] } else { From 3c1a59fcae95a1ce4f9dbec06e3b8009bf8d28f5 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 18:47:41 +0200 Subject: [PATCH 117/274] Updated docs --- .../Microsoft.ApiManagement/service/readme.md | 14 +++++++-- .../configurationStores/readme.md | 16 +++++++++- .../automationAccounts/readme.md | 31 ++++++++++++++++--- .../Microsoft.EventHub/namespaces/readme.md | 2 +- .../hostingEnvironments/readme.md | 14 +++++++-- 5 files changed, 66 insertions(+), 11 deletions(-) diff --git a/modules/Microsoft.ApiManagement/service/readme.md b/modules/Microsoft.ApiManagement/service/readme.md index 59707bf500..f77ca283df 100644 --- a/modules/Microsoft.ApiManagement/service/readme.md +++ b/modules/Microsoft.ApiManagement/service/readme.md @@ -352,7 +352,12 @@ module service './Microsoft.ApiManagement/service/deploy.bicep' = { secret: true } ] - policies: ' ' + policies: [ + { + format: 'xml' + value: ' ' + } + ] portalSettings: [ { name: 'signin' @@ -665,7 +670,12 @@ module service './Microsoft.ApiManagement/service/deploy.bicep' = { publisherName: '<>-az-amorg-x-001' // Non-required parameters lock: 'CanNotDelete' - policies: ' ' + policies: [ + { + format: 'xml' + value: ' ' + } + ] portalSettings: [ { name: 'signin' diff --git a/modules/Microsoft.AppConfiguration/configurationStores/readme.md b/modules/Microsoft.AppConfiguration/configurationStores/readme.md index 4c988e81e4..7651115a55 100644 --- a/modules/Microsoft.AppConfiguration/configurationStores/readme.md +++ b/modules/Microsoft.AppConfiguration/configurationStores/readme.md @@ -340,7 +340,21 @@ module configurationStores './Microsoft.AppConfiguration/configurationStores/dep diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' disableLocalAuth: false enablePurgeProtection: false - keyValues: 'valueName' + keyValues: [ + { + contentType: 'contentType' + name: 'keyName' + roleAssignments: [ + { + principalIds: [ + '<>' + ] + roleDefinitionIdOrName: 'Reader' + } + ] + value: 'valueName' + } + ] lock: 'CanNotDelete' privateEndpoints: [ { diff --git a/modules/Microsoft.Automation/automationAccounts/readme.md b/modules/Microsoft.Automation/automationAccounts/readme.md index 54ad2786f9..ec1b90645a 100644 --- a/modules/Microsoft.Automation/automationAccounts/readme.md +++ b/modules/Microsoft.Automation/automationAccounts/readme.md @@ -586,11 +586,32 @@ module automationAccounts './Microsoft.Automation/automationAccounts/deploy.bice '/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} } variables: [ - '\'\\/Date(1637934042656)\\/\'' - '\'TestEncryptedValue\'' - '\'TestString\'' - '500' - 'false' + { + description: 'TestStringDescription' + name: 'TestString' + value: '\'TestString\'' + } + { + description: 'TestIntegerDescription' + name: 'TestInteger' + value: '500' + } + { + description: 'TestBooleanDescription' + name: 'TestBoolean' + value: 'false' + } + { + description: 'TestDateTimeDescription' + isEncrypted: false + name: 'TestDateTime' + value: '\'\\/Date(1637934042656)\\/\'' + } + { + description: 'TestEncryptedDescription' + name: 'TestEncryptedVariable' + value: '\'TestEncryptedValue\'' + } ] } } diff --git a/modules/Microsoft.EventHub/namespaces/readme.md b/modules/Microsoft.EventHub/namespaces/readme.md index b8ab6251ae..d29240ade3 100644 --- a/modules/Microsoft.EventHub/namespaces/readme.md +++ b/modules/Microsoft.EventHub/namespaces/readme.md @@ -17,7 +17,7 @@ This module deploys an event hub namespace. | `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-10-01-preview/roleAssignments) | | `Microsoft.EventHub/namespaces` | [2021-11-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.EventHub/2021-11-01/namespaces) | | `Microsoft.EventHub/namespaces/authorizationRules` | [2021-11-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.EventHub/2021-11-01/namespaces/authorizationRules) | -| `Microsoft.EventHub/namespaces/disasterRecoveryConfigs` | [2021-11-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.EventHub/namespaces/disasterRecoveryConfigs) | +| `Microsoft.EventHub/namespaces/disasterRecoveryConfigs` | [2021-11-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.EventHub/2021-11-01/namespaces/disasterRecoveryConfigs) | | `Microsoft.EventHub/namespaces/eventhubs` | [2021-11-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.EventHub/2021-11-01/namespaces/eventhubs) | | `Microsoft.EventHub/namespaces/eventhubs/authorizationRules` | [2021-11-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.EventHub/2021-11-01/namespaces/eventhubs/authorizationRules) | | `Microsoft.EventHub/namespaces/eventhubs/consumergroups` | [2021-11-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.EventHub/2021-11-01/namespaces/eventhubs/consumergroups) | diff --git a/modules/Microsoft.Web/hostingEnvironments/readme.md b/modules/Microsoft.Web/hostingEnvironments/readme.md index 7150c84990..7b9c7aa52b 100644 --- a/modules/Microsoft.Web/hostingEnvironments/readme.md +++ b/modules/Microsoft.Web/hostingEnvironments/readme.md @@ -217,7 +217,12 @@ module hostingEnvironments './Microsoft.Web/hostingEnvironments/deploy.bicep' = name: '<>-az-appse-asev2-001' subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-008' // Non-required parameters - clusterSettings: '1' + clusterSettings: [ + { + name: 'DisableTls1.0' + value: '1' + } + ] diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' diagnosticEventHubName: 'adp-<>-az-evh-x-001' diagnosticLogsRetentionInDays: 7 @@ -321,7 +326,12 @@ module hostingEnvironments './Microsoft.Web/hostingEnvironments/deploy.bicep' = name: '<>-az-appse-asev3-001' subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-006' // Non-required parameters - clusterSettings: '1' + clusterSettings: [ + { + name: 'DisableTls1.0' + value: '1' + } + ] diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' diagnosticEventHubName: 'adp-<>-az-evh-x-001' diagnosticLogsRetentionInDays: 7 From 994ad66517c87aba7467ebbc782a1f4dd81a015c Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 18:49:09 +0200 Subject: [PATCH 118/274] Another update --- modules/Microsoft.EventGrid/topics/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/Microsoft.EventGrid/topics/readme.md b/modules/Microsoft.EventGrid/topics/readme.md index 0a26c1b4c2..2d51148e49 100644 --- a/modules/Microsoft.EventGrid/topics/readme.md +++ b/modules/Microsoft.EventGrid/topics/readme.md @@ -17,7 +17,7 @@ This module deploys an event grid topic. | `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-10-01-preview/roleAssignments) | | `Microsoft.EventGrid/topics` | [2020-06-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.EventGrid/2020-06-01/topics) | | `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | -| `Microsoft.Network/privateEndpoints` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/privateEndpoints) | +| `Microsoft.Network/privateEndpoints` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/privateEndpoints) | | `Microsoft.Network/privateEndpoints/privateDnsZoneGroups` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/privateEndpoints/privateDnsZoneGroups) | ## Parameters From ece3e5f89804080d9ec24be92bd7bcd11af14312 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 18:57:28 +0200 Subject: [PATCH 119/274] Changed casing --- utilities/tools/Set-ModuleReadMe.ps1 | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index c1fe108be1..1e8236c3e1 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -31,7 +31,7 @@ function Set-ResourceTypesSection { [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSReviewUnusedParameter', 'ResourceTypesToExclude', Justification = 'Variable used inside Where-Object block.')] param ( [Parameter(Mandatory)] - [Hashtable] $TemplateFileContent, + [hashtable] $TemplateFileContent, [Parameter(Mandatory)] [object[]] $ReadMeFileContent, @@ -118,7 +118,7 @@ function Set-ParametersSection { [CmdletBinding(SupportsShouldProcess)] param ( [Parameter(Mandatory)] - [Hashtable] $TemplateFileContent, + [hashtable] $TemplateFileContent, [Parameter(Mandatory)] [object[]] $ReadMeFileContent, @@ -187,8 +187,8 @@ function Set-ParametersSection { } # Add external single quotes to all default values of type string except for those using functions - $defaultValue = ($parameter.defaultValue -is [array]) ? ('[{0}]' -f ($parameter.defaultValue -join ', ')) : (($parameter.defaultValue -is [Hashtable]) ? '{object}' : (($parameter.defaultValue -is [string]) -and ($parameter.defaultValue -notmatch '\[\w+\(.*\).*\]') ? '''' + $parameter.defaultValue + '''' : $parameter.defaultValue)) - $allowedValue = ($parameter.allowedValues -is [array]) ? ('[{0}]' -f ($parameter.allowedValues -join ', ')) : (($parameter.allowedValues -is [Hashtable]) ? '{object}' : $parameter.allowedValues) + $defaultValue = ($parameter.defaultValue -is [array]) ? ('[{0}]' -f ($parameter.defaultValue -join ', ')) : (($parameter.defaultValue -is [hashtable]) ? '{object}' : (($parameter.defaultValue -is [string]) -and ($parameter.defaultValue -notmatch '\[\w+\(.*\).*\]') ? '''' + $parameter.defaultValue + '''' : $parameter.defaultValue)) + $allowedValue = ($parameter.allowedValues -is [array]) ? ('[{0}]' -f ($parameter.allowedValues -join ', ')) : (($parameter.allowedValues -is [hashtable]) ? '{object}' : $parameter.allowedValues) $description = $parameter.metadata.description.Replace("`r`n", '

').Replace("`n", '

') # Update parameter table content based on parameter category @@ -260,7 +260,7 @@ function Set-OutputsSection { [CmdletBinding(SupportsShouldProcess)] param ( [Parameter(Mandatory)] - [Hashtable] $TemplateFileContent, + [hashtable] $TemplateFileContent, [Parameter(Mandatory)] [object[]] $ReadMeFileContent, @@ -652,7 +652,7 @@ function ConvertTo-FormattedBicep { [CmdletBinding()] param ( [Parameter(Mandatory = $true)] - [Hashtable] $JSONParameters, + [hashtable] $JSONParameters, [Parameter(Mandatory = $false)] [AllowEmptyCollection()] @@ -746,7 +746,7 @@ function Set-DeploymentExamplesSection { [string] $TemplateFilePath, [Parameter(Mandatory)] - [Hashtable] $TemplateFileContent, + [hashtable] $TemplateFileContent, [Parameter(Mandatory = $true)] [object[]] $ReadMeFileContent, @@ -758,7 +758,7 @@ function Set-DeploymentExamplesSection { [bool] $addBicep = $true, [Parameter(Mandatory = $false)] - [Hashtable] $ProjectSettings = @{}, + [hashtable] $ProjectSettings = @{}, [Parameter(Mandatory = $false)] [string] $SectionStartIdentifier = '## Deployment examples' @@ -1203,7 +1203,7 @@ function Set-ModuleReadMe { [string] $TemplateFilePath, [Parameter(Mandatory = $false)] - [Hashtable] $TemplateFileContent, + [hashtable] $TemplateFileContent, [Parameter(Mandatory = $false)] [string] $ReadMeFilePath = (Join-Path (Split-Path $TemplateFilePath -Parent) 'readme.md'), From 42572e7aa5bcb36b309474662f4f48c5785b9e8a Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 19:25:47 +0200 Subject: [PATCH 120/274] Added error handling --- utilities/tools/Set-ModuleReadMe.ps1 | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index 1e8236c3e1..fc2460afcd 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -1235,10 +1235,15 @@ function Set-ModuleReadMe { $TemplateFilePath = Resolve-Path -Path $TemplateFilePath -ErrorAction Stop if (-not $TemplateFileContent) { - if ((Split-Path -Path $TemplateFilePath -Extension) -eq '.bicep') { - $templateFileContent = az bicep build --file $TemplateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + + if (-not (Test-Path $TemplateFilePath -PathType 'Leaf')) { + throw "[$TemplateFilePath] is no valid file path." } else { - $templateFileContent = ConvertFrom-Json (Get-Content $TemplateFilePath -Encoding 'utf8' -Raw) -ErrorAction Stop -AsHashtable + if ((Split-Path -Path $TemplateFilePath -Extension) -eq '.bicep') { + $templateFileContent = az bicep build --file $TemplateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + } else { + $templateFileContent = ConvertFrom-Json (Get-Content $TemplateFilePath -Encoding 'utf8' -Raw) -ErrorAction Stop -AsHashtable + } } } From 629061b4e8ed90b0e26cd58efb2ef6d9f2bf1294 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 19:26:10 +0200 Subject: [PATCH 121/274] Added error handling --- modules/Microsoft.Sql/servers/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/Microsoft.Sql/servers/readme.md b/modules/Microsoft.Sql/servers/readme.md index 78623cef94..98e4332416 100644 --- a/modules/Microsoft.Sql/servers/readme.md +++ b/modules/Microsoft.Sql/servers/readme.md @@ -329,7 +329,7 @@ The following module usage examples are retrieved from the content of the files

via Bicep module ```bicep -module servers './Microsoft.Sql/servers/deploy.bicep' = { +module servers './Microsoft.sql/servers/deploy.bicep' = { name: '${uniqueString(deployment().name)}-servers' params: { // Required parameters @@ -391,7 +391,7 @@ resource kv1 'Microsoft.KeyVault/vaults@2019-09-01' existing = { scope: resourceGroup('<>','<>') } -module servers './Microsoft.Sql/servers/deploy.bicep' = { +module servers './Microsoft.sql/servers/deploy.bicep' = { name: '${uniqueString(deployment().name)}-servers' params: { // Required parameters From 1acfbc52a82cb68b852a82fae6c98af6f01481f7 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 19:50:29 +0200 Subject: [PATCH 122/274] Adjusted naming --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 4d8d457810..2cc764398b 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -74,7 +74,7 @@ parameters: jobs: - template: /.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml - job: deploy - displayName: 'Deploying ' + displayName: Deploying [${{ replace( parameters.templateFilePath, parameters.modulePath, '') }}] timeoutInMinutes: ${{ parameters.defaultJobTimeoutInMinutes }} pool: ${{ if ne(parameters.vmImage, '') }}: From 952bd09a4ddb80747c8f0d410fcec46984e74cec Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 20:10:47 +0200 Subject: [PATCH 123/274] Refactored ADO dependency pipeline --- .../sharedScripts/Get-ModuleTestFileList.ps1 | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/utilities/pipelines/sharedScripts/Get-ModuleTestFileList.ps1 b/utilities/pipelines/sharedScripts/Get-ModuleTestFileList.ps1 index c219156f83..c1272ab85a 100644 --- a/utilities/pipelines/sharedScripts/Get-ModuleTestFileList.ps1 +++ b/utilities/pipelines/sharedScripts/Get-ModuleTestFileList.ps1 @@ -9,22 +9,33 @@ The relative path is returned instead of the full one to make paths easier to re .PARAMETER ModulePath Mandatory. The module path to search in. +.PARAMETER SearchFolder +Optional. The folder to search for files in + .EXAMPLE Get-ModuleTestFileList -ModulePath 'C:\ResourceModules\arm\Microsoft.Compute\virtualMachines' -Returns the relative file paths of all parameter files of the virtual machines module. +Returns the relative file paths of all parameter files of the virtual machines module in folder $SearchFolder. + +.EXAMPLE +Get-ModuleTestFileList -ModulePath 'C:\ResourceModules\arm\Microsoft.Compute\virtualMachines' -SearchFolder 'parameters' + +Returns the relative file paths of all parameter files of the virtual machines module in folder 'parameters'. #> function Get-ModuleTestFileList { [CmdletBinding()] param ( [Parameter(Mandatory)] - [string] $ModulePath + [string] $ModulePath, + + [Parameter(Mandatory = $false)] + [string] $SearchFolder = '.test' ) $deploymentTests = @() - if (Test-Path (Join-Path $ModulePath '.test')) { - $deploymentTests += (Get-ChildItem -Path (Join-Path $ModulePath '.test') -Depth 0 -Include ('*.json', '*.bicep') -File).FullName + if (Test-Path (Join-Path $ModulePath $SearchFolder)) { + $deploymentTests += (Get-ChildItem -Path (Join-Path $ModulePath $SearchFolder) -Depth 0 -Include ('*.json', '*.bicep') -File).FullName } if (-not $deploymentTests) { From 57f0bc65b2085e04100a72a4fb72da5f6f9678f3 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 20:11:21 +0200 Subject: [PATCH 124/274] Refactored ADO dependency pipeline --- .../jobs.getModuleTestFiles.yml | 4 +- .../platform.dependencies.yml | 2109 +++++++++-------- 2 files changed, 1059 insertions(+), 1054 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml b/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml index 2adb2df303..ca54c9efb0 100644 --- a/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml +++ b/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml @@ -5,6 +5,7 @@ parameters: # Logic-related parameters modulePath: '$(modulePath)' + searchFolder: '.test' ##---------------------------------------------## ## TEMPLATE LOGIC ## @@ -29,7 +30,8 @@ jobs: . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Get-ModuleTestFileList.ps1') $functionInput = @{ - ModulePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' + ModulePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' + SearchFolder = '$(searchFolder)' } Write-Verbose "Invoke task with" -Verbose diff --git a/.azuredevops/platformPipelines/platform.dependencies.yml b/.azuredevops/platformPipelines/platform.dependencies.yml index d29cce9289..6dc027275c 100644 --- a/.azuredevops/platformPipelines/platform.dependencies.yml +++ b/.azuredevops/platformPipelines/platform.dependencies.yml @@ -33,6 +33,8 @@ variables: value: 'modules' - name: defaultResourceGroupName value: 'validation-rg' + - name: testFilesFolderName + value: 'parameters' stages: - stage: deploy_rg @@ -43,1056 +45,1057 @@ stages: jobs: - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/validation.parameters.json - templateFilePath: $(templateFilePath) - displayName: Validation Resource Group - - path: $(dependencyPath)/$(resourceType)/parameters/locks.parameters.json - templateFilePath: $(templateFilePath) - displayName: Locks Resource Group - - - stage: deploy_ppg - displayName: Deploy proximity placement group - dependsOn: - - deploy_rg - variables: - resourceType: 'Microsoft.Compute/proximityPlacementGroups' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - templateFilePath: $(templateFilePath) - displayName: Proximity Placement Group - - - stage: deploy_msi - displayName: Deploy user assigned identity - dependsOn: - - deploy_rg - variables: - resourceType: 'Microsoft.ManagedIdentity/userAssignedIdentities' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - templateFilePath: $(templateFilePath) - displayName: User Assigned Identity - jobName: job_deploy_msi - - job: job_set_msi_id - displayName: Set msi principal ID output - dependsOn: - - job_deploy_msi - pool: - ${{ if eq(variables['vmImage'], '') }}: - name: $(poolName) - ${{ if eq(variables['poolName'], '') }}: - vmImage: $(vmImage) - variables: - deploymentOutput: $[ dependencies.job_deploy_msi.outputs['DeployModule.deploymentOutput'] ] - steps: - - task: PowerShell@2 - name: print_msi_prinId - inputs: - targetType: inline - pwsh: true - script: | - # Write-Verbose $(deploymentOutput) -Verbose - $msiPrincipalId = (ConvertFrom-Json '$(deploymentOutput)').principalId - Write-Verbose "msiPrincipalId: $msiPrincipalId" -Verbose - Write-Output ('##vso[task.setvariable variable={0};isOutput=true]{1}' -f 'msiPrincipalId', $msiPrincipalId) - - - stage: deploy_sf - displayName: Deploy server farm - dependsOn: - - deploy_rg - variables: - resourceType: 'Microsoft.Web/serverfarms' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - templateFilePath: $(templateFilePath) - displayName: Server farm - - - stage: deploy_app - displayName: Deploy app - dependsOn: - - deploy_sf - variables: - resourceType: 'Microsoft.Web/sites' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - templateFilePath: $(templateFilePath) - displayName: Function App - - - stage: deploy_pa - displayName: Deploy policy assignment - dependsOn: - - deploy_rg - variables: - resourceType: 'Microsoft.Authorization/policyAssignments' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/mg.parameters.json - templateFilePath: $(templateFilePath) - displayName: Policy assignment (mg) - - path: $(dependencyPath)/$(resourceType)/parameters/sub.parameters.json - templateFilePath: $(templateFilePath) - displayName: Policy assignment (sub) - - - stage: deploy_evh - displayName: Deploy event hub - dependsOn: - - deploy_rg - variables: - resourceType: 'Microsoft.EventHub/namespaces' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - templateFilePath: $(templateFilePath) - displayName: EventHub - - - stage: deploy_law - displayName: Deploy log analytics workspace - dependsOn: - - deploy_rg - variables: - resourceType: 'Microsoft.OperationalInsights/workspaces' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - templateFilePath: $(templateFilePath) - displayName: Default LAW - - path: $(dependencyPath)/$(resourceType)/parameters/aut.parameters.json - templateFilePath: $(templateFilePath) - displayName: Automation account LAW - - path: $(dependencyPath)/$(resourceType)/parameters/appi.parameters.json - templateFilePath: $(templateFilePath) - displayName: AppInsights LAW - - - stage: deploy_sa - displayName: Deploy storage account - dependsOn: - - deploy_rg - variables: - resourceType: 'Microsoft.Storage/storageAccounts' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - templateFilePath: $(templateFilePath) - displayName: Default storage account - jobName: default_sa - - path: $(dependencyPath)/$(resourceType)/parameters/law.parameters.json - templateFilePath: $(templateFilePath) - displayName: LAW storage account - - path: $(dependencyPath)/$(resourceType)/parameters/fa.parameters.json - templateFilePath: $(templateFilePath) - displayName: FunctionApp storage account - - job: - displayName: Upload files to storage account - dependsOn: - - default_sa - pool: - ${{ if eq(variables['vmImage'], '') }}: - name: $(poolName) - ${{ if eq(variables['poolName'], '') }}: - vmImage: $(vmImage) - steps: - - task: PowerShell@2 - displayName: 'Setup agent' - inputs: - targetType: inline - pwsh: true - script: | - # Load used functions - . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Set-EnvironmentOnAgent.ps1') - - # Define PS modules to install on the runner - $Modules = @( - @{ Name = 'Az.Storage' } - ) - - # Set agent up - Set-EnvironmentOnAgent -PSModules $Modules - - task: AzurePowerShell@5 - displayName: Upload files to storage account - inputs: - azureSubscription: $(serviceConnection) - ScriptType: 'InlineScript' - Inline: | - $parameterFilePath = Join-Path '$(Build.SourcesDirectory)' '$(dependencyPath)' '$(resourceType)' 'parameters' 'parameters.json' - # Load used functions - . (Join-Path '$(Build.SourcesDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Export-ContentToBlob.ps1') - . (Join-Path '$(Build.SourcesDirectory)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') - - # Replace tokens in parameter file - $Settings = Get-Content -Path (Join-Path '$(Build.SourcesDirectory)' 'settings.json') | ConvertFrom-Json -AsHashTable - $ConvertTokensInputs = @{ - FilePath = $parameterFilePath - TokenPrefix = $Settings.parameterFileTokens.tokenPrefix - TokenSuffix = $Settings.parameterFileTokens.tokenSuffix - } - - # Add local tokens - if ($Settings.parameterFileTokens.localTokens) { - $tokenMap = @{} - foreach ($token in $Settings.parameterFileTokens.localTokens) { - $tokenMap += @{ $token.name = $token.value } - } - Write-Verbose ('Using local tokens [{0}]' -f ($tokenMap.Keys -join ', ')) -Verbose - $ConvertTokensInputs.Tokens = $tokenMap - } - - $null = Convert-TokensInFile @ConvertTokensInputs - - # Get storage account name - $storageAccountParameters = (ConvertFrom-Json (Get-Content -path $parameterFilePath -Raw)).parameters - - # Upload files to storage account - $functionInput = @{ - ResourceGroupName = '$(defaultResourceGroupName)' - StorageAccountName = $storageAccountParameters.name.value - contentDirectories = Join-Path '$(Build.SourcesDirectory)' $(dependencyPath) '$(resourceType)' 'uploads' - targetContainer = $storageAccountParameters.blobServices.value.containers[0].name - } - - Write-Verbose "Invoke task with" -Verbose - Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose - - Export-ContentToBlob @functionInput -Verbose - azurePowerShellVersion: 'LatestVersion' - pwsh: true - - - stage: deploy_sig - displayName: Deploy shared image gallery and definition - dependsOn: - - deploy_rg - variables: - resourceType: 'Microsoft.Compute/galleries' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - templateFilePath: $(templateFilePath) - displayName: Default SIG and SID - - - ${{ if eq( parameters.deployVhdDependencies, true) }}: - - stage: deploy_imgt - displayName: Deploy image template - dependsOn: - - deploy_rolea - - deploy_sig - - deploy_sa - variables: - resourceType: 'Microsoft.VirtualMachineImages\imageTemplates' - saResourceType: 'Microsoft.Storage\storageAccounts' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - templateFilePath: $(templateFilePath) - displayName: Image template - jobName: job_deploy_imgt - - job: - displayName: Trigger vhd build and store it to a storage account blob container - dependsOn: - - job_deploy_imgt - pool: - ${{ if eq(variables['vmImage'], '') }}: - name: $(poolName) - ${{ if eq(variables['poolName'], '') }}: - vmImage: $(vmImage) - variables: - deploymentOutput: $[ dependencies.job_deploy_imgt.outputs['DeployModule.deploymentOutput'] ] - steps: - - task: PowerShell@2 - displayName: 'Setup agent' - inputs: - targetType: inline - pwsh: true - script: | - # Load used functions - . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Set-EnvironmentOnAgent.ps1') - - # Define PS modules to install on the runner - $Modules = @( - @{ Name = 'Az.ImageBuilder' }, - @{ Name = 'Az.Storage' } - ) - - # Set agent up - Set-EnvironmentOnAgent -PSModules $Modules - - task: AzurePowerShell@5 - displayName: Trigger building new image - inputs: - azureSubscription: $(serviceConnection) - ScriptType: 'InlineScript' - Inline: | - # Retrieving parameters from previous job outputs - Write-Verbose "Retrieving parameters from previous job outputs" -Verbose - $imageTemplateName = (ConvertFrom-Json '$(deploymentOutput)').name - $imageTemplateResourceGroup = (ConvertFrom-Json '$(deploymentOutput)').resourceGroupName - - # Trigger new image creation - Write-Verbose "Trigger new image creation with imageTemplateName $imageTemplateName and imageTemplateResourceGroup $imageTemplateResourceGroup" -Verbose - Start-AzImageBuilderTemplate -ImageTemplateName $imageTemplateName -ResourceGroupName $imageTemplateResourceGroup - azurePowerShellVersion: 'LatestVersion' - pwsh: true - - task: AzurePowerShell@5 - displayName: Copy baked vhd to a storage account - inputs: - azureSubscription: $(serviceConnection) - ScriptType: 'InlineScript' - Inline: | - - # Load used functions - . (Join-Path '$(Build.SourcesDirectory)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') - - # Prepare replace tokens in parameter file - $Settings = Get-Content -Path (Join-Path '$(Build.SourcesDirectory)' 'settings.json') | ConvertFrom-Json -AsHashTable - $ConvertTokensInputs = @{ - TokenPrefix = $Settings.parameterFileTokens.tokenPrefix - TokenSuffix = $Settings.parameterFileTokens.tokenSuffix - } - if ($Settings.parameterFileTokens.localTokens) { - $tokenMap = @{} - foreach ($token in $Settings.parameterFileTokens.localTokens) { - $tokenMap += @{ $token.name = $token.value } - } - Write-Verbose ('Using local tokens [{0}]' -f ($tokenMap.Keys -join ', ')) -Verbose - $ConvertTokensInputs.Tokens = $tokenMap - } - - # Retrieving parameters from previous job outputs and parameter files - Write-Verbose "Retrieving parameters from previous job outputs" -Verbose - $imageTemplateName = (ConvertFrom-Json '$(deploymentOutput)').name - $imageTemplateResourceGroup = (ConvertFrom-Json '$(deploymentOutput)').resourceGroupName - - Write-Verbose "Retrieving parameters from storage account parameter files" -Verbose - $parameterFilePath = Join-Path '$(Build.SourcesDirectory)' '$(dependencyPath)' '$(saResourceType)' 'parameters' 'parameters.json' - $null = Convert-TokensInFile @ConvertTokensInputs -FilePath $parameterFilePath -Verbose - $storageAccountParameters = (ConvertFrom-Json (Get-Content -path $parameterFilePath -Raw)).parameters - - Write-Verbose "Retrieving parameters from image template parameter files" -Verbose - $parameterFilePath = Join-Path '$(Build.SourcesDirectory)' '$(dependencyPath)' '$(resourceType)' 'parameters' 'parameters.json' - $null = Convert-TokensInFile @ConvertTokensInputs -FilePath $parameterFilePath -Verbose - $imageTemplateParameters = (ConvertFrom-Json (Get-Content -path $parameterFilePath -Raw)).parameters - - # Initializing parameters before the blob copy - Write-Verbose "Initializing source storage account parameters before the blob copy" -Verbose - $imgtRunOutput = Get-AzImageBuilderRunOutput -ImageTemplateName $imageTemplateName -ResourceGroupName $imageTemplateResourceGroup | Where-Object ArtifactUri -NE $null - $sourceUri = $imgtRunOutput.ArtifactUri - $sourceStorageAccountName = $sourceUri.Split('//')[1].Split('.')[0] - $sourceStorageAccount = Get-AzStorageAccount | Where-Object StorageAccountName -EQ $sourceStorageAccountName - $sourceStorageAccountContext = $sourceStorageAccount.Context - $sourceStorageAccountRGName = $sourceStorageAccount.ResourceGroupName - Write-Verbose "Retrieving artifact uri $sourceUri stored in resource group $sourceStorageAccountRGName" -Verbose - - Write-Verbose "Initializing destination storage account parameters before the blob copy" -Verbose - $destinationStorageAccountName = $storageAccountParameters.name.value - $destinationStorageAccount = Get-AzStorageAccount | Where-Object StorageAccountName -EQ $destinationStorageAccountName - $destinationStorageAccountContext = $destinationStorageAccount.Context - $destinationContainerName = 'vhds' - $destinationBlobName = $imageTemplateParameters.name.value - $destinationBlobName = "$destinationBlobName.vhd" - Write-Verbose "Planning for destination blob name $destinationBlobName in container $destinationContainerName and storage account $destinationStorageAccountName" -Verbose - - # Copying the vhd to a destination blob container - Write-Verbose "Copying the vhd to a destination blob container" -Verbose - $resourceActionInputObject = @{ - AbsoluteUri = $sourceUri - Context = $sourceStorageAccountContext - DestContext = $destinationStorageAccountContext - DestBlob = $destinationBlobName - DestContainer = $destinationContainerName - Force = $true - } - Start-AzStorageBlobCopy @resourceActionInputObject - azPSVersion: 'latest' - azurePowerShellVersion: 'LatestVersion' - pwsh: true - - - stage: deploy_ag - displayName: Deploy action groups - dependsOn: - - deploy_rg - variables: - resourceType: 'Microsoft.Insights/actionGroups' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - templateFilePath: $(templateFilePath) - displayName: Default Action Group - - - stage: deploy_asg - displayName: Deploy application security groups - dependsOn: - - deploy_rg - variables: - resourceType: 'Microsoft.Network/applicationSecurityGroups' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - templateFilePath: $(templateFilePath) - displayName: Default Application Security Groups - - - stage: deploy_udr - displayName: Deploy route tables - dependsOn: - - deploy_rg - variables: - resourceType: 'Microsoft.Network/routeTables' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - templateFilePath: $(templateFilePath) - displayName: Default User Defined Routes - - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: - - path: $(dependencyPath)/$(resourceType)/parameters/sqlMi.parameters.json - templateFilePath: $(templateFilePath) - displayName: SQLMI User Defined Routes - - - stage: deploy_nsg - displayName: Deploy network security groups - dependsOn: - - deploy_sa - - deploy_evh - - deploy_law - variables: - resourceType: 'Microsoft.Network/networkSecurityGroups' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - templateFilePath: $(templateFilePath) - displayName: Default NSG - - path: $(dependencyPath)/$(resourceType)/parameters/apgw.parameters.json - templateFilePath: $(templateFilePath) - displayName: App Gateway NSG - - path: $(dependencyPath)/$(resourceType)/parameters/ase.parameters.json - templateFilePath: $(templateFilePath) - displayName: ASE NSG - - path: $(dependencyPath)/$(resourceType)/parameters/bastion.parameters.json - templateFilePath: $(templateFilePath) - displayName: Bastion NSG - - path: $(dependencyPath)/$(resourceType)/parameters/aadds.parameters.json - templateFilePath: $(templateFilePath) - displayName: AADDS NSG - - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: - - path: $(dependencyPath)/$(resourceType)/parameters/sqlmi.parameters.json - templateFilePath: $(templateFilePath) - displayName: SQLMI NSG - - - stage: deploy_pip - displayName: Deploy public IP addresses - dependsOn: - - deploy_sa - - deploy_evh - - deploy_law - variables: - resourceType: 'Microsoft.Network\publicIPAddresses' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/apgw.parameters.json - templateFilePath: $(templateFilePath) - displayName: App Gateway Public IP - - path: $(dependencyPath)/$(resourceType)/parameters/bas.parameters.json - templateFilePath: $(templateFilePath) - displayName: Bastion Public IP - - path: $(dependencyPath)/$(resourceType)/parameters/lb.parameters.json - templateFilePath: $(templateFilePath) - displayName: Load balancer Public IP - - path: $(dependencyPath)/$(resourceType)/parameters/lb.min.parameters.json - templateFilePath: $(templateFilePath) - displayName: Min Load balancer Public IP - - path: $(dependencyPath)/$(resourceType)/parameters/fw.parameters.json - templateFilePath: $(templateFilePath) - displayName: Firewall Public IP - - path: $(dependencyPath)/$(resourceType)/parameters/fw.additional.parameters.json - templateFilePath: $(templateFilePath) - displayName: Firewall Additional Public IP - - path: $(dependencyPath)/$(resourceType)/parameters/bas.additional.parameters.json - templateFilePath: $(templateFilePath) - displayName: Bastion Additional Public IP - - - stage: deploy_appi - displayName: Deploy application insight - dependsOn: - - deploy_sa - - deploy_evh - - deploy_law - variables: - resourceType: 'Microsoft.Insights/components' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - templateFilePath: $(templateFilePath) - displayName: Default Application Insights - - - stage: deploy_aut - displayName: Deploy automation account - dependsOn: - - deploy_sa - - deploy_evh - - deploy_law - variables: - resourceType: 'Microsoft.Automation/automationAccounts' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - templateFilePath: $(templateFilePath) - displayName: Default Automation Account - - - stage: deploy_avdhp - displayName: Deploy AVD host pool - dependsOn: - - deploy_sa - - deploy_evh - - deploy_law - variables: - resourceType: 'Microsoft.DesktopVirtualization/hostpools' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - templateFilePath: $(templateFilePath) - displayName: Default AVD Host Pool - - - stage: deploy_rsv - displayName: Deploy recovery services vault - dependsOn: - - deploy_sa - - deploy_evh - - deploy_law - - deploy_msi - variables: - resourceType: 'Microsoft.RecoveryServices/vaults' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - msiPrincipalId: $[ stageDependencies.deploy_msi.job_set_msi_id.outputs['print_msi_prinId.msiPrincipalId'] ] - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - templateFilePath: $(templateFilePath) - displayName: Default recovery services vault - customParameterFileTokens: '{"msiPrincipalId":"$(msiPrincipalId)"}' - - - stage: deploy_kv - displayName: Deploy key vaults - dependsOn: - - deploy_sa - - deploy_evh - - deploy_law - - deploy_msi - variables: - resourceType: 'Microsoft.KeyVault/vaults' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - msiPrincipalId: $[ stageDependencies.deploy_msi.job_set_msi_id.outputs['print_msi_prinId.msiPrincipalId'] ] - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - templateFilePath: $(templateFilePath) - displayName: Default Key Vault - jobName: default_kv - customParameterFileTokens: '{"msiPrincipalId":"$(msiPrincipalId)"}' - - path: $(dependencyPath)/$(resourceType)/parameters/nopr.parameters.json - templateFilePath: $(templateFilePath) - displayName: Purge proteced key vault - jobName: default_kv_nopr - customParameterFileTokens: '{"msiPrincipalId":"$(msiPrincipalId)"}' - - path: $(dependencyPath)/$(resourceType)/parameters/pe.parameters.json - templateFilePath: $(templateFilePath) - displayName: Private Endpoint Key Vault - customParameterFileTokens: '{"msiPrincipalId":"$(msiPrincipalId)"}' - - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: - - path: $(dependencyPath)/$(resourceType)/parameters/sqlmi.parameters.json - templateFilePath: $(templateFilePath) - displayName: SQLMI key vault - jobName: sqlmi_kv - customParameterFileTokens: '{"msiPrincipalId":"$(msiPrincipalId)"}' - - job: - displayName: Set key vault secrets keys and certificates - dependsOn: - - default_kv - - default_kv_nopr - pool: - # Must run on windows as the used `New-SelfSignedCertificate` function is not available on linux - vmImage: windows-2022 - steps: - - task: PowerShell@2 - displayName: 'Setup agent' - inputs: - targetType: inline - pwsh: true - script: | - # Load used functions - . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Set-EnvironmentOnAgent.ps1') - - # Define PS modules to install on the runner - $Modules = @( - @{ Name = 'Az.KeyVault' } - ) - - # Set agent up - Set-EnvironmentOnAgent -PSModules $Modules - - task: AzurePowerShell@5 - displayName: Set key vault secrets keys and certificates - inputs: - azureSubscription: $(serviceConnection) - ScriptType: 'InlineScript' - Inline: | - $parameterFilePath = Join-Path '$(Build.SourcesDirectory)' '$(dependencyPath)' '$(resourceType)' 'parameters' 'parameters.json' - $noprParameterFilePath = Join-Path '$(Build.SourcesDirectory)' '$(dependencyPath)' '$(resourceType)' 'parameters' 'nopr.parameters.json' - - # Load used functions - . (Join-Path '$(Build.SourcesDirectory)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') - - # Replace tokens in parameter file - $Settings = Get-Content -Path (Join-Path '$(Build.SourcesDirectory)' 'settings.json') | ConvertFrom-Json -AsHashTable - $ConvertTokensInputs = @{ - FilePath = $parameterFilePath - TokenPrefix = $Settings.parameterFileTokens.tokenPrefix - TokenSuffix = $Settings.parameterFileTokens.tokenSuffix - } - $NoprConvertTokensInputs = @{ - FilePath = $noprParameterFilePath - TokenPrefix = $Settings.parameterFileTokens.tokenPrefix - TokenSuffix = $Settings.parameterFileTokens.tokenSuffix - } - if ($Settings.parameterFileTokens.localTokens) { - $tokenMap = @{} - foreach ($token in $Settings.parameterFileTokens.localTokens) { - $tokenMap += @{ $token.name = $token.value } - } - Write-Verbose ('Using local tokens [{0}]' -f ($tokenMap.Keys -join ', ')) -Verbose - $ConvertTokensInputs.Tokens = $tokenMap - $NoprConvertTokensInputs.Tokens = $tokenMap - } - $null = Convert-TokensInFile @ConvertTokensInputs - $null = Convert-TokensInFile @NoprConvertTokensInputs - - # Get key vault name - $keyVaultParameters = (ConvertFrom-Json (Get-Content -Path $parameterFilePath -Raw)).parameters - $keyVaultName = $keyVaultParameters.name.value - # No Purge Key Vault - $noprKeyVaultParameters = (ConvertFrom-Json (Get-Content -Path $noprParameterFilePath -Raw)).parameters - $noprKeyVaultName = $noprKeyVaultParameters.name.value - - # Generate values - $usernameString = ( -join ((65..90) + (97..122) | Get-Random -Count 9 -SetSeed 1 | ForEach-Object { [char]$_ + "$_" })).substring(0, 19) # max length - $userName = ConvertTo-SecureString -String $usernameString -AsPlainText -Force - $passwordString = (New-Guid).Guid.SubString(0, 19) - $password = ConvertTo-SecureString -String $passwordString -AsPlainText -Force - $vpnSharedKeyString = (New-Guid).Guid.SubString(0, 32) - $vpnSharedKey = ConvertTo-SecureString -String $vpnSharedKeyString -AsPlainText -Force - - $namePrefixToken = $Settings.parameterFileTokens.localTokens | Where-Object { $_.name -eq 'namePrefix' } - $certInputObject = @{ - Subject = 'CN=*.{0}.onmicrosoft.com' -f $namePrefixToken.value - DnsName = '*.{0}.onmicrosoft.com' -f $namePrefixToken.value - CertStoreLocation = 'cert:\LocalMachine\My' - KeyExportPolicy = 'Exportable' - Provider = 'Microsoft Enhanced RSA and AES Cryptographic Provider' - NotAfter = (Get-Date).AddMonths(3) - HashAlgorithm = 'SHA256' - } - $rawCert = New-SelfSignedCertificate @certInputObject - Export-PfxCertificate -Cert ('Cert:\localmachine\my\' + $rawCert.Thumbprint) -FilePath "$home/aadds.pfx" -Password $password -Force - $rawCertByteStream = Get-Content "$home/aadds.pfx" -AsByteStream - $pfxCertificate = ConvertTo-SecureString -String ([System.Convert]::ToBase64String($rawCertByteStream)) -AsPlainText -Force - - # Set secrets - # ------- - @( - @{ name = 'adminUsername'; secretValue = $username } # VirtualMachines and VMSS - @{ name = 'adminPassword'; secretValue = $password } # VirtualMachines and VMSS - @{ name = 'administratorLogin'; secretValue = $username } # Azure SQLServer - @{ name = 'administratorLoginPassword'; secretValue = $password } # Azure SQLServer - @{ name = 'vpnSharedKey'; secretValue = $vpnSharedKey } # VirtualNetworkGateway - @{ name = 'apimClientId'; secretValue = $username } # API management - @{ name = 'apimClientSecret'; secretValue = $password } # API management - @{ name = 'pfxCertificatePassword'; secretValue = $password } # AADDS - @{ name = 'pfxBase64Certificate'; secretValue = $pfxCertificate } # AADDS - ) | ForEach-Object { - $null = Set-AzKeyVaultSecret -VaultName $keyVaultName -Name $_.name -SecretValue $_.secretValue - Write-Verbose ('Added secret [{0}] to key vault [{1}]' -f $_.name, $keyVaultName) -Verbose - } - - # Certificats - # ----------- - $certPolicy = New-AzKeyVaultCertificatePolicy -SecretContentType 'application/x-pkcs12' -SubjectName 'CN=fabrikam.com' -IssuerName 'Self' -ValidityInMonths 12 -ReuseKeyOnRenewal - @( - @{ name = 'applicationGatewaySslCertificate'; CertificatePolicy = $certPolicy } # ApplicationGateway - ) | ForEach-Object { - $null = Add-AzKeyVaultCertificate -VaultName $keyVaultName -Name $_.name -CertificatePolicy $_.CertificatePolicy - Write-Verbose ('Added certificate [{0}] to key vault [{1}]' -f $_.name, $keyVaultName) -Verbose - } - - # Set keys - # ---- - @( - @{ name = 'keyEncryptionKey'; Destination = 'Software' } # DiskEncryptionSet, VirtualMachines and VMSS - ) | ForEach-Object { - $null = Add-AzKeyVaultKey -VaultName $keyVaultName -Name $_.name -Destination $_.Destination - Write-Verbose ('Added key [{0}] to key vault [{1}]' -f $_.name, $keyVaultName) -Verbose - } - # noprKeyVault Keys - @( - @{ name = 'keyEncryptionKey'; Destination = 'Software' } # Automation Account - ) | ForEach-Object { - $null = Add-AzKeyVaultKey -VaultName $noprKeyVaultName -Name $_.name -Destination $_.Destination - Write-Verbose ('Added key [{0}] to key vault [{1}]' -f $_.name, $noprKeyVaultName) -Verbose - } - azurePowerShellVersion: 'LatestVersion' - pwsh: true - - - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: - - job: - displayName: Set sqlmi key vault secrets and keys - dependsOn: - - sqlmi_kv - pool: - ${{ if eq(variables['vmImage'], '') }}: - name: $(poolName) - ${{ if eq(variables['poolName'], '') }}: - vmImage: $(vmImage) - steps: - - task: PowerShell@2 - displayName: 'Setup agent' - inputs: - targetType: inline - pwsh: true - script: | - # Load used functions - . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Set-EnvironmentOnAgent.ps1') - - # Define PS modules to install on the runner - $Modules = @( - @{ Name = 'Az.KeyVault' } - ) - - # Set agent up - Set-EnvironmentOnAgent -PSModules $Modules - - task: AzurePowerShell@5 - displayName: Set sqlmi key vault secrets and keys - inputs: - azureSubscription: $(serviceConnection) - ScriptType: 'InlineScript' - Inline: | - - $parameterFilePath = Join-Path '$(Build.SourcesDirectory)' '$(dependencyPath)' '$(resourceType)' 'parameters' 'sqlmi.parameters.json' - # Load used functions - . (Join-Path '$(Build.SourcesDirectory)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') - - # Replace tokens in parameter file - $Settings = Get-Content -Path (Join-Path '$(Build.SourcesDirectory)' 'settings.json') | ConvertFrom-Json -AsHashTable - $ConvertTokensInputs = @{ - FilePath = $parameterFilePath - TokenPrefix = $Settings.parameterFileTokens.tokenPrefix - TokenSuffix = $Settings.parameterFileTokens.tokenSuffix - } - if ($Settings.parameterFileTokens.localTokens) { - $tokenMap = @{} - foreach ($token in $Settings.parameterFileTokens.localTokens) { - $tokenMap += @{ $token.name = $token.value } - } - Write-Verbose ('Using local tokens [{0}]' -f ($tokenMap.Keys -join ', ')) -Verbose - $ConvertTokensInputs.Tokens = $tokenMap - } - $null = Convert-TokensInFile @ConvertTokensInputs - - # Get key vault name - $keyVaultParameters = (ConvertFrom-Json (Get-Content -Path $parameterFilePath -Raw)).parameters - $keyVaultName = $keyVaultParameters.name.value - - # Generate values - $usernameString = ( -join ((65..90) + (97..122) | Get-Random -Count 9 -SetSeed 1 | ForEach-Object { [char]$_ + "$_" })).substring(0, 19) # max length - $userName = ConvertTo-SecureString -String $usernameString -AsPlainText -Force - $passwordString = (New-Guid).Guid.SubString(0, 19) - $password = ConvertTo-SecureString -String $passwordString -AsPlainText -Force - - # Set secrets - # ------- - @( - @{ name = 'administratorLogin'; secretValue = $username } # SQLManagedInstances - @{ name = 'administratorLoginPassword'; secretValue = $password } # SQLManagedInstances - ) | ForEach-Object { - $null = Set-AzKeyVaultSecret -VaultName $keyVaultName -Name $_.name -SecretValue $_.secretValue - Write-Verbose ('Added secret [{0}] to key vault [{1}]' -f $_.name, $keyVaultName) -Verbose - } - - # Set keys - # ---- - @( - @{ name = 'keyEncryptionKeySqlMi'; Destination = 'Software' } # SQLManagedInstances - ) | ForEach-Object { - $null = Add-AzKeyVaultKey -VaultName $keyVaultName -Name $_.name -Destination $_.Destination - Write-Verbose ('Added key [{0}] to key vault [{1}]' -f $_.name, $keyVaultName) -Verbose - } - azurePowerShellVersion: 'LatestVersion' - pwsh: true - - - stage: deploy_des - displayName: Deploy Disk Encryption Set - dependsOn: - - deploy_kv - variables: - resourceType: 'Microsoft.Compute/diskEncryptionSets' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - templateFilePath: $(templateFilePath) - displayName: Default Application Group - - - stage: deploy_avdag - displayName: Deploy AVD application group - dependsOn: - - deploy_avdhp - variables: - resourceType: 'Microsoft.DesktopVirtualization/applicationgroups' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - templateFilePath: $(templateFilePath) - displayName: Default Application Group - - - stage: deploy_rolea - displayName: Deploy role assignments - dependsOn: - - deploy_msi - variables: - resourceType: 'Microsoft.Authorization/roleAssignments' - templateFilePath: $(modulesPath)/$(resourceType)/subscription/deploy.bicep - msiPrincipalId: $[ stageDependencies.deploy_msi.job_set_msi_id.outputs['print_msi_prinId.msiPrincipalId'] ] - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - templateFilePath: $(templateFilePath) - displayName: MSI Role Assignment - customParameterFileTokens: '{"msiPrincipalId":"$(msiPrincipalId)"}' - - - stage: deploy_vnet - displayName: Deploy virtual networks - dependsOn: - - deploy_nsg - - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: - - deploy_udr - variables: - resourceType: 'Microsoft.Network/virtualNetworks' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - templateFilePath: $(templateFilePath) - displayName: Default Virtual Network - - path: $(dependencyPath)/$(resourceType)/parameters/1.bastion.parameters.json - templateFilePath: $(templateFilePath) - displayName: Bastion Virtual Network Min - - path: $(dependencyPath)/$(resourceType)/parameters/2.vnetpeer01.parameters.json - templateFilePath: $(templateFilePath) - displayName: VNET PEering 1 Virtual Network - - path: $(dependencyPath)/$(resourceType)/parameters/3.vnetpeer02.parameters.json - templateFilePath: $(templateFilePath) - displayName: VNET Peering 2 Virtual Network - - path: $(dependencyPath)/$(resourceType)/parameters/4.azfw.parameters.json - templateFilePath: $(templateFilePath) - displayName: Azure Firewall Virtual Network - - path: $(dependencyPath)/$(resourceType)/parameters/5.aks.parameters.json - templateFilePath: $(templateFilePath) - displayName: AKS Virtual Network - - path: $(dependencyPath)/$(resourceType)/parameters/7.virtualHubConnection.parameters.json - templateFilePath: $(templateFilePath) - displayName: Virtual Hub Connection Virtual Network - - path: $(dependencyPath)/$(resourceType)/parameters/8.aadds.parameters.json - templateFilePath: $(templateFilePath) - displayName: AADDS Virtual Network - - path: $(dependencyPath)/$(resourceType)/parameters/9.azfw.parameters.json - templateFilePath: $(templateFilePath) - displayName: Azure Firewall Virtual Network Min - - path: $(dependencyPath)/$(resourceType)/parameters/10.azfw.parameters.json - templateFilePath: $(templateFilePath) - displayName: Azure Firewall Virtual Network Additonal - - path: $(dependencyPath)/$(resourceType)/parameters/11.azfw.parameters.json - templateFilePath: $(templateFilePath) - displayName: Azure Firewall Virtual Network Custom - - path: $(dependencyPath)/$(resourceType)/parameters/12.bastion.parameters.json - templateFilePath: $(templateFilePath) - displayName: Bastion Virtual Network Additional - - path: $(dependencyPath)/$(resourceType)/parameters/13.bastion.parameters.json - templateFilePath: $(templateFilePath) - displayName: Bastion Virtual Network Custom - - - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: - - path: $(dependencyPath)/$(resourceType)/parameters/6.sqlmi.parameters.json - templateFilePath: $(templateFilePath) - displayName: SQL MI Virtual Network - - - stage: deploy_dnszone - displayName: Deploy private DNS zones - dependsOn: - - deploy_vnet - variables: - resourceType: 'Microsoft.Network/privateDnsZones' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/automation.parameters.json - templateFilePath: $(templateFilePath) - displayName: Automation Account Private DNS Zone - - path: $(dependencyPath)/$(resourceType)/parameters/azconfig.parameters.json - templateFilePath: $(templateFilePath) - displayName: App Configuration Private DNS Zone - - path: $(dependencyPath)/$(resourceType)/parameters/azurecr.parameters.json - templateFilePath: $(templateFilePath) - displayName: ACR Private DNS Zone - - path: $(dependencyPath)/$(resourceType)/parameters/azureml.parameters.json - templateFilePath: $(templateFilePath) - displayName: Machine Learning Private DNS Zone - - path: $(dependencyPath)/$(resourceType)/parameters/azurestaticapps.parameters.json - templateFilePath: $(templateFilePath) - displayName: Static Apps Private DNS Zone - - path: $(dependencyPath)/$(resourceType)/parameters/azuresynapse.parameters.json - templateFilePath: $(templateFilePath) - displayName: Azure Synapse Private DNS Zone - - path: $(dependencyPath)/$(resourceType)/parameters/azurewebsites.parameters.json - templateFilePath: $(templateFilePath) - displayName: Web Sites Private DNS Zone - - path: $(dependencyPath)/$(resourceType)/parameters/batch.parameters.json - templateFilePath: $(templateFilePath) - displayName: Batch Private DNS Zone - - path: $(dependencyPath)/$(resourceType)/parameters/blob.parameters.json - templateFilePath: $(templateFilePath) - displayName: Storage Blob Private DNS Zone - - path: $(dependencyPath)/$(resourceType)/parameters/cognitiveservices.parameters.json - templateFilePath: $(templateFilePath) - displayName: Cognitive Services Private DNS Zone - - path: $(dependencyPath)/$(resourceType)/parameters/database.parameters.json - templateFilePath: $(templateFilePath) - displayName: Database Private DNS Zone - - path: $(dependencyPath)/$(resourceType)/parameters/datafactory.parameters.json - templateFilePath: $(templateFilePath) - displayName: Data Factory Private DNS Zone - - path: $(dependencyPath)/$(resourceType)/parameters/eventgrid.parameters.json - templateFilePath: $(templateFilePath) - displayName: Event Grid Private DNS Zone - - path: $(dependencyPath)/$(resourceType)/parameters/file.parameters.json - templateFilePath: $(templateFilePath) - displayName: Storage Files Private DNS Zone - - path: $(dependencyPath)/$(resourceType)/parameters/monitor.parameters.json - templateFilePath: $(templateFilePath) - displayName: Monitoring Private DNS Zone - - path: $(dependencyPath)/$(resourceType)/parameters/queue.parameters.json - templateFilePath: $(templateFilePath) - displayName: Storage Queue Private DNS Zone - - path: $(dependencyPath)/$(resourceType)/parameters/redis.parameters.json - templateFilePath: $(templateFilePath) - displayName: Redis Cache Private DNS Zone - - path: $(dependencyPath)/$(resourceType)/parameters/servicebus.parameters.json - templateFilePath: $(templateFilePath) - displayName: Service Bus Private DNS Zone - - path: $(dependencyPath)/$(resourceType)/parameters/siterecovery.parameters.json - templateFilePath: $(templateFilePath) - displayName: Recovery Services Vault Private DNS Zone - - path: $(dependencyPath)/$(resourceType)/parameters/table.parameters.json - templateFilePath: $(templateFilePath) - displayName: Storage Table Private DNS Zone - - path: $(dependencyPath)/$(resourceType)/parameters/vaultcore.parameters.json - templateFilePath: $(templateFilePath) - displayName: Key Vault Private DNS Zone - - path: $(dependencyPath)/$(resourceType)/parameters/webpubsub.parameters.json - templateFilePath: $(templateFilePath) - displayName: Web PubSub Private DNS Zone - - - stage: deploy_vm - displayName: Deploy virtual machines - dependsOn: - - deploy_vnet - - deploy_rsv - - deploy_kv - variables: - resourceType: 'Microsoft.Compute/virtualMachines' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - templateFilePath: $(templateFilePath) - displayName: Default Virtual Machine - - - stage: deploy_lb - displayName: Deploy load balancers - dependsOn: - - deploy_vnet - variables: - resourceType: 'Microsoft.Network/loadBalancers' - templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - deploymentBlocks: - - path: $(dependencyPath)/$(resourceType)/parameters/internal.parameters.json - templateFilePath: $(templateFilePath) - displayName: Deploy module + templateFilePath: '$(modulePath)/deploy.bicep' + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/validation.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Validation Resource Group + # - path: $(dependencyPath)/$(resourceType)/parameters/locks.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Locks Resource Group + + # - stage: deploy_ppg + # displayName: Deploy proximity placement group + # dependsOn: + # - deploy_rg + # variables: + # resourceType: 'Microsoft.Compute/proximityPlacementGroups' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Proximity Placement Group + + # - stage: deploy_msi + # displayName: Deploy user assigned identity + # dependsOn: + # - deploy_rg + # variables: + # resourceType: 'Microsoft.ManagedIdentity/userAssignedIdentities' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + # templateFilePath: $(templateFilePath) + # displayName: User Assigned Identity + # jobName: job_deploy_msi + # - job: job_set_msi_id + # displayName: Set msi principal ID output + # dependsOn: + # - job_deploy_msi + # pool: + # ${{ if eq(variables['vmImage'], '') }}: + # name: $(poolName) + # ${{ if eq(variables['poolName'], '') }}: + # vmImage: $(vmImage) + # variables: + # deploymentOutput: $[ dependencies.job_deploy_msi.outputs['DeployModule.deploymentOutput'] ] + # steps: + # - task: PowerShell@2 + # name: print_msi_prinId + # inputs: + # targetType: inline + # pwsh: true + # script: | + # # Write-Verbose $(deploymentOutput) -Verbose + # $msiPrincipalId = (ConvertFrom-Json '$(deploymentOutput)').principalId + # Write-Verbose "msiPrincipalId: $msiPrincipalId" -Verbose + # Write-Output ('##vso[task.setvariable variable={0};isOutput=true]{1}' -f 'msiPrincipalId', $msiPrincipalId) + + # - stage: deploy_sf + # displayName: Deploy server farm + # dependsOn: + # - deploy_rg + # variables: + # resourceType: 'Microsoft.Web/serverfarms' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Server farm + + # - stage: deploy_app + # displayName: Deploy app + # dependsOn: + # - deploy_sf + # variables: + # resourceType: 'Microsoft.Web/sites' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Function App + + # - stage: deploy_pa + # displayName: Deploy policy assignment + # dependsOn: + # - deploy_rg + # variables: + # resourceType: 'Microsoft.Authorization/policyAssignments' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/mg.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Policy assignment (mg) + # - path: $(dependencyPath)/$(resourceType)/parameters/sub.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Policy assignment (sub) + + # - stage: deploy_evh + # displayName: Deploy event hub + # dependsOn: + # - deploy_rg + # variables: + # resourceType: 'Microsoft.EventHub/namespaces' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + # templateFilePath: $(templateFilePath) + # displayName: EventHub + + # - stage: deploy_law + # displayName: Deploy log analytics workspace + # dependsOn: + # - deploy_rg + # variables: + # resourceType: 'Microsoft.OperationalInsights/workspaces' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Default LAW + # - path: $(dependencyPath)/$(resourceType)/parameters/aut.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Automation account LAW + # - path: $(dependencyPath)/$(resourceType)/parameters/appi.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: AppInsights LAW + + # - stage: deploy_sa + # displayName: Deploy storage account + # dependsOn: + # - deploy_rg + # variables: + # resourceType: 'Microsoft.Storage/storageAccounts' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Default storage account + # jobName: default_sa + # - path: $(dependencyPath)/$(resourceType)/parameters/law.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: LAW storage account + # - path: $(dependencyPath)/$(resourceType)/parameters/fa.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: FunctionApp storage account + # - job: + # displayName: Upload files to storage account + # dependsOn: + # - default_sa + # pool: + # ${{ if eq(variables['vmImage'], '') }}: + # name: $(poolName) + # ${{ if eq(variables['poolName'], '') }}: + # vmImage: $(vmImage) + # steps: + # - task: PowerShell@2 + # displayName: 'Setup agent' + # inputs: + # targetType: inline + # pwsh: true + # script: | + # # Load used functions + # . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Set-EnvironmentOnAgent.ps1') + + # # Define PS modules to install on the runner + # $Modules = @( + # @{ Name = 'Az.Storage' } + # ) + + # # Set agent up + # Set-EnvironmentOnAgent -PSModules $Modules + # - task: AzurePowerShell@5 + # displayName: Upload files to storage account + # inputs: + # azureSubscription: $(serviceConnection) + # ScriptType: 'InlineScript' + # Inline: | + # $parameterFilePath = Join-Path '$(Build.SourcesDirectory)' '$(dependencyPath)' '$(resourceType)' 'parameters' 'parameters.json' + # # Load used functions + # . (Join-Path '$(Build.SourcesDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Export-ContentToBlob.ps1') + # . (Join-Path '$(Build.SourcesDirectory)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') + + # # Replace tokens in parameter file + # $Settings = Get-Content -Path (Join-Path '$(Build.SourcesDirectory)' 'settings.json') | ConvertFrom-Json -AsHashTable + # $ConvertTokensInputs = @{ + # FilePath = $parameterFilePath + # TokenPrefix = $Settings.parameterFileTokens.tokenPrefix + # TokenSuffix = $Settings.parameterFileTokens.tokenSuffix + # } + + # # Add local tokens + # if ($Settings.parameterFileTokens.localTokens) { + # $tokenMap = @{} + # foreach ($token in $Settings.parameterFileTokens.localTokens) { + # $tokenMap += @{ $token.name = $token.value } + # } + # Write-Verbose ('Using local tokens [{0}]' -f ($tokenMap.Keys -join ', ')) -Verbose + # $ConvertTokensInputs.Tokens = $tokenMap + # } + + # $null = Convert-TokensInFile @ConvertTokensInputs + + # # Get storage account name + # $storageAccountParameters = (ConvertFrom-Json (Get-Content -path $parameterFilePath -Raw)).parameters + + # # Upload files to storage account + # $functionInput = @{ + # ResourceGroupName = '$(defaultResourceGroupName)' + # StorageAccountName = $storageAccountParameters.name.value + # contentDirectories = Join-Path '$(Build.SourcesDirectory)' $(dependencyPath) '$(resourceType)' 'uploads' + # targetContainer = $storageAccountParameters.blobServices.value.containers[0].name + # } + + # Write-Verbose "Invoke task with" -Verbose + # Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose + + # Export-ContentToBlob @functionInput -Verbose + # azurePowerShellVersion: 'LatestVersion' + # pwsh: true + + # - stage: deploy_sig + # displayName: Deploy shared image gallery and definition + # dependsOn: + # - deploy_rg + # variables: + # resourceType: 'Microsoft.Compute/galleries' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Default SIG and SID + + # - ${{ if eq( parameters.deployVhdDependencies, true) }}: + # - stage: deploy_imgt + # displayName: Deploy image template + # dependsOn: + # - deploy_rolea + # - deploy_sig + # - deploy_sa + # variables: + # resourceType: 'Microsoft.VirtualMachineImages\imageTemplates' + # saResourceType: 'Microsoft.Storage\storageAccounts' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Image template + # jobName: job_deploy_imgt + # - job: + # displayName: Trigger vhd build and store it to a storage account blob container + # dependsOn: + # - job_deploy_imgt + # pool: + # ${{ if eq(variables['vmImage'], '') }}: + # name: $(poolName) + # ${{ if eq(variables['poolName'], '') }}: + # vmImage: $(vmImage) + # variables: + # deploymentOutput: $[ dependencies.job_deploy_imgt.outputs['DeployModule.deploymentOutput'] ] + # steps: + # - task: PowerShell@2 + # displayName: 'Setup agent' + # inputs: + # targetType: inline + # pwsh: true + # script: | + # # Load used functions + # . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Set-EnvironmentOnAgent.ps1') + + # # Define PS modules to install on the runner + # $Modules = @( + # @{ Name = 'Az.ImageBuilder' }, + # @{ Name = 'Az.Storage' } + # ) + + # # Set agent up + # Set-EnvironmentOnAgent -PSModules $Modules + # - task: AzurePowerShell@5 + # displayName: Trigger building new image + # inputs: + # azureSubscription: $(serviceConnection) + # ScriptType: 'InlineScript' + # Inline: | + # # Retrieving parameters from previous job outputs + # Write-Verbose "Retrieving parameters from previous job outputs" -Verbose + # $imageTemplateName = (ConvertFrom-Json '$(deploymentOutput)').name + # $imageTemplateResourceGroup = (ConvertFrom-Json '$(deploymentOutput)').resourceGroupName + + # # Trigger new image creation + # Write-Verbose "Trigger new image creation with imageTemplateName $imageTemplateName and imageTemplateResourceGroup $imageTemplateResourceGroup" -Verbose + # Start-AzImageBuilderTemplate -ImageTemplateName $imageTemplateName -ResourceGroupName $imageTemplateResourceGroup + # azurePowerShellVersion: 'LatestVersion' + # pwsh: true + # - task: AzurePowerShell@5 + # displayName: Copy baked vhd to a storage account + # inputs: + # azureSubscription: $(serviceConnection) + # ScriptType: 'InlineScript' + # Inline: | + + # # Load used functions + # . (Join-Path '$(Build.SourcesDirectory)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') + + # # Prepare replace tokens in parameter file + # $Settings = Get-Content -Path (Join-Path '$(Build.SourcesDirectory)' 'settings.json') | ConvertFrom-Json -AsHashTable + # $ConvertTokensInputs = @{ + # TokenPrefix = $Settings.parameterFileTokens.tokenPrefix + # TokenSuffix = $Settings.parameterFileTokens.tokenSuffix + # } + # if ($Settings.parameterFileTokens.localTokens) { + # $tokenMap = @{} + # foreach ($token in $Settings.parameterFileTokens.localTokens) { + # $tokenMap += @{ $token.name = $token.value } + # } + # Write-Verbose ('Using local tokens [{0}]' -f ($tokenMap.Keys -join ', ')) -Verbose + # $ConvertTokensInputs.Tokens = $tokenMap + # } + + # # Retrieving parameters from previous job outputs and parameter files + # Write-Verbose "Retrieving parameters from previous job outputs" -Verbose + # $imageTemplateName = (ConvertFrom-Json '$(deploymentOutput)').name + # $imageTemplateResourceGroup = (ConvertFrom-Json '$(deploymentOutput)').resourceGroupName + + # Write-Verbose "Retrieving parameters from storage account parameter files" -Verbose + # $parameterFilePath = Join-Path '$(Build.SourcesDirectory)' '$(dependencyPath)' '$(saResourceType)' 'parameters' 'parameters.json' + # $null = Convert-TokensInFile @ConvertTokensInputs -FilePath $parameterFilePath -Verbose + # $storageAccountParameters = (ConvertFrom-Json (Get-Content -path $parameterFilePath -Raw)).parameters + + # Write-Verbose "Retrieving parameters from image template parameter files" -Verbose + # $parameterFilePath = Join-Path '$(Build.SourcesDirectory)' '$(dependencyPath)' '$(resourceType)' 'parameters' 'parameters.json' + # $null = Convert-TokensInFile @ConvertTokensInputs -FilePath $parameterFilePath -Verbose + # $imageTemplateParameters = (ConvertFrom-Json (Get-Content -path $parameterFilePath -Raw)).parameters + + # # Initializing parameters before the blob copy + # Write-Verbose "Initializing source storage account parameters before the blob copy" -Verbose + # $imgtRunOutput = Get-AzImageBuilderRunOutput -ImageTemplateName $imageTemplateName -ResourceGroupName $imageTemplateResourceGroup | Where-Object ArtifactUri -NE $null + # $sourceUri = $imgtRunOutput.ArtifactUri + # $sourceStorageAccountName = $sourceUri.Split('//')[1].Split('.')[0] + # $sourceStorageAccount = Get-AzStorageAccount | Where-Object StorageAccountName -EQ $sourceStorageAccountName + # $sourceStorageAccountContext = $sourceStorageAccount.Context + # $sourceStorageAccountRGName = $sourceStorageAccount.ResourceGroupName + # Write-Verbose "Retrieving artifact uri $sourceUri stored in resource group $sourceStorageAccountRGName" -Verbose + + # Write-Verbose "Initializing destination storage account parameters before the blob copy" -Verbose + # $destinationStorageAccountName = $storageAccountParameters.name.value + # $destinationStorageAccount = Get-AzStorageAccount | Where-Object StorageAccountName -EQ $destinationStorageAccountName + # $destinationStorageAccountContext = $destinationStorageAccount.Context + # $destinationContainerName = 'vhds' + # $destinationBlobName = $imageTemplateParameters.name.value + # $destinationBlobName = "$destinationBlobName.vhd" + # Write-Verbose "Planning for destination blob name $destinationBlobName in container $destinationContainerName and storage account $destinationStorageAccountName" -Verbose + + # # Copying the vhd to a destination blob container + # Write-Verbose "Copying the vhd to a destination blob container" -Verbose + # $resourceActionInputObject = @{ + # AbsoluteUri = $sourceUri + # Context = $sourceStorageAccountContext + # DestContext = $destinationStorageAccountContext + # DestBlob = $destinationBlobName + # DestContainer = $destinationContainerName + # Force = $true + # } + # Start-AzStorageBlobCopy @resourceActionInputObject + # azPSVersion: 'latest' + # azurePowerShellVersion: 'LatestVersion' + # pwsh: true + + # - stage: deploy_ag + # displayName: Deploy action groups + # dependsOn: + # - deploy_rg + # variables: + # resourceType: 'Microsoft.Insights/actionGroups' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Default Action Group + + # - stage: deploy_asg + # displayName: Deploy application security groups + # dependsOn: + # - deploy_rg + # variables: + # resourceType: 'Microsoft.Network/applicationSecurityGroups' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Default Application Security Groups + + # - stage: deploy_udr + # displayName: Deploy route tables + # dependsOn: + # - deploy_rg + # variables: + # resourceType: 'Microsoft.Network/routeTables' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Default User Defined Routes + # - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: + # - path: $(dependencyPath)/$(resourceType)/parameters/sqlMi.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: SQLMI User Defined Routes + + # - stage: deploy_nsg + # displayName: Deploy network security groups + # dependsOn: + # - deploy_sa + # - deploy_evh + # - deploy_law + # variables: + # resourceType: 'Microsoft.Network/networkSecurityGroups' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Default NSG + # - path: $(dependencyPath)/$(resourceType)/parameters/apgw.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: App Gateway NSG + # - path: $(dependencyPath)/$(resourceType)/parameters/ase.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: ASE NSG + # - path: $(dependencyPath)/$(resourceType)/parameters/bastion.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Bastion NSG + # - path: $(dependencyPath)/$(resourceType)/parameters/aadds.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: AADDS NSG + # - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: + # - path: $(dependencyPath)/$(resourceType)/parameters/sqlmi.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: SQLMI NSG + + # - stage: deploy_pip + # displayName: Deploy public IP addresses + # dependsOn: + # - deploy_sa + # - deploy_evh + # - deploy_law + # variables: + # resourceType: 'Microsoft.Network\publicIPAddresses' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/apgw.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: App Gateway Public IP + # - path: $(dependencyPath)/$(resourceType)/parameters/bas.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Bastion Public IP + # - path: $(dependencyPath)/$(resourceType)/parameters/lb.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Load balancer Public IP + # - path: $(dependencyPath)/$(resourceType)/parameters/lb.min.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Min Load balancer Public IP + # - path: $(dependencyPath)/$(resourceType)/parameters/fw.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Firewall Public IP + # - path: $(dependencyPath)/$(resourceType)/parameters/fw.additional.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Firewall Additional Public IP + # - path: $(dependencyPath)/$(resourceType)/parameters/bas.additional.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Bastion Additional Public IP + + # - stage: deploy_appi + # displayName: Deploy application insight + # dependsOn: + # - deploy_sa + # - deploy_evh + # - deploy_law + # variables: + # resourceType: 'Microsoft.Insights/components' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Default Application Insights + + # - stage: deploy_aut + # displayName: Deploy automation account + # dependsOn: + # - deploy_sa + # - deploy_evh + # - deploy_law + # variables: + # resourceType: 'Microsoft.Automation/automationAccounts' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Default Automation Account + + # - stage: deploy_avdhp + # displayName: Deploy AVD host pool + # dependsOn: + # - deploy_sa + # - deploy_evh + # - deploy_law + # variables: + # resourceType: 'Microsoft.DesktopVirtualization/hostpools' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Default AVD Host Pool + + # - stage: deploy_rsv + # displayName: Deploy recovery services vault + # dependsOn: + # - deploy_sa + # - deploy_evh + # - deploy_law + # - deploy_msi + # variables: + # resourceType: 'Microsoft.RecoveryServices/vaults' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # msiPrincipalId: $[ stageDependencies.deploy_msi.job_set_msi_id.outputs['print_msi_prinId.msiPrincipalId'] ] + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Default recovery services vault + # customParameterFileTokens: '{"msiPrincipalId":"$(msiPrincipalId)"}' + + # - stage: deploy_kv + # displayName: Deploy key vaults + # dependsOn: + # - deploy_sa + # - deploy_evh + # - deploy_law + # - deploy_msi + # variables: + # resourceType: 'Microsoft.KeyVault/vaults' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # msiPrincipalId: $[ stageDependencies.deploy_msi.job_set_msi_id.outputs['print_msi_prinId.msiPrincipalId'] ] + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Default Key Vault + # jobName: default_kv + # customParameterFileTokens: '{"msiPrincipalId":"$(msiPrincipalId)"}' + # - path: $(dependencyPath)/$(resourceType)/parameters/nopr.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Purge proteced key vault + # jobName: default_kv_nopr + # customParameterFileTokens: '{"msiPrincipalId":"$(msiPrincipalId)"}' + # - path: $(dependencyPath)/$(resourceType)/parameters/pe.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Private Endpoint Key Vault + # customParameterFileTokens: '{"msiPrincipalId":"$(msiPrincipalId)"}' + # - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: + # - path: $(dependencyPath)/$(resourceType)/parameters/sqlmi.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: SQLMI key vault + # jobName: sqlmi_kv + # customParameterFileTokens: '{"msiPrincipalId":"$(msiPrincipalId)"}' + # - job: + # displayName: Set key vault secrets keys and certificates + # dependsOn: + # - default_kv + # - default_kv_nopr + # pool: + # # Must run on windows as the used `New-SelfSignedCertificate` function is not available on linux + # vmImage: windows-2022 + # steps: + # - task: PowerShell@2 + # displayName: 'Setup agent' + # inputs: + # targetType: inline + # pwsh: true + # script: | + # # Load used functions + # . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Set-EnvironmentOnAgent.ps1') + + # # Define PS modules to install on the runner + # $Modules = @( + # @{ Name = 'Az.KeyVault' } + # ) + + # # Set agent up + # Set-EnvironmentOnAgent -PSModules $Modules + # - task: AzurePowerShell@5 + # displayName: Set key vault secrets keys and certificates + # inputs: + # azureSubscription: $(serviceConnection) + # ScriptType: 'InlineScript' + # Inline: | + # $parameterFilePath = Join-Path '$(Build.SourcesDirectory)' '$(dependencyPath)' '$(resourceType)' 'parameters' 'parameters.json' + # $noprParameterFilePath = Join-Path '$(Build.SourcesDirectory)' '$(dependencyPath)' '$(resourceType)' 'parameters' 'nopr.parameters.json' + + # # Load used functions + # . (Join-Path '$(Build.SourcesDirectory)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') + + # # Replace tokens in parameter file + # $Settings = Get-Content -Path (Join-Path '$(Build.SourcesDirectory)' 'settings.json') | ConvertFrom-Json -AsHashTable + # $ConvertTokensInputs = @{ + # FilePath = $parameterFilePath + # TokenPrefix = $Settings.parameterFileTokens.tokenPrefix + # TokenSuffix = $Settings.parameterFileTokens.tokenSuffix + # } + # $NoprConvertTokensInputs = @{ + # FilePath = $noprParameterFilePath + # TokenPrefix = $Settings.parameterFileTokens.tokenPrefix + # TokenSuffix = $Settings.parameterFileTokens.tokenSuffix + # } + # if ($Settings.parameterFileTokens.localTokens) { + # $tokenMap = @{} + # foreach ($token in $Settings.parameterFileTokens.localTokens) { + # $tokenMap += @{ $token.name = $token.value } + # } + # Write-Verbose ('Using local tokens [{0}]' -f ($tokenMap.Keys -join ', ')) -Verbose + # $ConvertTokensInputs.Tokens = $tokenMap + # $NoprConvertTokensInputs.Tokens = $tokenMap + # } + # $null = Convert-TokensInFile @ConvertTokensInputs + # $null = Convert-TokensInFile @NoprConvertTokensInputs + + # # Get key vault name + # $keyVaultParameters = (ConvertFrom-Json (Get-Content -Path $parameterFilePath -Raw)).parameters + # $keyVaultName = $keyVaultParameters.name.value + # # No Purge Key Vault + # $noprKeyVaultParameters = (ConvertFrom-Json (Get-Content -Path $noprParameterFilePath -Raw)).parameters + # $noprKeyVaultName = $noprKeyVaultParameters.name.value + + # # Generate values + # $usernameString = ( -join ((65..90) + (97..122) | Get-Random -Count 9 -SetSeed 1 | ForEach-Object { [char]$_ + "$_" })).substring(0, 19) # max length + # $userName = ConvertTo-SecureString -String $usernameString -AsPlainText -Force + # $passwordString = (New-Guid).Guid.SubString(0, 19) + # $password = ConvertTo-SecureString -String $passwordString -AsPlainText -Force + # $vpnSharedKeyString = (New-Guid).Guid.SubString(0, 32) + # $vpnSharedKey = ConvertTo-SecureString -String $vpnSharedKeyString -AsPlainText -Force + + # $namePrefixToken = $Settings.parameterFileTokens.localTokens | Where-Object { $_.name -eq 'namePrefix' } + # $certInputObject = @{ + # Subject = 'CN=*.{0}.onmicrosoft.com' -f $namePrefixToken.value + # DnsName = '*.{0}.onmicrosoft.com' -f $namePrefixToken.value + # CertStoreLocation = 'cert:\LocalMachine\My' + # KeyExportPolicy = 'Exportable' + # Provider = 'Microsoft Enhanced RSA and AES Cryptographic Provider' + # NotAfter = (Get-Date).AddMonths(3) + # HashAlgorithm = 'SHA256' + # } + # $rawCert = New-SelfSignedCertificate @certInputObject + # Export-PfxCertificate -Cert ('Cert:\localmachine\my\' + $rawCert.Thumbprint) -FilePath "$home/aadds.pfx" -Password $password -Force + # $rawCertByteStream = Get-Content "$home/aadds.pfx" -AsByteStream + # $pfxCertificate = ConvertTo-SecureString -String ([System.Convert]::ToBase64String($rawCertByteStream)) -AsPlainText -Force + + # # Set secrets + # # ------- + # @( + # @{ name = 'adminUsername'; secretValue = $username } # VirtualMachines and VMSS + # @{ name = 'adminPassword'; secretValue = $password } # VirtualMachines and VMSS + # @{ name = 'administratorLogin'; secretValue = $username } # Azure SQLServer + # @{ name = 'administratorLoginPassword'; secretValue = $password } # Azure SQLServer + # @{ name = 'vpnSharedKey'; secretValue = $vpnSharedKey } # VirtualNetworkGateway + # @{ name = 'apimClientId'; secretValue = $username } # API management + # @{ name = 'apimClientSecret'; secretValue = $password } # API management + # @{ name = 'pfxCertificatePassword'; secretValue = $password } # AADDS + # @{ name = 'pfxBase64Certificate'; secretValue = $pfxCertificate } # AADDS + # ) | ForEach-Object { + # $null = Set-AzKeyVaultSecret -VaultName $keyVaultName -Name $_.name -SecretValue $_.secretValue + # Write-Verbose ('Added secret [{0}] to key vault [{1}]' -f $_.name, $keyVaultName) -Verbose + # } + + # # Certificats + # # ----------- + # $certPolicy = New-AzKeyVaultCertificatePolicy -SecretContentType 'application/x-pkcs12' -SubjectName 'CN=fabrikam.com' -IssuerName 'Self' -ValidityInMonths 12 -ReuseKeyOnRenewal + # @( + # @{ name = 'applicationGatewaySslCertificate'; CertificatePolicy = $certPolicy } # ApplicationGateway + # ) | ForEach-Object { + # $null = Add-AzKeyVaultCertificate -VaultName $keyVaultName -Name $_.name -CertificatePolicy $_.CertificatePolicy + # Write-Verbose ('Added certificate [{0}] to key vault [{1}]' -f $_.name, $keyVaultName) -Verbose + # } + + # # Set keys + # # ---- + # @( + # @{ name = 'keyEncryptionKey'; Destination = 'Software' } # DiskEncryptionSet, VirtualMachines and VMSS + # ) | ForEach-Object { + # $null = Add-AzKeyVaultKey -VaultName $keyVaultName -Name $_.name -Destination $_.Destination + # Write-Verbose ('Added key [{0}] to key vault [{1}]' -f $_.name, $keyVaultName) -Verbose + # } + # # noprKeyVault Keys + # @( + # @{ name = 'keyEncryptionKey'; Destination = 'Software' } # Automation Account + # ) | ForEach-Object { + # $null = Add-AzKeyVaultKey -VaultName $noprKeyVaultName -Name $_.name -Destination $_.Destination + # Write-Verbose ('Added key [{0}] to key vault [{1}]' -f $_.name, $noprKeyVaultName) -Verbose + # } + # azurePowerShellVersion: 'LatestVersion' + # pwsh: true + + # - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: + # - job: + # displayName: Set sqlmi key vault secrets and keys + # dependsOn: + # - sqlmi_kv + # pool: + # ${{ if eq(variables['vmImage'], '') }}: + # name: $(poolName) + # ${{ if eq(variables['poolName'], '') }}: + # vmImage: $(vmImage) + # steps: + # - task: PowerShell@2 + # displayName: 'Setup agent' + # inputs: + # targetType: inline + # pwsh: true + # script: | + # # Load used functions + # . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Set-EnvironmentOnAgent.ps1') + + # # Define PS modules to install on the runner + # $Modules = @( + # @{ Name = 'Az.KeyVault' } + # ) + + # # Set agent up + # Set-EnvironmentOnAgent -PSModules $Modules + # - task: AzurePowerShell@5 + # displayName: Set sqlmi key vault secrets and keys + # inputs: + # azureSubscription: $(serviceConnection) + # ScriptType: 'InlineScript' + # Inline: | + + # $parameterFilePath = Join-Path '$(Build.SourcesDirectory)' '$(dependencyPath)' '$(resourceType)' 'parameters' 'sqlmi.parameters.json' + # # Load used functions + # . (Join-Path '$(Build.SourcesDirectory)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') + + # # Replace tokens in parameter file + # $Settings = Get-Content -Path (Join-Path '$(Build.SourcesDirectory)' 'settings.json') | ConvertFrom-Json -AsHashTable + # $ConvertTokensInputs = @{ + # FilePath = $parameterFilePath + # TokenPrefix = $Settings.parameterFileTokens.tokenPrefix + # TokenSuffix = $Settings.parameterFileTokens.tokenSuffix + # } + # if ($Settings.parameterFileTokens.localTokens) { + # $tokenMap = @{} + # foreach ($token in $Settings.parameterFileTokens.localTokens) { + # $tokenMap += @{ $token.name = $token.value } + # } + # Write-Verbose ('Using local tokens [{0}]' -f ($tokenMap.Keys -join ', ')) -Verbose + # $ConvertTokensInputs.Tokens = $tokenMap + # } + # $null = Convert-TokensInFile @ConvertTokensInputs + + # # Get key vault name + # $keyVaultParameters = (ConvertFrom-Json (Get-Content -Path $parameterFilePath -Raw)).parameters + # $keyVaultName = $keyVaultParameters.name.value + + # # Generate values + # $usernameString = ( -join ((65..90) + (97..122) | Get-Random -Count 9 -SetSeed 1 | ForEach-Object { [char]$_ + "$_" })).substring(0, 19) # max length + # $userName = ConvertTo-SecureString -String $usernameString -AsPlainText -Force + # $passwordString = (New-Guid).Guid.SubString(0, 19) + # $password = ConvertTo-SecureString -String $passwordString -AsPlainText -Force + + # # Set secrets + # # ------- + # @( + # @{ name = 'administratorLogin'; secretValue = $username } # SQLManagedInstances + # @{ name = 'administratorLoginPassword'; secretValue = $password } # SQLManagedInstances + # ) | ForEach-Object { + # $null = Set-AzKeyVaultSecret -VaultName $keyVaultName -Name $_.name -SecretValue $_.secretValue + # Write-Verbose ('Added secret [{0}] to key vault [{1}]' -f $_.name, $keyVaultName) -Verbose + # } + + # # Set keys + # # ---- + # @( + # @{ name = 'keyEncryptionKeySqlMi'; Destination = 'Software' } # SQLManagedInstances + # ) | ForEach-Object { + # $null = Add-AzKeyVaultKey -VaultName $keyVaultName -Name $_.name -Destination $_.Destination + # Write-Verbose ('Added key [{0}] to key vault [{1}]' -f $_.name, $keyVaultName) -Verbose + # } + # azurePowerShellVersion: 'LatestVersion' + # pwsh: true + + # - stage: deploy_des + # displayName: Deploy Disk Encryption Set + # dependsOn: + # - deploy_kv + # variables: + # resourceType: 'Microsoft.Compute/diskEncryptionSets' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Default Application Group + + # - stage: deploy_avdag + # displayName: Deploy AVD application group + # dependsOn: + # - deploy_avdhp + # variables: + # resourceType: 'Microsoft.DesktopVirtualization/applicationgroups' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Default Application Group + + # - stage: deploy_rolea + # displayName: Deploy role assignments + # dependsOn: + # - deploy_msi + # variables: + # resourceType: 'Microsoft.Authorization/roleAssignments' + # templateFilePath: $(modulesPath)/$(resourceType)/subscription/deploy.bicep + # msiPrincipalId: $[ stageDependencies.deploy_msi.job_set_msi_id.outputs['print_msi_prinId.msiPrincipalId'] ] + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + # templateFilePath: $(templateFilePath) + # displayName: MSI Role Assignment + # customParameterFileTokens: '{"msiPrincipalId":"$(msiPrincipalId)"}' + + # - stage: deploy_vnet + # displayName: Deploy virtual networks + # dependsOn: + # - deploy_nsg + # - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: + # - deploy_udr + # variables: + # resourceType: 'Microsoft.Network/virtualNetworks' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Default Virtual Network + # - path: $(dependencyPath)/$(resourceType)/parameters/1.bastion.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Bastion Virtual Network Min + # - path: $(dependencyPath)/$(resourceType)/parameters/2.vnetpeer01.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: VNET PEering 1 Virtual Network + # - path: $(dependencyPath)/$(resourceType)/parameters/3.vnetpeer02.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: VNET Peering 2 Virtual Network + # - path: $(dependencyPath)/$(resourceType)/parameters/4.azfw.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Azure Firewall Virtual Network + # - path: $(dependencyPath)/$(resourceType)/parameters/5.aks.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: AKS Virtual Network + # - path: $(dependencyPath)/$(resourceType)/parameters/7.virtualHubConnection.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Virtual Hub Connection Virtual Network + # - path: $(dependencyPath)/$(resourceType)/parameters/8.aadds.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: AADDS Virtual Network + # - path: $(dependencyPath)/$(resourceType)/parameters/9.azfw.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Azure Firewall Virtual Network Min + # - path: $(dependencyPath)/$(resourceType)/parameters/10.azfw.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Azure Firewall Virtual Network Additonal + # - path: $(dependencyPath)/$(resourceType)/parameters/11.azfw.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Azure Firewall Virtual Network Custom + # - path: $(dependencyPath)/$(resourceType)/parameters/12.bastion.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Bastion Virtual Network Additional + # - path: $(dependencyPath)/$(resourceType)/parameters/13.bastion.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Bastion Virtual Network Custom + + # - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: + # - path: $(dependencyPath)/$(resourceType)/parameters/6.sqlmi.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: SQL MI Virtual Network + + # - stage: deploy_dnszone + # displayName: Deploy private DNS zones + # dependsOn: + # - deploy_vnet + # variables: + # resourceType: 'Microsoft.Network/privateDnsZones' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/automation.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Automation Account Private DNS Zone + # - path: $(dependencyPath)/$(resourceType)/parameters/azconfig.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: App Configuration Private DNS Zone + # - path: $(dependencyPath)/$(resourceType)/parameters/azurecr.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: ACR Private DNS Zone + # - path: $(dependencyPath)/$(resourceType)/parameters/azureml.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Machine Learning Private DNS Zone + # - path: $(dependencyPath)/$(resourceType)/parameters/azurestaticapps.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Static Apps Private DNS Zone + # - path: $(dependencyPath)/$(resourceType)/parameters/azuresynapse.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Azure Synapse Private DNS Zone + # - path: $(dependencyPath)/$(resourceType)/parameters/azurewebsites.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Web Sites Private DNS Zone + # - path: $(dependencyPath)/$(resourceType)/parameters/batch.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Batch Private DNS Zone + # - path: $(dependencyPath)/$(resourceType)/parameters/blob.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Storage Blob Private DNS Zone + # - path: $(dependencyPath)/$(resourceType)/parameters/cognitiveservices.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Cognitive Services Private DNS Zone + # - path: $(dependencyPath)/$(resourceType)/parameters/database.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Database Private DNS Zone + # - path: $(dependencyPath)/$(resourceType)/parameters/datafactory.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Data Factory Private DNS Zone + # - path: $(dependencyPath)/$(resourceType)/parameters/eventgrid.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Event Grid Private DNS Zone + # - path: $(dependencyPath)/$(resourceType)/parameters/file.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Storage Files Private DNS Zone + # - path: $(dependencyPath)/$(resourceType)/parameters/monitor.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Monitoring Private DNS Zone + # - path: $(dependencyPath)/$(resourceType)/parameters/queue.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Storage Queue Private DNS Zone + # - path: $(dependencyPath)/$(resourceType)/parameters/redis.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Redis Cache Private DNS Zone + # - path: $(dependencyPath)/$(resourceType)/parameters/servicebus.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Service Bus Private DNS Zone + # - path: $(dependencyPath)/$(resourceType)/parameters/siterecovery.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Recovery Services Vault Private DNS Zone + # - path: $(dependencyPath)/$(resourceType)/parameters/table.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Storage Table Private DNS Zone + # - path: $(dependencyPath)/$(resourceType)/parameters/vaultcore.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Key Vault Private DNS Zone + # - path: $(dependencyPath)/$(resourceType)/parameters/webpubsub.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Web PubSub Private DNS Zone + + # - stage: deploy_vm + # displayName: Deploy virtual machines + # dependsOn: + # - deploy_vnet + # - deploy_rsv + # - deploy_kv + # variables: + # resourceType: 'Microsoft.Compute/virtualMachines' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Default Virtual Machine + + # - stage: deploy_lb + # displayName: Deploy load balancers + # dependsOn: + # - deploy_vnet + # variables: + # resourceType: 'Microsoft.Network/loadBalancers' + # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + # jobs: + # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + # parameters: + # deploymentBlocks: + # - path: $(dependencyPath)/$(resourceType)/parameters/internal.parameters.json + # templateFilePath: $(templateFilePath) + # displayName: Deploy module From e4787be9371978ec70ae1879e895a5d5a3bac776 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 20:15:16 +0200 Subject: [PATCH 125/274] Renamed parameter --- .azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml b/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml index ca54c9efb0..0b28cf3a83 100644 --- a/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml +++ b/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml @@ -5,7 +5,7 @@ parameters: # Logic-related parameters modulePath: '$(modulePath)' - searchFolder: '.test' + testFilesFolderName: '.test' ##---------------------------------------------## ## TEMPLATE LOGIC ## @@ -31,7 +31,7 @@ jobs: $functionInput = @{ ModulePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' - SearchFolder = '$(searchFolder)' + SearchFolder = '$(testFilesFolderName)' } Write-Verbose "Invoke task with" -Verbose From 210f018be13b5708cee1c915a7d552094fadfe2b Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 20:17:59 +0200 Subject: [PATCH 126/274] Added var --- .azuredevops/platformPipelines/platform.dependencies.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.azuredevops/platformPipelines/platform.dependencies.yml b/.azuredevops/platformPipelines/platform.dependencies.yml index 6dc027275c..2bc77e070a 100644 --- a/.azuredevops/platformPipelines/platform.dependencies.yml +++ b/.azuredevops/platformPipelines/platform.dependencies.yml @@ -42,6 +42,7 @@ stages: variables: resourceType: 'Microsoft.Resources/resourceGroups' templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + modulePath: $(modulesPath)/$(resourceType) jobs: - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml parameters: From 7e91cfe8cb341d7defff75c0554d96a13313f075 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 20:18:22 +0200 Subject: [PATCH 127/274] Test replace --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 2cc764398b..ac2729a20f 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -74,7 +74,7 @@ parameters: jobs: - template: /.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml - job: deploy - displayName: Deploying [${{ replace( parameters.templateFilePath, parameters.modulePath, '') }}] + displayName: Deploying [${{ replace( "/parameters.templateFilePath", parameters.modulePath, '') }}] timeoutInMinutes: ${{ parameters.defaultJobTimeoutInMinutes }} pool: ${{ if ne(parameters.vmImage, '') }}: From a952777ab2648bad5086b061f07a0ac1b3bb0849 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 20:18:46 +0200 Subject: [PATCH 128/274] Test replace --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index ac2729a20f..cc24344f65 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -74,7 +74,7 @@ parameters: jobs: - template: /.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml - job: deploy - displayName: Deploying [${{ replace( "/parameters.templateFilePath", parameters.modulePath, '') }}] + displayName: Deploying [${{ replace( '/parameters.templateFilePath', parameters.modulePath, '') }}] timeoutInMinutes: ${{ parameters.defaultJobTimeoutInMinutes }} pool: ${{ if ne(parameters.vmImage, '') }}: From 8887b4b82b249395dee7e0cda1a215dac0b3d6df Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 20:19:25 +0200 Subject: [PATCH 129/274] Test replace --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index cc24344f65..ccde8a9758 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -74,7 +74,7 @@ parameters: jobs: - template: /.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml - job: deploy - displayName: Deploying [${{ replace( '/parameters.templateFilePath', parameters.modulePath, '') }}] + displayName: Deploying [${{ replace( ('/' + parameters.templateFilePath), parameters.modulePath, '') }}] timeoutInMinutes: ${{ parameters.defaultJobTimeoutInMinutes }} pool: ${{ if ne(parameters.vmImage, '') }}: From e6f52f4fd3e45759c709885e8721adab3ea21c12 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 20:20:20 +0200 Subject: [PATCH 130/274] Test replace --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index ccde8a9758..bd49d50e00 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -74,7 +74,7 @@ parameters: jobs: - template: /.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml - job: deploy - displayName: Deploying [${{ replace( ('/' + parameters.templateFilePath), parameters.modulePath, '') }}] + displayName: Deploying [${{ replace( ('/' parameters.templateFilePath), parameters.modulePath, '') }}] timeoutInMinutes: ${{ parameters.defaultJobTimeoutInMinutes }} pool: ${{ if ne(parameters.vmImage, '') }}: From 4fc70c2438fdd046660a991a51bfa791ffd109fb Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 20:21:15 +0200 Subject: [PATCH 131/274] Test replace --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index bd49d50e00..a36f8bfe2a 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -74,7 +74,7 @@ parameters: jobs: - template: /.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml - job: deploy - displayName: Deploying [${{ replace( ('/' parameters.templateFilePath), parameters.modulePath, '') }}] + displayName: Deploying [${{ replace( join('/', parameters.templateFilePath), parameters.modulePath, '') }}] timeoutInMinutes: ${{ parameters.defaultJobTimeoutInMinutes }} pool: ${{ if ne(parameters.vmImage, '') }}: From 7f36e03d044c45a066c38ce5db7a4e9693128e36 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 21:53:12 +0200 Subject: [PATCH 132/274] Attempt to parameterize parameter fetch for ADO --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 6 +++++- .azuredevops/platformPipelines/platform.dependencies.yml | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index a36f8bfe2a..5cc0008d74 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -58,6 +58,7 @@ parameters: templateFilePath: '' customParameterFileTokens: '' modulePath: '$(modulePath)' + customParametersPath: '' location: '$(location)' resourceGroupName: '$(resourceGroupName)' subscriptionId: '$(ARM_SUBSCRIPTION_ID)' @@ -73,8 +74,11 @@ parameters: ##---------------------------------------------## jobs: - template: /.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml + ${{ if ne(parameters.customParametersPath, '') }}: + parameters: + modulePath: '${{ parameters.customParametersPath }}' - job: deploy - displayName: Deploying [${{ replace( join('/', parameters.templateFilePath), parameters.modulePath, '') }}] + displayName: Deploying [${{ replace( parameters.templateFilePath, parameters.modulePath, '') }}] timeoutInMinutes: ${{ parameters.defaultJobTimeoutInMinutes }} pool: ${{ if ne(parameters.vmImage, '') }}: diff --git a/.azuredevops/platformPipelines/platform.dependencies.yml b/.azuredevops/platformPipelines/platform.dependencies.yml index 2bc77e070a..5acb562c18 100644 --- a/.azuredevops/platformPipelines/platform.dependencies.yml +++ b/.azuredevops/platformPipelines/platform.dependencies.yml @@ -47,6 +47,7 @@ stages: - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml parameters: templateFilePath: '$(modulePath)/deploy.bicep' + customParametersPath: $(dependencyPath)/$(resourceType) # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/validation.parameters.json # templateFilePath: $(templateFilePath) From ebc3be49b5c0ad65f24e40090571d6381ec7edca Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 21:58:59 +0200 Subject: [PATCH 133/274] Adjusted references --- .azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml b/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml index 0b28cf3a83..9c44aa3a78 100644 --- a/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml +++ b/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml @@ -30,8 +30,8 @@ jobs: . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Get-ModuleTestFileList.ps1') $functionInput = @{ - ModulePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' - SearchFolder = '$(testFilesFolderName)' + ModulePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.modulePath) }}' + SearchFolder = '${{ parameters.testFilesFolderName }}' } Write-Verbose "Invoke task with" -Verbose From 277f381f1c77e267fcc25752d2251c9278238f02 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 21:59:40 +0200 Subject: [PATCH 134/274] Small fix --- .azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml b/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml index 9c44aa3a78..3fa5ef447b 100644 --- a/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml +++ b/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml @@ -30,7 +30,7 @@ jobs: . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Get-ModuleTestFileList.ps1') $functionInput = @{ - ModulePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.modulePath) }}' + ModulePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.modulePath }}' SearchFolder = '${{ parameters.testFilesFolderName }}' } From 14a747c6bceb5033f60b3d60a431634b9ec4fea7 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 22:03:14 +0200 Subject: [PATCH 135/274] Adjusted references --- .azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml | 2 +- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml b/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml index 3fa5ef447b..752f515ba5 100644 --- a/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml +++ b/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml @@ -5,7 +5,7 @@ parameters: # Logic-related parameters modulePath: '$(modulePath)' - testFilesFolderName: '.test' + testFilesFolderName: '$(testFilesFolderName)' ##---------------------------------------------## ## TEMPLATE LOGIC ## diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 5cc0008d74..eda378c4e6 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -57,6 +57,7 @@ parameters: removeDeployment: false templateFilePath: '' customParameterFileTokens: '' + testFilesFolderName: .test modulePath: '$(modulePath)' customParametersPath: '' location: '$(location)' From c4ebef424f04645f408630f9a173568bde803d91 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 22:05:15 +0200 Subject: [PATCH 136/274] Added var --- .azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml | 1 - global.variables.yml | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index eda378c4e6..5cc0008d74 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -57,7 +57,6 @@ parameters: removeDeployment: false templateFilePath: '' customParameterFileTokens: '' - testFilesFolderName: .test modulePath: '$(modulePath)' customParametersPath: '' location: '$(location)' diff --git a/global.variables.yml b/global.variables.yml index 30bdb1e088..211d2f4f1e 100644 --- a/global.variables.yml +++ b/global.variables.yml @@ -8,6 +8,7 @@ variables: ###################################### moduleTestFilePath: 'utilities/pipelines/staticValidation/module.tests.ps1' + testFilesFolderName: .test ###################################### # Validation deployment settings From a762d4f8c46e40f10fe54ef6129f2604b16a783a Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 22:32:59 +0200 Subject: [PATCH 137/274] Added parameter file case handling --- .../jobs.validateModuleDeployment.yml | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 5cc0008d74..49c6091d27 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -78,7 +78,7 @@ jobs: parameters: modulePath: '${{ parameters.customParametersPath }}' - job: deploy - displayName: Deploying [${{ replace( parameters.templateFilePath, parameters.modulePath, '') }}] + displayName: 'Deploying ' # Auto-populated timeoutInMinutes: ${{ parameters.defaultJobTimeoutInMinutes }} pool: ${{ if ne(parameters.vmImage, '') }}: @@ -148,10 +148,16 @@ jobs: return } + if([String]::IsNullOrEmpty('${{ parameters.customParametersPath }}')) { + $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(customParametersPath)' '$(parameterFilePath)' + } else { + $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' + } + # Construct Token Function Input $ConvertTokensInputs = @{ Tokens = @{} - FilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' + FilePath = $moduleTestFilePath TokenPrefix = $Settings.parameterFileTokens.tokenPrefix TokenSuffix = $Settings.parameterFileTokens.tokenSuffix } @@ -210,7 +216,12 @@ jobs: $managementGroupId = '${{ parameters.managementGroupId }}' $moduleTemplateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' - $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' + + if([String]::IsNullOrEmpty('${{ parameters.customParametersPath }}')) { + $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(customParametersPath)' '$(parameterFilePath)' + } else { + $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' + } if ((Split-Path $moduleTemplateFilePath -Extension) -eq '.bicep') { $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable @@ -300,7 +311,12 @@ jobs: $managementGroupId = '${{ parameters.managementGroupId }}' $moduleTemplateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' - $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' + + if([String]::IsNullOrEmpty('${{ parameters.customParametersPath }}')) { + $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(customParametersPath)' '$(parameterFilePath)' + } else { + $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' + } if ((Split-Path $moduleTemplateFilePath -Extension) -eq '.bicep') { $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable From 2d9fa43bf244fa66d431221c9848ca18d11f6741 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 22:35:47 +0200 Subject: [PATCH 138/274] Fixed condition --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 49c6091d27..9844a06df0 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -148,7 +148,7 @@ jobs: return } - if([String]::IsNullOrEmpty('${{ parameters.customParametersPath }}')) { + if(-not [String]::IsNullOrEmpty('${{ parameters.customParametersPath }}')) { $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(customParametersPath)' '$(parameterFilePath)' } else { $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' @@ -217,7 +217,7 @@ jobs: $moduleTemplateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' - if([String]::IsNullOrEmpty('${{ parameters.customParametersPath }}')) { + if(-not [String]::IsNullOrEmpty('${{ parameters.customParametersPath }}')) { $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(customParametersPath)' '$(parameterFilePath)' } else { $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' @@ -312,7 +312,7 @@ jobs: $moduleTemplateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' - if([String]::IsNullOrEmpty('${{ parameters.customParametersPath }}')) { + if(-not [String]::IsNullOrEmpty('${{ parameters.customParametersPath }}')) { $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(customParametersPath)' '$(parameterFilePath)' } else { $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' From d9c88b2c6741f3bc1cc1c6713d0fe97f6c3009e2 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 22:38:34 +0200 Subject: [PATCH 139/274] Fixed ref --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 9844a06df0..0225d66ef7 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -149,7 +149,7 @@ jobs: } if(-not [String]::IsNullOrEmpty('${{ parameters.customParametersPath }}')) { - $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(customParametersPath)' '$(parameterFilePath)' + $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.customParametersPath }}' '$(parameterFilePath)' } else { $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' } @@ -218,7 +218,7 @@ jobs: $moduleTemplateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' if(-not [String]::IsNullOrEmpty('${{ parameters.customParametersPath }}')) { - $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(customParametersPath)' '$(parameterFilePath)' + $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.customParametersPath }}' '$(parameterFilePath)' } else { $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' } @@ -313,7 +313,7 @@ jobs: $moduleTemplateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' if(-not [String]::IsNullOrEmpty('${{ parameters.customParametersPath }}')) { - $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(customParametersPath)' '$(parameterFilePath)' + $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.customParametersPath }}' '$(parameterFilePath)' } else { $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' } From 5e3fba3c259835400097a351a11d0fcb388dde4a Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 23:01:10 +0200 Subject: [PATCH 140/274] Rename --- .../jobs.validateModuleDeployment.yml | 18 +-- .../platform.dependencies.yml | 135 +++++++----------- 2 files changed, 60 insertions(+), 93 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 0225d66ef7..29f03af667 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -58,7 +58,7 @@ parameters: templateFilePath: '' customParameterFileTokens: '' modulePath: '$(modulePath)' - customParametersPath: '' + customParametersFolderPath: '' location: '$(location)' resourceGroupName: '$(resourceGroupName)' subscriptionId: '$(ARM_SUBSCRIPTION_ID)' @@ -74,9 +74,9 @@ parameters: ##---------------------------------------------## jobs: - template: /.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml - ${{ if ne(parameters.customParametersPath, '') }}: + ${{ if ne(parameters.customParametersFolderPath, '') }}: parameters: - modulePath: '${{ parameters.customParametersPath }}' + modulePath: '${{ parameters.customParametersFolderPath }}' - job: deploy displayName: 'Deploying ' # Auto-populated timeoutInMinutes: ${{ parameters.defaultJobTimeoutInMinutes }} @@ -148,8 +148,8 @@ jobs: return } - if(-not [String]::IsNullOrEmpty('${{ parameters.customParametersPath }}')) { - $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.customParametersPath }}' '$(parameterFilePath)' + if(-not [String]::IsNullOrEmpty('${{ parameters.customParametersFolderPath }}')) { + $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.customParametersFolderPath }}' '$(parameterFilePath)' } else { $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' } @@ -217,8 +217,8 @@ jobs: $moduleTemplateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' - if(-not [String]::IsNullOrEmpty('${{ parameters.customParametersPath }}')) { - $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.customParametersPath }}' '$(parameterFilePath)' + if(-not [String]::IsNullOrEmpty('${{ parameters.customParametersFolderPath }}')) { + $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.customParametersFolderPath }}' '$(parameterFilePath)' } else { $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' } @@ -312,8 +312,8 @@ jobs: $moduleTemplateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' - if(-not [String]::IsNullOrEmpty('${{ parameters.customParametersPath }}')) { - $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.customParametersPath }}' '$(parameterFilePath)' + if(-not [String]::IsNullOrEmpty('${{ parameters.customParametersFolderPath }}')) { + $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.customParametersFolderPath }}' '$(parameterFilePath)' } else { $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' } diff --git a/.azuredevops/platformPipelines/platform.dependencies.yml b/.azuredevops/platformPipelines/platform.dependencies.yml index 5acb562c18..4e7e852b17 100644 --- a/.azuredevops/platformPipelines/platform.dependencies.yml +++ b/.azuredevops/platformPipelines/platform.dependencies.yml @@ -47,67 +47,57 @@ stages: - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml parameters: templateFilePath: '$(modulePath)/deploy.bicep' - customParametersPath: $(dependencyPath)/$(resourceType) - # deploymentBlocks: - # - path: $(dependencyPath)/$(resourceType)/parameters/validation.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Validation Resource Group - # - path: $(dependencyPath)/$(resourceType)/parameters/locks.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Locks Resource Group - - # - stage: deploy_ppg - # displayName: Deploy proximity placement group - # dependsOn: - # - deploy_rg - # variables: - # resourceType: 'Microsoft.Compute/proximityPlacementGroups' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # deploymentBlocks: - # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Proximity Placement Group + customParametersFolderPath: $(dependencyPath)/$(resourceType) - # - stage: deploy_msi - # displayName: Deploy user assigned identity - # dependsOn: - # - deploy_rg - # variables: - # resourceType: 'Microsoft.ManagedIdentity/userAssignedIdentities' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # deploymentBlocks: - # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - # templateFilePath: $(templateFilePath) - # displayName: User Assigned Identity - # jobName: job_deploy_msi - # - job: job_set_msi_id - # displayName: Set msi principal ID output - # dependsOn: - # - job_deploy_msi - # pool: - # ${{ if eq(variables['vmImage'], '') }}: - # name: $(poolName) - # ${{ if eq(variables['poolName'], '') }}: - # vmImage: $(vmImage) - # variables: - # deploymentOutput: $[ dependencies.job_deploy_msi.outputs['DeployModule.deploymentOutput'] ] - # steps: - # - task: PowerShell@2 - # name: print_msi_prinId - # inputs: - # targetType: inline - # pwsh: true - # script: | - # # Write-Verbose $(deploymentOutput) -Verbose - # $msiPrincipalId = (ConvertFrom-Json '$(deploymentOutput)').principalId - # Write-Verbose "msiPrincipalId: $msiPrincipalId" -Verbose - # Write-Output ('##vso[task.setvariable variable={0};isOutput=true]{1}' -f 'msiPrincipalId', $msiPrincipalId) + - stage: deploy_ppg + displayName: Deploy proximity placement group + dependsOn: + - deploy_rg + variables: + resourceType: 'Microsoft.Compute/proximityPlacementGroups' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + modulePath: $(modulesPath)/$(resourceType) + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + parameters: + templateFilePath: $(templateFilePath) + customParametersFolderPath: $(dependencyPath)/$(resourceType) + + - stage: deploy_msi + displayName: Deploy user assigned identity + dependsOn: + - deploy_rg + variables: + resourceType: 'Microsoft.ManagedIdentity/userAssignedIdentities' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + parameters: + templateFilePath: $(templateFilePath) + customParametersFolderPath: $(dependencyPath)/$(resourceType) + jobName: job_deploy_msi + - job: job_set_msi_id + displayName: Set msi principal ID output + dependsOn: + - job_deploy_msi + pool: + ${{ if eq(variables['vmImage'], '') }}: + name: $(poolName) + ${{ if eq(variables['poolName'], '') }}: + vmImage: $(vmImage) + variables: + deploymentOutput: $[ dependencies.job_deploy_msi.outputs['DeployModule.deploymentOutput'] ] + steps: + - task: PowerShell@2 + name: print_msi_prinId + inputs: + targetType: inline + pwsh: true + script: | + # Write-Verbose $(deploymentOutput) -Verbose + $msiPrincipalId = (ConvertFrom-Json '$(deploymentOutput)').principalId + Write-Verbose "msiPrincipalId: $msiPrincipalId" -Verbose + Write-Output ('##vso[task.setvariable variable={0};isOutput=true]{1}' -f 'msiPrincipalId', $msiPrincipalId) # - stage: deploy_sf # displayName: Deploy server farm @@ -119,7 +109,6 @@ stages: # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: - # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json # templateFilePath: $(templateFilePath) # displayName: Server farm @@ -134,7 +123,6 @@ stages: # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: - # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json # templateFilePath: $(templateFilePath) # displayName: Function App @@ -149,7 +137,6 @@ stages: # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: - # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/mg.parameters.json # templateFilePath: $(templateFilePath) # displayName: Policy assignment (mg) @@ -167,7 +154,6 @@ stages: # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: - # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json # templateFilePath: $(templateFilePath) # displayName: EventHub @@ -182,7 +168,6 @@ stages: # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: - # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json # templateFilePath: $(templateFilePath) # displayName: Default LAW @@ -203,7 +188,6 @@ stages: # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: - # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json # templateFilePath: $(templateFilePath) # displayName: Default storage account @@ -299,7 +283,6 @@ stages: # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: - # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json # templateFilePath: $(templateFilePath) # displayName: Default SIG and SID @@ -315,6 +298,7 @@ stages: # resourceType: 'Microsoft.VirtualMachineImages\imageTemplates' # saResourceType: 'Microsoft.Storage\storageAccounts' # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + modulePath: $(modulesPath)/$(resourceType) # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: @@ -452,7 +436,6 @@ stages: # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: - # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json # templateFilePath: $(templateFilePath) # displayName: Default Action Group @@ -467,7 +450,6 @@ stages: # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: - # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json # templateFilePath: $(templateFilePath) # displayName: Default Application Security Groups @@ -482,7 +464,6 @@ stages: # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: - # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json # templateFilePath: $(templateFilePath) # displayName: Default User Defined Routes @@ -503,7 +484,6 @@ stages: # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: - # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json # templateFilePath: $(templateFilePath) # displayName: Default NSG @@ -536,7 +516,6 @@ stages: # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: - # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/apgw.parameters.json # templateFilePath: $(templateFilePath) # displayName: App Gateway Public IP @@ -571,7 +550,6 @@ stages: # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: - # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json # templateFilePath: $(templateFilePath) # displayName: Default Application Insights @@ -588,7 +566,6 @@ stages: # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: - # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json # templateFilePath: $(templateFilePath) # displayName: Default Automation Account @@ -605,7 +582,6 @@ stages: # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: - # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json # templateFilePath: $(templateFilePath) # displayName: Default AVD Host Pool @@ -624,7 +600,6 @@ stages: # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: - # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json # templateFilePath: $(templateFilePath) # displayName: Default recovery services vault @@ -644,7 +619,6 @@ stages: # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: - # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json # templateFilePath: $(templateFilePath) # displayName: Default Key Vault @@ -897,7 +871,6 @@ stages: # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: - # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json # templateFilePath: $(templateFilePath) # displayName: Default Application Group @@ -912,7 +885,6 @@ stages: # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: - # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json # templateFilePath: $(templateFilePath) # displayName: Default Application Group @@ -928,7 +900,6 @@ stages: # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: - # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json # templateFilePath: $(templateFilePath) # displayName: MSI Role Assignment @@ -946,7 +917,6 @@ stages: # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: - # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json # templateFilePath: $(templateFilePath) # displayName: Default Virtual Network @@ -1002,7 +972,6 @@ stages: # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: - # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/automation.parameters.json # templateFilePath: $(templateFilePath) # displayName: Automation Account Private DNS Zone @@ -1082,7 +1051,6 @@ stages: # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: - # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json # templateFilePath: $(templateFilePath) # displayName: Default Virtual Machine @@ -1097,7 +1065,6 @@ stages: # jobs: # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml # parameters: - # deploymentBlocks: # - path: $(dependencyPath)/$(resourceType)/parameters/internal.parameters.json # templateFilePath: $(templateFilePath) # displayName: Deploy module From 6dd6b6b30b8686809e998dbbe7c244ce2c6b1251 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 23:04:24 +0200 Subject: [PATCH 141/274] Added copied dependency pipeline template --- .../jobs.dependenciesModuleDeployment.yml | 371 +++ .../platform.dependencies.yml | 1996 +++++++++-------- 2 files changed, 1383 insertions(+), 984 deletions(-) create mode 100644 .azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml diff --git a/.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml new file mode 100644 index 0000000000..207b45e811 --- /dev/null +++ b/.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml @@ -0,0 +1,371 @@ +######################################################### +## DEPLOYMENT PIPELINE ## +######################################################### +## +## This pipeline template contains the logic to deploy a given module's ARM template using the provided parameter file(s) +## +## Enabled levels of deployment +## - Resource-Group-Level +## - Subscription-Level +## - Management-Group-Level +## - Tenant-Level +## +######################################################## +## +##---------------------------------------------## +## TEMPLATE PARAMETERS ## +##---------------------------------------------## +## +## By default it uses the variables specified in the below [parameters] section. However, you can overwrite these variables in the +## referencing pipeline by providing the parameter explicitly. +## +## NOTE: If you don't need to overwrite a shared value, you can IGNORE this section +## +## |=================================================================================================================================================================================================================================| +## | Parameter | Default Value | Description | Example | +## |---------------------------------|--------------------------------------|-----------------------------------------------------------------------------------------------------------|--------------------------------------------| +## | serviceConnection | '$(serviceConnection)' | The service connection that connects to Azure | 'demo-internal' | +## | removeDeployment | '$(removeDeployment)' | Set to [true] to flag resource for removal. If not provided, defaults to false. | 'true' | +## | poolName | '$(poolName)' | You can provide either a [poolname] or [vmImage] to run the job on | 'Custom Deployment Pool' | +## | vmImage | '$(vmImage)' | You can provide either a [poolname] or [vmImage] to run the job on | 'ubuntu20.04' | +## | defaultJobTimeoutInMinutes | 120 | The timeout for the job in this pipeline | 120 | +## | checkoutRepositories | '' | An optional list of repositories to check out at the beginning of this job in addition to the source | 'Components' | +## | modulePath | '$(modulePath)' | The path to the module to deploy. E.g. [c:/KeyVault] | 'c:/KeyVault' | +## | deploymentBlocks | | The parameter file(s) to deploy with. Must be provided | path: 'C:/parameters.json' | +## | location | '$(location)' | The location to deploy with | 'EastUs2' | +## | resourceGroupName | '$(resourceGroupName)' | The resourcegroup to deploy into. Required only for Resource-Group-Level deployments | 'validation-rg' | +## | subscriptionId | '$(ARM_SUBSCRIPTION_ID)' | The id of the subscription to deploy into when using a Management group service connection | 'aed7c000-6387-412e-bed0-24dfddf4bbc6' | +## | managementGroupId | '$(ARM_MGMTGROUP_ID)' | The id of the management group to deploy into. Required only for Management-Group-Level deployments | '6ycc9620-cb01-454f-9ebc-fc6b1df48d64' | +## | parametersRepository | '$(Build.Repository.Name)' | The respository with the parameter files. Defaults to the triggering repository | 'Solutions' | +## | modulesRepository | '$(modulesRepository)' | The respository with the modules. | 'Components' | +## | azurePowerShellVersion | '$(azurePowerShellVersion)' | Used for configuring the Azure PowerShellModules Version, one of the example values. | 'latestVersion' or 'OtherVersion' | +## | preferredAzurePowerShellVersion | '$(preferredAzurePowerShellVersion)' | Used for configuring the Azure PowerShellModules Version, either an empty string or the specific version. | '4.4.0' | +## |=================================================================================================================================================================================================================================| +## +##---------------------------------------------## + +parameters: + # Pipeline-related parameters + serviceConnection: '$(serviceConnection)' + poolName: '$(poolName)' + vmImage: '$(vmImage)' + defaultJobTimeoutInMinutes: 120 + checkoutRepositories: '' + dependsOn: [] + # Logic-related parameters + removeDeployment: false + modulePath: '$(modulePath)' + deploymentBlocks: '' + location: '$(location)' + resourceGroupName: '$(resourceGroupName)' + subscriptionId: '$(ARM_SUBSCRIPTION_ID)' + managementGroupId: '$(ARM_MGMTGROUP_ID)' + parametersRepository: '$(Build.Repository.Name)' + modulesRepository: '$(modulesRepository)' + # Azure PowerShell Version parameters + azurePowerShellVersion: '$(azurePowerShellVersion)' + preferredAzurePowerShellVersion: '$(preferredAzurePowerShellVersion)' + +##---------------------------------------------## +## TEMPLATE LOGIC ## +##---------------------------------------------## + +jobs: + - ${{ each deploymentBlock in parameters.deploymentBlocks }}: + - job: ${{ deploymentBlock.jobName }} + + ${{ if ne( deploymentBlock.displayName, '') }}: + displayName: ${{ deploymentBlock.displayName }} + ${{ if eq( deploymentBlock.displayName, '') }}: + displayName: Deploy with [${{ replace( deploymentBlock.path, '$(modulePath)', '') }}] + timeoutInMinutes: ${{ parameters.defaultJobTimeoutInMinutes }} + ${{ if ne( parameters.dependsOn, '') }}: + dependsOn: ${{ parameters.dependsOn }} + pool: + ${{ if ne(parameters.vmImage, '') }}: + vmImage: ${{ parameters.vmImage }} + ${{ if ne(parameters.poolName, '') }}: + name: ${{ parameters.poolName }} + + steps: + # [Checkout Repositories] task(s) + #-------------------------------- + - checkout: self + - ${{ if ne(parameters.checkoutRepositories, '') }}: + - ? ${{ each checkoutRepository in parameters.checkoutRepositories }} + : - checkout: ${{ checkoutRepository }} + fetchDepth: 1 # the depth of commits to ask Git to fetch; if not set defaults to no limit + path: 's/${{ checkoutRepository }}' + + # [Agent] Prepare environment + #---------------------------- + - task: PowerShell@2 + displayName: 'Setup agent' + inputs: + targetType: inline + pwsh: true + script: | + # Load used functions + . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Set-EnvironmentOnAgent.ps1') + + # Define PS modules to install on the runner + $Modules = @( + @{ Name = 'Az.Accounts' }, + @{ Name = 'Az.Resources' } + ) + + # Additional PS modules need to be installed for the removal step in case it is enabled + if ('${{ parameters.removeDeployment}}' -eq 'true') { + $Modules += @( + @{ Name = 'Az.CognitiveServices' }, + @{ Name = 'Az.Compute' }, + @{ Name = 'Az.KeyVault' }, + @{ Name = 'Az.Monitor' }, + @{ Name = 'Az.OperationalInsights' }, + @{ Name = 'Az.RecoveryServices' } + ) + } + + # Set agent up + Set-EnvironmentOnAgent -PSModules $Modules + + # [Multi Repo] Support task + #-------------------------- + - task: PowerShell@2 + displayName: Handle Multi-Repo Invocation + inputs: + targetType: inline + pwsh: true + script: | + # Handle multiple-repositories + if( "${{ join(';',parameters.checkoutRepositories) }}".length -gt 0) { + Write-Verbose "Multi-Repo Checkout" -Verbose + $moduleRepoRoot = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulesRepository)' + $parametersRepoRoot = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.parametersRepository }}' + } else { + Write-Verbose "No Multi-Repo Checkout" -Verbose + $moduleRepoRoot = '$(System.DefaultWorkingDirectory)' + $parametersRepoRoot = '$(System.DefaultWorkingDirectory)' + } + Write-Output "##vso[task.setvariable variable=ModuleRepoRoot]$moduleRepoRoot" + Write-Output "##vso[task.setvariable variable=parametersRepoRoot]$parametersRepoRoot" + + # [Agent] Replace tokens + #----------------------- + - task: AzurePowerShell@5 + displayName: 'Replace Tokens [${{ deploymentBlock.path }}] via connection [${{ parameters.serviceConnection }}]' + inputs: + azureSubscription: ${{ parameters.serviceConnection }} + azurePowerShellVersion: ${{ parameters.azurePowerShellVersion }} + preferredAzurePowerShellVersion: ${{ parameters.preferredAzurePowerShellVersion }} + ScriptType: InlineScript + pwsh: true + inline: | + # Load used functions + . (Join-Path '$(moduleRepoRoot)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') + + # Load Settings File + $Settings = Get-Content -Path (Join-Path '$(moduleRepoRoot)' 'settings.json') | ConvertFrom-Json -AsHashTable + + # Construct Token Function Input + $ConvertTokensInputs = @{ + Tokens = @{} + FilePath = Join-Path '$(parametersRepoRoot)' '${{ deploymentBlock.path }}' + TokenPrefix = $Settings.parameterFileTokens.tokenPrefix + TokenSuffix = $Settings.parameterFileTokens.tokenSuffix + } + + # Add defaults + $ConvertTokensInputs.Tokens += @{ + resourceGroupName = '${{ parameters.resourceGroupName }}' + subscriptionId = '${{ parameters.subscriptionId }}' + managementGroupId = '${{ parameters.managementGroupId }}' + tenantId = '$(ARM_TENANT_ID)' + deploymentSpId = '$(DEPLOYMENT_SP_ID)' + } + + # Add local tokens + if ($Settings.parameterFileTokens.localTokens) { + $tokenMap = @{} + foreach ($token in $Settings.parameterFileTokens.localTokens) { + $tokenMap += @{ $token.name = $token.value } + } + Write-Verbose ('Using local tokens [{0}]' -f ($tokenMap.Keys -join ', ')) -Verbose + $ConvertTokensInputs.Tokens += $tokenMap + } + + # Add custom tokens (passed in via the pipeline) + if(-not [String]::IsNullOrEmpty('${{ deploymentBlock.customParameterFileTokens }}')) { + $customTokens = '${{ deploymentBlock.customParameterFileTokens }}' | ConvertFrom-Json -AsHashTable + Write-Verbose ('Using custom parameter file tokens [{0}]' -f ($customTokens.Keys -join ', ')) -Verbose + $ConvertTokensInputs.Tokens += $customTokens + } + + # Invoke Token Replacement Functionality + $null = Convert-TokensInFile @ConvertTokensInputs + + # [Validation] task(s) + #--------------------- + - task: AzurePowerShell@5 + displayName: 'Validate [${{ deploymentBlock.path }}] via connection [${{ parameters.serviceConnection }}]' + inputs: + azureSubscription: ${{ parameters.serviceConnection }} + azurePowerShellVersion: ${{ parameters.azurePowerShellVersion }} + preferredAzurePowerShellVersion: ${{ parameters.preferredAzurePowerShellVersion }} + ScriptType: InlineScript + pwsh: true + inline: | + # Load used functions + . (Join-Path '$(moduleRepoRoot)' '$(pipelineFunctionsPath)' 'resourceDeployment' 'Test-TemplateDeployment.ps1') + + if(-not [String]::IsNullOrEmpty('${{ deploymentBlock.templateFilePath }}')) { + $templateFilePath = Join-Path '$(moduleRepoRoot)' '${{ deploymentBlock.templateFilePath }}' + } else { + # Use default path + $templateFilePath = (Test-Path (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.bicep')) ? + (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.bicep') : + (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.json') + } + + # ----------- # + # INVOKE TEST # + # ----------- # + $functionInput = @{ + templateFilePath = $templateFilePath + location = '${{ parameters.location }}' + resourceGroupName = '${{ parameters.resourceGroupName }}' + subscriptionId = '${{ parameters.subscriptionId }}' + managementGroupId = '${{ parameters.managementGroupId }}' + additionalParameters = @{} + } + + if(-not [String]::IsNullOrEmpty('${{ deploymentBlock.path }}')) { + $functionInput['parameterFilePath'] = Join-Path '$(ParametersRepoRoot)' '${{ deploymentBlock.path }}' + } + + $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json + if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { + $functionInput['additionalParameters'] += @{ + enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry + } + } + + Write-Verbose "Invoke task with" -Verbose + Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose + + Test-TemplateDeployment @functionInput -Verbose + + # [Deployment] task(s) + #--------------------- + - task: AzurePowerShell@5 + displayName: 'Deploy [${{ deploymentBlock.path }}] via connection [${{ parameters.serviceConnection }}]' + name: 'DeployModule' + inputs: + azureSubscription: ${{ parameters.serviceConnection }} + azurePowerShellVersion: ${{ parameters.azurePowerShellVersion }} + preferredAzurePowerShellVersion: ${{ parameters.preferredAzurePowerShellVersion }} + pwsh: true + ScriptType: InlineScript + inline: | + # Load used functions + . (Join-Path '$(moduleRepoRoot)' '$(pipelineFunctionsPath)' 'resourceDeployment' 'New-TemplateDeployment.ps1') + + if(-not [String]::IsNullOrEmpty('${{ deploymentBlock.templateFilePath }}')) { + $templateFilePath = Join-Path '$(moduleRepoRoot)' '${{ deploymentBlock.templateFilePath }}' + } else { + # Use default path + $templateFilePath = (Test-Path (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.bicep')) ? + (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.bicep') : + (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.json') + } + + # ----------------- # + # INVOKE DEPLOYMENT # + # ----------------- # + $functionInput = @{ + templateFilePath = $templateFilePath + location = '${{ parameters.location }}' + resourceGroupName = '${{ parameters.resourceGroupName }}' + subscriptionId = '${{ parameters.subscriptionId }}' + managementGroupId = '${{ parameters.managementGroupId }}' + doNotThrow = $true + additionalParameters = @{} + } + + if(-not [String]::IsNullOrEmpty('${{ deploymentBlock.path }}')) { + $functionInput['parameterFilePath'] = Join-Path '$(ParametersRepoRoot)' '${{ deploymentBlock.path }}' + } + + $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json + if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { + $functionInput['additionalParameters'] += @{ + enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry + } + } + + Write-Verbose "Invoke task with" -Verbose + Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose + + # Invoke deployment + $res = New-TemplateDeployment @functionInput -Verbose + + # Get deployment name + Write-Host ('##vso[task.setvariable variable=deploymentName]{0}' -f $res.deploymentName) + + # Populate further outputs + $deploymentOutputHash=@{} + + foreach ($outputKey in $res.deploymentOutput.Keys) { + Write-Output ('##vso[task.setvariable variable={0}]{1}' -f $outputKey, $res.deploymentOutput[$outputKey].Value) + $deploymentOutputHash.add($outputKey,$res.deploymentOutput[$outputKey].Value) + } + + $deploymentOutput = $deploymentOutputHash | ConvertTo-Json -Compress -Depth 100 + Write-Verbose "Deployment output: $deploymentOutput" -Verbose + Write-Output ('##vso[task.setvariable variable={0};isOutput=true]{1}' -f 'deploymentOutput', $deploymentOutput) + + if ($res.ContainsKey('exception')) { + # Happens only if there is an exception + throw $res.exception + } + + # [Removal] task(s) + #------------------ + - task: AzurePowerShell@5 + displayName: 'Remove deployed resources via [${{ parameters.serviceConnection }}]' + condition: and(succeededOrFailed(), eq( '${{ parameters.removeDeployment }}', 'true'), not(eq(variables['deploymentName'],''))) + inputs: + azureSubscription: ${{ parameters.serviceConnection }} + azurePowerShellVersion: ${{ parameters.azurePowerShellVersion }} + preferredAzurePowerShellVersion: ${{ parameters.preferredAzurePowerShellVersion }} + ScriptType: InlineScript + failOnStandardError: false + pwsh: true + inline: | + # Load used function + . (Join-Path '$(moduleRepoRoot)' '$(pipelineFunctionsPath)' 'resourceRemoval' 'Initialize-DeploymentRemoval.ps1') + + if(-not [String]::IsNullOrEmpty('${{ deploymentBlock.templateFilePath }}')) { + $templateFilePath = Join-Path '$(moduleRepoRoot)' '${{ deploymentBlock.templateFilePath }}' + } else { + # Use default path + $templateFilePath = (Test-Path (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.bicep')) ? + (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.bicep') : + (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.json') + } + + if (-not [String]::IsNullOrEmpty('$(deploymentName)')) { + $functionInput = @{ + DeploymentName = '$(deploymentName)' + TemplateFilePath = $templateFilePath + ResourceGroupName = '${{ parameters.resourceGroupName }}' + subscriptionId = '${{ parameters.subscriptionId }}' + ManagementGroupId = '${{ parameters.managementGroupId }}' + Verbose = $true + } + + Write-Verbose 'Invoke task with' -Verbose + Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose + + Initialize-DeploymentRemoval @functionInput + } diff --git a/.azuredevops/platformPipelines/platform.dependencies.yml b/.azuredevops/platformPipelines/platform.dependencies.yml index 4e7e852b17..ac6c5b8ab8 100644 --- a/.azuredevops/platformPipelines/platform.dependencies.yml +++ b/.azuredevops/platformPipelines/platform.dependencies.yml @@ -20,7 +20,7 @@ trigger: none # - main # paths: # include: -# - '.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml' +# - '.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml' # - '.azuredevops/platformPipelines/platform.dependencies.yml' # - 'utilities/pipelines/dependencies/**' @@ -33,8 +33,6 @@ variables: value: 'modules' - name: defaultResourceGroupName value: 'validation-rg' - - name: testFilesFolderName - value: 'parameters' stages: - stage: deploy_rg @@ -42,12 +40,16 @@ stages: variables: resourceType: 'Microsoft.Resources/resourceGroups' templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - modulePath: $(modulesPath)/$(resourceType) jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml parameters: - templateFilePath: '$(modulePath)/deploy.bicep' - customParametersFolderPath: $(dependencyPath)/$(resourceType) + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/validation.parameters.json + templateFilePath: $(templateFilePath) + displayName: Validation Resource Group + - path: $(dependencyPath)/$(resourceType)/parameters/locks.parameters.json + templateFilePath: $(templateFilePath) + displayName: Locks Resource Group - stage: deploy_ppg displayName: Deploy proximity placement group @@ -56,12 +58,13 @@ stages: variables: resourceType: 'Microsoft.Compute/proximityPlacementGroups' templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - modulePath: $(modulesPath)/$(resourceType) jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml parameters: - templateFilePath: $(templateFilePath) - customParametersFolderPath: $(dependencyPath)/$(resourceType) + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + templateFilePath: $(templateFilePath) + displayName: Proximity Placement Group - stage: deploy_msi displayName: Deploy user assigned identity @@ -71,11 +74,13 @@ stages: resourceType: 'Microsoft.ManagedIdentity/userAssignedIdentities' templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml parameters: - templateFilePath: $(templateFilePath) - customParametersFolderPath: $(dependencyPath)/$(resourceType) - jobName: job_deploy_msi + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + templateFilePath: $(templateFilePath) + displayName: User Assigned Identity + jobName: job_deploy_msi - job: job_set_msi_id displayName: Set msi principal ID output dependsOn: @@ -99,972 +104,995 @@ stages: Write-Verbose "msiPrincipalId: $msiPrincipalId" -Verbose Write-Output ('##vso[task.setvariable variable={0};isOutput=true]{1}' -f 'msiPrincipalId', $msiPrincipalId) - # - stage: deploy_sf - # displayName: Deploy server farm - # dependsOn: - # - deploy_rg - # variables: - # resourceType: 'Microsoft.Web/serverfarms' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Server farm - - # - stage: deploy_app - # displayName: Deploy app - # dependsOn: - # - deploy_sf - # variables: - # resourceType: 'Microsoft.Web/sites' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Function App - - # - stage: deploy_pa - # displayName: Deploy policy assignment - # dependsOn: - # - deploy_rg - # variables: - # resourceType: 'Microsoft.Authorization/policyAssignments' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # - path: $(dependencyPath)/$(resourceType)/parameters/mg.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Policy assignment (mg) - # - path: $(dependencyPath)/$(resourceType)/parameters/sub.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Policy assignment (sub) - - # - stage: deploy_evh - # displayName: Deploy event hub - # dependsOn: - # - deploy_rg - # variables: - # resourceType: 'Microsoft.EventHub/namespaces' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - # templateFilePath: $(templateFilePath) - # displayName: EventHub - - # - stage: deploy_law - # displayName: Deploy log analytics workspace - # dependsOn: - # - deploy_rg - # variables: - # resourceType: 'Microsoft.OperationalInsights/workspaces' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Default LAW - # - path: $(dependencyPath)/$(resourceType)/parameters/aut.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Automation account LAW - # - path: $(dependencyPath)/$(resourceType)/parameters/appi.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: AppInsights LAW - - # - stage: deploy_sa - # displayName: Deploy storage account - # dependsOn: - # - deploy_rg - # variables: - # resourceType: 'Microsoft.Storage/storageAccounts' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Default storage account - # jobName: default_sa - # - path: $(dependencyPath)/$(resourceType)/parameters/law.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: LAW storage account - # - path: $(dependencyPath)/$(resourceType)/parameters/fa.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: FunctionApp storage account - # - job: - # displayName: Upload files to storage account - # dependsOn: - # - default_sa - # pool: - # ${{ if eq(variables['vmImage'], '') }}: - # name: $(poolName) - # ${{ if eq(variables['poolName'], '') }}: - # vmImage: $(vmImage) - # steps: - # - task: PowerShell@2 - # displayName: 'Setup agent' - # inputs: - # targetType: inline - # pwsh: true - # script: | - # # Load used functions - # . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Set-EnvironmentOnAgent.ps1') - - # # Define PS modules to install on the runner - # $Modules = @( - # @{ Name = 'Az.Storage' } - # ) - - # # Set agent up - # Set-EnvironmentOnAgent -PSModules $Modules - # - task: AzurePowerShell@5 - # displayName: Upload files to storage account - # inputs: - # azureSubscription: $(serviceConnection) - # ScriptType: 'InlineScript' - # Inline: | - # $parameterFilePath = Join-Path '$(Build.SourcesDirectory)' '$(dependencyPath)' '$(resourceType)' 'parameters' 'parameters.json' - # # Load used functions - # . (Join-Path '$(Build.SourcesDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Export-ContentToBlob.ps1') - # . (Join-Path '$(Build.SourcesDirectory)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') - - # # Replace tokens in parameter file - # $Settings = Get-Content -Path (Join-Path '$(Build.SourcesDirectory)' 'settings.json') | ConvertFrom-Json -AsHashTable - # $ConvertTokensInputs = @{ - # FilePath = $parameterFilePath - # TokenPrefix = $Settings.parameterFileTokens.tokenPrefix - # TokenSuffix = $Settings.parameterFileTokens.tokenSuffix - # } - - # # Add local tokens - # if ($Settings.parameterFileTokens.localTokens) { - # $tokenMap = @{} - # foreach ($token in $Settings.parameterFileTokens.localTokens) { - # $tokenMap += @{ $token.name = $token.value } - # } - # Write-Verbose ('Using local tokens [{0}]' -f ($tokenMap.Keys -join ', ')) -Verbose - # $ConvertTokensInputs.Tokens = $tokenMap - # } - - # $null = Convert-TokensInFile @ConvertTokensInputs - - # # Get storage account name - # $storageAccountParameters = (ConvertFrom-Json (Get-Content -path $parameterFilePath -Raw)).parameters - - # # Upload files to storage account - # $functionInput = @{ - # ResourceGroupName = '$(defaultResourceGroupName)' - # StorageAccountName = $storageAccountParameters.name.value - # contentDirectories = Join-Path '$(Build.SourcesDirectory)' $(dependencyPath) '$(resourceType)' 'uploads' - # targetContainer = $storageAccountParameters.blobServices.value.containers[0].name - # } - - # Write-Verbose "Invoke task with" -Verbose - # Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose - - # Export-ContentToBlob @functionInput -Verbose - # azurePowerShellVersion: 'LatestVersion' - # pwsh: true - - # - stage: deploy_sig - # displayName: Deploy shared image gallery and definition - # dependsOn: - # - deploy_rg - # variables: - # resourceType: 'Microsoft.Compute/galleries' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Default SIG and SID - - # - ${{ if eq( parameters.deployVhdDependencies, true) }}: - # - stage: deploy_imgt - # displayName: Deploy image template - # dependsOn: - # - deploy_rolea - # - deploy_sig - # - deploy_sa - # variables: - # resourceType: 'Microsoft.VirtualMachineImages\imageTemplates' - # saResourceType: 'Microsoft.Storage\storageAccounts' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - modulePath: $(modulesPath)/$(resourceType) - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # deploymentBlocks: - # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Image template - # jobName: job_deploy_imgt - # - job: - # displayName: Trigger vhd build and store it to a storage account blob container - # dependsOn: - # - job_deploy_imgt - # pool: - # ${{ if eq(variables['vmImage'], '') }}: - # name: $(poolName) - # ${{ if eq(variables['poolName'], '') }}: - # vmImage: $(vmImage) - # variables: - # deploymentOutput: $[ dependencies.job_deploy_imgt.outputs['DeployModule.deploymentOutput'] ] - # steps: - # - task: PowerShell@2 - # displayName: 'Setup agent' - # inputs: - # targetType: inline - # pwsh: true - # script: | - # # Load used functions - # . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Set-EnvironmentOnAgent.ps1') - - # # Define PS modules to install on the runner - # $Modules = @( - # @{ Name = 'Az.ImageBuilder' }, - # @{ Name = 'Az.Storage' } - # ) - - # # Set agent up - # Set-EnvironmentOnAgent -PSModules $Modules - # - task: AzurePowerShell@5 - # displayName: Trigger building new image - # inputs: - # azureSubscription: $(serviceConnection) - # ScriptType: 'InlineScript' - # Inline: | - # # Retrieving parameters from previous job outputs - # Write-Verbose "Retrieving parameters from previous job outputs" -Verbose - # $imageTemplateName = (ConvertFrom-Json '$(deploymentOutput)').name - # $imageTemplateResourceGroup = (ConvertFrom-Json '$(deploymentOutput)').resourceGroupName - - # # Trigger new image creation - # Write-Verbose "Trigger new image creation with imageTemplateName $imageTemplateName and imageTemplateResourceGroup $imageTemplateResourceGroup" -Verbose - # Start-AzImageBuilderTemplate -ImageTemplateName $imageTemplateName -ResourceGroupName $imageTemplateResourceGroup - # azurePowerShellVersion: 'LatestVersion' - # pwsh: true - # - task: AzurePowerShell@5 - # displayName: Copy baked vhd to a storage account - # inputs: - # azureSubscription: $(serviceConnection) - # ScriptType: 'InlineScript' - # Inline: | - - # # Load used functions - # . (Join-Path '$(Build.SourcesDirectory)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') - - # # Prepare replace tokens in parameter file - # $Settings = Get-Content -Path (Join-Path '$(Build.SourcesDirectory)' 'settings.json') | ConvertFrom-Json -AsHashTable - # $ConvertTokensInputs = @{ - # TokenPrefix = $Settings.parameterFileTokens.tokenPrefix - # TokenSuffix = $Settings.parameterFileTokens.tokenSuffix - # } - # if ($Settings.parameterFileTokens.localTokens) { - # $tokenMap = @{} - # foreach ($token in $Settings.parameterFileTokens.localTokens) { - # $tokenMap += @{ $token.name = $token.value } - # } - # Write-Verbose ('Using local tokens [{0}]' -f ($tokenMap.Keys -join ', ')) -Verbose - # $ConvertTokensInputs.Tokens = $tokenMap - # } - - # # Retrieving parameters from previous job outputs and parameter files - # Write-Verbose "Retrieving parameters from previous job outputs" -Verbose - # $imageTemplateName = (ConvertFrom-Json '$(deploymentOutput)').name - # $imageTemplateResourceGroup = (ConvertFrom-Json '$(deploymentOutput)').resourceGroupName - - # Write-Verbose "Retrieving parameters from storage account parameter files" -Verbose - # $parameterFilePath = Join-Path '$(Build.SourcesDirectory)' '$(dependencyPath)' '$(saResourceType)' 'parameters' 'parameters.json' - # $null = Convert-TokensInFile @ConvertTokensInputs -FilePath $parameterFilePath -Verbose - # $storageAccountParameters = (ConvertFrom-Json (Get-Content -path $parameterFilePath -Raw)).parameters - - # Write-Verbose "Retrieving parameters from image template parameter files" -Verbose - # $parameterFilePath = Join-Path '$(Build.SourcesDirectory)' '$(dependencyPath)' '$(resourceType)' 'parameters' 'parameters.json' - # $null = Convert-TokensInFile @ConvertTokensInputs -FilePath $parameterFilePath -Verbose - # $imageTemplateParameters = (ConvertFrom-Json (Get-Content -path $parameterFilePath -Raw)).parameters - - # # Initializing parameters before the blob copy - # Write-Verbose "Initializing source storage account parameters before the blob copy" -Verbose - # $imgtRunOutput = Get-AzImageBuilderRunOutput -ImageTemplateName $imageTemplateName -ResourceGroupName $imageTemplateResourceGroup | Where-Object ArtifactUri -NE $null - # $sourceUri = $imgtRunOutput.ArtifactUri - # $sourceStorageAccountName = $sourceUri.Split('//')[1].Split('.')[0] - # $sourceStorageAccount = Get-AzStorageAccount | Where-Object StorageAccountName -EQ $sourceStorageAccountName - # $sourceStorageAccountContext = $sourceStorageAccount.Context - # $sourceStorageAccountRGName = $sourceStorageAccount.ResourceGroupName - # Write-Verbose "Retrieving artifact uri $sourceUri stored in resource group $sourceStorageAccountRGName" -Verbose - - # Write-Verbose "Initializing destination storage account parameters before the blob copy" -Verbose - # $destinationStorageAccountName = $storageAccountParameters.name.value - # $destinationStorageAccount = Get-AzStorageAccount | Where-Object StorageAccountName -EQ $destinationStorageAccountName - # $destinationStorageAccountContext = $destinationStorageAccount.Context - # $destinationContainerName = 'vhds' - # $destinationBlobName = $imageTemplateParameters.name.value - # $destinationBlobName = "$destinationBlobName.vhd" - # Write-Verbose "Planning for destination blob name $destinationBlobName in container $destinationContainerName and storage account $destinationStorageAccountName" -Verbose - - # # Copying the vhd to a destination blob container - # Write-Verbose "Copying the vhd to a destination blob container" -Verbose - # $resourceActionInputObject = @{ - # AbsoluteUri = $sourceUri - # Context = $sourceStorageAccountContext - # DestContext = $destinationStorageAccountContext - # DestBlob = $destinationBlobName - # DestContainer = $destinationContainerName - # Force = $true - # } - # Start-AzStorageBlobCopy @resourceActionInputObject - # azPSVersion: 'latest' - # azurePowerShellVersion: 'LatestVersion' - # pwsh: true - - # - stage: deploy_ag - # displayName: Deploy action groups - # dependsOn: - # - deploy_rg - # variables: - # resourceType: 'Microsoft.Insights/actionGroups' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Default Action Group - - # - stage: deploy_asg - # displayName: Deploy application security groups - # dependsOn: - # - deploy_rg - # variables: - # resourceType: 'Microsoft.Network/applicationSecurityGroups' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Default Application Security Groups - - # - stage: deploy_udr - # displayName: Deploy route tables - # dependsOn: - # - deploy_rg - # variables: - # resourceType: 'Microsoft.Network/routeTables' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Default User Defined Routes - # - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: - # - path: $(dependencyPath)/$(resourceType)/parameters/sqlMi.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: SQLMI User Defined Routes - - # - stage: deploy_nsg - # displayName: Deploy network security groups - # dependsOn: - # - deploy_sa - # - deploy_evh - # - deploy_law - # variables: - # resourceType: 'Microsoft.Network/networkSecurityGroups' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Default NSG - # - path: $(dependencyPath)/$(resourceType)/parameters/apgw.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: App Gateway NSG - # - path: $(dependencyPath)/$(resourceType)/parameters/ase.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: ASE NSG - # - path: $(dependencyPath)/$(resourceType)/parameters/bastion.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Bastion NSG - # - path: $(dependencyPath)/$(resourceType)/parameters/aadds.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: AADDS NSG - # - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: - # - path: $(dependencyPath)/$(resourceType)/parameters/sqlmi.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: SQLMI NSG - - # - stage: deploy_pip - # displayName: Deploy public IP addresses - # dependsOn: - # - deploy_sa - # - deploy_evh - # - deploy_law - # variables: - # resourceType: 'Microsoft.Network\publicIPAddresses' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # - path: $(dependencyPath)/$(resourceType)/parameters/apgw.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: App Gateway Public IP - # - path: $(dependencyPath)/$(resourceType)/parameters/bas.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Bastion Public IP - # - path: $(dependencyPath)/$(resourceType)/parameters/lb.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Load balancer Public IP - # - path: $(dependencyPath)/$(resourceType)/parameters/lb.min.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Min Load balancer Public IP - # - path: $(dependencyPath)/$(resourceType)/parameters/fw.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Firewall Public IP - # - path: $(dependencyPath)/$(resourceType)/parameters/fw.additional.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Firewall Additional Public IP - # - path: $(dependencyPath)/$(resourceType)/parameters/bas.additional.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Bastion Additional Public IP - - # - stage: deploy_appi - # displayName: Deploy application insight - # dependsOn: - # - deploy_sa - # - deploy_evh - # - deploy_law - # variables: - # resourceType: 'Microsoft.Insights/components' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Default Application Insights - - # - stage: deploy_aut - # displayName: Deploy automation account - # dependsOn: - # - deploy_sa - # - deploy_evh - # - deploy_law - # variables: - # resourceType: 'Microsoft.Automation/automationAccounts' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Default Automation Account - - # - stage: deploy_avdhp - # displayName: Deploy AVD host pool - # dependsOn: - # - deploy_sa - # - deploy_evh - # - deploy_law - # variables: - # resourceType: 'Microsoft.DesktopVirtualization/hostpools' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Default AVD Host Pool - - # - stage: deploy_rsv - # displayName: Deploy recovery services vault - # dependsOn: - # - deploy_sa - # - deploy_evh - # - deploy_law - # - deploy_msi - # variables: - # resourceType: 'Microsoft.RecoveryServices/vaults' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # msiPrincipalId: $[ stageDependencies.deploy_msi.job_set_msi_id.outputs['print_msi_prinId.msiPrincipalId'] ] - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Default recovery services vault - # customParameterFileTokens: '{"msiPrincipalId":"$(msiPrincipalId)"}' - - # - stage: deploy_kv - # displayName: Deploy key vaults - # dependsOn: - # - deploy_sa - # - deploy_evh - # - deploy_law - # - deploy_msi - # variables: - # resourceType: 'Microsoft.KeyVault/vaults' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # msiPrincipalId: $[ stageDependencies.deploy_msi.job_set_msi_id.outputs['print_msi_prinId.msiPrincipalId'] ] - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Default Key Vault - # jobName: default_kv - # customParameterFileTokens: '{"msiPrincipalId":"$(msiPrincipalId)"}' - # - path: $(dependencyPath)/$(resourceType)/parameters/nopr.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Purge proteced key vault - # jobName: default_kv_nopr - # customParameterFileTokens: '{"msiPrincipalId":"$(msiPrincipalId)"}' - # - path: $(dependencyPath)/$(resourceType)/parameters/pe.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Private Endpoint Key Vault - # customParameterFileTokens: '{"msiPrincipalId":"$(msiPrincipalId)"}' - # - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: - # - path: $(dependencyPath)/$(resourceType)/parameters/sqlmi.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: SQLMI key vault - # jobName: sqlmi_kv - # customParameterFileTokens: '{"msiPrincipalId":"$(msiPrincipalId)"}' - # - job: - # displayName: Set key vault secrets keys and certificates - # dependsOn: - # - default_kv - # - default_kv_nopr - # pool: - # # Must run on windows as the used `New-SelfSignedCertificate` function is not available on linux - # vmImage: windows-2022 - # steps: - # - task: PowerShell@2 - # displayName: 'Setup agent' - # inputs: - # targetType: inline - # pwsh: true - # script: | - # # Load used functions - # . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Set-EnvironmentOnAgent.ps1') - - # # Define PS modules to install on the runner - # $Modules = @( - # @{ Name = 'Az.KeyVault' } - # ) - - # # Set agent up - # Set-EnvironmentOnAgent -PSModules $Modules - # - task: AzurePowerShell@5 - # displayName: Set key vault secrets keys and certificates - # inputs: - # azureSubscription: $(serviceConnection) - # ScriptType: 'InlineScript' - # Inline: | - # $parameterFilePath = Join-Path '$(Build.SourcesDirectory)' '$(dependencyPath)' '$(resourceType)' 'parameters' 'parameters.json' - # $noprParameterFilePath = Join-Path '$(Build.SourcesDirectory)' '$(dependencyPath)' '$(resourceType)' 'parameters' 'nopr.parameters.json' - - # # Load used functions - # . (Join-Path '$(Build.SourcesDirectory)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') - - # # Replace tokens in parameter file - # $Settings = Get-Content -Path (Join-Path '$(Build.SourcesDirectory)' 'settings.json') | ConvertFrom-Json -AsHashTable - # $ConvertTokensInputs = @{ - # FilePath = $parameterFilePath - # TokenPrefix = $Settings.parameterFileTokens.tokenPrefix - # TokenSuffix = $Settings.parameterFileTokens.tokenSuffix - # } - # $NoprConvertTokensInputs = @{ - # FilePath = $noprParameterFilePath - # TokenPrefix = $Settings.parameterFileTokens.tokenPrefix - # TokenSuffix = $Settings.parameterFileTokens.tokenSuffix - # } - # if ($Settings.parameterFileTokens.localTokens) { - # $tokenMap = @{} - # foreach ($token in $Settings.parameterFileTokens.localTokens) { - # $tokenMap += @{ $token.name = $token.value } - # } - # Write-Verbose ('Using local tokens [{0}]' -f ($tokenMap.Keys -join ', ')) -Verbose - # $ConvertTokensInputs.Tokens = $tokenMap - # $NoprConvertTokensInputs.Tokens = $tokenMap - # } - # $null = Convert-TokensInFile @ConvertTokensInputs - # $null = Convert-TokensInFile @NoprConvertTokensInputs - - # # Get key vault name - # $keyVaultParameters = (ConvertFrom-Json (Get-Content -Path $parameterFilePath -Raw)).parameters - # $keyVaultName = $keyVaultParameters.name.value - # # No Purge Key Vault - # $noprKeyVaultParameters = (ConvertFrom-Json (Get-Content -Path $noprParameterFilePath -Raw)).parameters - # $noprKeyVaultName = $noprKeyVaultParameters.name.value - - # # Generate values - # $usernameString = ( -join ((65..90) + (97..122) | Get-Random -Count 9 -SetSeed 1 | ForEach-Object { [char]$_ + "$_" })).substring(0, 19) # max length - # $userName = ConvertTo-SecureString -String $usernameString -AsPlainText -Force - # $passwordString = (New-Guid).Guid.SubString(0, 19) - # $password = ConvertTo-SecureString -String $passwordString -AsPlainText -Force - # $vpnSharedKeyString = (New-Guid).Guid.SubString(0, 32) - # $vpnSharedKey = ConvertTo-SecureString -String $vpnSharedKeyString -AsPlainText -Force - - # $namePrefixToken = $Settings.parameterFileTokens.localTokens | Where-Object { $_.name -eq 'namePrefix' } - # $certInputObject = @{ - # Subject = 'CN=*.{0}.onmicrosoft.com' -f $namePrefixToken.value - # DnsName = '*.{0}.onmicrosoft.com' -f $namePrefixToken.value - # CertStoreLocation = 'cert:\LocalMachine\My' - # KeyExportPolicy = 'Exportable' - # Provider = 'Microsoft Enhanced RSA and AES Cryptographic Provider' - # NotAfter = (Get-Date).AddMonths(3) - # HashAlgorithm = 'SHA256' - # } - # $rawCert = New-SelfSignedCertificate @certInputObject - # Export-PfxCertificate -Cert ('Cert:\localmachine\my\' + $rawCert.Thumbprint) -FilePath "$home/aadds.pfx" -Password $password -Force - # $rawCertByteStream = Get-Content "$home/aadds.pfx" -AsByteStream - # $pfxCertificate = ConvertTo-SecureString -String ([System.Convert]::ToBase64String($rawCertByteStream)) -AsPlainText -Force - - # # Set secrets - # # ------- - # @( - # @{ name = 'adminUsername'; secretValue = $username } # VirtualMachines and VMSS - # @{ name = 'adminPassword'; secretValue = $password } # VirtualMachines and VMSS - # @{ name = 'administratorLogin'; secretValue = $username } # Azure SQLServer - # @{ name = 'administratorLoginPassword'; secretValue = $password } # Azure SQLServer - # @{ name = 'vpnSharedKey'; secretValue = $vpnSharedKey } # VirtualNetworkGateway - # @{ name = 'apimClientId'; secretValue = $username } # API management - # @{ name = 'apimClientSecret'; secretValue = $password } # API management - # @{ name = 'pfxCertificatePassword'; secretValue = $password } # AADDS - # @{ name = 'pfxBase64Certificate'; secretValue = $pfxCertificate } # AADDS - # ) | ForEach-Object { - # $null = Set-AzKeyVaultSecret -VaultName $keyVaultName -Name $_.name -SecretValue $_.secretValue - # Write-Verbose ('Added secret [{0}] to key vault [{1}]' -f $_.name, $keyVaultName) -Verbose - # } - - # # Certificats - # # ----------- - # $certPolicy = New-AzKeyVaultCertificatePolicy -SecretContentType 'application/x-pkcs12' -SubjectName 'CN=fabrikam.com' -IssuerName 'Self' -ValidityInMonths 12 -ReuseKeyOnRenewal - # @( - # @{ name = 'applicationGatewaySslCertificate'; CertificatePolicy = $certPolicy } # ApplicationGateway - # ) | ForEach-Object { - # $null = Add-AzKeyVaultCertificate -VaultName $keyVaultName -Name $_.name -CertificatePolicy $_.CertificatePolicy - # Write-Verbose ('Added certificate [{0}] to key vault [{1}]' -f $_.name, $keyVaultName) -Verbose - # } - - # # Set keys - # # ---- - # @( - # @{ name = 'keyEncryptionKey'; Destination = 'Software' } # DiskEncryptionSet, VirtualMachines and VMSS - # ) | ForEach-Object { - # $null = Add-AzKeyVaultKey -VaultName $keyVaultName -Name $_.name -Destination $_.Destination - # Write-Verbose ('Added key [{0}] to key vault [{1}]' -f $_.name, $keyVaultName) -Verbose - # } - # # noprKeyVault Keys - # @( - # @{ name = 'keyEncryptionKey'; Destination = 'Software' } # Automation Account - # ) | ForEach-Object { - # $null = Add-AzKeyVaultKey -VaultName $noprKeyVaultName -Name $_.name -Destination $_.Destination - # Write-Verbose ('Added key [{0}] to key vault [{1}]' -f $_.name, $noprKeyVaultName) -Verbose - # } - # azurePowerShellVersion: 'LatestVersion' - # pwsh: true - - # - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: - # - job: - # displayName: Set sqlmi key vault secrets and keys - # dependsOn: - # - sqlmi_kv - # pool: - # ${{ if eq(variables['vmImage'], '') }}: - # name: $(poolName) - # ${{ if eq(variables['poolName'], '') }}: - # vmImage: $(vmImage) - # steps: - # - task: PowerShell@2 - # displayName: 'Setup agent' - # inputs: - # targetType: inline - # pwsh: true - # script: | - # # Load used functions - # . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Set-EnvironmentOnAgent.ps1') - - # # Define PS modules to install on the runner - # $Modules = @( - # @{ Name = 'Az.KeyVault' } - # ) - - # # Set agent up - # Set-EnvironmentOnAgent -PSModules $Modules - # - task: AzurePowerShell@5 - # displayName: Set sqlmi key vault secrets and keys - # inputs: - # azureSubscription: $(serviceConnection) - # ScriptType: 'InlineScript' - # Inline: | - - # $parameterFilePath = Join-Path '$(Build.SourcesDirectory)' '$(dependencyPath)' '$(resourceType)' 'parameters' 'sqlmi.parameters.json' - # # Load used functions - # . (Join-Path '$(Build.SourcesDirectory)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') - - # # Replace tokens in parameter file - # $Settings = Get-Content -Path (Join-Path '$(Build.SourcesDirectory)' 'settings.json') | ConvertFrom-Json -AsHashTable - # $ConvertTokensInputs = @{ - # FilePath = $parameterFilePath - # TokenPrefix = $Settings.parameterFileTokens.tokenPrefix - # TokenSuffix = $Settings.parameterFileTokens.tokenSuffix - # } - # if ($Settings.parameterFileTokens.localTokens) { - # $tokenMap = @{} - # foreach ($token in $Settings.parameterFileTokens.localTokens) { - # $tokenMap += @{ $token.name = $token.value } - # } - # Write-Verbose ('Using local tokens [{0}]' -f ($tokenMap.Keys -join ', ')) -Verbose - # $ConvertTokensInputs.Tokens = $tokenMap - # } - # $null = Convert-TokensInFile @ConvertTokensInputs - - # # Get key vault name - # $keyVaultParameters = (ConvertFrom-Json (Get-Content -Path $parameterFilePath -Raw)).parameters - # $keyVaultName = $keyVaultParameters.name.value - - # # Generate values - # $usernameString = ( -join ((65..90) + (97..122) | Get-Random -Count 9 -SetSeed 1 | ForEach-Object { [char]$_ + "$_" })).substring(0, 19) # max length - # $userName = ConvertTo-SecureString -String $usernameString -AsPlainText -Force - # $passwordString = (New-Guid).Guid.SubString(0, 19) - # $password = ConvertTo-SecureString -String $passwordString -AsPlainText -Force - - # # Set secrets - # # ------- - # @( - # @{ name = 'administratorLogin'; secretValue = $username } # SQLManagedInstances - # @{ name = 'administratorLoginPassword'; secretValue = $password } # SQLManagedInstances - # ) | ForEach-Object { - # $null = Set-AzKeyVaultSecret -VaultName $keyVaultName -Name $_.name -SecretValue $_.secretValue - # Write-Verbose ('Added secret [{0}] to key vault [{1}]' -f $_.name, $keyVaultName) -Verbose - # } - - # # Set keys - # # ---- - # @( - # @{ name = 'keyEncryptionKeySqlMi'; Destination = 'Software' } # SQLManagedInstances - # ) | ForEach-Object { - # $null = Add-AzKeyVaultKey -VaultName $keyVaultName -Name $_.name -Destination $_.Destination - # Write-Verbose ('Added key [{0}] to key vault [{1}]' -f $_.name, $keyVaultName) -Verbose - # } - # azurePowerShellVersion: 'LatestVersion' - # pwsh: true - - # - stage: deploy_des - # displayName: Deploy Disk Encryption Set - # dependsOn: - # - deploy_kv - # variables: - # resourceType: 'Microsoft.Compute/diskEncryptionSets' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Default Application Group - - # - stage: deploy_avdag - # displayName: Deploy AVD application group - # dependsOn: - # - deploy_avdhp - # variables: - # resourceType: 'Microsoft.DesktopVirtualization/applicationgroups' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Default Application Group - - # - stage: deploy_rolea - # displayName: Deploy role assignments - # dependsOn: - # - deploy_msi - # variables: - # resourceType: 'Microsoft.Authorization/roleAssignments' - # templateFilePath: $(modulesPath)/$(resourceType)/subscription/deploy.bicep - # msiPrincipalId: $[ stageDependencies.deploy_msi.job_set_msi_id.outputs['print_msi_prinId.msiPrincipalId'] ] - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - # templateFilePath: $(templateFilePath) - # displayName: MSI Role Assignment - # customParameterFileTokens: '{"msiPrincipalId":"$(msiPrincipalId)"}' - - # - stage: deploy_vnet - # displayName: Deploy virtual networks - # dependsOn: - # - deploy_nsg - # - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: - # - deploy_udr - # variables: - # resourceType: 'Microsoft.Network/virtualNetworks' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Default Virtual Network - # - path: $(dependencyPath)/$(resourceType)/parameters/1.bastion.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Bastion Virtual Network Min - # - path: $(dependencyPath)/$(resourceType)/parameters/2.vnetpeer01.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: VNET PEering 1 Virtual Network - # - path: $(dependencyPath)/$(resourceType)/parameters/3.vnetpeer02.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: VNET Peering 2 Virtual Network - # - path: $(dependencyPath)/$(resourceType)/parameters/4.azfw.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Azure Firewall Virtual Network - # - path: $(dependencyPath)/$(resourceType)/parameters/5.aks.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: AKS Virtual Network - # - path: $(dependencyPath)/$(resourceType)/parameters/7.virtualHubConnection.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Virtual Hub Connection Virtual Network - # - path: $(dependencyPath)/$(resourceType)/parameters/8.aadds.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: AADDS Virtual Network - # - path: $(dependencyPath)/$(resourceType)/parameters/9.azfw.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Azure Firewall Virtual Network Min - # - path: $(dependencyPath)/$(resourceType)/parameters/10.azfw.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Azure Firewall Virtual Network Additonal - # - path: $(dependencyPath)/$(resourceType)/parameters/11.azfw.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Azure Firewall Virtual Network Custom - # - path: $(dependencyPath)/$(resourceType)/parameters/12.bastion.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Bastion Virtual Network Additional - # - path: $(dependencyPath)/$(resourceType)/parameters/13.bastion.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Bastion Virtual Network Custom - - # - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: - # - path: $(dependencyPath)/$(resourceType)/parameters/6.sqlmi.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: SQL MI Virtual Network - - # - stage: deploy_dnszone - # displayName: Deploy private DNS zones - # dependsOn: - # - deploy_vnet - # variables: - # resourceType: 'Microsoft.Network/privateDnsZones' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # - path: $(dependencyPath)/$(resourceType)/parameters/automation.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Automation Account Private DNS Zone - # - path: $(dependencyPath)/$(resourceType)/parameters/azconfig.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: App Configuration Private DNS Zone - # - path: $(dependencyPath)/$(resourceType)/parameters/azurecr.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: ACR Private DNS Zone - # - path: $(dependencyPath)/$(resourceType)/parameters/azureml.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Machine Learning Private DNS Zone - # - path: $(dependencyPath)/$(resourceType)/parameters/azurestaticapps.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Static Apps Private DNS Zone - # - path: $(dependencyPath)/$(resourceType)/parameters/azuresynapse.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Azure Synapse Private DNS Zone - # - path: $(dependencyPath)/$(resourceType)/parameters/azurewebsites.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Web Sites Private DNS Zone - # - path: $(dependencyPath)/$(resourceType)/parameters/batch.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Batch Private DNS Zone - # - path: $(dependencyPath)/$(resourceType)/parameters/blob.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Storage Blob Private DNS Zone - # - path: $(dependencyPath)/$(resourceType)/parameters/cognitiveservices.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Cognitive Services Private DNS Zone - # - path: $(dependencyPath)/$(resourceType)/parameters/database.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Database Private DNS Zone - # - path: $(dependencyPath)/$(resourceType)/parameters/datafactory.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Data Factory Private DNS Zone - # - path: $(dependencyPath)/$(resourceType)/parameters/eventgrid.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Event Grid Private DNS Zone - # - path: $(dependencyPath)/$(resourceType)/parameters/file.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Storage Files Private DNS Zone - # - path: $(dependencyPath)/$(resourceType)/parameters/monitor.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Monitoring Private DNS Zone - # - path: $(dependencyPath)/$(resourceType)/parameters/queue.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Storage Queue Private DNS Zone - # - path: $(dependencyPath)/$(resourceType)/parameters/redis.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Redis Cache Private DNS Zone - # - path: $(dependencyPath)/$(resourceType)/parameters/servicebus.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Service Bus Private DNS Zone - # - path: $(dependencyPath)/$(resourceType)/parameters/siterecovery.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Recovery Services Vault Private DNS Zone - # - path: $(dependencyPath)/$(resourceType)/parameters/table.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Storage Table Private DNS Zone - # - path: $(dependencyPath)/$(resourceType)/parameters/vaultcore.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Key Vault Private DNS Zone - # - path: $(dependencyPath)/$(resourceType)/parameters/webpubsub.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Web PubSub Private DNS Zone - - # - stage: deploy_vm - # displayName: Deploy virtual machines - # dependsOn: - # - deploy_vnet - # - deploy_rsv - # - deploy_kv - # variables: - # resourceType: 'Microsoft.Compute/virtualMachines' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Default Virtual Machine - - # - stage: deploy_lb - # displayName: Deploy load balancers - # dependsOn: - # - deploy_vnet - # variables: - # resourceType: 'Microsoft.Network/loadBalancers' - # templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep - # jobs: - # - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - # parameters: - # - path: $(dependencyPath)/$(resourceType)/parameters/internal.parameters.json - # templateFilePath: $(templateFilePath) - # displayName: Deploy module + - stage: deploy_sf + displayName: Deploy server farm + dependsOn: + - deploy_rg + variables: + resourceType: 'Microsoft.Web/serverfarms' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + templateFilePath: $(templateFilePath) + displayName: Server farm + + - stage: deploy_app + displayName: Deploy app + dependsOn: + - deploy_sf + variables: + resourceType: 'Microsoft.Web/sites' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + templateFilePath: $(templateFilePath) + displayName: Function App + + - stage: deploy_pa + displayName: Deploy policy assignment + dependsOn: + - deploy_rg + variables: + resourceType: 'Microsoft.Authorization/policyAssignments' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/mg.parameters.json + templateFilePath: $(templateFilePath) + displayName: Policy assignment (mg) + - path: $(dependencyPath)/$(resourceType)/parameters/sub.parameters.json + templateFilePath: $(templateFilePath) + displayName: Policy assignment (sub) + + - stage: deploy_evh + displayName: Deploy event hub + dependsOn: + - deploy_rg + variables: + resourceType: 'Microsoft.EventHub/namespaces' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + templateFilePath: $(templateFilePath) + displayName: EventHub + + - stage: deploy_law + displayName: Deploy log analytics workspace + dependsOn: + - deploy_rg + variables: + resourceType: 'Microsoft.OperationalInsights/workspaces' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + templateFilePath: $(templateFilePath) + displayName: Default LAW + - path: $(dependencyPath)/$(resourceType)/parameters/aut.parameters.json + templateFilePath: $(templateFilePath) + displayName: Automation account LAW + - path: $(dependencyPath)/$(resourceType)/parameters/appi.parameters.json + templateFilePath: $(templateFilePath) + displayName: AppInsights LAW + + - stage: deploy_sa + displayName: Deploy storage account + dependsOn: + - deploy_rg + variables: + resourceType: 'Microsoft.Storage/storageAccounts' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + templateFilePath: $(templateFilePath) + displayName: Default storage account + jobName: default_sa + - path: $(dependencyPath)/$(resourceType)/parameters/law.parameters.json + templateFilePath: $(templateFilePath) + displayName: LAW storage account + - path: $(dependencyPath)/$(resourceType)/parameters/fa.parameters.json + templateFilePath: $(templateFilePath) + displayName: FunctionApp storage account + - job: + displayName: Upload files to storage account + dependsOn: + - default_sa + pool: + ${{ if eq(variables['vmImage'], '') }}: + name: $(poolName) + ${{ if eq(variables['poolName'], '') }}: + vmImage: $(vmImage) + steps: + - task: PowerShell@2 + displayName: 'Setup agent' + inputs: + targetType: inline + pwsh: true + script: | + # Load used functions + . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Set-EnvironmentOnAgent.ps1') + + # Define PS modules to install on the runner + $Modules = @( + @{ Name = 'Az.Storage' } + ) + + # Set agent up + Set-EnvironmentOnAgent -PSModules $Modules + - task: AzurePowerShell@5 + displayName: Upload files to storage account + inputs: + azureSubscription: $(serviceConnection) + ScriptType: 'InlineScript' + Inline: | + $parameterFilePath = Join-Path '$(Build.SourcesDirectory)' '$(dependencyPath)' '$(resourceType)' 'parameters' 'parameters.json' + # Load used functions + . (Join-Path '$(Build.SourcesDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Export-ContentToBlob.ps1') + . (Join-Path '$(Build.SourcesDirectory)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') + + # Replace tokens in parameter file + $Settings = Get-Content -Path (Join-Path '$(Build.SourcesDirectory)' 'settings.json') | ConvertFrom-Json -AsHashTable + $ConvertTokensInputs = @{ + FilePath = $parameterFilePath + TokenPrefix = $Settings.parameterFileTokens.tokenPrefix + TokenSuffix = $Settings.parameterFileTokens.tokenSuffix + } + + # Add local tokens + if ($Settings.parameterFileTokens.localTokens) { + $tokenMap = @{} + foreach ($token in $Settings.parameterFileTokens.localTokens) { + $tokenMap += @{ $token.name = $token.value } + } + Write-Verbose ('Using local tokens [{0}]' -f ($tokenMap.Keys -join ', ')) -Verbose + $ConvertTokensInputs.Tokens = $tokenMap + } + + $null = Convert-TokensInFile @ConvertTokensInputs + + # Get storage account name + $storageAccountParameters = (ConvertFrom-Json (Get-Content -path $parameterFilePath -Raw)).parameters + + # Upload files to storage account + $functionInput = @{ + ResourceGroupName = '$(defaultResourceGroupName)' + StorageAccountName = $storageAccountParameters.name.value + contentDirectories = Join-Path '$(Build.SourcesDirectory)' $(dependencyPath) '$(resourceType)' 'uploads' + targetContainer = $storageAccountParameters.blobServices.value.containers[0].name + } + + Write-Verbose "Invoke task with" -Verbose + Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose + + Export-ContentToBlob @functionInput -Verbose + azurePowerShellVersion: 'LatestVersion' + pwsh: true + + - stage: deploy_sig + displayName: Deploy shared image gallery and definition + dependsOn: + - deploy_rg + variables: + resourceType: 'Microsoft.Compute/galleries' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + templateFilePath: $(templateFilePath) + displayName: Default SIG and SID + + - ${{ if eq( parameters.deployVhdDependencies, true) }}: + - stage: deploy_imgt + displayName: Deploy image template + dependsOn: + - deploy_rolea + - deploy_sig + - deploy_sa + variables: + resourceType: 'Microsoft.VirtualMachineImages\imageTemplates' + saResourceType: 'Microsoft.Storage\storageAccounts' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + templateFilePath: $(templateFilePath) + displayName: Image template + jobName: job_deploy_imgt + - job: + displayName: Trigger vhd build and store it to a storage account blob container + dependsOn: + - job_deploy_imgt + pool: + ${{ if eq(variables['vmImage'], '') }}: + name: $(poolName) + ${{ if eq(variables['poolName'], '') }}: + vmImage: $(vmImage) + variables: + deploymentOutput: $[ dependencies.job_deploy_imgt.outputs['DeployModule.deploymentOutput'] ] + steps: + - task: PowerShell@2 + displayName: 'Setup agent' + inputs: + targetType: inline + pwsh: true + script: | + # Load used functions + . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Set-EnvironmentOnAgent.ps1') + + # Define PS modules to install on the runner + $Modules = @( + @{ Name = 'Az.ImageBuilder' }, + @{ Name = 'Az.Storage' } + ) + + # Set agent up + Set-EnvironmentOnAgent -PSModules $Modules + - task: AzurePowerShell@5 + displayName: Trigger building new image + inputs: + azureSubscription: $(serviceConnection) + ScriptType: 'InlineScript' + Inline: | + # Retrieving parameters from previous job outputs + Write-Verbose "Retrieving parameters from previous job outputs" -Verbose + $imageTemplateName = (ConvertFrom-Json '$(deploymentOutput)').name + $imageTemplateResourceGroup = (ConvertFrom-Json '$(deploymentOutput)').resourceGroupName + + # Trigger new image creation + Write-Verbose "Trigger new image creation with imageTemplateName $imageTemplateName and imageTemplateResourceGroup $imageTemplateResourceGroup" -Verbose + Start-AzImageBuilderTemplate -ImageTemplateName $imageTemplateName -ResourceGroupName $imageTemplateResourceGroup + azurePowerShellVersion: 'LatestVersion' + pwsh: true + - task: AzurePowerShell@5 + displayName: Copy baked vhd to a storage account + inputs: + azureSubscription: $(serviceConnection) + ScriptType: 'InlineScript' + Inline: | + + # Load used functions + . (Join-Path '$(Build.SourcesDirectory)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') + + # Prepare replace tokens in parameter file + $Settings = Get-Content -Path (Join-Path '$(Build.SourcesDirectory)' 'settings.json') | ConvertFrom-Json -AsHashTable + $ConvertTokensInputs = @{ + TokenPrefix = $Settings.parameterFileTokens.tokenPrefix + TokenSuffix = $Settings.parameterFileTokens.tokenSuffix + } + if ($Settings.parameterFileTokens.localTokens) { + $tokenMap = @{} + foreach ($token in $Settings.parameterFileTokens.localTokens) { + $tokenMap += @{ $token.name = $token.value } + } + Write-Verbose ('Using local tokens [{0}]' -f ($tokenMap.Keys -join ', ')) -Verbose + $ConvertTokensInputs.Tokens = $tokenMap + } + + # Retrieving parameters from previous job outputs and parameter files + Write-Verbose "Retrieving parameters from previous job outputs" -Verbose + $imageTemplateName = (ConvertFrom-Json '$(deploymentOutput)').name + $imageTemplateResourceGroup = (ConvertFrom-Json '$(deploymentOutput)').resourceGroupName + + Write-Verbose "Retrieving parameters from storage account parameter files" -Verbose + $parameterFilePath = Join-Path '$(Build.SourcesDirectory)' '$(dependencyPath)' '$(saResourceType)' 'parameters' 'parameters.json' + $null = Convert-TokensInFile @ConvertTokensInputs -FilePath $parameterFilePath -Verbose + $storageAccountParameters = (ConvertFrom-Json (Get-Content -path $parameterFilePath -Raw)).parameters + + Write-Verbose "Retrieving parameters from image template parameter files" -Verbose + $parameterFilePath = Join-Path '$(Build.SourcesDirectory)' '$(dependencyPath)' '$(resourceType)' 'parameters' 'parameters.json' + $null = Convert-TokensInFile @ConvertTokensInputs -FilePath $parameterFilePath -Verbose + $imageTemplateParameters = (ConvertFrom-Json (Get-Content -path $parameterFilePath -Raw)).parameters + + # Initializing parameters before the blob copy + Write-Verbose "Initializing source storage account parameters before the blob copy" -Verbose + $imgtRunOutput = Get-AzImageBuilderRunOutput -ImageTemplateName $imageTemplateName -ResourceGroupName $imageTemplateResourceGroup | Where-Object ArtifactUri -NE $null + $sourceUri = $imgtRunOutput.ArtifactUri + $sourceStorageAccountName = $sourceUri.Split('//')[1].Split('.')[0] + $sourceStorageAccount = Get-AzStorageAccount | Where-Object StorageAccountName -EQ $sourceStorageAccountName + $sourceStorageAccountContext = $sourceStorageAccount.Context + $sourceStorageAccountRGName = $sourceStorageAccount.ResourceGroupName + Write-Verbose "Retrieving artifact uri $sourceUri stored in resource group $sourceStorageAccountRGName" -Verbose + + Write-Verbose "Initializing destination storage account parameters before the blob copy" -Verbose + $destinationStorageAccountName = $storageAccountParameters.name.value + $destinationStorageAccount = Get-AzStorageAccount | Where-Object StorageAccountName -EQ $destinationStorageAccountName + $destinationStorageAccountContext = $destinationStorageAccount.Context + $destinationContainerName = 'vhds' + $destinationBlobName = $imageTemplateParameters.name.value + $destinationBlobName = "$destinationBlobName.vhd" + Write-Verbose "Planning for destination blob name $destinationBlobName in container $destinationContainerName and storage account $destinationStorageAccountName" -Verbose + + # Copying the vhd to a destination blob container + Write-Verbose "Copying the vhd to a destination blob container" -Verbose + $resourceActionInputObject = @{ + AbsoluteUri = $sourceUri + Context = $sourceStorageAccountContext + DestContext = $destinationStorageAccountContext + DestBlob = $destinationBlobName + DestContainer = $destinationContainerName + Force = $true + } + Start-AzStorageBlobCopy @resourceActionInputObject + azPSVersion: 'latest' + azurePowerShellVersion: 'LatestVersion' + pwsh: true + + - stage: deploy_ag + displayName: Deploy action groups + dependsOn: + - deploy_rg + variables: + resourceType: 'Microsoft.Insights/actionGroups' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + templateFilePath: $(templateFilePath) + displayName: Default Action Group + + - stage: deploy_asg + displayName: Deploy application security groups + dependsOn: + - deploy_rg + variables: + resourceType: 'Microsoft.Network/applicationSecurityGroups' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + templateFilePath: $(templateFilePath) + displayName: Default Application Security Groups + + - stage: deploy_udr + displayName: Deploy route tables + dependsOn: + - deploy_rg + variables: + resourceType: 'Microsoft.Network/routeTables' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + templateFilePath: $(templateFilePath) + displayName: Default User Defined Routes + - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: + - path: $(dependencyPath)/$(resourceType)/parameters/sqlMi.parameters.json + templateFilePath: $(templateFilePath) + displayName: SQLMI User Defined Routes + + - stage: deploy_nsg + displayName: Deploy network security groups + dependsOn: + - deploy_sa + - deploy_evh + - deploy_law + variables: + resourceType: 'Microsoft.Network/networkSecurityGroups' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + templateFilePath: $(templateFilePath) + displayName: Default NSG + - path: $(dependencyPath)/$(resourceType)/parameters/apgw.parameters.json + templateFilePath: $(templateFilePath) + displayName: App Gateway NSG + - path: $(dependencyPath)/$(resourceType)/parameters/ase.parameters.json + templateFilePath: $(templateFilePath) + displayName: ASE NSG + - path: $(dependencyPath)/$(resourceType)/parameters/bastion.parameters.json + templateFilePath: $(templateFilePath) + displayName: Bastion NSG + - path: $(dependencyPath)/$(resourceType)/parameters/aadds.parameters.json + templateFilePath: $(templateFilePath) + displayName: AADDS NSG + - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: + - path: $(dependencyPath)/$(resourceType)/parameters/sqlmi.parameters.json + templateFilePath: $(templateFilePath) + displayName: SQLMI NSG + + - stage: deploy_pip + displayName: Deploy public IP addresses + dependsOn: + - deploy_sa + - deploy_evh + - deploy_law + variables: + resourceType: 'Microsoft.Network\publicIPAddresses' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/apgw.parameters.json + templateFilePath: $(templateFilePath) + displayName: App Gateway Public IP + - path: $(dependencyPath)/$(resourceType)/parameters/bas.parameters.json + templateFilePath: $(templateFilePath) + displayName: Bastion Public IP + - path: $(dependencyPath)/$(resourceType)/parameters/lb.parameters.json + templateFilePath: $(templateFilePath) + displayName: Load balancer Public IP + - path: $(dependencyPath)/$(resourceType)/parameters/lb.min.parameters.json + templateFilePath: $(templateFilePath) + displayName: Min Load balancer Public IP + - path: $(dependencyPath)/$(resourceType)/parameters/fw.parameters.json + templateFilePath: $(templateFilePath) + displayName: Firewall Public IP + - path: $(dependencyPath)/$(resourceType)/parameters/fw.additional.parameters.json + templateFilePath: $(templateFilePath) + displayName: Firewall Additional Public IP + - path: $(dependencyPath)/$(resourceType)/parameters/bas.additional.parameters.json + templateFilePath: $(templateFilePath) + displayName: Bastion Additional Public IP + + - stage: deploy_appi + displayName: Deploy application insight + dependsOn: + - deploy_sa + - deploy_evh + - deploy_law + variables: + resourceType: 'Microsoft.Insights/components' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + templateFilePath: $(templateFilePath) + displayName: Default Application Insights + + - stage: deploy_aut + displayName: Deploy automation account + dependsOn: + - deploy_sa + - deploy_evh + - deploy_law + variables: + resourceType: 'Microsoft.Automation/automationAccounts' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + templateFilePath: $(templateFilePath) + displayName: Default Automation Account + + - stage: deploy_avdhp + displayName: Deploy AVD host pool + dependsOn: + - deploy_sa + - deploy_evh + - deploy_law + variables: + resourceType: 'Microsoft.DesktopVirtualization/hostpools' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + templateFilePath: $(templateFilePath) + displayName: Default AVD Host Pool + + - stage: deploy_rsv + displayName: Deploy recovery services vault + dependsOn: + - deploy_sa + - deploy_evh + - deploy_law + - deploy_msi + variables: + resourceType: 'Microsoft.RecoveryServices/vaults' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + msiPrincipalId: $[ stageDependencies.deploy_msi.job_set_msi_id.outputs['print_msi_prinId.msiPrincipalId'] ] + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + templateFilePath: $(templateFilePath) + displayName: Default recovery services vault + customParameterFileTokens: '{"msiPrincipalId":"$(msiPrincipalId)"}' + + - stage: deploy_kv + displayName: Deploy key vaults + dependsOn: + - deploy_sa + - deploy_evh + - deploy_law + - deploy_msi + variables: + resourceType: 'Microsoft.KeyVault/vaults' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + msiPrincipalId: $[ stageDependencies.deploy_msi.job_set_msi_id.outputs['print_msi_prinId.msiPrincipalId'] ] + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + templateFilePath: $(templateFilePath) + displayName: Default Key Vault + jobName: default_kv + customParameterFileTokens: '{"msiPrincipalId":"$(msiPrincipalId)"}' + - path: $(dependencyPath)/$(resourceType)/parameters/nopr.parameters.json + templateFilePath: $(templateFilePath) + displayName: Purge proteced key vault + jobName: default_kv_nopr + customParameterFileTokens: '{"msiPrincipalId":"$(msiPrincipalId)"}' + - path: $(dependencyPath)/$(resourceType)/parameters/pe.parameters.json + templateFilePath: $(templateFilePath) + displayName: Private Endpoint Key Vault + customParameterFileTokens: '{"msiPrincipalId":"$(msiPrincipalId)"}' + - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: + - path: $(dependencyPath)/$(resourceType)/parameters/sqlmi.parameters.json + templateFilePath: $(templateFilePath) + displayName: SQLMI key vault + jobName: sqlmi_kv + customParameterFileTokens: '{"msiPrincipalId":"$(msiPrincipalId)"}' + - job: + displayName: Set key vault secrets keys and certificates + dependsOn: + - default_kv + - default_kv_nopr + pool: + # Must run on windows as the used `New-SelfSignedCertificate` function is not available on linux + vmImage: windows-2022 + steps: + - task: PowerShell@2 + displayName: 'Setup agent' + inputs: + targetType: inline + pwsh: true + script: | + # Load used functions + . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Set-EnvironmentOnAgent.ps1') + + # Define PS modules to install on the runner + $Modules = @( + @{ Name = 'Az.KeyVault' } + ) + + # Set agent up + Set-EnvironmentOnAgent -PSModules $Modules + - task: AzurePowerShell@5 + displayName: Set key vault secrets keys and certificates + inputs: + azureSubscription: $(serviceConnection) + ScriptType: 'InlineScript' + Inline: | + $parameterFilePath = Join-Path '$(Build.SourcesDirectory)' '$(dependencyPath)' '$(resourceType)' 'parameters' 'parameters.json' + $noprParameterFilePath = Join-Path '$(Build.SourcesDirectory)' '$(dependencyPath)' '$(resourceType)' 'parameters' 'nopr.parameters.json' + + # Load used functions + . (Join-Path '$(Build.SourcesDirectory)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') + + # Replace tokens in parameter file + $Settings = Get-Content -Path (Join-Path '$(Build.SourcesDirectory)' 'settings.json') | ConvertFrom-Json -AsHashTable + $ConvertTokensInputs = @{ + FilePath = $parameterFilePath + TokenPrefix = $Settings.parameterFileTokens.tokenPrefix + TokenSuffix = $Settings.parameterFileTokens.tokenSuffix + } + $NoprConvertTokensInputs = @{ + FilePath = $noprParameterFilePath + TokenPrefix = $Settings.parameterFileTokens.tokenPrefix + TokenSuffix = $Settings.parameterFileTokens.tokenSuffix + } + if ($Settings.parameterFileTokens.localTokens) { + $tokenMap = @{} + foreach ($token in $Settings.parameterFileTokens.localTokens) { + $tokenMap += @{ $token.name = $token.value } + } + Write-Verbose ('Using local tokens [{0}]' -f ($tokenMap.Keys -join ', ')) -Verbose + $ConvertTokensInputs.Tokens = $tokenMap + $NoprConvertTokensInputs.Tokens = $tokenMap + } + $null = Convert-TokensInFile @ConvertTokensInputs + $null = Convert-TokensInFile @NoprConvertTokensInputs + + # Get key vault name + $keyVaultParameters = (ConvertFrom-Json (Get-Content -Path $parameterFilePath -Raw)).parameters + $keyVaultName = $keyVaultParameters.name.value + # No Purge Key Vault + $noprKeyVaultParameters = (ConvertFrom-Json (Get-Content -Path $noprParameterFilePath -Raw)).parameters + $noprKeyVaultName = $noprKeyVaultParameters.name.value + + # Generate values + $usernameString = ( -join ((65..90) + (97..122) | Get-Random -Count 9 -SetSeed 1 | ForEach-Object { [char]$_ + "$_" })).substring(0, 19) # max length + $userName = ConvertTo-SecureString -String $usernameString -AsPlainText -Force + $passwordString = (New-Guid).Guid.SubString(0, 19) + $password = ConvertTo-SecureString -String $passwordString -AsPlainText -Force + $vpnSharedKeyString = (New-Guid).Guid.SubString(0, 32) + $vpnSharedKey = ConvertTo-SecureString -String $vpnSharedKeyString -AsPlainText -Force + + $namePrefixToken = $Settings.parameterFileTokens.localTokens | Where-Object { $_.name -eq 'namePrefix' } + $certInputObject = @{ + Subject = 'CN=*.{0}.onmicrosoft.com' -f $namePrefixToken.value + DnsName = '*.{0}.onmicrosoft.com' -f $namePrefixToken.value + CertStoreLocation = 'cert:\LocalMachine\My' + KeyExportPolicy = 'Exportable' + Provider = 'Microsoft Enhanced RSA and AES Cryptographic Provider' + NotAfter = (Get-Date).AddMonths(3) + HashAlgorithm = 'SHA256' + } + $rawCert = New-SelfSignedCertificate @certInputObject + Export-PfxCertificate -Cert ('Cert:\localmachine\my\' + $rawCert.Thumbprint) -FilePath "$home/aadds.pfx" -Password $password -Force + $rawCertByteStream = Get-Content "$home/aadds.pfx" -AsByteStream + $pfxCertificate = ConvertTo-SecureString -String ([System.Convert]::ToBase64String($rawCertByteStream)) -AsPlainText -Force + + # Set secrets + # ------- + @( + @{ name = 'adminUsername'; secretValue = $username } # VirtualMachines and VMSS + @{ name = 'adminPassword'; secretValue = $password } # VirtualMachines and VMSS + @{ name = 'administratorLogin'; secretValue = $username } # Azure SQLServer + @{ name = 'administratorLoginPassword'; secretValue = $password } # Azure SQLServer + @{ name = 'vpnSharedKey'; secretValue = $vpnSharedKey } # VirtualNetworkGateway + @{ name = 'apimClientId'; secretValue = $username } # API management + @{ name = 'apimClientSecret'; secretValue = $password } # API management + @{ name = 'pfxCertificatePassword'; secretValue = $password } # AADDS + @{ name = 'pfxBase64Certificate'; secretValue = $pfxCertificate } # AADDS + ) | ForEach-Object { + $null = Set-AzKeyVaultSecret -VaultName $keyVaultName -Name $_.name -SecretValue $_.secretValue + Write-Verbose ('Added secret [{0}] to key vault [{1}]' -f $_.name, $keyVaultName) -Verbose + } + + # Certificats + # ----------- + $certPolicy = New-AzKeyVaultCertificatePolicy -SecretContentType 'application/x-pkcs12' -SubjectName 'CN=fabrikam.com' -IssuerName 'Self' -ValidityInMonths 12 -ReuseKeyOnRenewal + @( + @{ name = 'applicationGatewaySslCertificate'; CertificatePolicy = $certPolicy } # ApplicationGateway + ) | ForEach-Object { + $null = Add-AzKeyVaultCertificate -VaultName $keyVaultName -Name $_.name -CertificatePolicy $_.CertificatePolicy + Write-Verbose ('Added certificate [{0}] to key vault [{1}]' -f $_.name, $keyVaultName) -Verbose + } + + # Set keys + # ---- + @( + @{ name = 'keyEncryptionKey'; Destination = 'Software' } # DiskEncryptionSet, VirtualMachines and VMSS + ) | ForEach-Object { + $null = Add-AzKeyVaultKey -VaultName $keyVaultName -Name $_.name -Destination $_.Destination + Write-Verbose ('Added key [{0}] to key vault [{1}]' -f $_.name, $keyVaultName) -Verbose + } + # noprKeyVault Keys + @( + @{ name = 'keyEncryptionKey'; Destination = 'Software' } # Automation Account + ) | ForEach-Object { + $null = Add-AzKeyVaultKey -VaultName $noprKeyVaultName -Name $_.name -Destination $_.Destination + Write-Verbose ('Added key [{0}] to key vault [{1}]' -f $_.name, $noprKeyVaultName) -Verbose + } + azurePowerShellVersion: 'LatestVersion' + pwsh: true + + - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: + - job: + displayName: Set sqlmi key vault secrets and keys + dependsOn: + - sqlmi_kv + pool: + ${{ if eq(variables['vmImage'], '') }}: + name: $(poolName) + ${{ if eq(variables['poolName'], '') }}: + vmImage: $(vmImage) + steps: + - task: PowerShell@2 + displayName: 'Setup agent' + inputs: + targetType: inline + pwsh: true + script: | + # Load used functions + . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Set-EnvironmentOnAgent.ps1') + + # Define PS modules to install on the runner + $Modules = @( + @{ Name = 'Az.KeyVault' } + ) + + # Set agent up + Set-EnvironmentOnAgent -PSModules $Modules + - task: AzurePowerShell@5 + displayName: Set sqlmi key vault secrets and keys + inputs: + azureSubscription: $(serviceConnection) + ScriptType: 'InlineScript' + Inline: | + + $parameterFilePath = Join-Path '$(Build.SourcesDirectory)' '$(dependencyPath)' '$(resourceType)' 'parameters' 'sqlmi.parameters.json' + # Load used functions + . (Join-Path '$(Build.SourcesDirectory)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') + + # Replace tokens in parameter file + $Settings = Get-Content -Path (Join-Path '$(Build.SourcesDirectory)' 'settings.json') | ConvertFrom-Json -AsHashTable + $ConvertTokensInputs = @{ + FilePath = $parameterFilePath + TokenPrefix = $Settings.parameterFileTokens.tokenPrefix + TokenSuffix = $Settings.parameterFileTokens.tokenSuffix + } + if ($Settings.parameterFileTokens.localTokens) { + $tokenMap = @{} + foreach ($token in $Settings.parameterFileTokens.localTokens) { + $tokenMap += @{ $token.name = $token.value } + } + Write-Verbose ('Using local tokens [{0}]' -f ($tokenMap.Keys -join ', ')) -Verbose + $ConvertTokensInputs.Tokens = $tokenMap + } + $null = Convert-TokensInFile @ConvertTokensInputs + + # Get key vault name + $keyVaultParameters = (ConvertFrom-Json (Get-Content -Path $parameterFilePath -Raw)).parameters + $keyVaultName = $keyVaultParameters.name.value + + # Generate values + $usernameString = ( -join ((65..90) + (97..122) | Get-Random -Count 9 -SetSeed 1 | ForEach-Object { [char]$_ + "$_" })).substring(0, 19) # max length + $userName = ConvertTo-SecureString -String $usernameString -AsPlainText -Force + $passwordString = (New-Guid).Guid.SubString(0, 19) + $password = ConvertTo-SecureString -String $passwordString -AsPlainText -Force + + # Set secrets + # ------- + @( + @{ name = 'administratorLogin'; secretValue = $username } # SQLManagedInstances + @{ name = 'administratorLoginPassword'; secretValue = $password } # SQLManagedInstances + ) | ForEach-Object { + $null = Set-AzKeyVaultSecret -VaultName $keyVaultName -Name $_.name -SecretValue $_.secretValue + Write-Verbose ('Added secret [{0}] to key vault [{1}]' -f $_.name, $keyVaultName) -Verbose + } + + # Set keys + # ---- + @( + @{ name = 'keyEncryptionKeySqlMi'; Destination = 'Software' } # SQLManagedInstances + ) | ForEach-Object { + $null = Add-AzKeyVaultKey -VaultName $keyVaultName -Name $_.name -Destination $_.Destination + Write-Verbose ('Added key [{0}] to key vault [{1}]' -f $_.name, $keyVaultName) -Verbose + } + azurePowerShellVersion: 'LatestVersion' + pwsh: true + + - stage: deploy_des + displayName: Deploy Disk Encryption Set + dependsOn: + - deploy_kv + variables: + resourceType: 'Microsoft.Compute/diskEncryptionSets' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + templateFilePath: $(templateFilePath) + displayName: Default Application Group + + - stage: deploy_avdag + displayName: Deploy AVD application group + dependsOn: + - deploy_avdhp + variables: + resourceType: 'Microsoft.DesktopVirtualization/applicationgroups' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + templateFilePath: $(templateFilePath) + displayName: Default Application Group + + - stage: deploy_rolea + displayName: Deploy role assignments + dependsOn: + - deploy_msi + variables: + resourceType: 'Microsoft.Authorization/roleAssignments' + templateFilePath: $(modulesPath)/$(resourceType)/subscription/deploy.bicep + msiPrincipalId: $[ stageDependencies.deploy_msi.job_set_msi_id.outputs['print_msi_prinId.msiPrincipalId'] ] + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + templateFilePath: $(templateFilePath) + displayName: MSI Role Assignment + customParameterFileTokens: '{"msiPrincipalId":"$(msiPrincipalId)"}' + + - stage: deploy_vnet + displayName: Deploy virtual networks + dependsOn: + - deploy_nsg + - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: + - deploy_udr + variables: + resourceType: 'Microsoft.Network/virtualNetworks' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + templateFilePath: $(templateFilePath) + displayName: Default Virtual Network + - path: $(dependencyPath)/$(resourceType)/parameters/1.bastion.parameters.json + templateFilePath: $(templateFilePath) + displayName: Bastion Virtual Network Min + - path: $(dependencyPath)/$(resourceType)/parameters/2.vnetpeer01.parameters.json + templateFilePath: $(templateFilePath) + displayName: VNET PEering 1 Virtual Network + - path: $(dependencyPath)/$(resourceType)/parameters/3.vnetpeer02.parameters.json + templateFilePath: $(templateFilePath) + displayName: VNET Peering 2 Virtual Network + - path: $(dependencyPath)/$(resourceType)/parameters/4.azfw.parameters.json + templateFilePath: $(templateFilePath) + displayName: Azure Firewall Virtual Network + - path: $(dependencyPath)/$(resourceType)/parameters/5.aks.parameters.json + templateFilePath: $(templateFilePath) + displayName: AKS Virtual Network + - path: $(dependencyPath)/$(resourceType)/parameters/7.virtualHubConnection.parameters.json + templateFilePath: $(templateFilePath) + displayName: Virtual Hub Connection Virtual Network + - path: $(dependencyPath)/$(resourceType)/parameters/8.aadds.parameters.json + templateFilePath: $(templateFilePath) + displayName: AADDS Virtual Network + - path: $(dependencyPath)/$(resourceType)/parameters/9.azfw.parameters.json + templateFilePath: $(templateFilePath) + displayName: Azure Firewall Virtual Network Min + - path: $(dependencyPath)/$(resourceType)/parameters/10.azfw.parameters.json + templateFilePath: $(templateFilePath) + displayName: Azure Firewall Virtual Network Additonal + - path: $(dependencyPath)/$(resourceType)/parameters/11.azfw.parameters.json + templateFilePath: $(templateFilePath) + displayName: Azure Firewall Virtual Network Custom + - path: $(dependencyPath)/$(resourceType)/parameters/12.bastion.parameters.json + templateFilePath: $(templateFilePath) + displayName: Bastion Virtual Network Additional + - path: $(dependencyPath)/$(resourceType)/parameters/13.bastion.parameters.json + templateFilePath: $(templateFilePath) + displayName: Bastion Virtual Network Custom + + - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: + - path: $(dependencyPath)/$(resourceType)/parameters/6.sqlmi.parameters.json + templateFilePath: $(templateFilePath) + displayName: SQL MI Virtual Network + + - stage: deploy_dnszone + displayName: Deploy private DNS zones + dependsOn: + - deploy_vnet + variables: + resourceType: 'Microsoft.Network/privateDnsZones' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/automation.parameters.json + templateFilePath: $(templateFilePath) + displayName: Automation Account Private DNS Zone + - path: $(dependencyPath)/$(resourceType)/parameters/azconfig.parameters.json + templateFilePath: $(templateFilePath) + displayName: App Configuration Private DNS Zone + - path: $(dependencyPath)/$(resourceType)/parameters/azurecr.parameters.json + templateFilePath: $(templateFilePath) + displayName: ACR Private DNS Zone + - path: $(dependencyPath)/$(resourceType)/parameters/azureml.parameters.json + templateFilePath: $(templateFilePath) + displayName: Machine Learning Private DNS Zone + - path: $(dependencyPath)/$(resourceType)/parameters/azurestaticapps.parameters.json + templateFilePath: $(templateFilePath) + displayName: Static Apps Private DNS Zone + - path: $(dependencyPath)/$(resourceType)/parameters/azuresynapse.parameters.json + templateFilePath: $(templateFilePath) + displayName: Azure Synapse Private DNS Zone + - path: $(dependencyPath)/$(resourceType)/parameters/azurewebsites.parameters.json + templateFilePath: $(templateFilePath) + displayName: Web Sites Private DNS Zone + - path: $(dependencyPath)/$(resourceType)/parameters/batch.parameters.json + templateFilePath: $(templateFilePath) + displayName: Batch Private DNS Zone + - path: $(dependencyPath)/$(resourceType)/parameters/blob.parameters.json + templateFilePath: $(templateFilePath) + displayName: Storage Blob Private DNS Zone + - path: $(dependencyPath)/$(resourceType)/parameters/cognitiveservices.parameters.json + templateFilePath: $(templateFilePath) + displayName: Cognitive Services Private DNS Zone + - path: $(dependencyPath)/$(resourceType)/parameters/database.parameters.json + templateFilePath: $(templateFilePath) + displayName: Database Private DNS Zone + - path: $(dependencyPath)/$(resourceType)/parameters/datafactory.parameters.json + templateFilePath: $(templateFilePath) + displayName: Data Factory Private DNS Zone + - path: $(dependencyPath)/$(resourceType)/parameters/eventgrid.parameters.json + templateFilePath: $(templateFilePath) + displayName: Event Grid Private DNS Zone + - path: $(dependencyPath)/$(resourceType)/parameters/file.parameters.json + templateFilePath: $(templateFilePath) + displayName: Storage Files Private DNS Zone + - path: $(dependencyPath)/$(resourceType)/parameters/monitor.parameters.json + templateFilePath: $(templateFilePath) + displayName: Monitoring Private DNS Zone + - path: $(dependencyPath)/$(resourceType)/parameters/queue.parameters.json + templateFilePath: $(templateFilePath) + displayName: Storage Queue Private DNS Zone + - path: $(dependencyPath)/$(resourceType)/parameters/redis.parameters.json + templateFilePath: $(templateFilePath) + displayName: Redis Cache Private DNS Zone + - path: $(dependencyPath)/$(resourceType)/parameters/servicebus.parameters.json + templateFilePath: $(templateFilePath) + displayName: Service Bus Private DNS Zone + - path: $(dependencyPath)/$(resourceType)/parameters/siterecovery.parameters.json + templateFilePath: $(templateFilePath) + displayName: Recovery Services Vault Private DNS Zone + - path: $(dependencyPath)/$(resourceType)/parameters/table.parameters.json + templateFilePath: $(templateFilePath) + displayName: Storage Table Private DNS Zone + - path: $(dependencyPath)/$(resourceType)/parameters/vaultcore.parameters.json + templateFilePath: $(templateFilePath) + displayName: Key Vault Private DNS Zone + - path: $(dependencyPath)/$(resourceType)/parameters/webpubsub.parameters.json + templateFilePath: $(templateFilePath) + displayName: Web PubSub Private DNS Zone + + - stage: deploy_vm + displayName: Deploy virtual machines + dependsOn: + - deploy_vnet + - deploy_rsv + - deploy_kv + variables: + resourceType: 'Microsoft.Compute/virtualMachines' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/parameters.json + templateFilePath: $(templateFilePath) + displayName: Default Virtual Machine + + - stage: deploy_lb + displayName: Deploy load balancers + dependsOn: + - deploy_vnet + variables: + resourceType: 'Microsoft.Network/loadBalancers' + templateFilePath: $(modulesPath)/$(resourceType)/deploy.bicep + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml + parameters: + deploymentBlocks: + - path: $(dependencyPath)/$(resourceType)/parameters/internal.parameters.json + templateFilePath: $(templateFilePath) + displayName: Deploy module From 1d386cb024648aa83e7b5983156414c21de352b3 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 15 Jul 2022 23:45:38 +0200 Subject: [PATCH 142/274] Simplified pipelines --- .../jobs.dependenciesModuleDeployment.yml | 123 ++---------------- .../jobs.validateModuleDeployment.yml | 24 ++-- 2 files changed, 18 insertions(+), 129 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml index 207b45e811..502dc77519 100644 --- a/.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml @@ -25,19 +25,15 @@ ## | Parameter | Default Value | Description | Example | ## |---------------------------------|--------------------------------------|-----------------------------------------------------------------------------------------------------------|--------------------------------------------| ## | serviceConnection | '$(serviceConnection)' | The service connection that connects to Azure | 'demo-internal' | -## | removeDeployment | '$(removeDeployment)' | Set to [true] to flag resource for removal. If not provided, defaults to false. | 'true' | ## | poolName | '$(poolName)' | You can provide either a [poolname] or [vmImage] to run the job on | 'Custom Deployment Pool' | ## | vmImage | '$(vmImage)' | You can provide either a [poolname] or [vmImage] to run the job on | 'ubuntu20.04' | ## | defaultJobTimeoutInMinutes | 120 | The timeout for the job in this pipeline | 120 | -## | checkoutRepositories | '' | An optional list of repositories to check out at the beginning of this job in addition to the source | 'Components' | ## | modulePath | '$(modulePath)' | The path to the module to deploy. E.g. [c:/KeyVault] | 'c:/KeyVault' | ## | deploymentBlocks | | The parameter file(s) to deploy with. Must be provided | path: 'C:/parameters.json' | ## | location | '$(location)' | The location to deploy with | 'EastUs2' | ## | resourceGroupName | '$(resourceGroupName)' | The resourcegroup to deploy into. Required only for Resource-Group-Level deployments | 'validation-rg' | ## | subscriptionId | '$(ARM_SUBSCRIPTION_ID)' | The id of the subscription to deploy into when using a Management group service connection | 'aed7c000-6387-412e-bed0-24dfddf4bbc6' | ## | managementGroupId | '$(ARM_MGMTGROUP_ID)' | The id of the management group to deploy into. Required only for Management-Group-Level deployments | '6ycc9620-cb01-454f-9ebc-fc6b1df48d64' | -## | parametersRepository | '$(Build.Repository.Name)' | The respository with the parameter files. Defaults to the triggering repository | 'Solutions' | -## | modulesRepository | '$(modulesRepository)' | The respository with the modules. | 'Components' | ## | azurePowerShellVersion | '$(azurePowerShellVersion)' | Used for configuring the Azure PowerShellModules Version, one of the example values. | 'latestVersion' or 'OtherVersion' | ## | preferredAzurePowerShellVersion | '$(preferredAzurePowerShellVersion)' | Used for configuring the Azure PowerShellModules Version, either an empty string or the specific version. | '4.4.0' | ## |=================================================================================================================================================================================================================================| @@ -50,18 +46,14 @@ parameters: poolName: '$(poolName)' vmImage: '$(vmImage)' defaultJobTimeoutInMinutes: 120 - checkoutRepositories: '' dependsOn: [] # Logic-related parameters - removeDeployment: false modulePath: '$(modulePath)' deploymentBlocks: '' location: '$(location)' resourceGroupName: '$(resourceGroupName)' subscriptionId: '$(ARM_SUBSCRIPTION_ID)' managementGroupId: '$(ARM_MGMTGROUP_ID)' - parametersRepository: '$(Build.Repository.Name)' - modulesRepository: '$(modulesRepository)' # Azure PowerShell Version parameters azurePowerShellVersion: '$(azurePowerShellVersion)' preferredAzurePowerShellVersion: '$(preferredAzurePowerShellVersion)' @@ -91,11 +83,6 @@ jobs: # [Checkout Repositories] task(s) #-------------------------------- - checkout: self - - ${{ if ne(parameters.checkoutRepositories, '') }}: - - ? ${{ each checkoutRepository in parameters.checkoutRepositories }} - : - checkout: ${{ checkoutRepository }} - fetchDepth: 1 # the depth of commits to ask Git to fetch; if not set defaults to no limit - path: 's/${{ checkoutRepository }}' # [Agent] Prepare environment #---------------------------- @@ -114,42 +101,9 @@ jobs: @{ Name = 'Az.Resources' } ) - # Additional PS modules need to be installed for the removal step in case it is enabled - if ('${{ parameters.removeDeployment}}' -eq 'true') { - $Modules += @( - @{ Name = 'Az.CognitiveServices' }, - @{ Name = 'Az.Compute' }, - @{ Name = 'Az.KeyVault' }, - @{ Name = 'Az.Monitor' }, - @{ Name = 'Az.OperationalInsights' }, - @{ Name = 'Az.RecoveryServices' } - ) - } - # Set agent up Set-EnvironmentOnAgent -PSModules $Modules - # [Multi Repo] Support task - #-------------------------- - - task: PowerShell@2 - displayName: Handle Multi-Repo Invocation - inputs: - targetType: inline - pwsh: true - script: | - # Handle multiple-repositories - if( "${{ join(';',parameters.checkoutRepositories) }}".length -gt 0) { - Write-Verbose "Multi-Repo Checkout" -Verbose - $moduleRepoRoot = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulesRepository)' - $parametersRepoRoot = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.parametersRepository }}' - } else { - Write-Verbose "No Multi-Repo Checkout" -Verbose - $moduleRepoRoot = '$(System.DefaultWorkingDirectory)' - $parametersRepoRoot = '$(System.DefaultWorkingDirectory)' - } - Write-Output "##vso[task.setvariable variable=ModuleRepoRoot]$moduleRepoRoot" - Write-Output "##vso[task.setvariable variable=parametersRepoRoot]$parametersRepoRoot" - # [Agent] Replace tokens #----------------------- - task: AzurePowerShell@5 @@ -162,15 +116,15 @@ jobs: pwsh: true inline: | # Load used functions - . (Join-Path '$(moduleRepoRoot)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') + . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') # Load Settings File - $Settings = Get-Content -Path (Join-Path '$(moduleRepoRoot)' 'settings.json') | ConvertFrom-Json -AsHashTable + $Settings = Get-Content -Path (Join-Path '$(System.DefaultWorkingDirectory)' 'settings.json') | ConvertFrom-Json -AsHashTable # Construct Token Function Input $ConvertTokensInputs = @{ Tokens = @{} - FilePath = Join-Path '$(parametersRepoRoot)' '${{ deploymentBlock.path }}' + FilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '${{ deploymentBlock.path }}' TokenPrefix = $Settings.parameterFileTokens.tokenPrefix TokenSuffix = $Settings.parameterFileTokens.tokenSuffix } @@ -216,22 +170,13 @@ jobs: pwsh: true inline: | # Load used functions - . (Join-Path '$(moduleRepoRoot)' '$(pipelineFunctionsPath)' 'resourceDeployment' 'Test-TemplateDeployment.ps1') - - if(-not [String]::IsNullOrEmpty('${{ deploymentBlock.templateFilePath }}')) { - $templateFilePath = Join-Path '$(moduleRepoRoot)' '${{ deploymentBlock.templateFilePath }}' - } else { - # Use default path - $templateFilePath = (Test-Path (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.bicep')) ? - (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.bicep') : - (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.json') - } + . (Join-Path '$(System.DefaultWorkingDirectory)' '$(pipelineFunctionsPath)' 'resourceDeployment' 'Test-TemplateDeployment.ps1') # ----------- # # INVOKE TEST # # ----------- # $functionInput = @{ - templateFilePath = $templateFilePath + templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '${{ deploymentBlock.templateFilePath }}' location = '${{ parameters.location }}' resourceGroupName = '${{ parameters.resourceGroupName }}' subscriptionId = '${{ parameters.subscriptionId }}' @@ -240,7 +185,7 @@ jobs: } if(-not [String]::IsNullOrEmpty('${{ deploymentBlock.path }}')) { - $functionInput['parameterFilePath'] = Join-Path '$(ParametersRepoRoot)' '${{ deploymentBlock.path }}' + $functionInput['parameterFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '${{ deploymentBlock.path }}' } $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json @@ -268,22 +213,13 @@ jobs: ScriptType: InlineScript inline: | # Load used functions - . (Join-Path '$(moduleRepoRoot)' '$(pipelineFunctionsPath)' 'resourceDeployment' 'New-TemplateDeployment.ps1') - - if(-not [String]::IsNullOrEmpty('${{ deploymentBlock.templateFilePath }}')) { - $templateFilePath = Join-Path '$(moduleRepoRoot)' '${{ deploymentBlock.templateFilePath }}' - } else { - # Use default path - $templateFilePath = (Test-Path (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.bicep')) ? - (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.bicep') : - (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.json') - } + . (Join-Path '$(System.DefaultWorkingDirectory)' '$(pipelineFunctionsPath)' 'resourceDeployment' 'New-TemplateDeployment.ps1') # ----------------- # # INVOKE DEPLOYMENT # # ----------------- # $functionInput = @{ - templateFilePath = $templateFilePath + templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '${{ deploymentBlock.templateFilePath }}' location = '${{ parameters.location }}' resourceGroupName = '${{ parameters.resourceGroupName }}' subscriptionId = '${{ parameters.subscriptionId }}' @@ -293,7 +229,7 @@ jobs: } if(-not [String]::IsNullOrEmpty('${{ deploymentBlock.path }}')) { - $functionInput['parameterFilePath'] = Join-Path '$(ParametersRepoRoot)' '${{ deploymentBlock.path }}' + $functionInput['parameterFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '${{ deploymentBlock.path }}' } $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json @@ -328,44 +264,3 @@ jobs: # Happens only if there is an exception throw $res.exception } - - # [Removal] task(s) - #------------------ - - task: AzurePowerShell@5 - displayName: 'Remove deployed resources via [${{ parameters.serviceConnection }}]' - condition: and(succeededOrFailed(), eq( '${{ parameters.removeDeployment }}', 'true'), not(eq(variables['deploymentName'],''))) - inputs: - azureSubscription: ${{ parameters.serviceConnection }} - azurePowerShellVersion: ${{ parameters.azurePowerShellVersion }} - preferredAzurePowerShellVersion: ${{ parameters.preferredAzurePowerShellVersion }} - ScriptType: InlineScript - failOnStandardError: false - pwsh: true - inline: | - # Load used function - . (Join-Path '$(moduleRepoRoot)' '$(pipelineFunctionsPath)' 'resourceRemoval' 'Initialize-DeploymentRemoval.ps1') - - if(-not [String]::IsNullOrEmpty('${{ deploymentBlock.templateFilePath }}')) { - $templateFilePath = Join-Path '$(moduleRepoRoot)' '${{ deploymentBlock.templateFilePath }}' - } else { - # Use default path - $templateFilePath = (Test-Path (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.bicep')) ? - (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.bicep') : - (Join-Path '$(ModuleRepoRoot)' '$(modulePath)' 'deploy.json') - } - - if (-not [String]::IsNullOrEmpty('$(deploymentName)')) { - $functionInput = @{ - DeploymentName = '$(deploymentName)' - TemplateFilePath = $templateFilePath - ResourceGroupName = '${{ parameters.resourceGroupName }}' - subscriptionId = '${{ parameters.subscriptionId }}' - ManagementGroupId = '${{ parameters.managementGroupId }}' - Verbose = $true - } - - Write-Verbose 'Invoke task with' -Verbose - Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose - - Initialize-DeploymentRemoval @functionInput - } diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 29f03af667..72921633ae 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -28,7 +28,6 @@ ## | poolName | '$(poolName)' | You can provide either a [poolname] or [vmImage] to run the job on. | 'Custom Deployment Pool' | ## | vmImage | '$(vmImage)' | You can provide either a [poolname] or [vmImage] to run the job on. | 'ubuntu20.04' | ## | defaultJobTimeoutInMinutes | 120 | The timeout for the job in this pipeline. | 120 | -## | checkoutRepositories | '' | An optional list of repositories to check out at the beginning of this job in addition to the source. | 'Components' | ## | removeDeployment | 'true' | Set to [true] to flag resources for removal. If not provided, defaults to true. | 'true' | ## | templateFilePath | '' | Path to the template file to deploy. | 'arm/Microsoft.AnalysisServices/servers/deploy.bicep' | ## | customParameterFileTokens | '' | | | @@ -38,8 +37,6 @@ ## | resourceGroupName | '$(resourceGroupName)' | The resourcegroup to deploy into. Required only for Resource-Group-Level deployments. | 'validation-rg' | ## | subscriptionId | '$(ARM_SUBSCRIPTION_ID)' | The id of the subscription to deploy into when using a Management group service connection. | 'aed7c000-6387-412e-bed0-24dfddf4bbc6' | ## | managementGroupId | '$(ARM_MGMTGROUP_ID)' | The id of the management group to deploy into. Required only for Management-Group-Level deployments. | '6ycc9620-cb01-454f-9ebc-fc6b1df48d64' | -## | parametersRepository | '$(Build.Repository.Name)' | The respository with the parameter files. Defaults to the triggering repository. | 'Solutions' | -## | modulesRepository | '$(modulesRepository)' | The respository with the modules. | 'Components' | ## | azurePowerShellVersion | '$(azurePowerShellVersion)' | Used for configuring the Azure PowerShellModules Version, one of the example values. | 'latestVersion' or 'OtherVersion' | ## | preferredAzurePowerShellVersion | '$(preferredAzurePowerShellVersion)' | Used for configuring the Azure PowerShellModules Version, either an empty string or the specific version. | '4.4.0' | ## |============================================================================================================================================================================================================================================| @@ -52,19 +49,16 @@ parameters: poolName: '$(poolName)' vmImage: '$(vmImage)' defaultJobTimeoutInMinutes: 120 - checkoutRepositories: '' # Logic-related parameters removeDeployment: false templateFilePath: '' customParameterFileTokens: '' modulePath: '$(modulePath)' - customParametersFolderPath: '' + customParametersPath: '' location: '$(location)' resourceGroupName: '$(resourceGroupName)' subscriptionId: '$(ARM_SUBSCRIPTION_ID)' managementGroupId: '$(ARM_MGMTGROUP_ID)' - parametersRepository: '$(Build.Repository.Name)' - modulesRepository: '$(modulesRepository)' # Azure PowerShell Version parameters azurePowerShellVersion: '$(azurePowerShellVersion)' preferredAzurePowerShellVersion: '$(preferredAzurePowerShellVersion)' @@ -74,9 +68,9 @@ parameters: ##---------------------------------------------## jobs: - template: /.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml - ${{ if ne(parameters.customParametersFolderPath, '') }}: + ${{ if ne(parameters.customParametersPath, '') }}: parameters: - modulePath: '${{ parameters.customParametersFolderPath }}' + modulePath: '${{ parameters.customParametersPath }}' - job: deploy displayName: 'Deploying ' # Auto-populated timeoutInMinutes: ${{ parameters.defaultJobTimeoutInMinutes }} @@ -148,8 +142,8 @@ jobs: return } - if(-not [String]::IsNullOrEmpty('${{ parameters.customParametersFolderPath }}')) { - $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.customParametersFolderPath }}' '$(parameterFilePath)' + if(-not [String]::IsNullOrEmpty('${{ parameters.customParametersPath }}')) { + $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.customParametersPath }}' '$(parameterFilePath)' } else { $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' } @@ -217,8 +211,8 @@ jobs: $moduleTemplateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' - if(-not [String]::IsNullOrEmpty('${{ parameters.customParametersFolderPath }}')) { - $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.customParametersFolderPath }}' '$(parameterFilePath)' + if(-not [String]::IsNullOrEmpty('${{ parameters.customParametersPath }}')) { + $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.customParametersPath }}' '$(parameterFilePath)' } else { $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' } @@ -312,8 +306,8 @@ jobs: $moduleTemplateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' - if(-not [String]::IsNullOrEmpty('${{ parameters.customParametersFolderPath }}')) { - $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.customParametersFolderPath }}' '$(parameterFilePath)' + if(-not [String]::IsNullOrEmpty('${{ parameters.customParametersPath }}')) { + $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.customParametersPath }}' '$(parameterFilePath)' } else { $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' } From 5adba5ced97157f4d6f1b2e8dfa9eed0fd2af0d5 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 16 Jul 2022 08:50:14 +0200 Subject: [PATCH 143/274] Minor refactoring --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 72921633ae..63b4a01e90 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -54,7 +54,6 @@ parameters: templateFilePath: '' customParameterFileTokens: '' modulePath: '$(modulePath)' - customParametersPath: '' location: '$(location)' resourceGroupName: '$(resourceGroupName)' subscriptionId: '$(ARM_SUBSCRIPTION_ID)' @@ -68,9 +67,6 @@ parameters: ##---------------------------------------------## jobs: - template: /.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml - ${{ if ne(parameters.customParametersPath, '') }}: - parameters: - modulePath: '${{ parameters.customParametersPath }}' - job: deploy displayName: 'Deploying ' # Auto-populated timeoutInMinutes: ${{ parameters.defaultJobTimeoutInMinutes }} From 6cd94d1e1e5127c7f6330ca9262c115ddae1e74b Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 16 Jul 2022 09:00:51 +0200 Subject: [PATCH 144/274] Removed modulePath param from dependency pipeline --- .../jobs.dependenciesModuleDeployment.yml | 23 ++++++------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml index 502dc77519..9b7a450e3d 100644 --- a/.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml @@ -28,7 +28,6 @@ ## | poolName | '$(poolName)' | You can provide either a [poolname] or [vmImage] to run the job on | 'Custom Deployment Pool' | ## | vmImage | '$(vmImage)' | You can provide either a [poolname] or [vmImage] to run the job on | 'ubuntu20.04' | ## | defaultJobTimeoutInMinutes | 120 | The timeout for the job in this pipeline | 120 | -## | modulePath | '$(modulePath)' | The path to the module to deploy. E.g. [c:/KeyVault] | 'c:/KeyVault' | ## | deploymentBlocks | | The parameter file(s) to deploy with. Must be provided | path: 'C:/parameters.json' | ## | location | '$(location)' | The location to deploy with | 'EastUs2' | ## | resourceGroupName | '$(resourceGroupName)' | The resourcegroup to deploy into. Required only for Resource-Group-Level deployments | 'validation-rg' | @@ -48,7 +47,6 @@ parameters: defaultJobTimeoutInMinutes: 120 dependsOn: [] # Logic-related parameters - modulePath: '$(modulePath)' deploymentBlocks: '' location: '$(location)' resourceGroupName: '$(resourceGroupName)' @@ -65,11 +63,7 @@ parameters: jobs: - ${{ each deploymentBlock in parameters.deploymentBlocks }}: - job: ${{ deploymentBlock.jobName }} - - ${{ if ne( deploymentBlock.displayName, '') }}: - displayName: ${{ deploymentBlock.displayName }} - ${{ if eq( deploymentBlock.displayName, '') }}: - displayName: Deploy with [${{ replace( deploymentBlock.path, '$(modulePath)', '') }}] + displayName: ${{ deploymentBlock.displayName }} timeoutInMinutes: ${{ parameters.defaultJobTimeoutInMinutes }} ${{ if ne( parameters.dependsOn, '') }}: dependsOn: ${{ parameters.dependsOn }} @@ -124,7 +118,7 @@ jobs: # Construct Token Function Input $ConvertTokensInputs = @{ Tokens = @{} - FilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '${{ deploymentBlock.path }}' + FilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.modulePath }}' '${{ deploymentBlock.path }}' TokenPrefix = $Settings.parameterFileTokens.tokenPrefix TokenSuffix = $Settings.parameterFileTokens.tokenSuffix } @@ -176,7 +170,8 @@ jobs: # INVOKE TEST # # ----------- # $functionInput = @{ - templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '${{ deploymentBlock.templateFilePath }}' + templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ deploymentBlock.templateFilePath }}' + parameterFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ deploymentBlock.path }}' location = '${{ parameters.location }}' resourceGroupName = '${{ parameters.resourceGroupName }}' subscriptionId = '${{ parameters.subscriptionId }}' @@ -184,9 +179,7 @@ jobs: additionalParameters = @{} } - if(-not [String]::IsNullOrEmpty('${{ deploymentBlock.path }}')) { - $functionInput['parameterFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '${{ deploymentBlock.path }}' - } + $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { @@ -219,7 +212,8 @@ jobs: # INVOKE DEPLOYMENT # # ----------------- # $functionInput = @{ - templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '${{ deploymentBlock.templateFilePath }}' + templateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ deploymentBlock.templateFilePath }}' + parameterFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ deploymentBlock.path }}' location = '${{ parameters.location }}' resourceGroupName = '${{ parameters.resourceGroupName }}' subscriptionId = '${{ parameters.subscriptionId }}' @@ -228,9 +222,6 @@ jobs: additionalParameters = @{} } - if(-not [String]::IsNullOrEmpty('${{ deploymentBlock.path }}')) { - $functionInput['parameterFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '${{ deploymentBlock.path }}' - } $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { From e71a51ea74a93b4123bcfb6c60fe92275a20bf6c Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 16 Jul 2022 09:12:40 +0200 Subject: [PATCH 145/274] Cleanup --- .../jobs.dependenciesModuleDeployment.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml index 9b7a450e3d..e2455703dd 100644 --- a/.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.dependenciesModuleDeployment.yml @@ -29,8 +29,8 @@ ## | vmImage | '$(vmImage)' | You can provide either a [poolname] or [vmImage] to run the job on | 'ubuntu20.04' | ## | defaultJobTimeoutInMinutes | 120 | The timeout for the job in this pipeline | 120 | ## | deploymentBlocks | | The parameter file(s) to deploy with. Must be provided | path: 'C:/parameters.json' | -## | location | '$(location)' | The location to deploy with | 'EastUs2' | -## | resourceGroupName | '$(resourceGroupName)' | The resourcegroup to deploy into. Required only for Resource-Group-Level deployments | 'validation-rg' | +## | location | '$(location)' | The location to deploy with | 'EastUs2' | +## | resourceGroupName | '$(resourceGroupName)' | The resourcegroup to deploy into. Required only for Resource-Group-Level deployments | 'validation-rg' | ## | subscriptionId | '$(ARM_SUBSCRIPTION_ID)' | The id of the subscription to deploy into when using a Management group service connection | 'aed7c000-6387-412e-bed0-24dfddf4bbc6' | ## | managementGroupId | '$(ARM_MGMTGROUP_ID)' | The id of the management group to deploy into. Required only for Management-Group-Level deployments | '6ycc9620-cb01-454f-9ebc-fc6b1df48d64' | ## | azurePowerShellVersion | '$(azurePowerShellVersion)' | Used for configuring the Azure PowerShellModules Version, one of the example values. | 'latestVersion' or 'OtherVersion' | @@ -179,8 +179,6 @@ jobs: additionalParameters = @{} } - - $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { $functionInput['additionalParameters'] += @{ @@ -222,7 +220,6 @@ jobs: additionalParameters = @{} } - $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { $functionInput['additionalParameters'] += @{ From 8429eb197b941dd32284012e6c7a85fc1c500df2 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 16 Jul 2022 09:16:21 +0200 Subject: [PATCH 146/274] Cleanup --- .azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml | 4 +--- global.variables.yml | 1 - utilities/pipelines/sharedScripts/Get-ModuleTestFileList.ps1 | 2 +- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml b/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml index 752f515ba5..15e227b1fe 100644 --- a/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml +++ b/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml @@ -5,7 +5,6 @@ parameters: # Logic-related parameters modulePath: '$(modulePath)' - testFilesFolderName: '$(testFilesFolderName)' ##---------------------------------------------## ## TEMPLATE LOGIC ## @@ -30,8 +29,7 @@ jobs: . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'sharedScripts' 'Get-ModuleTestFileList.ps1') $functionInput = @{ - ModulePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.modulePath }}' - SearchFolder = '${{ parameters.testFilesFolderName }}' + ModulePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.modulePath }}' } Write-Verbose "Invoke task with" -Verbose diff --git a/global.variables.yml b/global.variables.yml index 211d2f4f1e..30bdb1e088 100644 --- a/global.variables.yml +++ b/global.variables.yml @@ -8,7 +8,6 @@ variables: ###################################### moduleTestFilePath: 'utilities/pipelines/staticValidation/module.tests.ps1' - testFilesFolderName: .test ###################################### # Validation deployment settings diff --git a/utilities/pipelines/sharedScripts/Get-ModuleTestFileList.ps1 b/utilities/pipelines/sharedScripts/Get-ModuleTestFileList.ps1 index c1272ab85a..af1ddc40e2 100644 --- a/utilities/pipelines/sharedScripts/Get-ModuleTestFileList.ps1 +++ b/utilities/pipelines/sharedScripts/Get-ModuleTestFileList.ps1 @@ -15,7 +15,7 @@ Optional. The folder to search for files in .EXAMPLE Get-ModuleTestFileList -ModulePath 'C:\ResourceModules\arm\Microsoft.Compute\virtualMachines' -Returns the relative file paths of all parameter files of the virtual machines module in folder $SearchFolder. +Returns the relative file paths of all parameter files of the virtual machines module in folder '.test'. .EXAMPLE Get-ModuleTestFileList -ModulePath 'C:\ResourceModules\arm\Microsoft.Compute\virtualMachines' -SearchFolder 'parameters' From 6834615e73185e00a936c2981cc15ccb4a479176 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 16 Jul 2022 09:32:25 +0200 Subject: [PATCH 147/274] Updated naming --- utilities/tools/Test-ModuleLocally.ps1 | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/utilities/tools/Test-ModuleLocally.ps1 b/utilities/tools/Test-ModuleLocally.ps1 index 17cf46a327..fa832b0006 100644 --- a/utilities/tools/Test-ModuleLocally.ps1 +++ b/utilities/tools/Test-ModuleLocally.ps1 @@ -74,7 +74,7 @@ $TestModuleLocallyInput = @{ } Test-ModuleLocally @TestModuleLocallyInput -Verbose -Run all Pesters test for a given template and a Test-Az*Deployment using each parameter file in the module's parameter folder in combination with the template and the provided tokens +Run all Pesters test for a given template and a Test-Az*Deployment using each test file in the module's test folder in combination with the template and the provided tokens .EXAMPLE @@ -171,7 +171,7 @@ function Test-ModuleLocally { Invoke-Pester -Configuration @{ Run = @{ Container = New-PesterContainer -Path (Join-Path $repoRootPath $moduleTestFilePath) -Data @{ - repoRootPath = $repoRootPath + repoRootPath = $repoRootPath moduleFolderPaths = Split-Path $TemplateFilePath -Parent enforcedTokenList = $enforcedTokenList } @@ -274,9 +274,9 @@ function Test-ModuleLocally { if ($ValidationTest) { # Loop through test parameter files if ($moduleTestFiles) { - foreach ($paramFilePath in $moduleTestFiles) { - Write-Verbose ('Validating module [{0}] with parameter file [{1}]' -f $ModuleName, (Split-Path $paramFilePath -Leaf)) -Verbose - Test-TemplateDeployment @functionInput -ParameterFilePath $paramFilePath + foreach ($moduleTestFile in $moduleTestFiles) { + Write-Verbose ('Validating module [{0}] with parameter file [{1}]' -f $ModuleName, (Split-Path $moduleTestFile -Leaf)) -Verbose + Test-TemplateDeployment @functionInput -ParameterFilePath $moduleTestFile } } else { Test-TemplateDeployment @functionInput @@ -291,10 +291,10 @@ function Test-ModuleLocally { # Loop through test parameter files if ($moduleTestFiles) { - foreach ($paramFilePath in $moduleTestFiles) { - Write-Verbose ('Deploy module [{0}] with parameter file [{1}]' -f $ModuleName, (Split-Path $paramFilePath -Leaf)) -Verbose - if ($PSCmdlet.ShouldProcess(('Module [{0}] with parameter file [{1}]' -f $ModuleName, (Split-Path $paramFilePath -Leaf)), 'Deploy')) { - New-TemplateDeployment @functionInput -ParameterFilePath $paramFilePath + foreach ($moduleTestFile in $moduleTestFiles) { + Write-Verbose ('Deploy module [{0}] with parameter file [{1}]' -f $ModuleName, (Split-Path $moduleTestFile -Leaf)) -Verbose + if ($PSCmdlet.ShouldProcess(('Module [{0}] with parameter file [{1}]' -f $ModuleName, (Split-Path $moduleTestFile -Leaf)), 'Deploy')) { + New-TemplateDeployment @functionInput -ParameterFilePath $moduleTestFile } } } else { From 1ef763cc64c5b175ab30370d01179262140750ea Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Mon, 18 Jul 2022 17:57:28 +0200 Subject: [PATCH 148/274] Update jobs.validateModuleDeployment.yml --- .../jobs.validateModuleDeployment.yml | 123 +++++++++--------- 1 file changed, 61 insertions(+), 62 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 63b4a01e90..13b6fc7a44 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -117,69 +117,68 @@ jobs: # [Agent] Replace tokens #----------------------- - - ${{ if not(contains( parameters.templateFilePath, '.dependencies')) }}: - - task: AzurePowerShell@5 - displayName: 'Replace Tokens [$(parameterFilePath)] via connection [${{ parameters.serviceConnection }}]' - inputs: - azureSubscription: ${{ parameters.serviceConnection }} - azurePowerShellVersion: 'latestVersion' - preferredAzurePowerShellVersion: '' - ScriptType: InlineScript - pwsh: true - inline: | - # Load used functions - . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') - - # Load Settings File - $Settings = Get-Content -Path (Join-Path '$(System.DefaultWorkingDirectory)' 'settings.json') | ConvertFrom-Json -AsHashTable - - if((Split-Path '$(parameterFilePath)' -Extension) -ne '.json') { - Write-Verbose 'Skipping token replacement as the deployment test file is no JSON-Parameter file' -Verbose - return + - task: AzurePowerShell@5 + displayName: 'Replace Tokens [$(parameterFilePath)] via connection [${{ parameters.serviceConnection }}]' + inputs: + azureSubscription: ${{ parameters.serviceConnection }} + azurePowerShellVersion: 'latestVersion' + preferredAzurePowerShellVersion: '' + ScriptType: InlineScript + pwsh: true + inline: | + # Load used functions + . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') + + # Load Settings File + $Settings = Get-Content -Path (Join-Path '$(System.DefaultWorkingDirectory)' 'settings.json') | ConvertFrom-Json -AsHashTable + + if((Split-Path '$(parameterFilePath)' -Extension) -ne '.json') { + Write-Verbose 'Skipping token replacement as the deployment test file is no JSON-Parameter file' -Verbose + return + } + + if(-not [String]::IsNullOrEmpty('${{ parameters.customParametersPath }}')) { + $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.customParametersPath }}' '$(parameterFilePath)' + } else { + $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' + } + + # Construct Token Function Input + $ConvertTokensInputs = @{ + Tokens = @{} + FilePath = $moduleTestFilePath + TokenPrefix = $Settings.parameterFileTokens.tokenPrefix + TokenSuffix = $Settings.parameterFileTokens.tokenSuffix + } + + # Add defaults + $ConvertTokensInputs.Tokens += @{ + resourceGroupName = '${{ parameters.resourceGroupName }}' + subscriptionId = '${{ parameters.subscriptionId }}' + managementGroupId = '${{ parameters.managementGroupId }}' + tenantId = '$(ARM_TENANT_ID)' + deploymentSpId = '$(DEPLOYMENT_SP_ID)' + } + + # Add local tokens + if ($Settings.parameterFileTokens.localTokens) { + $tokenMap = @{} + foreach ($token in $Settings.parameterFileTokens.localTokens) { + $tokenMap += @{ $token.name = $token.value } } - - if(-not [String]::IsNullOrEmpty('${{ parameters.customParametersPath }}')) { - $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.customParametersPath }}' '$(parameterFilePath)' - } else { - $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' - } - - # Construct Token Function Input - $ConvertTokensInputs = @{ - Tokens = @{} - FilePath = $moduleTestFilePath - TokenPrefix = $Settings.parameterFileTokens.tokenPrefix - TokenSuffix = $Settings.parameterFileTokens.tokenSuffix - } - - # Add defaults - $ConvertTokensInputs.Tokens += @{ - resourceGroupName = '${{ parameters.resourceGroupName }}' - subscriptionId = '${{ parameters.subscriptionId }}' - managementGroupId = '${{ parameters.managementGroupId }}' - tenantId = '$(ARM_TENANT_ID)' - deploymentSpId = '$(DEPLOYMENT_SP_ID)' - } - - # Add local tokens - if ($Settings.parameterFileTokens.localTokens) { - $tokenMap = @{} - foreach ($token in $Settings.parameterFileTokens.localTokens) { - $tokenMap += @{ $token.name = $token.value } - } - Write-Verbose ('Using local tokens [{0}]' -f ($tokenMap.Keys -join ', ')) -Verbose - $ConvertTokensInputs.Tokens += $tokenMap - } - - # Add custom tokens (passed in via the pipeline) - if(-not [String]::IsNullOrEmpty('${{ parameters.customParameterFileTokens }}')) { - $customTokens = '${{ parameters.customParameterFileTokens }}' | ConvertFrom-Json -AsHashTable - Write-Verbose ('Using custom parameter file tokens [{0}]' -f ($customTokens.Keys -join ', ')) -Verbose - $ConvertTokensInputs.Tokens += $customTokens - } - - # Invoke Token Replacement Functionality - $null = Convert-TokensInFile @ConvertTokensInputs + Write-Verbose ('Using local tokens [{0}]' -f ($tokenMap.Keys -join ', ')) -Verbose + $ConvertTokensInputs.Tokens += $tokenMap + } + + # Add custom tokens (passed in via the pipeline) + if(-not [String]::IsNullOrEmpty('${{ parameters.customParameterFileTokens }}')) { + $customTokens = '${{ parameters.customParameterFileTokens }}' | ConvertFrom-Json -AsHashTable + Write-Verbose ('Using custom parameter file tokens [{0}]' -f ($customTokens.Keys -join ', ')) -Verbose + $ConvertTokensInputs.Tokens += $customTokens + } + + # Invoke Token Replacement Functionality + $null = Convert-TokensInFile @ConvertTokensInputs # [Validation] task(s) #--------------------- From d8a36a17e05aac3a1b23b5b7bf1af192880b85dd Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 18 Jul 2022 20:00:21 +0200 Subject: [PATCH 149/274] Cleanup --- .../jobs.validateModuleDeployment.yml | 118 ++++++++---------- 1 file changed, 51 insertions(+), 67 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 13b6fc7a44..4a4856fb40 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -117,68 +117,62 @@ jobs: # [Agent] Replace tokens #----------------------- - - task: AzurePowerShell@5 - displayName: 'Replace Tokens [$(parameterFilePath)] via connection [${{ parameters.serviceConnection }}]' - inputs: - azureSubscription: ${{ parameters.serviceConnection }} - azurePowerShellVersion: 'latestVersion' - preferredAzurePowerShellVersion: '' - ScriptType: InlineScript - pwsh: true - inline: | - # Load used functions - . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') - - # Load Settings File - $Settings = Get-Content -Path (Join-Path '$(System.DefaultWorkingDirectory)' 'settings.json') | ConvertFrom-Json -AsHashTable - - if((Split-Path '$(parameterFilePath)' -Extension) -ne '.json') { - Write-Verbose 'Skipping token replacement as the deployment test file is no JSON-Parameter file' -Verbose - return - } + - task: AzurePowerShell@5 + displayName: 'Replace Tokens [$(parameterFilePath)] via connection [${{ parameters.serviceConnection }}]' + inputs: + azureSubscription: ${{ parameters.serviceConnection }} + azurePowerShellVersion: 'latestVersion' + preferredAzurePowerShellVersion: '' + ScriptType: InlineScript + pwsh: true + inline: | + # Load used functions + . (Join-Path '$(System.DefaultWorkingDirectory)' 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') - if(-not [String]::IsNullOrEmpty('${{ parameters.customParametersPath }}')) { - $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.customParametersPath }}' '$(parameterFilePath)' - } else { - $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' - } + # Load Settings File + $Settings = Get-Content -Path (Join-Path '$(System.DefaultWorkingDirectory)' 'settings.json') | ConvertFrom-Json -AsHashTable - # Construct Token Function Input - $ConvertTokensInputs = @{ - Tokens = @{} - FilePath = $moduleTestFilePath - TokenPrefix = $Settings.parameterFileTokens.tokenPrefix - TokenSuffix = $Settings.parameterFileTokens.tokenSuffix - } + if((Split-Path '$(parameterFilePath)' -Extension) -ne '.json') { + Write-Verbose 'Skipping token replacement as the deployment test file is no JSON-Parameter file' -Verbose + return + } - # Add defaults - $ConvertTokensInputs.Tokens += @{ - resourceGroupName = '${{ parameters.resourceGroupName }}' - subscriptionId = '${{ parameters.subscriptionId }}' - managementGroupId = '${{ parameters.managementGroupId }}' - tenantId = '$(ARM_TENANT_ID)' - deploymentSpId = '$(DEPLOYMENT_SP_ID)' - } + # Construct Token Function Input + $ConvertTokensInputs = @{ + Tokens = @{} + FilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' + TokenPrefix = $Settings.parameterFileTokens.tokenPrefix + TokenSuffix = $Settings.parameterFileTokens.tokenSuffix + } - # Add local tokens - if ($Settings.parameterFileTokens.localTokens) { - $tokenMap = @{} - foreach ($token in $Settings.parameterFileTokens.localTokens) { - $tokenMap += @{ $token.name = $token.value } - } - Write-Verbose ('Using local tokens [{0}]' -f ($tokenMap.Keys -join ', ')) -Verbose - $ConvertTokensInputs.Tokens += $tokenMap - } + # Add defaults + $ConvertTokensInputs.Tokens += @{ + resourceGroupName = '${{ parameters.resourceGroupName }}' + subscriptionId = '${{ parameters.subscriptionId }}' + managementGroupId = '${{ parameters.managementGroupId }}' + tenantId = '$(ARM_TENANT_ID)' + deploymentSpId = '$(DEPLOYMENT_SP_ID)' + } - # Add custom tokens (passed in via the pipeline) - if(-not [String]::IsNullOrEmpty('${{ parameters.customParameterFileTokens }}')) { - $customTokens = '${{ parameters.customParameterFileTokens }}' | ConvertFrom-Json -AsHashTable - Write-Verbose ('Using custom parameter file tokens [{0}]' -f ($customTokens.Keys -join ', ')) -Verbose - $ConvertTokensInputs.Tokens += $customTokens + # Add local tokens + if ($Settings.parameterFileTokens.localTokens) { + $tokenMap = @{} + foreach ($token in $Settings.parameterFileTokens.localTokens) { + $tokenMap += @{ $token.name = $token.value } } + Write-Verbose ('Using local tokens [{0}]' -f ($tokenMap.Keys -join ', ')) -Verbose + $ConvertTokensInputs.Tokens += $tokenMap + } + + # Add custom tokens (passed in via the pipeline) + if(-not [String]::IsNullOrEmpty('${{ parameters.customParameterFileTokens }}')) { + $customTokens = '${{ parameters.customParameterFileTokens }}' | ConvertFrom-Json -AsHashTable + Write-Verbose ('Using custom parameter file tokens [{0}]' -f ($customTokens.Keys -join ', ')) -Verbose + $ConvertTokensInputs.Tokens += $customTokens + } - # Invoke Token Replacement Functionality - $null = Convert-TokensInFile @ConvertTokensInputs + # Invoke Token Replacement Functionality + $null = Convert-TokensInFile @ConvertTokensInputs # [Validation] task(s) #--------------------- @@ -205,12 +199,7 @@ jobs: $managementGroupId = '${{ parameters.managementGroupId }}' $moduleTemplateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' - - if(-not [String]::IsNullOrEmpty('${{ parameters.customParametersPath }}')) { - $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.customParametersPath }}' '$(parameterFilePath)' - } else { - $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' - } + $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' if ((Split-Path $moduleTemplateFilePath -Extension) -eq '.bicep') { $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable @@ -300,12 +289,7 @@ jobs: $managementGroupId = '${{ parameters.managementGroupId }}' $moduleTemplateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' - - if(-not [String]::IsNullOrEmpty('${{ parameters.customParametersPath }}')) { - $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.customParametersPath }}' '$(parameterFilePath)' - } else { - $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' - } + $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(parameterFilePath)' if ((Split-Path $moduleTemplateFilePath -Extension) -eq '.bicep') { $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable From bf77e4a0fa225977a8959d3fa35ba4323f3fed30 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Thu, 21 Jul 2022 18:32:19 +0200 Subject: [PATCH 150/274] Update to latest --- .../sharedScripts/Get-ModuleTestFileList.ps1 | 6 +- utilities/tools/Set-ModuleReadMe.ps1 | 960 +++++++++--------- 2 files changed, 483 insertions(+), 483 deletions(-) diff --git a/utilities/pipelines/sharedScripts/Get-ModuleTestFileList.ps1 b/utilities/pipelines/sharedScripts/Get-ModuleTestFileList.ps1 index af1ddc40e2..80454ccd58 100644 --- a/utilities/pipelines/sharedScripts/Get-ModuleTestFileList.ps1 +++ b/utilities/pipelines/sharedScripts/Get-ModuleTestFileList.ps1 @@ -1,9 +1,9 @@ <# .SYNOPSIS -Get the relative file paths of all parameter files in the given module. +Get the relative file paths of all test files in the given module. .DESCRIPTION -Get the relative file paths of all parameter files in the given module. +Get the relative file paths of all test files (*.json / deploy.test.bicep) in the given module. The relative path is returned instead of the full one to make paths easier to read in the pipeline. .PARAMETER ModulePath @@ -35,7 +35,7 @@ function Get-ModuleTestFileList { $deploymentTests = @() if (Test-Path (Join-Path $ModulePath $SearchFolder)) { - $deploymentTests += (Get-ChildItem -Path (Join-Path $ModulePath $SearchFolder) -Depth 0 -Include ('*.json', '*.bicep') -File).FullName + $deploymentTests += (Get-ChildItem -Path (Join-Path $ModulePath $SearchFolder) -Recurse -Include ('*.json', 'deploy.test.bicep') -File).FullName } if (-not $deploymentTests) { diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index c21731b519..219c0319c4 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -188,48 +188,53 @@ function Set-ParametersSection { # Add external single quotes to all default values of type string except for those using functions $defaultValue = ($parameter.defaultValue -is [array]) ? ('[{0}]' -f (($parameter.defaultValue | Sort-Object) -join ', ')) : (($parameter.defaultValue -is [hashtable]) ? '{object}' : (($parameter.defaultValue -is [string]) -and ($parameter.defaultValue -notmatch '\[\w+\(.*\).*\]') ? '''' + $parameter.defaultValue + '''' : $parameter.defaultValue)) - } + $description = $parameter.metadata.description.Replace("`r`n", '

').Replace("`n", '

') + $allowedValue = ($parameter.allowedValues -is [array]) ? ('[{0}]' -f (($parameter.allowedValues | Sort-Object) -join ', ')) : (($parameter.allowedValues -is [hashtable]) ? '{object}' : $parameter.allowedValues) + # Further, replace all "empty string" default values with actual visible quotes + if ([regex]::Match($allowedValue, '^(\[\s*,.+)|(\[.+,\s*,)|(.+,\s*\])$').Captures.Count -gt 0) { + $allowedValue = $allowedValue -replace '\[\s*,', "[''," -replace ',\s*,', ", ''," -replace ',\s*\]', ", '']" + } - # Update parameter table content based on parameter category - ## Remove category from parameter description - $description = $description.substring("$category. ".Length) - $defaultValueColumnValue = ($hasDefault ? (-not [String]::IsNullOrEmpty($defaultValue) ? "``$defaultValue`` | " : ' | ') : '') - $allowedValueColumnValue = ($hasAllowed ? (-not [String]::IsNullOrEmpty($allowedValue) ? "``$allowedValue`` | " : ' | ') : '') - $newSectionContent += ('| `{0}` | {1} | {2}{3}{4} |' -f $parameter.name, $type, $defaultValueColumnValue, $allowedValueColumnValue, $description) + # Update parameter table content based on parameter category + ## Remove category from parameter description + $description = $description.substring("$category. ".Length) + $defaultValueColumnValue = ($hasDefault ? (-not [String]::IsNullOrEmpty($defaultValue) ? "``$defaultValue`` | " : ' | ') : '') + $allowedValueColumnValue = ($hasAllowed ? (-not [String]::IsNullOrEmpty($allowedValue) ? "``$allowedValue`` | " : ' | ') : '') + $newSectionContent += ('| `{0}` | {1} | {2}{3}{4} |' -f $parameter.name, $type, $defaultValueColumnValue, $allowedValueColumnValue, $description) + } + $newSectionContent += '' } - $newSectionContent += '' -} -# Build result -if ($PSCmdlet.ShouldProcess('Original file with new parameters content', 'Merge')) { - $updatedFileContent = Merge-FileWithNewContent -oldContent $ReadMeFileContent -newContent $newSectionContent -SectionStartIdentifier $SectionStartIdentifier -contentType 'none' -} + # Build result + if ($PSCmdlet.ShouldProcess('Original file with new parameters content', 'Merge')) { + $updatedFileContent = Merge-FileWithNewContent -oldContent $ReadMeFileContent -newContent $newSectionContent -SectionStartIdentifier $SectionStartIdentifier -contentType 'none' + } -# Build sub-section 'ParameterUsage' -if (Test-Path (Join-Path $PSScriptRoot 'moduleReadMeSource')) { - if ($resourceUsageSourceFiles = Get-ChildItem (Join-Path $PSScriptRoot 'moduleReadMeSource') -Recurse -Filter 'resourceUsage-*') { - foreach ($sourceFile in $resourceUsageSourceFiles.FullName) { - $parameterName = (Split-Path $sourceFile -LeafBase).Replace('resourceUsage-', '') - if ($templateFileContent.parameters.Keys -contains $parameterName) { - $subSectionStartIdentifier = '### Parameter Usage: `{0}`' -f $ParameterName - - # Build result - $updateParameterUsageInputObject = @{ - OldContent = $updatedFileContent - NewContent = (Get-Content $sourceFile -Raw).Trim() - SectionStartIdentifier = $subSectionStartIdentifier - ParentStartIdentifier = $SectionStartIdentifier - ContentType = 'none' - } - if ($PSCmdlet.ShouldProcess(('Original file with new parameter usage [{0}] content' -f $parameterName), 'Merge')) { - $updatedFileContent = Merge-FileWithNewContent @updateParameterUsageInputObject + # Build sub-section 'ParameterUsage' + if (Test-Path (Join-Path $PSScriptRoot 'moduleReadMeSource')) { + if ($resourceUsageSourceFiles = Get-ChildItem (Join-Path $PSScriptRoot 'moduleReadMeSource') -Recurse -Filter 'resourceUsage-*') { + foreach ($sourceFile in $resourceUsageSourceFiles.FullName) { + $parameterName = (Split-Path $sourceFile -LeafBase).Replace('resourceUsage-', '') + if ($templateFileContent.parameters.Keys -contains $parameterName) { + $subSectionStartIdentifier = '### Parameter Usage: `{0}`' -f $ParameterName + + # Build result + $updateParameterUsageInputObject = @{ + OldContent = $updatedFileContent + NewContent = (Get-Content $sourceFile -Raw).Trim() + SectionStartIdentifier = $subSectionStartIdentifier + ParentStartIdentifier = $SectionStartIdentifier + ContentType = 'none' + } + if ($PSCmdlet.ShouldProcess(('Original file with new parameter usage [{0}] content' -f $parameterName), 'Merge')) { + $updatedFileContent = Merge-FileWithNewContent @updateParameterUsageInputObject + } } } } } -} -return $updatedFileContent + return $updatedFileContent } <# @@ -300,589 +305,584 @@ function Set-OutputsSection { <# .SYNOPSIS -Generate 'Deployment examples' for the ReadMe out of the parameter files currently used to test the template +Add comments to indicate required & non-required parameters to the given Bicep example .DESCRIPTION -Generate 'Deployment examples' for the ReadMe out of the parameter files currently used to test the template - -.PARAMETER TemplateFilePath -Mandatory. The path to the template file - -.PARAMETER TemplateFileContent -Mandatory. The template file content object to crawl data from +Add comments to indicate required & non-required parameters to the given Bicep example. +'Required' is only added if the example has at least one required parameter +'Non-Required' is only added if the example has at least one required parameter and at least one non-required parameter -.PARAMETER ReadMeFileContent -Mandatory. The readme file content array to update +.PARAMETER BicepParams +Mandatory. The Bicep parameter block to add the comments to (i.e., should contain everything in between the brackets of a 'params: {...} block) -.PARAMETER SectionStartIdentifier -Optional. The identifier of the 'outputs' section. Defaults to '## Deployment examples' - -.PARAMETER addJson -Optional. A switch to control whether or not to add a ARM-JSON-Parameter file example. Defaults to true. +.PARAMETER AllParametersList +Mandatory. A list of all top-level (i.e. non-nested) parameter names -.PARAMETER addBicep -Optional. A switch to control whether or not to add a Bicep deployment example. Defaults to true. +.PARAMETER RequiredParametersList +Mandatory. A list of all required top-level (i.e. non-nested) parameter names .EXAMPLE -Set-DeploymentExamplesSection -TemplateFilePath 'C:/deploy.bicep' -TemplateFileContent @{ resource = @{}; ... } -ReadMeFileContent @('# Title', '', '## Section 1', ...) +Add-BicepParameterTypeComment -AllParametersList @('name', 'lock') -RequiredParametersList @('name') -BicepParams "name: 'carml'\nlock: 'CanNotDelete'" -Update the given readme file's 'Deployment Examples' section based on the given template file content +Add type comments to given bicep params string, using one required parameter 'name'. Would return: + +' + // Required parameters + name: 'carml' + // Non-required parameters + lock: 'CanNotDelete' +' #> -function Set-DeploymentExamplesSection { +function Add-BicepParameterTypeComment { - [CmdletBinding(SupportsShouldProcess)] + [CmdletBinding()] param ( [Parameter(Mandatory = $true)] - [string] $TemplateFilePath, - - [Parameter(Mandatory)] - [hashtable] $TemplateFileContent, - - [Parameter(Mandatory = $true)] - [object[]] $ReadMeFileContent, + [AllowEmptyString()] + [string] $BicepParams, [Parameter(Mandatory = $false)] - [bool] $addJson = $true, - - [Parameter(Mandatory = $false)] - [bool] $addBicep = $true, + [AllowEmptyCollection()] + [string[]] $AllParametersList = @(), [Parameter(Mandatory = $false)] - [string] $SectionStartIdentifier = '## Deployment examples' + [AllowEmptyCollection()] + [string[]] $RequiredParametersList = @() ) - # Load used function(s) - . (Join-Path $PSScriptRoot 'helper' 'ConvertTo-OrderedHashtable.ps1') + if ($RequiredParametersList.Count -ge 1 -and $AllParametersList.Count -ge 2) { - # Process content - $SectionContent = [System.Collections.ArrayList]@( - 'The following module usage examples are retrieved from the content of the files hosted in the module''s `.test` folder.', - ' >**Note**: The name of each example is based on the name of the file from which it is taken.', - ' >**Note**: Each example lists all the required parameters first, followed by the rest - each in alphabetical order.', - '' - ) + $BicepParamsArray = $BicepParams -split '\n' - $moduleRoot = Split-Path $TemplateFilePath -Parent - $resourceTypeIdentifier = $moduleRoot.Replace('\', '/').Split('/modules/')[1].TrimStart('/') - $resourceType = $resourceTypeIdentifier.Split('/')[1] - $parameterFiles = Get-ChildItem (Join-Path $moduleRoot '.test') -Filter '*parameters.json' -Recurse - - $requiredParameterNames = $TemplateFileContent.parameters.Keys | Where-Object { $TemplateFileContent.parameters[$_].Keys -notcontains 'defaultValue' } | Sort-Object + # [1/4] Check where the 'last' required parameter is located in the example (and what its indent is) + $parameterToSplitAt = $RequiredParametersList[-1] + $requiredParameterIndent = ([regex]::Match($BicepParamsArray[0], '^(\s+).*')).Captures.Groups[1].Value.Length - ############################ - ## Process test files ## - ############################ - $pathIndex = 1 - foreach ($testFilePath in $parameterFiles.FullName) { - $contentInJSONFormat = Get-Content -Path $testFilePath -Encoding 'utf8' | Out-String + # [2/4] Add a comment where the required parameters start + $BicepParamsArray = @('{0}// Required parameters' -f (' ' * $requiredParameterIndent)) + $BicepParamsArray[(0 .. ($BicepParamsArray.Count))] - $exampleTitle = ((Split-Path $testFilePath -LeafBase) -replace '\.', ' ') -replace ' parameters', '' - $TextInfo = (Get-Culture).TextInfo - $exampleTitle = $TextInfo.ToTitleCase($exampleTitle) - $SectionContent += @( - '

Example {0}: {1}

' -f $pathIndex, $exampleTitle - ) + # [3/4] Find the location if the last required parameter + $requiredParameterStartIndex = ($BicepParamsArray | Select-String ('^[\s]{0}{1}:.+' -f "{$requiredParameterIndent}", $parameterToSplitAt) | ForEach-Object { $_.LineNumber - 1 })[0] - if ($addBicep) { - $JSONParametersHashTable = (ConvertFrom-Json $contentInJSONFormat -AsHashtable -Depth 99).parameters - - # Handle KeyVaut references - $keyVaultReferences = $JSONParametersHashTable.Keys | Where-Object { $JSONParametersHashTable[$_].Keys -contains 'reference' } - - if ($keyVaultReferences.Count -gt 0) { - $keyVaultReferenceData = @() - foreach ($reference in $keyVaultReferences) { - $resourceIdElem = $JSONParametersHashTable[$reference].reference.keyVault.id -split '/' - $keyVaultReferenceData += @{ - subscriptionId = $resourceIdElem[2] - resourceGroupName = $resourceIdElem[4] - vaultName = $resourceIdElem[-1] - secretName = $JSONParametersHashTable[$reference].reference.secretName - parameterName = $reference - } - } + # [4/4] If we have more than only required parameters, let's add a corresponding comment + if ($AllParametersList.Count -gt $RequiredParametersList.Count) { + $nextLineIndent = ([regex]::Match($BicepParamsArray[$requiredParameterStartIndex + 1], '^(\s+).*')).Captures.Groups[1].Value.Length + if ($nextLineIndent -gt $requiredParameterIndent) { + # Case Param is object/array: Search in rest of array for the next closing bracket with the same indent - and then add the search index (1) & initial index (1) count back in + $requiredParameterEndIndex = ($BicepParamsArray[($requiredParameterStartIndex + 1)..($BicepParamsArray.Count)] | Select-String "^[\s]{$requiredParameterIndent}\S+" | ForEach-Object { $_.LineNumber - 1 })[0] + 1 + $requiredParameterStartIndex + } else { + # Case Param is single line bool/string/int: Add an index (1) for the 'required' comment + $requiredParameterEndIndex = $requiredParameterStartIndex } - $extendedKeyVaultReferences = @() - $counter = 0 - foreach ($reference in ($keyVaultReferenceData | Sort-Object -Property 'vaultName' -Unique)) { - $counter++ - $extendedKeyVaultReferences += @( - "resource kv$counter 'Microsoft.KeyVault/vaults@2019-09-01' existing = {", - (" name: '{0}'" -f $reference.vaultName), - (" scope: resourceGroup('{0}','{1}')" -f $reference.subscriptionId, $reference.resourceGroupName), - '}', - '' - ) + # Add a comment where the non-required parameters start + $BicepParamsArray = $BicepParamsArray[0..$requiredParameterEndIndex] + ('{0}// Non-required parameters' -f (' ' * $requiredParameterIndent)) + $BicepParamsArray[(($requiredParameterEndIndex + 1) .. ($BicepParamsArray.Count))] + } - # Add attribute for later correct reference - $keyVaultReferenceData | Where-Object { $_.vaultName -eq $reference.vaultName } | ForEach-Object { - $_['vaultResourceReference'] = "kv$counter" - } - } + return ($BicepParamsArray | Out-String).TrimEnd() + } - # Handle VALUE references (i.e. remove them) - $JSONParameters = (ConvertFrom-Json $contentInJSONFormat -Depth 99 -AsHashtable).parameters - $JSONParametersWithoutValue = @{} - foreach ($parameterName in $JSONParameters.Keys) { - if ($JSONParameters[$parameterName].Keys -eq 'value') { - $JSONParametersWithoutValue[$parameterName] = $JSONParameters[$parameterName]['value'] - } else { - # replace key vault references - $matchingTuple = $keyVaultReferenceData | Where-Object { $_.parameterName -eq $parameterName } - $JSONParametersWithoutValue[$parameterName] = "{0}.getSecret('{1}')" -f $matchingTuple.vaultResourceReference, $matchingTuple.secretName - } - } + return $BicepParams +} - # Order parameters recursively - $JSONParametersWithoutValue = ConvertTo-OrderedHashtable -JSONInputObject ($JSONParametersWithoutValue | ConvertTo-Json -Depth 99) +<# +.SYNOPSIS +Sort the given JSON paramters into required & non-required parameters, each sorted alphabetically - # Sort 'required' parameters to the front - $orderedJSONParameters = [ordered]@{} - $orderedTopLevelParameterNames = $JSONParametersWithoutValue.psbase.Keys # We must use PS-Base to handle conflicts of HashTable properties & keys (e.g. for a key 'keys'). - # Add required parameters first - $orderedTopLevelParameterNames | Where-Object { $_ -in $requiredParameterNames } | ForEach-Object { $orderedJSONParameters[$_] = $JSONParametersWithoutValue[$_] } - # Add rest after - $orderedTopLevelParameterNames | Where-Object { $_ -notin $requiredParameterNames } | ForEach-Object { $orderedJSONParameters[$_] = $JSONParametersWithoutValue[$_] } +.DESCRIPTION +Sort the given JSON paramters into required & non-required parameters, each sorted alphabetically - if ($orderedJSONParameters.count -eq 0) { - # Handle empty dictionaries (in case the parmaeter file was empty) - $orderedJSONParameters = @{} - } +.PARAMETER ParametersJSON +Mandatory. The JSON parameters block to process (ideally already without 'value' property) - $templateParameterObject = $orderedJSONParameters | ConvertTo-Json -Depth 99 - if ($templateParameterObject -ne '{}') { - $contentInBicepFormat = $templateParameterObject -replace '"', "'" # Update any [xyz: "xyz"] to [xyz: 'xyz'] - $contentInBicepFormat = $contentInBicepFormat -replace ',', '' # Update any [xyz: xyz,] to [xyz: xyz] - $contentInBicepFormat = $contentInBicepFormat -replace "'(\w+)':", '$1:' # Update any ['xyz': xyz] to [xyz: xyz] - $contentInBicepFormat = $contentInBicepFormat -replace "'(.+.getSecret\('.+'\))'", '$1' # Update any [xyz: 'xyz.GetSecret()'] to [xyz: xyz.GetSecret()] +.PARAMETER RequiredParametersList +Mandatory. A list of all required top-level (i.e. non-nested) parameter names - $bicepParamsArray = $contentInBicepFormat -split '\n' - $bicepParamsArray = $bicepParamsArray[1..($bicepParamsArray.count - 2)] - } +.EXAMPLE +Get-OrderedParametersJSON -RequiredParametersList @('name') -ParametersJSON '{ "diagnosticLogsRetentionInDays": 7,"lock": "CanNotDelete","name": "carml" }' - # Format params with indent - $bicepExample = $bicepParamsArray | ForEach-Object { " $_" } +Order the given JSON object alphabetically. Would result into: - # Optional: Add comment where required & optional parameters start - # ---------------------------------------------------------------- - if ($requiredParameterNames -is [string]) { - $requiredParameterNames = @($requiredParameterNames) - } +@{ + name: 'carml' + diagnosticLogsRetentionInDays: 7 + lock: 'CanNotDelete' +} +#> +function Get-OrderedParametersJSON { - # If we have at least one required and one other parameter we want to add a comment - if ($requiredParameterNames.Count -ge 1 -and $orderedJSONParameters.Keys.Count -ge 2) { + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string] $ParametersJSON, - $bicepExampleArray = $bicepExample -split '\n' + [Parameter(Mandatory = $false)] + [AllowEmptyCollection()] + [string[]] $RequiredParametersList = @() + ) - # Check where the 'last' required parameter is located in the example (and what its indent is) - $parameterToSplitAt = $requiredParameterNames[-1] - $requiredParameterIndent = ([regex]::Match($bicepExampleArray[0], '^(\s+).*')).Captures.Groups[1].Value.Length + # Load used function(s) + . (Join-Path $PSScriptRoot 'helper' 'ConvertTo-OrderedHashtable.ps1') - # Add a comment where the required parameters start - $bicepExampleArray = @('{0}// Required parameters' -f (' ' * $requiredParameterIndent)) + $bicepExampleArray[(0 .. ($bicepExampleArray.Count))] + # [1/3] Get all parameters from the parameter object and order them recursively + $orderedContentInJSONFormat = ConvertTo-OrderedHashtable -JSONInputObject $parametersJSON - # Find the location if the last required parameter - $requiredParameterStartIndex = ($bicepExampleArray | Select-String ('^[\s]{0}{1}:.+' -f "{$requiredParameterIndent}", $parameterToSplitAt) | ForEach-Object { $_.LineNumber - 1 })[0] + # [2/3] Sort 'required' parameters to the front + $orderedJSONParameters = [ordered]@{} + $orderedTopLevelParameterNames = $orderedContentInJSONFormat.psbase.Keys # We must use PS-Base to handle conflicts of HashTable properties & keys (e.g. for a key 'keys'). + # [2.1] Add required parameters first + $orderedTopLevelParameterNames | Where-Object { $_ -in $RequiredParametersList } | ForEach-Object { $orderedJSONParameters[$_] = $orderedContentInJSONFormat[$_] } + # [2.2] Add rest after + $orderedTopLevelParameterNames | Where-Object { $_ -notin $RequiredParametersList } | ForEach-Object { $orderedJSONParameters[$_] = $orderedContentInJSONFormat[$_] } - # If we have more than only required parameters, let's add a corresponding comment - if ($orderedJSONParameters.Keys.Count -gt $requiredParameterNames.Count) { - $nextLineIndent = ([regex]::Match($bicepExampleArray[$requiredParameterStartIndex + 1], '^(\s+).*')).Captures.Groups[1].Value.Length - if ($nextLineIndent -gt $requiredParameterIndent) { - # Case Param is object/array: Search in rest of array for the next closing bracket with the same indent - and then add the search index (1) & initial index (1) count back in - $requiredParameterEndIndex = ($bicepExampleArray[($requiredParameterStartIndex + 1)..($bicepExampleArray.Count)] | Select-String "^[\s]{$requiredParameterIndent}\S+" | ForEach-Object { $_.LineNumber - 1 })[0] + 1 + $requiredParameterStartIndex - } else { - # Case Param is single line bool/string/int: Add an index (1) for the 'required' comment - $requiredParameterEndIndex = $requiredParameterStartIndex - } + # [3/3] Handle empty dictionaries (in case the parmaeter file was empty) + if ($orderedJSONParameters.count -eq 0) { + $orderedJSONParameters = '' + } - # Add a comment where the non-required parameters start - $bicepExampleArray = $bicepExampleArray[0..$requiredParameterEndIndex] + ('{0}// Non-required parameters' -f (' ' * $requiredParameterIndent)) + $bicepExampleArray[(($requiredParameterEndIndex + 1) .. ($bicepExampleArray.Count))] - } + return $orderedJSONParameters +} - $bicepExample = $bicepExampleArray | Out-String - } +<# +.SYNOPSIS +Sort the given JSON parameters into a new JSON parameter object, all parameter sorted into required & non-required parameters, each sorted alphabetically - $SectionContent += @( - '', - '
' - '' - 'via Bicep module' - '' - '```bicep', - $extendedKeyVaultReferences, - "module $resourceType './$resourceTypeIdentifier/deploy.bicep' = {" - " name: '`${uniqueString(deployment().name)}-$resourceType'" - ' params: {' - $bicepExample.TrimEnd(), - ' }' - '}' - '```', - '', - '
' - '

' - ) - } +.DESCRIPTION +Sort the given JSON parameters into a new JSON parameter object, all parameter sorted into required & non-required parameters, each sorted alphabetically. +The location where required & non-required parameters start is highlighted with by a corresponding comment - if ($addJson) { - $orderedContentInJSONFormat = ConvertTo-OrderedHashtable -JSONInputObject (($contentInJSONFormat | ConvertFrom-Json).parameters | ConvertTo-Json -Depth 99) +.PARAMETER ParametersJSON +Mandatory. The parameter JSON object to process - # Sort 'required' parameters to the front - $orderedJSONParameters = [ordered]@{} - $orderedTopLevelParameterNames = $orderedContentInJSONFormat.psbase.Keys # We must use PS-Base to handle conflicts of HashTable properties & keys (e.g. for a key 'keys'). - # Add required parameters first - $orderedTopLevelParameterNames | Where-Object { $_ -in $requiredParameterNames } | ForEach-Object { $orderedJSONParameters[$_] = $orderedContentInJSONFormat[$_] } - # Add rest after - $orderedTopLevelParameterNames | Where-Object { $_ -notin $requiredParameterNames } | ForEach-Object { $orderedJSONParameters[$_] = $orderedContentInJSONFormat[$_] } +.PARAMETER RequiredParametersList +Mandatory. A list of all required top-level (i.e. non-nested) parameter names - if ($orderedJSONParameters.count -eq 0) { - # Handle empty dictionaries (in case the parmaeter file was empty) - $orderedJSONParameters = '' - } +.EXAMPLE +Build-OrderedJSONObject -RequiredParametersList @('name') -ParametersJSON '{ "lock": { "value": "CanNotDelete" }, "name": { "value": "carml" }, "diagnosticLogsRetentionInDays": { "value": 7 } }' + +Build a formatted Parameter-JSON object with one required parameter. Would result into: + +'{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + // Required parameters + "name": { + "value": "carml" + }, + // Non-required parameters + "diagnosticLogsRetentionInDays": { + "value": 7 + }, + "lock": { + "value": "CanNotDelete" + } + } +}' +#> +function Build-OrderedJSONObject { - $jsonExample = ([ordered]@{ - '$schema' = 'https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#' - contentVersion = '1.0.0.0' - parameters = (-not [String]::IsNullOrEmpty($orderedJSONParameters)) ? $orderedJSONParameters : @{} - } | ConvertTo-Json -Depth 99) + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string] $ParametersJSON, - # Optional: Add comment where required & optional parameters start - # ---------------------------------------------------------------- - if ($requiredParameterNames -is [string]) { - $requiredParameterNames = @($requiredParameterNames) - } + [Parameter(Mandatory = $false)] + [AllowEmptyCollection()] + [string[]] $RequiredParametersList = @() + ) - # If we have at least one required and one other parameter we want to add a comment - if ($requiredParameterNames.Count -ge 1 -and $orderedJSONParameters.Keys.Count -ge 2) { + # [1/9] Sort parameter alphabetically + $orderedJSONParameters = Get-OrderedParametersJSON -ParametersJSON $ParametersJSON -RequiredParametersList $RequiredParametersList - $jsonExampleArray = $jsonExample -split '\n' + # [2/9] Build the ordered parameter file syntax back up + $jsonExample = ([ordered]@{ + '$schema' = 'https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#' + contentVersion = '1.0.0.0' + parameters = (-not [String]::IsNullOrEmpty($orderedJSONParameters)) ? $orderedJSONParameters : @{} + } | ConvertTo-Json -Depth 99) - # Check where the 'last' required parameter is located in the example (and what its indent is) - $parameterToSplitAt = $requiredParameterNames[-1] - $parameterStartIndex = ($jsonExampleArray | Select-String '.*"parameters": \{.*' | ForEach-Object { $_.LineNumber - 1 })[0] - $requiredParameterIndent = ([regex]::Match($jsonExampleArray[($parameterStartIndex + 1)], '^(\s+).*')).Captures.Groups[1].Value.Length + # [3/8] If we have at least one required and one other parameter we want to add a comment + if ($RequiredParametersList.Count -ge 1 -and $OrderedJSONParameters.Keys.Count -ge 2) { - # Add a comment where the required parameters start - $jsonExampleArray = $jsonExampleArray[0..$parameterStartIndex] + ('{0}// Required parameters' -f (' ' * $requiredParameterIndent)) + $jsonExampleArray[(($parameterStartIndex + 1) .. ($jsonExampleArray.Count))] + $jsonExampleArray = $jsonExample -split '\n' - # Find the location if the last required parameter - $requiredParameterStartIndex = ($jsonExampleArray | Select-String "^[\s]{$requiredParameterIndent}`"$parameterToSplitAt`": \{.*" | ForEach-Object { $_.LineNumber - 1 })[0] + # [4/8] Check where the 'last' required parameter is located in the example (and what its indent is) + $parameterToSplitAt = $RequiredParametersList[-1] + $parameterStartIndex = ($jsonExampleArray | Select-String '.*"parameters": \{.*' | ForEach-Object { $_.LineNumber - 1 })[0] + $requiredParameterIndent = ([regex]::Match($jsonExampleArray[($parameterStartIndex + 1)], '^(\s+).*')).Captures.Groups[1].Value.Length - # If we have more than only required parameters, let's add a corresponding comment - if ($orderedJSONParameters.Keys.Count -gt $requiredParameterNames.Count ) { - # Search in rest of array for the next closing bracket with the same indent - and then add the search index (1) & initial index (1) count back in - $requiredParameterEndIndex = ($jsonExampleArray[($requiredParameterStartIndex + 1)..($jsonExampleArray.Count)] | Select-String "^[\s]{$requiredParameterIndent}\}" | ForEach-Object { $_.LineNumber - 1 })[0] + 1 + $requiredParameterStartIndex + # [5/8] Add a comment where the required parameters start + $jsonExampleArray = $jsonExampleArray[0..$parameterStartIndex] + ('{0}// Required parameters' -f (' ' * $requiredParameterIndent)) + $jsonExampleArray[(($parameterStartIndex + 1) .. ($jsonExampleArray.Count))] - # Add a comment where the non-required parameters start - $jsonExampleArray = $jsonExampleArray[0..$requiredParameterEndIndex] + ('{0}// Non-required parameters' -f (' ' * $requiredParameterIndent)) + $jsonExampleArray[(($requiredParameterEndIndex + 1) .. ($jsonExampleArray.Count))] - } + # [6/8] Find the location if the last required parameter + $requiredParameterStartIndex = ($jsonExampleArray | Select-String "^[\s]{$requiredParameterIndent}`"$parameterToSplitAt`": \{.*" | ForEach-Object { $_.LineNumber - 1 })[0] - $jsonExample = $jsonExampleArray | Out-String - } + # [7/8] If we have more than only required parameters, let's add a corresponding comment + if ($orderedJSONParameters.Keys.Count -gt $RequiredParametersList.Count ) { + # Search in rest of array for the next closing bracket with the same indent - and then add the search index (1) & initial index (1) count back in + $requiredParameterEndIndex = ($jsonExampleArray[($requiredParameterStartIndex + 1)..($jsonExampleArray.Count)] | Select-String "^[\s]{$requiredParameterIndent}\}" | ForEach-Object { $_.LineNumber - 1 })[0] + 1 + $requiredParameterStartIndex - $SectionContent += @( - '', - '

', - '', - 'via JSON Parameter file', - '', - '```json', - $jsonExample.TrimEnd(), - '```', - '', - '
' - '

' - ) + # Add a comment where the non-required parameters start + $jsonExampleArray = $jsonExampleArray[0..$requiredParameterEndIndex] + ('{0}// Non-required parameters' -f (' ' * $requiredParameterIndent)) + $jsonExampleArray[(($requiredParameterEndIndex + 1) .. ($jsonExampleArray.Count))] } - $SectionContent += @( - '' - ) + # [8/8] Convert the processed array back into a string + return $jsonExampleArray | Out-String + } - $pathIndex++ + return $jsonExample +} + +<# +.SYNOPSIS +Convert the given Bicep parameter block to JSON parameter block + +.DESCRIPTION +Convert the given Bicep parameter block to JSON parameter block + +.PARAMETER BicepParamBlock +Mandatory. The Bicep parameter block to process + +.EXAMPLE +ConvertTo-FormattedJSONParameterObject -BicepParamBlock "name: 'carml'\nlock: 'CanNotDelete'" + +Convert the Bicep string "name: 'carml'\nlock: 'CanNotDelete'" into a parameter JSON object. Would result into: + +@{ + lock = @{ + value = 'carml' } + lock = @{ + value = 'CanNotDelete' + } +} +#> +function ConvertTo-FormattedJSONParameterObject { - # Build result - if ($SectionContent) { - if ($PSCmdlet.ShouldProcess('Original file with new template references content', 'Merge')) { - return Merge-FileWithNewContent -oldContent $ReadMeFileContent -newContent $SectionContent -SectionStartIdentifier $SectionStartIdentifier + [CmdletBinding()] + param ( + [Parameter()] + [string] $BicepParamBlock + ) + + # [1/4] Detect top level params for later processing + $bicepParamBlockArray = $BicepParamBlock -split '\n' + $topLevelParamIndent = ([regex]::Match($bicepParamBlockArray[0], '^(\s+).*')).Captures.Groups[1].Value.Length + $topLevelParams = $bicepParamBlockArray | Where-Object { $_ -match "^\s{$topLevelParamIndent}[0-9a-zA-Z]+:.*" } | ForEach-Object { ($_ -split ':')[0].Trim() } + + # [2/4] Add JSON-specific syntax to the Bicep param block to enable us to treat is as such + # [2.1] Syntax: Outer brackets + $paramInJsonFormat = @( + '{', + $BicepParamBlock + '}' + ) | Out-String + + # [2.2] Syntax: All single-quotes are double-quotes + $paramInJsonFormat = $paramInJsonFormat -replace "'", '"' + # [2.3] Syntax: Everything left of a ':' should be wrapped in quotes (as a parameter name is always a string) + $paramInJsonFormat = $paramInJsonFormat -replace '([0-9a-zA-Z]+):', '"$1":' + + # [2.4] Split the object to format line-by-line (& also remove any empty lines) + $paramInJSONFormatArray = $paramInJsonFormat -split '\n' | Where-Object { $_ } + + # [2.5] Syntax: Replace Bicep resource ID references + for ($index = 0; $index -lt $paramInJSONFormatArray.Count; $index++) { + if ($paramInJSONFormatArray[$index] -like '*:*' -and ($paramInJSONFormatArray[$index] -split ':')[1].Trim() -notmatch '".+"' -and $paramInJSONFormatArray[$index] -like '*.*') { + # In case of a reference like : "virtualWanId": resourceGroupResources.outputs.virtualWWANResourceId + $paramInJSONFormatArray[$index] = '{0}: "<{1}>"' -f ($paramInJSONFormatArray[$index] -split ':')[0], ([regex]::Match(($paramInJSONFormatArray[$index] -split ':')[0], '"(.+)"')).Captures.Groups[1].Value + } + if ($paramInJSONFormatArray[$index] -notlike '*:*' -and $paramInJSONFormatArray[$index] -notlike '*"*"*' -and $paramInJSONFormatArray[$index] -like '*.*') { + # In case of a reference like : [ \n resourceGroupResources.outputs.managedIdentityPrincipalId \n ] + $paramInJSONFormatArray[$index] = '"<{0}>"' -f $paramInJSONFormatArray[$index].Split('.')[-1].Trim() } - } else { - return $ReadMeFileContent } + + # [2.6] Syntax: Add comma everywhere unless: + # - the current line has an opening 'object: {' or 'array: [' character + # - the line after the current line has a closing 'object: {' or 'array: [' character + # - it's the last closing bracket + for ($index = 0; $index -lt $paramInJSONFormatArray.Count; $index++) { + if (($paramInJSONFormatArray[$index] -match '[\{|\[]') -or (($index -lt $paramInJSONFormatArray.Count - 1) -and $paramInJSONFormatArray[$index + 1] -match '[\]|\}]') -or ($index -eq $paramInJSONFormatArray.Count - 1)) { + continue + } + $paramInJSONFormatArray[$index] = '{0},' -f $paramInJSONFormatArray[$index].Trim() + } + + # [2.7] Format the final JSON string to an object to enable processing + $paramInJsonFormatObject = $paramInJSONFormatArray | Out-String | ConvertFrom-Json -AsHashtable -Depth 99 + + # [3/4] Inject top-level 'value`' properties + $paramInJsonFormatObjectWithValue = @{} + foreach ($paramKey in $topLevelParams) { + $paramInJsonFormatObjectWithValue[$paramKey] = @{ + value = $paramInJsonFormatObject[$paramKey] + } + } + + # [4/4] Return result + return $paramInJsonFormatObjectWithValue } <# .SYNOPSIS -Generate a table of content section for the given readme file +Convert the given parameter JSON object into a formatted Bicep object (i.e., sorted & with required/non-required comments) .DESCRIPTION -Generate a table of content section for the given readme file +Convert the given parameter JSON object into a formatted Bicep object (i.e., sorted & with required/non-required comments) -.PARAMETER ReadMeFileContent -Mandatory. The readme file content array to update +.PARAMETER JSONParameters +Mandatory. The parameter JSON object to process. -.PARAMETER SectionStartIdentifier -Optional. The identifier of the 'navigation' section. Defaults to '## Navigation' +.PARAMETER RequiredParametersList +Mandatory. A list of all required top-level (i.e. non-nested) parameter names .EXAMPLE -Set-TableOfContent -ReadMeFileContent @('# Title', '', '## Section 1', ...) +ConvertTo-FormattedBicep -RequiredParametersList @('name') -JSONParameters @{ lock = @{ value = 'carml' }; lock = @{ value = 'CanNotDelete' } } -Update the given readme's '## Navigation' section to reflect the latest file structure +Convert the given JSONParameters object with one required parameter to a formatted Bicep object. Would result into: + +' + // Required parameters + name: 'carml' + // Non-required parameters + diagnosticLogsRetentionInDays: 7 + lock: 'CanNotDelete' +' #> -function Set-TableOfContent { +function ConvertTo-FormattedBicep { - [CmdletBinding(SupportsShouldProcess)] + [CmdletBinding()] param ( - [Parameter(Mandatory)] - [object[]] $ReadMeFileContent, + [Parameter(Mandatory = $true)] + [hashtable] $JSONParameters, [Parameter(Mandatory = $false)] - [string] $SectionStartIdentifier = '## Navigation' + [AllowEmptyCollection()] + [string[]] $RequiredParametersList = @() ) - $newSectionContent = [System.Collections.ArrayList]@() - - $contentPointer = 1 - while ($ReadMeFileContent[$contentPointer] -notlike '#*') { - $contentPointer++ + # Remove 'value' parameter property, if any (e.g. when dealing with a classic parameter file) + $JSONParametersWithoutValue = @{} + foreach ($parameterName in $JSONParameters.psbase.Keys) { + $keysOnLevel = $JSONParameters[$parameterName].Keys + if ($keysOnLevel.count -eq 1 -and $keysOnLevel -eq 'value') { + $JSONParametersWithoutValue[$parameterName] = $JSONParameters[$parameterName].value + } else { + $JSONParametersWithoutValue[$parameterName] = $JSONParameters[$parameterName] + } } - $headers = $ReadMeFileContent.Split('\n') | Where-Object { $_ -like '## *' } - - if ($headers -notcontains $SectionStartIdentifier) { - $beforeContent = $ReadMeFileContent[0 .. ($contentPointer - 1)] - $afterContent = $ReadMeFileContent[$contentPointer .. ($ReadMeFileContent.Count - 1)] - - $ReadMeFileContent = $beforeContent + @($SectionStartIdentifier, '') + $afterContent + # [1/4] Order parameters recursively + if ($JSONParametersWithoutValue.Keys.Count -gt 0) { + $orderedJSONParameters = Get-OrderedParametersJSON -ParametersJSON ($JSONParametersWithoutValue | ConvertTo-Json -Depth 99) -RequiredParametersList $RequiredParametersList + } else { + $orderedJSONParameters = @{} } - - $headers | Where-Object { $_ -ne $SectionStartIdentifier } | ForEach-Object { - $newSectionContent += '- [{0}](#{1})' -f $_.Replace('#', '').Trim(), $_.Replace('#', '').Trim().Replace(' ', '-').Replace('.', '') + # [2/4] Remove any JSON specific formatting + $templateParameterObject = $orderedJSONParameters | ConvertTo-Json -Depth 99 + if ($templateParameterObject -ne '{}') { + $contentInBicepFormat = $templateParameterObject -replace '"', "'" # Update any [xyz: "xyz"] to [xyz: 'xyz'] + $contentInBicepFormat = $contentInBicepFormat -replace ',', '' # Update any [xyz: xyz,] to [xyz: xyz] + $contentInBicepFormat = $contentInBicepFormat -replace "'(\w+)':", '$1:' # Update any ['xyz': xyz] to [xyz: xyz] + $contentInBicepFormat = $contentInBicepFormat -replace "'(.+.getSecret\('.+'\))'", '$1' # Update any [xyz: 'xyz.GetSecret()'] to [xyz: xyz.GetSecret()] + + $bicepParamsArray = $contentInBicepFormat -split '\n' + $bicepParamsArray = $bicepParamsArray[1..($bicepParamsArray.count - 2)] } - # Build result - if ($PSCmdlet.ShouldProcess('Original file with new parameters content', 'Merge')) { - $updatedFileContent = Merge-FileWithNewContent -oldContent $ReadMeFileContent -newContent $newSectionContent -SectionStartIdentifier $SectionStartIdentifier -contentType 'none' + # [3/4] Format params with indent + $BicepParams = ($bicepParamsArray | ForEach-Object { " $_" } | Out-String).TrimEnd() + + # [4/4] Add comment where required & optional parameters start + $splitInputObject = @{ + BicepParams = $BicepParams + RequiredParametersList = $RequiredParametersList + AllParametersList = $JSONParametersWithoutValue.Keys } + $commentedBicepParams = Add-BicepParameterTypeComment @splitInputObject - return $updatedFileContent + return $commentedBicepParams } -#endregion <# .SYNOPSIS -Update/add the readme that matches the given template file +Generate 'Deployment examples' for the ReadMe out of the parameter files currently used to test the template .DESCRIPTION -Update/add the readme that matches the given template file -Supports both ARM & bicep templates. +Generate 'Deployment examples' for the ReadMe out of the parameter files currently used to test the template .PARAMETER TemplateFilePath -Mandatory. The path to the template to update +Mandatory. The path to the template file .PARAMETER TemplateFileContent -Optional. The template file content to process. If not provided, the template file content will be read from the TemplateFilePath file. -Using this property is useful if you already compiled the bicep template before invoking this function and want to avoid re-compiling it. - -.PARAMETER ReadMeFilePath -Optional. The path to the readme to update. If not provided assumes a 'readme.md' file in the same folder as the template - -.PARAMETER SectionsToRefresh -Optional. The sections to update. By default it refreshes all that are supported. -Currently supports: 'Resource Types', 'Parameters', 'Outputs', 'Template references' - -.EXAMPLE -Set-ModuleReadMe -TemplateFilePath 'C:\deploy.bicep' - -Update the readme in path 'C:\readme.md' based on the bicep template in path 'C:\deploy.bicep' +Mandatory. The template file content object to crawl data from -.EXAMPLE -Set-ModuleReadMe -TemplateFilePath 'C:/Microsoft.Network/loadBalancers/deploy.bicep' -SectionsToRefresh @('Parameters', 'Outputs') +.PARAMETER TemplateFilePath +Mandatory. The path to the template file -Generate the Module ReadMe only for specific sections. Updates only the sections `Parameters` & `Outputs`. Other sections remain untouched. +.PARAMETER ReadMeFileContent +Mandatory. The readme file content array to update -.EXAMPLE -Set-ModuleReadMe -TemplateFilePath 'C:/Microsoft.Network/loadBalancers/deploy.bicep' -TemplateFileContent @{...} +.PARAMETER SectionStartIdentifier +Optional. The identifier of the 'outputs' section. Defaults to '## Deployment examples' -(Re)Generate the readme file for template 'loadBalancer' based on the content provided in the TemplateFileContent parameter +.PARAMETER addJson +Optional. A switch to control whether or not to add a ARM-JSON-Parameter file example. Defaults to true. -.EXAMPLE -Set-ModuleReadMe -TemplateFilePath 'C:/Microsoft.Network/loadBalancers/deploy.bicep' -ReadMeFilePath 'C:/differentFolder' +.PARAMETER addBicep +Optional. A switch to control whether or not to add a Bicep deployment example. Defaults to true. -Generate the Module ReadMe files into a specific folder path +.PARAMETER ProjectSettings +Optional. Projects settings to draw information from. For example the `namePrefix`. .EXAMPLE -$templatePaths = (Get-ChildItem 'C:/Microsoft.Network' -Filter 'deploy.bicep' -Recurse).FullName -$templatePaths | ForEach-Object -Parallel { . '/utilities/tools/Set-ModuleReadMe.ps1' ; Set-ModuleReadMe -TemplateFilePath $_ } +Set-DeploymentExamplesSection -TemplateFileContent @{ resource = @{}; ... } -TemplateFilePath 'C:/deploy.bicep' -ReadMeFileContent @('# Title', '', '## Section 1', ...) -Generate the Module ReadMe for any template in a folder path - -.NOTES -The script autopopulates the Parameter Usage section of the ReadMe with the matching content in path './moduleReadMeSource'. -The content is added in case the given template has a parameter that matches the suffix of one of the files in that path. -To account for more parameter, just add another markdown file with the naming pattern 'resourceUsage-' +Update the given readme file's 'Deployment Examples' section based on the given template file content #> -function Set-ModuleReadMe { +function Set-DeploymentExamplesSection { - [CmdletBinding(SupportsShouldProcess = $true)] + [CmdletBinding(SupportsShouldProcess)] param ( - [Parameter(Mandatory)] + [Parameter(Mandatory = $true)] [string] $TemplateFilePath, + [Parameter(Mandatory)] + [hashtable] $TemplateFileContent, + + [Parameter(Mandatory = $true)] + [object[]] $ReadMeFileContent, + [Parameter(Mandatory = $false)] - [Hashtable] $TemplateFileContent, + [bool] $addJson = $true, [Parameter(Mandatory = $false)] - [string] $ReadMeFilePath = (Join-Path (Split-Path $TemplateFilePath -Parent) 'readme.md'), + [bool] $addBicep = $true, [Parameter(Mandatory = $false)] - [ValidateSet( - 'Resource Types', - 'Parameters', - 'Outputs', - 'Template references', - 'Navigation', - 'Deployment examples' - )] - [string[]] $SectionsToRefresh = @( - 'Resource Types', - 'Parameters', - 'Outputs', - 'Template references', - 'Navigation', - 'Deployment examples' - ) + [hashtable] $ProjectSettings = @{}, + + [Parameter(Mandatory = $false)] + [string] $SectionStartIdentifier = '## Deployment examples' ) - # Load external functions - . (Join-Path $PSScriptRoot 'helper/Merge-FileWithNewContent.ps1') - . (Join-Path (Split-Path $PSScriptRoot -Parent) 'pipelines' 'sharedScripts' 'Get-NestedResourceList.ps1') + # Process content + $SectionContent = [System.Collections.ArrayList]@( + 'The following module usage examples are retrieved from the content of the files hosted in the module''s `.test` folder.', + ' >**Note**: The name of each example is based on the name of the file from which it is taken.', + ' >**Note**: Each example lists all the required parameters first, followed by the rest - each in alphabetical order.', + '' + ) - # Check template & make full path - $TemplateFilePath = Resolve-Path -Path $TemplateFilePath -ErrorAction Stop + $moduleRoot = Split-Path $TemplateFilePath -Parent + $resourceTypeIdentifier = $moduleRoot.Replace('\', '/').Split('/modules/')[1].TrimStart('/') + $resourceType = $resourceTypeIdentifier.Split('/')[1] + $testFilePaths = (Get-ChildItem (Join-Path -Path $moduleRoot -ChildPath '.test') -File).FullName | Where-Object { $_ -match '.+\.[bicep|json]' } - if (-not $TemplateFileContent) { - if ((Split-Path -Path $TemplateFilePath -Extension) -eq '.bicep') { - $templateFileContent = az bicep build --file $TemplateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable - } else { - $templateFileContent = ConvertFrom-Json (Get-Content $TemplateFilePath -Encoding 'utf8' -Raw) -ErrorAction Stop -AsHashtable - } - } + $RequiredParametersList = $TemplateFileContent.parameters.Keys | Where-Object { $TemplateFileContent.parameters[$_].Keys -notcontains 'defaultValue' } | Sort-Object - if (-not $templateFileContent) { - throw "Failed to compile [$TemplateFilePath]" - } + ############################ + ## Process test files ## + ############################ + $pathIndex = 1 + foreach ($testFilePath in $testFilePaths) { - $fullResourcePath = (Split-Path $TemplateFilePath -Parent).Replace('\', '/').split('/modules/')[1] + # Read content + $rawContentArray = Get-Content -Path $testFilePath + $rawContent = Get-Content -Path $testFilePath -Encoding 'utf8' | Out-String - # Check readme - if (-not (Test-Path $ReadMeFilePath) -or ([String]::IsNullOrEmpty((Get-Content $ReadMeFilePath -Raw)))) { - # Create new readme file + # Format example header + $exampleTitle = ((Split-Path $testFilePath -LeafBase) -replace '\.', ' ') -replace ' parameters', '' + $TextInfo = (Get-Culture).TextInfo + $exampleTitle = $TextInfo.ToTitleCase($exampleTitle) + $SectionContent += @( + '

Example {0}: {1}

' -f $pathIndex, $exampleTitle + ) - # Build resource name - $serviceIdentifiers = $fullResourcePath.Replace('Microsoft.', '').Replace('/.', '/').Split('/') - $serviceIdentifiers = $serviceIdentifiers | ForEach-Object { $_.substring(0, 1).toupper() + $_.substring(1) } - $serviceIdentifiers = $serviceIdentifiers | ForEach-Object { $_ -creplace '(?<=\w)([A-Z])', '$1' } - $assumedResourceName = $serviceIdentifiers -join ' ' + ## ----------------------------------- ## + ## Handle by type (Bicep vs. JSON) ## + ## ----------------------------------- ## + if ((Split-Path $testFilePath -Extension) -eq '.bicep') { - $initialContent = @( - "# $assumedResourceName ``[$fullResourcePath]``", - '', - "This module deploys $assumedResourceName." - '// TODO: Replace Resource and fill in description', - '' - '## Resource Types', - '', - '## Parameters', - '', - '### Parameter Usage: ``' - '' - '// TODO: Fill in Parameter usage' - '', - '## Outputs' - ) - # New-Item $path $ReadMeFilePath -ItemType 'File' -Force -Value $initialContent - $readMeFileContent = $initialContent - } else { - $readMeFileContent = Get-Content -Path $ReadMeFilePath -Encoding 'utf8' - } + # ------------------------- # + # Prepare Bicep to JSON # + # ------------------------- # - # Update title - if ($TemplateFilePath.Replace('\', '/') -like '*/modules/*') { + # [1/6] Search for the relevant parameter start & end index + $bicepTestStartIndex = $rawContentArray.IndexOf("module testDeployment '../deploy.bicep' = {") - if ($readMeFileContent[0] -notlike "*``[$fullResourcePath]``") { - # Cut outdated - $readMeFileContent[0] = $readMeFileContent[0].Split('`[')[0] + $bicepTestEndIndex = $bicepTestStartIndex + do { + $bicepTestEndIndex++ + } while ($rawContentArray[$bicepTestEndIndex] -ne '}') - # Add latest - $readMeFileContent[0] = '{0} `[{1}]`' -f $readMeFileContent[0], $fullResourcePath - } - # Remove excess whitespace - $readMeFileContent[0] = $readMeFileContent[0] -replace '\s+', ' ' - } + $rawBicepExample = $rawContentArray[$bicepTestStartIndex..$bicepTestEndIndex] - if ($SectionsToRefresh -contains 'Resource Types') { - # Handle [Resource Types] section - # =============================== - $inputObject = @{ - ReadMeFileContent = $readMeFileContent - TemplateFileContent = $templateFileContent - } - $readMeFileContent = Set-ResourceTypesSection @inputObject - } + # [2/6] Replace placeholders + $namePrefix = ($ProjectSettings.parameterFileTokens.localTokens | Where-Object { $_.name -eq 'namePrefix' }).value + $serviceShort = ([regex]::Match($rawContent, "(?m)^param serviceShort string = '(.+)'\s*$")).Captures.Groups[1].Value - if ($SectionsToRefresh -contains 'Parameters') { - # Handle [Parameters] section - # =========================== - $inputObject = @{ - ReadMeFileContent = $readMeFileContent - TemplateFileContent = $templateFileContent - currentFolderPath = (Split-Path $TemplateFilePath -Parent) - } - $readMeFileContent = Set-ParametersSection @inputObject - } + $rawBicepExampleString = ($rawBicepExample | Out-String) + $rawBicepExampleString = $rawBicepExampleString -replace '\$\{serviceShort\}', $serviceShort + $rawBicepExampleString = $rawBicepExampleString -replace '\$\{namePrefix\}', $namePrefix + $rawBicepExampleString = $rawBicepExampleString -replace '(?m):\s*location\s*$', ': ''''' - if ($SectionsToRefresh -contains 'Outputs') { - # Handle [Outputs] section - # ======================== - $inputObject = @{ - ReadMeFileContent = $readMeFileContent - TemplateFileContent = $templateFileContent - } - $readMeFileContent = Set-OutputsSection @inputObject - } + # [3/6] Format header, remove scope property & any empty line + $rawBicepExample = $rawBicepExampleString -split '\n' + $rawBicepExample[0] = "module $resourceType './$resourceTypeIdentifier/deploy.bicep = {" + $rawBicepExample = $rawBicepExample | Where-Object { $_ -notmatch 'scope: *' } | Where-Object { -not [String]::IsNullOrEmpty($_) } - $isTopLevelModule = $TemplateFilePath.Replace('\', '/').Split('/modules/')[1].Split('/').Count -eq 3 # //deploy.* - if ($SectionsToRefresh -contains 'Deployment examples' -and $isTopLevelModule) { - # Handle [Deployment examples] section - # =================================== - $inputObject = @{ - ReadMeFileContent = $readMeFileContent - TemplateFilePath = $TemplateFilePath - TemplateFileContent = $templateFileContent - } - $readMeFileContent = Set-DeploymentExamplesSection @inputObject - } + # [4/6] Extract param block + $rawBicepExampleArray = $rawBicepExample -split '\n' + $moduleDeploymentPropertyIndent = ([regex]::Match($rawBicepExampleArray[1], '^(\s+).*')).Captures.Groups[1].Value.Length + $paramsStartIndex = ($rawBicepExampleArray | Select-String ("^[\s]{$moduleDeploymentPropertyIndent}params:[\s]*\{") | ForEach-Object { $_.LineNumber - 1 })[0] + 1 + $paramsEndIndex = ($rawBicepExampleArray[($paramsStartIndex + 1)..($rawBicepExampleArray.Count)] | Select-String "^[\s]{$moduleDeploymentPropertyIndent}\}" | ForEach-Object { $_.LineNumber - 1 })[0] + $paramsStartIndex + $paramBlock = ($rawBicepExampleArray[$paramsStartIndex..$paramsEndIndex] | Out-String).TrimEnd() - if ($SectionsToRefresh -contains 'Navigation') { - # Handle [Navigation] section - # =================================== - $inputObject = @{ - ReadMeFileContent = $readMeFileContent - } - $readMeFileContent = Set-TableOfContent @inputObject - } + # [5/6] Convert Bicep parameter block to JSON parameter block to enable processing + $conversionInputObject = @{ + BicepParamBlock = $paramBlock + } + $paramsInJSONFormat = ConvertTo-FormattedJSONParameterObject @conversionInputObject - Write-Verbose 'New content:' - Write-Verbose '============' - Write-Verbose ($readMeFileContent | Out-String) + # [6/6] Convert JSON parameters back to Bicep and order & format them + $conversionInputObject = @{ + JSONParameters = $paramsInJSONFormat + RequiredParametersList = $RequiredParametersList + } + $bicepExample = ConvertTo-FormattedBicep @conversionInputObject - if ($PSCmdlet.ShouldProcess("File in path [$ReadMeFilePath]", 'Overwrite')) { - Set-Content -Path $ReadMeFilePath -Value $readMeFileContent -Force -Encoding 'utf8' - Write-Verbose "File [$ReadMeFilePath] updated" -Verbose - } -} + # --------------------- # + # Add Bicep example # + # --------------------- # + if ($addBicep) { + + $formattedBicepExample = $rawBicepExample[0..($paramsStartIndex - 1)] + ($bicepExample -split '\n') + $rawBicepExample[($paramsEndIndex + 1)..($rawBicepExample.Count)] + + $SectionContent += @( + '', + '
' + '' + 'via Bicep module' + '' + '```bicep', + ($formattedBicepExample | ForEach-Object { "$_" }).TrimEnd(), + '```', + '', + '
', + '

' + ) + } + + # -------------------- # + # Add JSON example # + # -------------------- # + if ($addJson) { + + # [1/2] Get all parameters from the parameter object and order them recursively + $orderingInputObject = @{ ParametersJSON = $paramsInJSONFormat | ConvertTo-Json -Depth 99 RequiredParametersList = $RequiredParametersList } @@ -1244,7 +1244,7 @@ function Set-ModuleReadMe { throw "[$TemplateFilePath] is no valid file path." } else { if ((Split-Path -Path $TemplateFilePath -Extension) -eq '.bicep') { - $templateFileContent = az bicep build --file $TemplateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + $templateFileContent = az bicep build --file $TemplateFilePath --stdout | ConvertFrom-Json -AsHashtable } else { $templateFileContent = ConvertFrom-Json (Get-Content $TemplateFilePath -Encoding 'utf8' -Raw) -ErrorAction Stop -AsHashtable } From e35a7071380619c7b7563c6522a7b5a43b066da9 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Thu, 21 Jul 2022 19:08:07 +0200 Subject: [PATCH 151/274] Restructured folders --- .../default.nested.bicep => default/dependencies.bicep} | 0 .../.test/{default.bicep => default/deploy.test.bicep} | 6 +++--- .../max.parameters.nested.bicep => max/dependencies.bicep} | 0 .../servers/.test/{max.bicep => max/deploy.test.bicep} | 6 +++--- .../servers/.test/{min.bicep => min/deploy.test.bicep} | 2 +- .../dependencies.bicep} | 0 .../.test/{default.bicep => default/deploy.test.bicep} | 4 ++-- .../min.parameters.nested.bicep => min/dependencies.bicep} | 0 .../virtualHubs/.test/{min.bicep => min/deploy.test.bicep} | 4 ++-- .../dependencies.bicep} | 0 .../.test/{default.bicep => default/deploy.test.bicep} | 4 ++-- .../min.parameters.nested.bicep => min/dependencies.bicep} | 0 .../vpnSites/.test/{min.bicep => min/deploy.test.bicep} | 4 ++-- .../dependencies.bicep} | 0 .../servers/.test/{admin.bicep => admin/deploy.test.bicep} | 4 ++-- .../dependencies.bicep} | 0 .../.test/{default.bicep => default/deploy.test.bicep} | 6 +++--- 17 files changed, 20 insertions(+), 20 deletions(-) rename modules/Microsoft.AnalysisServices/servers/.test/{nestedTemplates/default.nested.bicep => default/dependencies.bicep} (100%) rename modules/Microsoft.AnalysisServices/servers/.test/{default.bicep => default/deploy.test.bicep} (91%) rename modules/Microsoft.AnalysisServices/servers/.test/{nestedTemplates/max.parameters.nested.bicep => max/dependencies.bicep} (100%) rename modules/Microsoft.AnalysisServices/servers/.test/{max.bicep => max/deploy.test.bicep} (92%) rename modules/Microsoft.AnalysisServices/servers/.test/{min.bicep => min/deploy.test.bicep} (95%) rename modules/Microsoft.Network/virtualHubs/.test/{nestedTemplates/default.parameters.nested.bicep => default/dependencies.bicep} (100%) rename modules/Microsoft.Network/virtualHubs/.test/{default.bicep => default/deploy.test.bicep} (94%) rename modules/Microsoft.Network/virtualHubs/.test/{nestedTemplates/min.parameters.nested.bicep => min/dependencies.bicep} (100%) rename modules/Microsoft.Network/virtualHubs/.test/{min.bicep => min/deploy.test.bicep} (91%) rename modules/Microsoft.Network/vpnSites/.test/{nestedTemplates/default.parameters.nested.bicep => default/dependencies.bicep} (100%) rename modules/Microsoft.Network/vpnSites/.test/{default.bicep => default/deploy.test.bicep} (95%) rename modules/Microsoft.Network/vpnSites/.test/{nestedTemplates/min.parameters.nested.bicep => min/dependencies.bicep} (100%) rename modules/Microsoft.Network/vpnSites/.test/{min.bicep => min/deploy.test.bicep} (92%) rename modules/Microsoft.Sql/servers/.test/{nestedTemplates/min.parameters.nested.bicep => admin/dependencies.bicep} (100%) rename modules/Microsoft.Sql/servers/.test/{admin.bicep => admin/deploy.test.bicep} (92%) rename modules/Microsoft.Sql/servers/.test/{nestedTemplates/default.parameters.nested.bicep => default/dependencies.bicep} (100%) rename modules/Microsoft.Sql/servers/.test/{default.bicep => default/deploy.test.bicep} (94%) diff --git a/modules/Microsoft.AnalysisServices/servers/.test/nestedTemplates/default.nested.bicep b/modules/Microsoft.AnalysisServices/servers/.test/default/dependencies.bicep similarity index 100% rename from modules/Microsoft.AnalysisServices/servers/.test/nestedTemplates/default.nested.bicep rename to modules/Microsoft.AnalysisServices/servers/.test/default/dependencies.bicep diff --git a/modules/Microsoft.AnalysisServices/servers/.test/default.bicep b/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep similarity index 91% rename from modules/Microsoft.AnalysisServices/servers/.test/default.bicep rename to modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep index f49d58315e..e6e5738c52 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/default.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep @@ -28,7 +28,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { location: location } -module resourceGroupResources 'nestedTemplates/default.nested.bicep' = { +module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { @@ -38,7 +38,7 @@ module resourceGroupResources 'nestedTemplates/default.nested.bicep' = { // Diagnostics // =========== -module diagnosticDependencies '../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { +module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-diagDep' params: { @@ -54,7 +54,7 @@ module diagnosticDependencies '../../../.shared/dependencyConstructs/diagnostic. // Test Execution // // ============== // -module testDeployment '../deploy.bicep' = { +module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { diff --git a/modules/Microsoft.AnalysisServices/servers/.test/nestedTemplates/max.parameters.nested.bicep b/modules/Microsoft.AnalysisServices/servers/.test/max/dependencies.bicep similarity index 100% rename from modules/Microsoft.AnalysisServices/servers/.test/nestedTemplates/max.parameters.nested.bicep rename to modules/Microsoft.AnalysisServices/servers/.test/max/dependencies.bicep diff --git a/modules/Microsoft.AnalysisServices/servers/.test/max.bicep b/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep similarity index 92% rename from modules/Microsoft.AnalysisServices/servers/.test/max.bicep rename to modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep index 27c234a8ed..fd4c156008 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/max.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep @@ -28,7 +28,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { location: location } -module resourceGroupResources 'nestedTemplates/max.parameters.nested.bicep' = { +module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { @@ -38,7 +38,7 @@ module resourceGroupResources 'nestedTemplates/max.parameters.nested.bicep' = { // Diagnostics // =========== -module diagnosticDependencies '../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { +module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-diagDep' params: { @@ -54,7 +54,7 @@ module diagnosticDependencies '../../../.shared/dependencyConstructs/diagnostic. // Test Execution // // ============== // -module testDeployment '../deploy.bicep' = { +module testDeployment '../../deploy.bicep' = { scope: az.resourceGroup(resourceGroupName) name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { diff --git a/modules/Microsoft.AnalysisServices/servers/.test/min.bicep b/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep similarity index 95% rename from modules/Microsoft.AnalysisServices/servers/.test/min.bicep rename to modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep index f2ca5d69bc..d55bbc6cae 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/min.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep @@ -33,7 +33,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { // Test Execution // // ============== // -module testDeployment '../deploy.bicep' = { +module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { diff --git a/modules/Microsoft.Network/virtualHubs/.test/nestedTemplates/default.parameters.nested.bicep b/modules/Microsoft.Network/virtualHubs/.test/default/dependencies.bicep similarity index 100% rename from modules/Microsoft.Network/virtualHubs/.test/nestedTemplates/default.parameters.nested.bicep rename to modules/Microsoft.Network/virtualHubs/.test/default/dependencies.bicep diff --git a/modules/Microsoft.Network/virtualHubs/.test/default.bicep b/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep similarity index 94% rename from modules/Microsoft.Network/virtualHubs/.test/default.bicep rename to modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep index 05caea997e..d1aef357d7 100644 --- a/modules/Microsoft.Network/virtualHubs/.test/default.bicep +++ b/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep @@ -29,7 +29,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { location: location } -module resourceGroupResources 'nestedTemplates/default.parameters.nested.bicep' = { +module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { @@ -42,7 +42,7 @@ module resourceGroupResources 'nestedTemplates/default.parameters.nested.bicep' // Test Execution // // ============== // -module testDeployment '../deploy.bicep' = { +module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-virtualHub-${serviceShort}' params: { diff --git a/modules/Microsoft.Network/virtualHubs/.test/nestedTemplates/min.parameters.nested.bicep b/modules/Microsoft.Network/virtualHubs/.test/min/dependencies.bicep similarity index 100% rename from modules/Microsoft.Network/virtualHubs/.test/nestedTemplates/min.parameters.nested.bicep rename to modules/Microsoft.Network/virtualHubs/.test/min/dependencies.bicep diff --git a/modules/Microsoft.Network/virtualHubs/.test/min.bicep b/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep similarity index 91% rename from modules/Microsoft.Network/virtualHubs/.test/min.bicep rename to modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep index 7a40936c07..ff67c00d49 100644 --- a/modules/Microsoft.Network/virtualHubs/.test/min.bicep +++ b/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep @@ -29,7 +29,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { location: location } -module resourceGroupResources 'nestedTemplates/min.parameters.nested.bicep' = { +module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { @@ -41,7 +41,7 @@ module resourceGroupResources 'nestedTemplates/min.parameters.nested.bicep' = { // Test Execution // // ============== // -module testDeployment '../deploy.bicep' = { +module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-virtualHub-${serviceShort}' params: { diff --git a/modules/Microsoft.Network/vpnSites/.test/nestedTemplates/default.parameters.nested.bicep b/modules/Microsoft.Network/vpnSites/.test/default/dependencies.bicep similarity index 100% rename from modules/Microsoft.Network/vpnSites/.test/nestedTemplates/default.parameters.nested.bicep rename to modules/Microsoft.Network/vpnSites/.test/default/dependencies.bicep diff --git a/modules/Microsoft.Network/vpnSites/.test/default.bicep b/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep similarity index 95% rename from modules/Microsoft.Network/vpnSites/.test/default.bicep rename to modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep index edf350b7c9..6963cb027a 100644 --- a/modules/Microsoft.Network/vpnSites/.test/default.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep @@ -29,7 +29,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { location: location } -module resourceGroupResources 'nestedTemplates/default.parameters.nested.bicep' = { +module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { @@ -42,7 +42,7 @@ module resourceGroupResources 'nestedTemplates/default.parameters.nested.bicep' // Test Execution // // ============== // -module testDeployment '../deploy.bicep' = { +module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-vpnSites-${serviceShort}' params: { diff --git a/modules/Microsoft.Network/vpnSites/.test/nestedTemplates/min.parameters.nested.bicep b/modules/Microsoft.Network/vpnSites/.test/min/dependencies.bicep similarity index 100% rename from modules/Microsoft.Network/vpnSites/.test/nestedTemplates/min.parameters.nested.bicep rename to modules/Microsoft.Network/vpnSites/.test/min/dependencies.bicep diff --git a/modules/Microsoft.Network/vpnSites/.test/min.bicep b/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep similarity index 92% rename from modules/Microsoft.Network/vpnSites/.test/min.bicep rename to modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep index d182c4d4b6..4c988c20dd 100644 --- a/modules/Microsoft.Network/vpnSites/.test/min.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep @@ -29,7 +29,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { location: location } -module resourceGroupResources 'nestedTemplates/min.parameters.nested.bicep' = { +module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { @@ -41,7 +41,7 @@ module resourceGroupResources 'nestedTemplates/min.parameters.nested.bicep' = { // Test Execution // // ============== // -module testDeployment '../deploy.bicep' = { +module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-vpnSites-${serviceShort}' params: { diff --git a/modules/Microsoft.Sql/servers/.test/nestedTemplates/min.parameters.nested.bicep b/modules/Microsoft.Sql/servers/.test/admin/dependencies.bicep similarity index 100% rename from modules/Microsoft.Sql/servers/.test/nestedTemplates/min.parameters.nested.bicep rename to modules/Microsoft.Sql/servers/.test/admin/dependencies.bicep diff --git a/modules/Microsoft.Sql/servers/.test/admin.bicep b/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep similarity index 92% rename from modules/Microsoft.Sql/servers/.test/admin.bicep rename to modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep index 278a0ccbbc..008bca02c5 100644 --- a/modules/Microsoft.Sql/servers/.test/admin.bicep +++ b/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep @@ -29,7 +29,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { location: location } -module resourceGroupResources 'nestedTemplates/min.parameters.nested.bicep' = { +module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { @@ -41,7 +41,7 @@ module resourceGroupResources 'nestedTemplates/min.parameters.nested.bicep' = { // Test Execution // // ============== // -module testDeployment '../deploy.bicep' = { +module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { diff --git a/modules/Microsoft.Sql/servers/.test/nestedTemplates/default.parameters.nested.bicep b/modules/Microsoft.Sql/servers/.test/default/dependencies.bicep similarity index 100% rename from modules/Microsoft.Sql/servers/.test/nestedTemplates/default.parameters.nested.bicep rename to modules/Microsoft.Sql/servers/.test/default/dependencies.bicep diff --git a/modules/Microsoft.Sql/servers/.test/default.bicep b/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep similarity index 94% rename from modules/Microsoft.Sql/servers/.test/default.bicep rename to modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep index 31eb8a8b0f..d80bb57b29 100644 --- a/modules/Microsoft.Sql/servers/.test/default.bicep +++ b/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep @@ -29,7 +29,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { location: location } -module resourceGroupResources 'nestedTemplates/default.parameters.nested.bicep' = { +module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { @@ -49,7 +49,7 @@ resource keyVaultReference 'Microsoft.KeyVault/vaults@2021-10-01' existing = { // Diagnostics // =========== -module diagnosticDependencies '../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { +module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-diagDep' params: { @@ -65,7 +65,7 @@ module diagnosticDependencies '../../../.shared/dependencyConstructs/diagnostic. // Test Execution // // ============== // -module testDeployment '../deploy.bicep' = { +module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { From 86e615ec723efcc3f76d1a6d6a263aad72c9c998 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Thu, 21 Jul 2022 19:30:29 +0200 Subject: [PATCH 152/274] Updated test to new dependency folder structure --- modules/Microsoft.AnalysisServices/servers/readme.md | 6 +++--- .../pipelines/staticValidation/helper/helper.psm1 | 1 + .../pipelines/staticValidation/module.tests.ps1 | 12 ++++++------ utilities/tools/Set-ModuleReadMe.ps1 | 7 +++++-- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/modules/Microsoft.AnalysisServices/servers/readme.md b/modules/Microsoft.AnalysisServices/servers/readme.md index fd2b37e229..16ebb2cd13 100644 --- a/modules/Microsoft.AnalysisServices/servers/readme.md +++ b/modules/Microsoft.AnalysisServices/servers/readme.md @@ -161,7 +161,7 @@ The following module usage examples are retrieved from the content of the files >**Note**: The name of each example is based on the name of the file from which it is taken. >**Note**: Each example lists all the required parameters first, followed by the rest - each in alphabetical order. -

Example 1: Default

+

Example 1: Deploy Test

@@ -248,7 +248,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = {

-

Example 2: Max

+

Example 2: Deploy Test

@@ -379,7 +379,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = {

-

Example 3: Min

+

Example 3: Deploy Test

diff --git a/utilities/pipelines/staticValidation/helper/helper.psm1 b/utilities/pipelines/staticValidation/helper/helper.psm1 index 886cbce7ea..523903a97b 100644 --- a/utilities/pipelines/staticValidation/helper/helper.psm1 +++ b/utilities/pipelines/staticValidation/helper/helper.psm1 @@ -5,6 +5,7 @@ $repoRootPath = (Get-Item $PSScriptRoot).Parent.Parent.Parent.Parent.FullName . (Join-Path $repoRootPath 'utilities' 'pipelines' 'sharedScripts' 'Get-NestedResourceList.ps1') . (Join-Path $repoRootPath 'utilities' 'pipelines' 'sharedScripts' 'Get-ScopeOfTemplateFile.ps1') +. (Join-Path $repoRootPath 'utilities' 'pipelines' 'sharedScripts' 'Get-ModuleTestFileList.ps1') #################################### # Load test-specific functions # diff --git a/utilities/pipelines/staticValidation/module.tests.ps1 b/utilities/pipelines/staticValidation/module.tests.ps1 index dd591a1d36..8abf88aa3d 100644 --- a/utilities/pipelines/staticValidation/module.tests.ps1 +++ b/utilities/pipelines/staticValidation/module.tests.ps1 @@ -127,7 +127,7 @@ Describe 'File/folder tests' -Tag Modules { [string] $moduleFolderPath ) - $moduleTestFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test') -File).FullName | Where-Object { $_ -match '.+\.[bicep|json]' } + $moduleTestFilePaths = Get-ModuleTestFileList -ModulePath $moduleFolderPath | ForEach-Object { Join-Path $moduleFolderPath $_ } $moduleTestFilePaths.Count | Should -BeGreaterThan 0 } @@ -135,7 +135,7 @@ Describe 'File/folder tests' -Tag Modules { foreach ($moduleFolderPath in $moduleFolderPaths) { $testFolderPath = Join-Path $moduleFolderPath '.test' if (Test-Path $testFolderPath) { - foreach ($testFilePath in ((Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test') -File).FullName | Where-Object { $_ -match '.+\.[bicep|json]' })) { + foreach ($testFilePath in (Get-ModuleTestFileList -ModulePath $moduleFolderPath | ForEach-Object { Join-Path $moduleFolderPath $_ })) { $testFolderFilesTestCases += @{ moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/modules/')[1] testFilePath = $testFilePath @@ -482,7 +482,7 @@ Describe 'Parameter file tests' -Tag 'Parameter' { foreach ($moduleFolderPath in $moduleFolderPaths) { if (Test-Path (Join-Path $moduleFolderPath '.test')) { - $testFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test') -File).FullName | Where-Object { $_ -match '.+\.[bicep|json]' } + $testFilePaths = Get-ModuleTestFileList -ModulePath $moduleFolderPath | ForEach-Object { Join-Path $moduleFolderPath $_ } foreach ($testFilePath in $testFilePaths) { $testFileContent = Get-Content $testFilePath @@ -504,13 +504,13 @@ Describe 'Parameter file tests' -Tag 'Parameter' { } } - It "[] Bicep test deployment files should invoke test like [module testDeployment '../deploy.bicep' = {]" -TestCases ($deploymentTestFileTestCases | Where-Object { (Split-Path $_.testFilePath -Extension) -eq '.bicep' }) { + It "[] Bicep test deployment files should invoke test like [module testDeployment '../../deploy.bicep' = {]" -TestCases ($deploymentTestFileTestCases | Where-Object { (Split-Path $_.testFilePath -Extension) -eq '.bicep' }) { param( [object[]] $testFileContent ) - $expectedTestFormat = ($testFileContent | Out-String) -match "\s*module testDeployment '../deploy.bicep' = {\s*" + $expectedTestFormat = ($testFileContent | Out-String) -match "\s*module testDeployment '../../deploy.bicep' = {\s*" $expectedTestFormat | Should -Be $true -Because 'the module test invocation should be in the expected format to allow identification.' } @@ -672,7 +672,7 @@ Describe 'Deployment template tests' -Tag Template { if (Test-Path (Join-Path $moduleFolderPath '.test')) { # Can be removed after full migration to bicep test files - $moduleTestFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test') -File).FullName | Where-Object { $_ -match '.+\.[bicep|json]' } + $moduleTestFilePaths = Get-ModuleTestFileList -ModulePath $moduleFolderPath | ForEach-Object { Join-Path $moduleFolderPath $_ } foreach ($moduleTestFilePath in $moduleTestFilePaths) { if ((Split-Path $moduleTestFilePath -Extension) -eq '.json') { diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index 219c0319c4..72ec1b7941 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -768,6 +768,9 @@ function Set-DeploymentExamplesSection { [string] $SectionStartIdentifier = '## Deployment examples' ) + # Load used function(s) + . (Join-Path (Split-Path $PSScriptRoot -Parent) 'pipelines' 'sharedScripts' 'Get-ModuleTestFileList.ps1') + # Process content $SectionContent = [System.Collections.ArrayList]@( 'The following module usage examples are retrieved from the content of the files hosted in the module''s `.test` folder.', @@ -779,7 +782,7 @@ function Set-DeploymentExamplesSection { $moduleRoot = Split-Path $TemplateFilePath -Parent $resourceTypeIdentifier = $moduleRoot.Replace('\', '/').Split('/modules/')[1].TrimStart('/') $resourceType = $resourceTypeIdentifier.Split('/')[1] - $testFilePaths = (Get-ChildItem (Join-Path -Path $moduleRoot -ChildPath '.test') -File).FullName | Where-Object { $_ -match '.+\.[bicep|json]' } + $testFilePaths = Get-ModuleTestFileList -ModulePath $moduleRoot | ForEach-Object { Join-Path $moduleRoot $_ } $RequiredParametersList = $TemplateFileContent.parameters.Keys | Where-Object { $TemplateFileContent.parameters[$_].Keys -notcontains 'defaultValue' } | Sort-Object @@ -811,7 +814,7 @@ function Set-DeploymentExamplesSection { # ------------------------- # # [1/6] Search for the relevant parameter start & end index - $bicepTestStartIndex = $rawContentArray.IndexOf("module testDeployment '../deploy.bicep' = {") + $bicepTestStartIndex = $rawContentArray.IndexOf("module testDeployment '../../deploy.bicep' = {") $bicepTestEndIndex = $bicepTestStartIndex do { From d1cef82ca5f6430c8d02ec7359493ee5d09f050a Mon Sep 17 00:00:00 2001 From: MrMCake Date: Thu, 21 Jul 2022 19:34:59 +0200 Subject: [PATCH 153/274] Removed nameprefix from parameter --- utilities/tools/Set-ModuleReadMe.ps1 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index 72ec1b7941..197d8e581f 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -824,12 +824,11 @@ function Set-DeploymentExamplesSection { $rawBicepExample = $rawContentArray[$bicepTestStartIndex..$bicepTestEndIndex] # [2/6] Replace placeholders - $namePrefix = ($ProjectSettings.parameterFileTokens.localTokens | Where-Object { $_.name -eq 'namePrefix' }).value $serviceShort = ([regex]::Match($rawContent, "(?m)^param serviceShort string = '(.+)'\s*$")).Captures.Groups[1].Value $rawBicepExampleString = ($rawBicepExample | Out-String) $rawBicepExampleString = $rawBicepExampleString -replace '\$\{serviceShort\}', $serviceShort - $rawBicepExampleString = $rawBicepExampleString -replace '\$\{namePrefix\}', $namePrefix + $rawBicepExampleString = $rawBicepExampleString -replace '\$\{namePrefix\}', '' # Replacing with empty to not expose prefix and avoid potential deployment conflicts $rawBicepExampleString = $rawBicepExampleString -replace '(?m):\s*location\s*$', ': ''''' # [3/6] Format header, remove scope property & any empty line From c4be1f2b610784721739033bccdd7745de55e084 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Thu, 21 Jul 2022 19:36:43 +0200 Subject: [PATCH 154/274] Merged latest main --- .../modulePipelines/ms.synapse.workspaces.yml | 28 ++++--------------- .../servers/readme.md | 12 ++++---- 2 files changed, 11 insertions(+), 29 deletions(-) diff --git a/.azuredevops/modulePipelines/ms.synapse.workspaces.yml b/.azuredevops/modulePipelines/ms.synapse.workspaces.yml index 9d72980c20..e6e94803db 100644 --- a/.azuredevops/modulePipelines/ms.synapse.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.synapse.workspaces.yml @@ -34,26 +34,8 @@ variables: value: '/modules/Microsoft.Synapse/workspaces' stages: - - stage: Validation - displayName: Static validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml - - - stage: Deployment - displayName: Deployment validation - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml - parameters: - removeDeployment: '${{ parameters.removeDeployment }}' - deploymentBlocks: - - path: $(modulePath)/.test/min.parameters.json - - path: $(modulePath)/.test/parameters.json - - path: $(modulePath)/.test/encryptionwsai.parameters.json - - path: $(modulePath)/.test/encryptionwuai.parameters.json - - path: $(modulePath)/.test/managedvnet.parameters.json - - - stage: Publishing - displayName: Publishing - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) - jobs: - - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' + templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/modules/Microsoft.AnalysisServices/servers/readme.md b/modules/Microsoft.AnalysisServices/servers/readme.md index 16ebb2cd13..0f2d9ce89e 100644 --- a/modules/Microsoft.AnalysisServices/servers/readme.md +++ b/modules/Microsoft.AnalysisServices/servers/readme.md @@ -172,7 +172,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-servers-aspar' params: { // Required parameters - name: 'carmlazaspar001' + name: 'azaspar001' // Non-required parameters diagnosticEventHubAuthorizationRuleId: '' diagnosticEventHubName: '' @@ -207,7 +207,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "carmlazaspar001" + "value": "azaspar001" }, // Non-required parameters "diagnosticEventHubAuthorizationRuleId": { @@ -259,7 +259,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-servers-asmax' params: { // Required parameters - name: 'carmlazasmax001' + name: 'azasmax001' // Non-required parameters diagnosticEventHubAuthorizationRuleId: '' diagnosticEventHubName: '' @@ -312,7 +312,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "carmlazasmax001" + "value": "azasmax001" }, // Non-required parameters "diagnosticEventHubAuthorizationRuleId": { @@ -389,7 +389,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-servers-asmin' params: { - name: 'carmlazasmin001' + name: 'azasmin001' } } ``` @@ -407,7 +407,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "carmlazasmin001" + "value": "azasmin001" } } } From 1e9e50e7ac6dce87ee458247504c9fcb2cd3c8f0 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Thu, 21 Jul 2022 20:02:05 +0200 Subject: [PATCH 155/274] Update readmes --- .../servers/readme.md | 6 ++-- .../Microsoft.ApiManagement/service/readme.md | 14 +++++++-- .../configurationStores/readme.md | 16 +++++++++- .../automationAccounts/readme.md | 31 ++++++++++++++++--- .../Microsoft.Network/virtualHubs/readme.md | 18 +++++------ .../virtualNetworkGateways/readme.md | 2 +- modules/Microsoft.Network/vpnSites/readme.md | 12 +++---- modules/Microsoft.Sql/servers/readme.md | 16 +++++----- .../Microsoft.Synapse/workspaces/readme.md | 20 ++++++------ .../hostingEnvironments/readme.md | 14 +++++++-- utilities/tools/Set-ModuleReadMe.ps1 | 6 +++- 11 files changed, 107 insertions(+), 48 deletions(-) diff --git a/modules/Microsoft.AnalysisServices/servers/readme.md b/modules/Microsoft.AnalysisServices/servers/readme.md index 0f2d9ce89e..f000dc64c3 100644 --- a/modules/Microsoft.AnalysisServices/servers/readme.md +++ b/modules/Microsoft.AnalysisServices/servers/readme.md @@ -161,7 +161,7 @@ The following module usage examples are retrieved from the content of the files >**Note**: The name of each example is based on the name of the file from which it is taken. >**Note**: Each example lists all the required parameters first, followed by the rest - each in alphabetical order. -

Example 1: Deploy Test

+

Example 1: Default

@@ -248,7 +248,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = {

-

Example 2: Deploy Test

+

Example 2: Max

@@ -379,7 +379,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = {

-

Example 3: Deploy Test

+

Example 3: Min

diff --git a/modules/Microsoft.ApiManagement/service/readme.md b/modules/Microsoft.ApiManagement/service/readme.md index d6e15f2d7f..51dc87115d 100644 --- a/modules/Microsoft.ApiManagement/service/readme.md +++ b/modules/Microsoft.ApiManagement/service/readme.md @@ -352,7 +352,12 @@ module service './Microsoft.ApiManagement/service/deploy.bicep' = { secret: true } ] - policies: ' ' + policies: [ + { + format: 'xml' + value: ' ' + } + ] portalSettings: [ { name: 'signin' @@ -665,7 +670,12 @@ module service './Microsoft.ApiManagement/service/deploy.bicep' = { publisherName: '<>-az-amorg-x-001' // Non-required parameters lock: 'CanNotDelete' - policies: ' ' + policies: [ + { + format: 'xml' + value: ' ' + } + ] portalSettings: [ { name: 'signin' diff --git a/modules/Microsoft.AppConfiguration/configurationStores/readme.md b/modules/Microsoft.AppConfiguration/configurationStores/readme.md index ed30e19eb4..407d0ad914 100644 --- a/modules/Microsoft.AppConfiguration/configurationStores/readme.md +++ b/modules/Microsoft.AppConfiguration/configurationStores/readme.md @@ -340,7 +340,21 @@ module configurationStores './Microsoft.AppConfiguration/configurationStores/dep diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' disableLocalAuth: false enablePurgeProtection: false - keyValues: 'valueName' + keyValues: [ + { + contentType: 'contentType' + name: 'keyName' + roleAssignments: [ + { + principalIds: [ + '<>' + ] + roleDefinitionIdOrName: 'Reader' + } + ] + value: 'valueName' + } + ] lock: 'CanNotDelete' privateEndpoints: [ { diff --git a/modules/Microsoft.Automation/automationAccounts/readme.md b/modules/Microsoft.Automation/automationAccounts/readme.md index c4d1314d3c..f17873b667 100644 --- a/modules/Microsoft.Automation/automationAccounts/readme.md +++ b/modules/Microsoft.Automation/automationAccounts/readme.md @@ -601,11 +601,32 @@ module automationAccounts './Microsoft.Automation/automationAccounts/deploy.bice '/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} } variables: [ - '\'\\/Date(1637934042656)\\/\'' - '\'TestEncryptedValue\'' - '\'TestString\'' - '500' - 'false' + { + description: 'TestStringDescription' + name: 'TestString' + value: '\'TestString\'' + } + { + description: 'TestIntegerDescription' + name: 'TestInteger' + value: '500' + } + { + description: 'TestBooleanDescription' + name: 'TestBoolean' + value: 'false' + } + { + description: 'TestDateTimeDescription' + isEncrypted: false + name: 'TestDateTime' + value: '\'\\/Date(1637934042656)\\/\'' + } + { + description: 'TestEncryptedDescription' + name: 'TestEncryptedVariable' + value: '\'TestEncryptedValue\'' + } ] } } diff --git a/modules/Microsoft.Network/virtualHubs/readme.md b/modules/Microsoft.Network/virtualHubs/readme.md index a2c28d1899..ff424826f2 100644 --- a/modules/Microsoft.Network/virtualHubs/readme.md +++ b/modules/Microsoft.Network/virtualHubs/readme.md @@ -15,7 +15,7 @@ This module deploys a Virtual Hub. | :-- | :-- | | `Microsoft.Authorization/locks` | [2017-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2017-04-01/locks) | | `Microsoft.Network/virtualHubs` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/virtualHubs) | -| `Microsoft.Network/virtualHubs/hubRouteTables` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/virtualHubs/hubRouteTables) | +| `Microsoft.Network/virtualHubs/hubRouteTables` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/virtualHubs/hubRouteTables) | | `Microsoft.Network/virtualHubs/hubVirtualNetworkConnections` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/virtualHubs/hubVirtualNetworkConnections) | ## Parameters @@ -119,7 +119,7 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { params: { // Required parameters addressPrefix: '10.1.0.0/16' - name: 'carml-vhpar-001' + name: '-vhpar-001' virtualWanId: '' // Non-required parameters hubRouteTables: [ @@ -133,12 +133,12 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { remoteVirtualNetworkId: '' routingConfiguration: { associatedRouteTable: { - id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/carml-vhpar-001/hubRouteTables/routeTable1' + id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/-vhpar-001/hubRouteTables/routeTable1' } propagatedRouteTables: { ids: [ { - id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/carml-vhpar-001/hubRouteTables/routeTable1' + id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/-vhpar-001/hubRouteTables/routeTable1' } ] labels: [ @@ -170,7 +170,7 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { "value": "10.1.0.0/16" }, "name": { - "value": "carml-vhpar-001" + "value": "-vhpar-001" }, "virtualWanId": { "value": "" @@ -190,12 +190,12 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { "remoteVirtualNetworkId": "", "routingConfiguration": { "associatedRouteTable": { - "id": "${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/carml-vhpar-001/hubRouteTables/routeTable1" + "id": "${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/-vhpar-001/hubRouteTables/routeTable1" }, "propagatedRouteTables": { "ids": [ { - "id": "${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/carml-vhpar-001/hubRouteTables/routeTable1" + "id": "${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/-vhpar-001/hubRouteTables/routeTable1" } ], "labels": [ @@ -228,7 +228,7 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { params: { // Required parameters addressPrefix: '10.0.0.0/16' - name: 'carml-vhmin-001' + name: '-vhmin-001' virtualWanId: '' } } @@ -251,7 +251,7 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { "value": "10.0.0.0/16" }, "name": { - "value": "carml-vhmin-001" + "value": "-vhmin-001" }, "virtualWanId": { "value": "" diff --git a/modules/Microsoft.Network/virtualNetworkGateways/readme.md b/modules/Microsoft.Network/virtualNetworkGateways/readme.md index dc39cac455..600af6bab1 100644 --- a/modules/Microsoft.Network/virtualNetworkGateways/readme.md +++ b/modules/Microsoft.Network/virtualNetworkGateways/readme.md @@ -16,7 +16,7 @@ This module deploys a virtual network gateway. | `Microsoft.Authorization/locks` | [2017-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2017-04-01/locks) | | `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-10-01-preview/roleAssignments) | | `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | -| `Microsoft.Network/publicIPAddresses` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/publicIPAddresses) | +| `Microsoft.Network/publicIPAddresses` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/publicIPAddresses) | | `Microsoft.Network/virtualNetworkGateways` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/virtualNetworkGateways) | ## Parameters diff --git a/modules/Microsoft.Network/vpnSites/readme.md b/modules/Microsoft.Network/vpnSites/readme.md index 037049c2b5..dc6dd03ed0 100644 --- a/modules/Microsoft.Network/vpnSites/readme.md +++ b/modules/Microsoft.Network/vpnSites/readme.md @@ -337,7 +337,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-vpnSites-vsipar' params: { // Required parameters - name: 'carml-vsipar-001' + name: '-vsipar-001' virtualWanId: '' // Non-required parameters deviceProperties: { @@ -365,7 +365,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { } vpnSiteLinks: [ { - name: 'carml-vSite-vsipar-001' + name: '-vSite-vsipar-001' properties: { bgpProperties: { asn: 65010 @@ -411,7 +411,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "carml-vsipar-001" + "value": "-vsipar-001" }, "virtualWanId": { "value": "" @@ -453,7 +453,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { "vpnSiteLinks": { "value": [ { - "name": "carml-vSite-vsipar-001", + "name": "-vSite-vsipar-001", "properties": { "bgpProperties": { "asn": 65010, @@ -500,7 +500,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-vpnSites-vsimin' params: { // Required parameters - name: 'carml-vsimin-001' + name: '-vsimin-001' virtualWanId: '' // Non-required parameters addressPrefixes: [ @@ -525,7 +525,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "carml-vsimin-001" + "value": "-vsimin-001" }, "virtualWanId": { "value": "" diff --git a/modules/Microsoft.Sql/servers/readme.md b/modules/Microsoft.Sql/servers/readme.md index 95de1c1ae2..17c4e42fdc 100644 --- a/modules/Microsoft.Sql/servers/readme.md +++ b/modules/Microsoft.Sql/servers/readme.md @@ -329,11 +329,11 @@ The following module usage examples are retrieved from the content of the files via Bicep module ```bicep -module servers './Microsoft.sql/servers/deploy.bicep = { +module servers './Microsoft.Sql/servers/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-servers-sqladmin' params: { // Required parameters - name: 'carml-sqladmin-001' + name: '-sqladmin-001' // Non-required parameters administrators: { azureADOnlyAuthentication: true @@ -360,7 +360,7 @@ module servers './Microsoft.sql/servers/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "carml-sqladmin-001" + "value": "-sqladmin-001" }, // Non-required parameters "administrators": { @@ -386,11 +386,11 @@ module servers './Microsoft.sql/servers/deploy.bicep = { via Bicep module ```bicep -module servers './Microsoft.sql/servers/deploy.bicep = { +module servers './Microsoft.Sql/servers/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-servers-sqlpar' params: { // Required parameters - name: 'carml-sqlpar-001' + name: '-sqlpar-001' // Non-required parameters administratorLogin: 'adminUserName' administratorLoginPassword: '' @@ -404,7 +404,7 @@ module servers './Microsoft.sql/servers/deploy.bicep = { diagnosticWorkspaceId: '' licenseType: 'LicenseIncluded' maxSizeBytes: 34359738368 - name: 'carml-sqlpardb-001' + name: '-sqlpardb-001' skuCapacity: 12 skuFamily: 'Gen5' skuName: 'BC_Gen5' @@ -474,7 +474,7 @@ module servers './Microsoft.sql/servers/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "carml-sqlpar-001" + "value": "-sqlpar-001" }, // Non-required parameters "administratorLogin": { @@ -494,7 +494,7 @@ module servers './Microsoft.sql/servers/deploy.bicep = { "diagnosticWorkspaceId": "", "licenseType": "LicenseIncluded", "maxSizeBytes": 34359738368, - "name": "carml-sqlpardb-001", + "name": "-sqlpardb-001", "skuCapacity": 12, "skuFamily": "Gen5", "skuName": "BC_Gen5", diff --git a/modules/Microsoft.Synapse/workspaces/readme.md b/modules/Microsoft.Synapse/workspaces/readme.md index 5d6473a595..3a3635bf0d 100644 --- a/modules/Microsoft.Synapse/workspaces/readme.md +++ b/modules/Microsoft.Synapse/workspaces/readme.md @@ -306,7 +306,7 @@ module workspaces './Microsoft.Synapse/workspaces/deploy.bicep' = { name: '${uniqueString(deployment().name)}-workspaces' params: { // Required parameters - defaultDataLakeStorageAccountName: 'adp<>azsaweux001' + defaultDataLakeStorageAccountName: 'adp<>azsasynapse001' defaultDataLakeStorageFilesystem: 'synapsews' name: '<>-az-synws-encryptwsai-001' sqlAdministratorLogin: 'synwsadmin' @@ -334,7 +334,7 @@ module workspaces './Microsoft.Synapse/workspaces/deploy.bicep' = { "parameters": { // Required parameters "defaultDataLakeStorageAccountName": { - "value": "adp<>azsaweux001" + "value": "adp<>azsasynapse001" }, "defaultDataLakeStorageFilesystem": { "value": "synapsews" @@ -379,7 +379,7 @@ module workspaces './Microsoft.Synapse/workspaces/deploy.bicep' = { name: '${uniqueString(deployment().name)}-workspaces' params: { // Required parameters - defaultDataLakeStorageAccountName: 'adp<>azsaweux001' + defaultDataLakeStorageAccountName: 'adp<>azsasynapse001' defaultDataLakeStorageFilesystem: 'synapsews' name: '<>-az-synws-encryptwuai-001' sqlAdministratorLogin: 'synwsadmin' @@ -406,7 +406,7 @@ module workspaces './Microsoft.Synapse/workspaces/deploy.bicep' = { "parameters": { // Required parameters "defaultDataLakeStorageAccountName": { - "value": "adp<>azsaweux001" + "value": "adp<>azsasynapse001" }, "defaultDataLakeStorageFilesystem": { "value": "synapsews" @@ -448,7 +448,7 @@ module workspaces './Microsoft.Synapse/workspaces/deploy.bicep' = { name: '${uniqueString(deployment().name)}-workspaces' params: { // Required parameters - defaultDataLakeStorageAccountName: 'adp<>azsaweux002' + defaultDataLakeStorageAccountName: 'adp<>azsasynapse002' defaultDataLakeStorageFilesystem: 'synapsews' name: '<>-az-synws-managedvnet-001' sqlAdministratorLogin: 'synwsadmin' @@ -476,7 +476,7 @@ module workspaces './Microsoft.Synapse/workspaces/deploy.bicep' = { "parameters": { // Required parameters "defaultDataLakeStorageAccountName": { - "value": "adp<>azsaweux002" + "value": "adp<>azsasynapse002" }, "defaultDataLakeStorageFilesystem": { "value": "synapsews" @@ -517,7 +517,7 @@ module workspaces './Microsoft.Synapse/workspaces/deploy.bicep' = { name: '${uniqueString(deployment().name)}-workspaces' params: { // Required parameters - defaultDataLakeStorageAccountName: 'adp<>azsaweux001' + defaultDataLakeStorageAccountName: 'adp<>azsasynapse001' defaultDataLakeStorageFilesystem: 'synapsews' name: '<>-az-synws-min-001' sqlAdministratorLogin: 'synwsadmin' @@ -539,7 +539,7 @@ module workspaces './Microsoft.Synapse/workspaces/deploy.bicep' = { "parameters": { // Required parameters "defaultDataLakeStorageAccountName": { - "value": "adp<>azsaweux001" + "value": "adp<>azsasynapse001" }, "defaultDataLakeStorageFilesystem": { "value": "synapsews" @@ -568,7 +568,7 @@ module workspaces './Microsoft.Synapse/workspaces/deploy.bicep' = { name: '${uniqueString(deployment().name)}-workspaces' params: { // Required parameters - defaultDataLakeStorageAccountName: 'adp<>azsaweux001' + defaultDataLakeStorageAccountName: 'adp<>azsasynapse001' defaultDataLakeStorageFilesystem: 'synapsews' name: '<>-az-synws-x-001' sqlAdministratorLogin: 'synwsadmin' @@ -627,7 +627,7 @@ module workspaces './Microsoft.Synapse/workspaces/deploy.bicep' = { "parameters": { // Required parameters "defaultDataLakeStorageAccountName": { - "value": "adp<>azsaweux001" + "value": "adp<>azsasynapse001" }, "defaultDataLakeStorageFilesystem": { "value": "synapsews" diff --git a/modules/Microsoft.Web/hostingEnvironments/readme.md b/modules/Microsoft.Web/hostingEnvironments/readme.md index 64c595953c..d3fc478708 100644 --- a/modules/Microsoft.Web/hostingEnvironments/readme.md +++ b/modules/Microsoft.Web/hostingEnvironments/readme.md @@ -217,7 +217,12 @@ module hostingEnvironments './Microsoft.Web/hostingEnvironments/deploy.bicep' = name: '<>-az-appse-asev2-001' subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-008' // Non-required parameters - clusterSettings: '1' + clusterSettings: [ + { + name: 'DisableTls1.0' + value: '1' + } + ] diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' diagnosticEventHubName: 'adp-<>-az-evh-x-001' diagnosticLogsRetentionInDays: 7 @@ -321,7 +326,12 @@ module hostingEnvironments './Microsoft.Web/hostingEnvironments/deploy.bicep' = name: '<>-az-appse-asev3-001' subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-006' // Non-required parameters - clusterSettings: '1' + clusterSettings: [ + { + name: 'DisableTls1.0' + value: '1' + } + ] diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' diagnosticEventHubName: 'adp-<>-az-evh-x-001' diagnosticLogsRetentionInDays: 7 diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index 197d8e581f..5d0c1b7c0f 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -797,7 +797,11 @@ function Set-DeploymentExamplesSection { $rawContent = Get-Content -Path $testFilePath -Encoding 'utf8' | Out-String # Format example header - $exampleTitle = ((Split-Path $testFilePath -LeafBase) -replace '\.', ' ') -replace ' parameters', '' + if ((Split-Path (Split-Path $testFilePath -Parent) -Leaf) -ne '.test') { + $exampleTitle = Split-Path (Split-Path $testFilePath -Parent) -Leaf + } else { + $exampleTitle = ((Split-Path $testFilePath -LeafBase) -replace '\.', ' ') -replace ' parameters', '' + } $TextInfo = (Get-Culture).TextInfo $exampleTitle = $TextInfo.ToTitleCase($exampleTitle) $SectionContent += @( From 7cf084bbde67cc5576922e7c47bb53ceb96a1843 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Tue, 2 Aug 2022 10:33:48 +0200 Subject: [PATCH 156/274] Update to latest --- .../actions/templates/validateModuleDeployment/action.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 116d82a934..8da1df0abf 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -204,7 +204,7 @@ runs: } if ((Split-Path $moduleTemplateFilePath -Extension) -eq '.bicep') { - $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout | ConvertFrom-Json -AsHashtable $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys } else { $moduleTemplatePossibleParameters = ((Get-Content $moduleTemplateFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys @@ -240,7 +240,7 @@ runs: # Handle test template parameters # ------------------------------- if ((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { - $testTemplatePossibleParameters = (az bicep build --file $moduleTestFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable).parameters.Keys + $testTemplatePossibleParameters = (az bicep build --file $moduleTestFilePath --stdout | ConvertFrom-Json -AsHashtable).parameters.Keys } else { $testTemplatePossibleParameters = ((Get-Content $moduleTestFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys } @@ -300,7 +300,7 @@ runs: } if ((Split-Path $moduleTemplateFilePath -Extension) -eq '.bicep') { - $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout | ConvertFrom-Json -AsHashtable $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys } else { $moduleTemplatePossibleParameters = ((Get-Content $moduleTemplateFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys @@ -336,7 +336,7 @@ runs: # Handle test template parameters # ------------------------------- if ((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { - $testTemplatePossibleParameters = (az bicep build --file $moduleTestFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable).parameters.Keys + $testTemplatePossibleParameters = (az bicep build --file $moduleTestFilePath --stdout | ConvertFrom-Json -AsHashtable).parameters.Keys } else { $testTemplatePossibleParameters = ((Get-Content $moduleTestFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys } From 10e788a1b31fedaddddf6f97d750bb1e7b7f9b32 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 5 Aug 2022 22:29:44 +0200 Subject: [PATCH 157/274] Update to latest --- .azuredevops/modulePipelines/ms.aad.domainservices.yml | 1 - .azuredevops/modulePipelines/ms.analysisservices.servers.yml | 1 - .azuredevops/modulePipelines/ms.apimanagement.service.yml | 1 - .../modulePipelines/ms.appconfiguration.configurationstores.yml | 1 - .azuredevops/modulePipelines/ms.authorization.locks.yml | 1 - .../modulePipelines/ms.authorization.policyassignments.yml | 1 - .../modulePipelines/ms.authorization.policydefinitions.yml | 1 - .../modulePipelines/ms.authorization.policyexemptions.yml | 1 - .../modulePipelines/ms.authorization.policysetdefinitions.yml | 1 - .../modulePipelines/ms.authorization.roleassignments.yml | 1 - .../modulePipelines/ms.authorization.roledefinitions.yml | 1 - .../modulePipelines/ms.automation.automationaccounts.yml | 1 - .azuredevops/modulePipelines/ms.batch.batchaccounts.yml | 1 - .azuredevops/modulePipelines/ms.cache.redis.yml | 1 - .azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml | 1 - .azuredevops/modulePipelines/ms.compute.availabilitysets.yml | 1 - .azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml | 1 - .azuredevops/modulePipelines/ms.compute.disks.yml | 1 - .azuredevops/modulePipelines/ms.compute.images.yml | 1 - .../modulePipelines/ms.compute.proximityplacementgroups.yml | 1 - .azuredevops/modulePipelines/ms.compute.virtualmachines.yml | 1 - .../modulePipelines/ms.compute.virtualmachinescalesets.yml | 1 - .azuredevops/modulePipelines/ms.consumption.budgets.yml | 1 - .../modulePipelines/ms.containerinstance.containergroups.yml | 1 - .azuredevops/modulePipelines/ms.containerregistry.registries.yml | 1 - .../modulePipelines/ms.containerservice.managedclusters.yml | 1 - .azuredevops/modulePipelines/ms.databricks.workspaces.yml | 1 - .azuredevops/modulePipelines/ms.datafactory.factories.yml | 1 - .azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml | 1 - .../ms.desktopvirtualization.applicationgroups.yml | 1 - .../modulePipelines/ms.desktopvirtualization.hostpools.yml | 1 - .../modulePipelines/ms.desktopvirtualization.scalingplans.yml | 1 - .../modulePipelines/ms.desktopvirtualization.workspaces.yml | 1 - .azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml | 1 - .azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml | 1 - .azuredevops/modulePipelines/ms.eventgrid.topics.yml | 1 - .azuredevops/modulePipelines/ms.eventhub.namespaces.yml | 1 - .azuredevops/modulePipelines/ms.healthbot.healthbots.yml | 1 - .azuredevops/modulePipelines/ms.insights.actiongroups.yml | 1 - .azuredevops/modulePipelines/ms.insights.activitylogalerts.yml | 1 - .azuredevops/modulePipelines/ms.insights.components.yml | 1 - .azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml | 1 - .azuredevops/modulePipelines/ms.insights.metricalerts.yml | 1 - .azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml | 1 - .azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml | 1 - .azuredevops/modulePipelines/ms.keyvault.vaults.yml | 1 - .../modulePipelines/ms.kubernetesconfiguration.extensions.yml | 1 - .../ms.kubernetesconfiguration.fluxconfigurations.yml | 1 - .azuredevops/modulePipelines/ms.logic.workflows.yml | 1 - .../modulePipelines/ms.machinelearningservices.workspaces.yml | 1 - .../ms.managedidentity.userassignedidentities.yml | 1 - .../ms.managedservices.registrationdefinitions.yml | 1 - .azuredevops/modulePipelines/ms.management.managementgroups.yml | 1 - .azuredevops/modulePipelines/ms.netapp.netappaccounts.yml | 1 - .azuredevops/modulePipelines/ms.network.applicationgateways.yml | 1 - .../modulePipelines/ms.network.applicationsecuritygroups.yml | 1 - .azuredevops/modulePipelines/ms.network.azurefirewalls.yml | 1 - .azuredevops/modulePipelines/ms.network.bastionhosts.yml | 1 - .azuredevops/modulePipelines/ms.network.connections.yml | 1 - .azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml | 1 - .azuredevops/modulePipelines/ms.network.expressroutecircuits.yml | 1 - .azuredevops/modulePipelines/ms.network.firewallpolicies.yml | 1 - .azuredevops/modulePipelines/ms.network.frontdoors.yml | 1 - .azuredevops/modulePipelines/ms.network.ipgroups.yml | 1 - .azuredevops/modulePipelines/ms.network.loadbalancers.yml | 1 - .azuredevops/modulePipelines/ms.network.localnetworkgateways.yml | 1 - .azuredevops/modulePipelines/ms.network.natgateways.yml | 1 - .azuredevops/modulePipelines/ms.network.networkinterfaces.yml | 1 - .../modulePipelines/ms.network.networksecuritygroups.yml | 1 - .azuredevops/modulePipelines/ms.network.networkwatchers.yml | 1 - .azuredevops/modulePipelines/ms.network.privatednszones.yml | 1 - .azuredevops/modulePipelines/ms.network.privateendpoints.yml | 1 - .azuredevops/modulePipelines/ms.network.publicipaddresses.yml | 1 - .azuredevops/modulePipelines/ms.network.publicipprefixes.yml | 1 - .azuredevops/modulePipelines/ms.network.routetables.yml | 1 - .../modulePipelines/ms.network.trafficmanagerprofiles.yml | 1 - .azuredevops/modulePipelines/ms.network.virtualhubs.yml | 1 - .../modulePipelines/ms.network.virtualnetworkgateways.yml | 1 - .azuredevops/modulePipelines/ms.network.virtualnetworks.yml | 1 - .azuredevops/modulePipelines/ms.network.virtualwans.yml | 1 - .azuredevops/modulePipelines/ms.network.vpngateways.yml | 1 - .azuredevops/modulePipelines/ms.network.vpnsites.yml | 1 - .../modulePipelines/ms.operationalinsights.workspaces.yml | 1 - .../modulePipelines/ms.operationsmanagement.solutions.yml | 1 - .azuredevops/modulePipelines/ms.recoveryservices.vaults.yml | 1 - .azuredevops/modulePipelines/ms.resources.deploymentscripts.yml | 1 - .azuredevops/modulePipelines/ms.resources.resourcegroups.yml | 1 - .azuredevops/modulePipelines/ms.resources.tags.yml | 1 - .azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml | 1 - .azuredevops/modulePipelines/ms.servicebus.namespaces.yml | 1 - .azuredevops/modulePipelines/ms.servicefabric.clusters.yml | 1 - .azuredevops/modulePipelines/ms.signalrservice.webpubsub.yml | 1 - .azuredevops/modulePipelines/ms.sql.managedinstances.yml | 1 - .azuredevops/modulePipelines/ms.sql.servers.yml | 1 - .azuredevops/modulePipelines/ms.storage.storageaccounts.yml | 1 - .azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml | 1 - .azuredevops/modulePipelines/ms.synapse.workspaces.yml | 1 - .../modulePipelines/ms.virtualmachineimages.imagetemplates.yml | 1 - .azuredevops/modulePipelines/ms.web.connections.yml | 1 - .azuredevops/modulePipelines/ms.web.hostingenvironments.yml | 1 - .azuredevops/modulePipelines/ms.web.serverfarms.yml | 1 - .azuredevops/modulePipelines/ms.web.sites.yml | 1 - .azuredevops/modulePipelines/ms.web.staticsites.yml | 1 - 103 files changed, 103 deletions(-) diff --git a/.azuredevops/modulePipelines/ms.aad.domainservices.yml b/.azuredevops/modulePipelines/ms.aad.domainservices.yml index 58bf6604f1..6fc8ccdee0 100644 --- a/.azuredevops/modulePipelines/ms.aad.domainservices.yml +++ b/.azuredevops/modulePipelines/ms.aad.domainservices.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.analysisservices.servers.yml b/.azuredevops/modulePipelines/ms.analysisservices.servers.yml index aad3873020..0ccc219757 100644 --- a/.azuredevops/modulePipelines/ms.analysisservices.servers.yml +++ b/.azuredevops/modulePipelines/ms.analysisservices.servers.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.apimanagement.service.yml b/.azuredevops/modulePipelines/ms.apimanagement.service.yml index 07ff74112d..e7fd2cecde 100644 --- a/.azuredevops/modulePipelines/ms.apimanagement.service.yml +++ b/.azuredevops/modulePipelines/ms.apimanagement.service.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml b/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml index 07779b4257..635ce4c910 100644 --- a/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml +++ b/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.authorization.locks.yml b/.azuredevops/modulePipelines/ms.authorization.locks.yml index 56c80c84c6..9d3d5b7220 100644 --- a/.azuredevops/modulePipelines/ms.authorization.locks.yml +++ b/.azuredevops/modulePipelines/ms.authorization.locks.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml b/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml index 60fb49727c..3487c1033d 100644 --- a/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml +++ b/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml b/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml index b27e027a71..fd137d74c8 100644 --- a/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml +++ b/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml b/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml index b978ea9599..2187ebc311 100644 --- a/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml +++ b/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml b/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml index f3cc84d9c1..4b3d0293ed 100644 --- a/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml +++ b/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml b/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml index fa2d5213fd..78b12bb4e9 100644 --- a/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml +++ b/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml b/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml index fde3cf0194..b26536801e 100644 --- a/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml +++ b/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml b/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml index 14214e97b0..1b4da0ac80 100644 --- a/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml +++ b/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml b/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml index 746e58f99b..891bfe3a23 100644 --- a/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml +++ b/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.cache.redis.yml b/.azuredevops/modulePipelines/ms.cache.redis.yml index e2ffef388e..6437563cc8 100644 --- a/.azuredevops/modulePipelines/ms.cache.redis.yml +++ b/.azuredevops/modulePipelines/ms.cache.redis.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml b/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml index a680a63889..80761d10bc 100644 --- a/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml +++ b/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml b/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml index 9745d14be2..c48c996745 100644 --- a/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml +++ b/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml b/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml index 235f886534..b96ac899fc 100644 --- a/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml +++ b/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.compute.disks.yml b/.azuredevops/modulePipelines/ms.compute.disks.yml index 956885e595..b41778f2ff 100644 --- a/.azuredevops/modulePipelines/ms.compute.disks.yml +++ b/.azuredevops/modulePipelines/ms.compute.disks.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.compute.images.yml b/.azuredevops/modulePipelines/ms.compute.images.yml index f7f892116f..b66e0d6646 100644 --- a/.azuredevops/modulePipelines/ms.compute.images.yml +++ b/.azuredevops/modulePipelines/ms.compute.images.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml b/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml index fa422de640..f82b342807 100644 --- a/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml +++ b/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml b/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml index 1c26d16605..f9e7e15524 100644 --- a/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml +++ b/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml b/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml index 7d67b26da3..03f0b92596 100644 --- a/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml +++ b/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.consumption.budgets.yml b/.azuredevops/modulePipelines/ms.consumption.budgets.yml index 03001fc8e6..633a44bc13 100644 --- a/.azuredevops/modulePipelines/ms.consumption.budgets.yml +++ b/.azuredevops/modulePipelines/ms.consumption.budgets.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml b/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml index 9841c38379..a08229d1a0 100644 --- a/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml +++ b/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.containerregistry.registries.yml b/.azuredevops/modulePipelines/ms.containerregistry.registries.yml index 8cd4008522..5c5b02b9ed 100644 --- a/.azuredevops/modulePipelines/ms.containerregistry.registries.yml +++ b/.azuredevops/modulePipelines/ms.containerregistry.registries.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml b/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml index bb2e0b1cf0..2287e799a0 100644 --- a/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml +++ b/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.databricks.workspaces.yml b/.azuredevops/modulePipelines/ms.databricks.workspaces.yml index dd74c9d2da..b8906e32d3 100644 --- a/.azuredevops/modulePipelines/ms.databricks.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.databricks.workspaces.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.datafactory.factories.yml b/.azuredevops/modulePipelines/ms.datafactory.factories.yml index 15afc00d69..25c240a739 100644 --- a/.azuredevops/modulePipelines/ms.datafactory.factories.yml +++ b/.azuredevops/modulePipelines/ms.datafactory.factories.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml b/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml index 32d57d83ec..081badfc69 100644 --- a/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml +++ b/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml b/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml index 06969bfd57..882a7252db 100644 --- a/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml +++ b/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml b/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml index bc87e4892d..dbbb65913f 100644 --- a/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml +++ b/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml b/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml index 4dccc29172..609fbcb3b3 100644 --- a/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml +++ b/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml b/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml index 5f71114f58..f71d6f2e9a 100644 --- a/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml b/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml index 2f2469f550..48003c38dd 100644 --- a/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml +++ b/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml b/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml index 9c036345e6..cda2137308 100644 --- a/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml +++ b/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.eventgrid.topics.yml b/.azuredevops/modulePipelines/ms.eventgrid.topics.yml index 4174b2ffeb..7bea81ca5d 100644 --- a/.azuredevops/modulePipelines/ms.eventgrid.topics.yml +++ b/.azuredevops/modulePipelines/ms.eventgrid.topics.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml b/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml index ac7b91b36b..f249d03bd1 100644 --- a/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml +++ b/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml b/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml index db75f3c39c..07043ef06e 100644 --- a/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml +++ b/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.insights.actiongroups.yml b/.azuredevops/modulePipelines/ms.insights.actiongroups.yml index ad8a117439..5de4b8ad9e 100644 --- a/.azuredevops/modulePipelines/ms.insights.actiongroups.yml +++ b/.azuredevops/modulePipelines/ms.insights.actiongroups.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml b/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml index e201cd2a66..44747c7226 100644 --- a/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml +++ b/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.insights.components.yml b/.azuredevops/modulePipelines/ms.insights.components.yml index a86c6ea9ef..35319946c1 100644 --- a/.azuredevops/modulePipelines/ms.insights.components.yml +++ b/.azuredevops/modulePipelines/ms.insights.components.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml b/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml index f5801147de..0e33edeece 100644 --- a/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml +++ b/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.insights.metricalerts.yml b/.azuredevops/modulePipelines/ms.insights.metricalerts.yml index 855a67df35..ab7e782f53 100644 --- a/.azuredevops/modulePipelines/ms.insights.metricalerts.yml +++ b/.azuredevops/modulePipelines/ms.insights.metricalerts.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml b/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml index 75cc881887..feb6e6a8d5 100644 --- a/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml +++ b/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml b/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml index f541ef6522..23ec070c42 100644 --- a/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml +++ b/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.keyvault.vaults.yml b/.azuredevops/modulePipelines/ms.keyvault.vaults.yml index 617d83eec7..7e0f0aa48e 100644 --- a/.azuredevops/modulePipelines/ms.keyvault.vaults.yml +++ b/.azuredevops/modulePipelines/ms.keyvault.vaults.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml index c470c2f881..3a7c2f5aeb 100644 --- a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml +++ b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml index 1387bb9c75..bee10b2782 100644 --- a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml +++ b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.logic.workflows.yml b/.azuredevops/modulePipelines/ms.logic.workflows.yml index 6a2be95dc3..376bdadfa4 100644 --- a/.azuredevops/modulePipelines/ms.logic.workflows.yml +++ b/.azuredevops/modulePipelines/ms.logic.workflows.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml b/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml index b5e36ded43..f68a3a3ee5 100644 --- a/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml b/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml index 54bea0feab..46f88afd42 100644 --- a/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml +++ b/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml b/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml index 7e1f500b46..554b737336 100644 --- a/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml +++ b/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.management.managementgroups.yml b/.azuredevops/modulePipelines/ms.management.managementgroups.yml index 75c08842bb..4ba1bb4068 100644 --- a/.azuredevops/modulePipelines/ms.management.managementgroups.yml +++ b/.azuredevops/modulePipelines/ms.management.managementgroups.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml b/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml index d647e113b4..0e5389def4 100644 --- a/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml +++ b/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.applicationgateways.yml b/.azuredevops/modulePipelines/ms.network.applicationgateways.yml index 103f62841e..93166ef4e1 100644 --- a/.azuredevops/modulePipelines/ms.network.applicationgateways.yml +++ b/.azuredevops/modulePipelines/ms.network.applicationgateways.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml b/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml index 18a2c0d52f..d1a7c37c94 100644 --- a/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml +++ b/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml b/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml index 348568365d..69b81d4f55 100644 --- a/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml +++ b/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.bastionhosts.yml b/.azuredevops/modulePipelines/ms.network.bastionhosts.yml index 97facbf7cc..ad93228cea 100644 --- a/.azuredevops/modulePipelines/ms.network.bastionhosts.yml +++ b/.azuredevops/modulePipelines/ms.network.bastionhosts.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.connections.yml b/.azuredevops/modulePipelines/ms.network.connections.yml index 55942bfd5f..98b285daf4 100644 --- a/.azuredevops/modulePipelines/ms.network.connections.yml +++ b/.azuredevops/modulePipelines/ms.network.connections.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml b/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml index d02eff0863..8c0dcfe1ce 100644 --- a/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml +++ b/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml b/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml index cef61eaba3..1cd0d42474 100644 --- a/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml +++ b/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml b/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml index 5d6c2a19b5..ca506220c0 100644 --- a/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml +++ b/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.frontdoors.yml b/.azuredevops/modulePipelines/ms.network.frontdoors.yml index bd21d0288e..c175bfc03b 100644 --- a/.azuredevops/modulePipelines/ms.network.frontdoors.yml +++ b/.azuredevops/modulePipelines/ms.network.frontdoors.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.ipgroups.yml b/.azuredevops/modulePipelines/ms.network.ipgroups.yml index b19960198c..9838a500c2 100644 --- a/.azuredevops/modulePipelines/ms.network.ipgroups.yml +++ b/.azuredevops/modulePipelines/ms.network.ipgroups.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.loadbalancers.yml b/.azuredevops/modulePipelines/ms.network.loadbalancers.yml index 761b9da706..f1629a9390 100644 --- a/.azuredevops/modulePipelines/ms.network.loadbalancers.yml +++ b/.azuredevops/modulePipelines/ms.network.loadbalancers.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml b/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml index d6c6402d16..ce54223cef 100644 --- a/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml +++ b/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.natgateways.yml b/.azuredevops/modulePipelines/ms.network.natgateways.yml index 4d99764aa1..dc86474537 100644 --- a/.azuredevops/modulePipelines/ms.network.natgateways.yml +++ b/.azuredevops/modulePipelines/ms.network.natgateways.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml b/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml index ac5bdc85fb..e22ee92ed8 100644 --- a/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml +++ b/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml b/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml index 406f1e4383..e3bb54830f 100644 --- a/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml +++ b/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.networkwatchers.yml b/.azuredevops/modulePipelines/ms.network.networkwatchers.yml index f5478f2418..0b8e7d28b3 100644 --- a/.azuredevops/modulePipelines/ms.network.networkwatchers.yml +++ b/.azuredevops/modulePipelines/ms.network.networkwatchers.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.privatednszones.yml b/.azuredevops/modulePipelines/ms.network.privatednszones.yml index 5b49207d72..c508dcb0d5 100644 --- a/.azuredevops/modulePipelines/ms.network.privatednszones.yml +++ b/.azuredevops/modulePipelines/ms.network.privatednszones.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.privateendpoints.yml b/.azuredevops/modulePipelines/ms.network.privateendpoints.yml index f205a7b5ca..be2577b896 100644 --- a/.azuredevops/modulePipelines/ms.network.privateendpoints.yml +++ b/.azuredevops/modulePipelines/ms.network.privateendpoints.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml b/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml index 88e1f627e6..a7ed81d617 100644 --- a/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml +++ b/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml b/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml index 3b22072d8a..7459ec1c54 100644 --- a/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml +++ b/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.routetables.yml b/.azuredevops/modulePipelines/ms.network.routetables.yml index d5d717696a..1dc1cd6379 100644 --- a/.azuredevops/modulePipelines/ms.network.routetables.yml +++ b/.azuredevops/modulePipelines/ms.network.routetables.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml b/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml index 133663f7da..051fc9b60b 100644 --- a/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml +++ b/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.virtualhubs.yml b/.azuredevops/modulePipelines/ms.network.virtualhubs.yml index a6affaedd5..394535e640 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualhubs.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualhubs.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml b/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml index 98d3e8a901..4d06fb0556 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml b/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml index f886573aa3..8d44ed8fd8 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.virtualwans.yml b/.azuredevops/modulePipelines/ms.network.virtualwans.yml index 38ee3f684f..21f92b97d9 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualwans.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualwans.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.vpngateways.yml b/.azuredevops/modulePipelines/ms.network.vpngateways.yml index efffec333b..0dc281ca48 100644 --- a/.azuredevops/modulePipelines/ms.network.vpngateways.yml +++ b/.azuredevops/modulePipelines/ms.network.vpngateways.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.network.vpnsites.yml b/.azuredevops/modulePipelines/ms.network.vpnsites.yml index d9147a4611..11854bdca3 100644 --- a/.azuredevops/modulePipelines/ms.network.vpnsites.yml +++ b/.azuredevops/modulePipelines/ms.network.vpnsites.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml b/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml index 3706909b82..6a89ebcddc 100644 --- a/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml b/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml index 04a1867573..e5627159bb 100644 --- a/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml +++ b/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml b/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml index caafa04448..931902c7ac 100644 --- a/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml +++ b/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml b/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml index de72d4f0aa..bc4013082e 100644 --- a/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml +++ b/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml b/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml index 2f5fc36bd8..b125531c64 100644 --- a/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml +++ b/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.resources.tags.yml b/.azuredevops/modulePipelines/ms.resources.tags.yml index 64e5be1357..2e1181b772 100644 --- a/.azuredevops/modulePipelines/ms.resources.tags.yml +++ b/.azuredevops/modulePipelines/ms.resources.tags.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml b/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml index 898203df8c..7ef4c5cfe3 100644 --- a/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml +++ b/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml b/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml index aa94cfc405..e9f333f146 100644 --- a/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml +++ b/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml b/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml index 9f6681997c..74c199916c 100644 --- a/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml +++ b/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.signalrservice.webpubsub.yml b/.azuredevops/modulePipelines/ms.signalrservice.webpubsub.yml index da453fe637..2ba0b201f1 100644 --- a/.azuredevops/modulePipelines/ms.signalrservice.webpubsub.yml +++ b/.azuredevops/modulePipelines/ms.signalrservice.webpubsub.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.sql.managedinstances.yml b/.azuredevops/modulePipelines/ms.sql.managedinstances.yml index 0345a55e92..964066946e 100644 --- a/.azuredevops/modulePipelines/ms.sql.managedinstances.yml +++ b/.azuredevops/modulePipelines/ms.sql.managedinstances.yml @@ -38,5 +38,4 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' defaultJobTimeoutInMinutes: 360 diff --git a/.azuredevops/modulePipelines/ms.sql.servers.yml b/.azuredevops/modulePipelines/ms.sql.servers.yml index 0943b55693..452f013e44 100644 --- a/.azuredevops/modulePipelines/ms.sql.servers.yml +++ b/.azuredevops/modulePipelines/ms.sql.servers.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml b/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml index 173e7929f1..eb36b76e61 100644 --- a/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml +++ b/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml b/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml index 00f14c4906..4541b2085d 100644 --- a/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml +++ b/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.synapse.workspaces.yml b/.azuredevops/modulePipelines/ms.synapse.workspaces.yml index e6e94803db..0f54cd80f7 100644 --- a/.azuredevops/modulePipelines/ms.synapse.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.synapse.workspaces.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml b/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml index 5092dc8cbc..c46b80a192 100644 --- a/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml +++ b/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.web.connections.yml b/.azuredevops/modulePipelines/ms.web.connections.yml index 96f85436bb..dabe963b9f 100644 --- a/.azuredevops/modulePipelines/ms.web.connections.yml +++ b/.azuredevops/modulePipelines/ms.web.connections.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml b/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml index f90c8630ee..1cdca627e5 100644 --- a/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml +++ b/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml @@ -38,5 +38,4 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' defaultJobTimeoutInMinutes: 180 diff --git a/.azuredevops/modulePipelines/ms.web.serverfarms.yml b/.azuredevops/modulePipelines/ms.web.serverfarms.yml index 1066558577..08af684f19 100644 --- a/.azuredevops/modulePipelines/ms.web.serverfarms.yml +++ b/.azuredevops/modulePipelines/ms.web.serverfarms.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.web.sites.yml b/.azuredevops/modulePipelines/ms.web.sites.yml index 0fd06dae24..3173c9232b 100644 --- a/.azuredevops/modulePipelines/ms.web.sites.yml +++ b/.azuredevops/modulePipelines/ms.web.sites.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' diff --git a/.azuredevops/modulePipelines/ms.web.staticsites.yml b/.azuredevops/modulePipelines/ms.web.staticsites.yml index 103ba17be0..cdd1580529 100644 --- a/.azuredevops/modulePipelines/ms.web.staticsites.yml +++ b/.azuredevops/modulePipelines/ms.web.staticsites.yml @@ -38,4 +38,3 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' prerelease: '${{ parameters.prerelease }}' - templateFilePath: '$(modulePath)/deploy.bicep' From 6ee637a045c30196e2dc11853d91cd9150a2053f Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 5 Aug 2022 22:35:32 +0200 Subject: [PATCH 158/274] Changed namePrefix param to token --- .../servers/.test/default/deploy.test.bicep | 15 +++++------ .../servers/.test/max/deploy.test.bicep | 15 +++++------ .../servers/.test/min/deploy.test.bicep | 6 +---- .../.test/default/deploy.test.bicep | 14 ++++------ .../virtualHubs/.test/min/deploy.test.bicep | 8 ++---- .../vpnSites/.test/default/deploy.test.bicep | 12 +++------ .../vpnSites/.test/min/deploy.test.bicep | 8 ++---- .../servers/.test/admin/deploy.test.bicep | 8 ++---- .../servers/.test/default/deploy.test.bicep | 26 ++++++++----------- 9 files changed, 39 insertions(+), 73 deletions(-) diff --git a/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep index e6e5738c52..deb354bf62 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep @@ -4,9 +4,6 @@ targetScope = 'subscription' // Parameters // // ========== // -@description('Required. The name prefix to inject into all resource names') -param namePrefix string - @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.analysisservices-servers-rg' @@ -32,7 +29,7 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-${namePrefix}-msi-${serviceShort}-01' + managedIdentityName: 'dep-<>-msi-${serviceShort}-01' } } @@ -42,10 +39,10 @@ module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnost scope: resourceGroup name: '${uniqueString(deployment().name, location)}-diagDep' params: { - storageAccountName: 'dep${namePrefix}azsa${serviceShort}01' - logAnalyticsWorkspaceName: 'dep-${namePrefix}-law-${serviceShort}-01' - eventHubNamespaceEventHubName: 'dep-${namePrefix}-evh-${serviceShort}-01' - eventHubNamespaceName: 'dep-${namePrefix}-evhns-${serviceShort}-01' + storageAccountName: 'dep<>azsa${serviceShort}01' + logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}-01' + eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}-01' + eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}-01' location: location } } @@ -58,7 +55,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { - name: '${namePrefix}az${serviceShort}001' + name: '<>az${serviceShort}001' lock: 'CanNotDelete' skuName: 'S0' roleAssignments: [ diff --git a/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep index fd4c156008..869ce4ab1e 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep @@ -4,9 +4,6 @@ targetScope = 'subscription' // Parameters // // ========== // -@description('Required. The name prefix to inject into all resource names') -param namePrefix string - @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.analysisservices-servers-rg' @@ -32,7 +29,7 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-${namePrefix}-msi-${serviceShort}-01' + managedIdentityName: 'dep-<>-msi-${serviceShort}-01' } } @@ -42,10 +39,10 @@ module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnost scope: resourceGroup name: '${uniqueString(deployment().name, location)}-diagDep' params: { - storageAccountName: 'dep${namePrefix}azsa${serviceShort}01' - logAnalyticsWorkspaceName: 'dep-${namePrefix}-law-${serviceShort}-01' - eventHubNamespaceEventHubName: 'dep-${namePrefix}-evh-${serviceShort}-01' - eventHubNamespaceName: 'dep-${namePrefix}-evhns-${serviceShort}-01' + storageAccountName: 'dep<>azsa${serviceShort}01' + logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}-01' + eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}-01' + eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}-01' location: location } } @@ -58,7 +55,7 @@ module testDeployment '../../deploy.bicep' = { scope: az.resourceGroup(resourceGroupName) name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { - name: '${namePrefix}az${serviceShort}001' + name: '<>az${serviceShort}001' lock: 'CanNotDelete' skuName: 'S0' skuCapacity: 1 diff --git a/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep index d55bbc6cae..5856ad254b 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep @@ -4,10 +4,6 @@ targetScope = 'subscription' // Parameters // // ========== // -// Resource Group -@description('Required. The name prefix to inject into all resource names') -param namePrefix string - @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.analysisservices-servers-rg' @@ -37,6 +33,6 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { - name: '${namePrefix}az${serviceShort}001' + name: '<>az${serviceShort}001' } } diff --git a/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep b/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep index d1aef357d7..8084a3985f 100644 --- a/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep @@ -4,10 +4,6 @@ targetScope = 'subscription' // Parameters // // ========== // -// Resource Group -@description('Required. The name prefix to inject into all resource names') -param namePrefix string - @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.network-virtualHub-rg' @@ -33,8 +29,8 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - virtualWANName: 'dep-${namePrefix}-vw-${serviceShort}-001' - virtualNetworkName: 'dep-${namePrefix}-vnet-${serviceShort}-001' + virtualWANName: 'dep-<>-vw-${serviceShort}-001' + virtualNetworkName: 'dep-<>-vnet-${serviceShort}-001' } } @@ -46,7 +42,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-virtualHub-${serviceShort}' params: { - name: '${namePrefix}-${serviceShort}-001' + name: '<>-${serviceShort}-001' lock: 'CanNotDelete' addressPrefix: '10.1.0.0/16' virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId @@ -61,12 +57,12 @@ module testDeployment '../../deploy.bicep' = { remoteVirtualNetworkId: resourceGroupResources.outputs.virtualNetworkResourceId routingConfiguration: { associatedRouteTable: { - id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/${namePrefix}-${serviceShort}-001/hubRouteTables/routeTable1' + id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-${serviceShort}-001/hubRouteTables/routeTable1' } propagatedRouteTables: { ids: [ { - id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/${namePrefix}-${serviceShort}-001/hubRouteTables/routeTable1' + id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-${serviceShort}-001/hubRouteTables/routeTable1' } ] labels: [ diff --git a/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep b/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep index ff67c00d49..27394a4b6b 100644 --- a/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep +++ b/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep @@ -4,10 +4,6 @@ targetScope = 'subscription' // Parameters // // ========== // -// Resource Group -@description('Required. The name prefix to inject into all resource names') -param namePrefix string - @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.network-virtualHub-rg' @@ -33,7 +29,7 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - virtualWANName: 'dep-${namePrefix}-vw-${serviceShort}-001' + virtualWANName: 'dep-<>-vw-${serviceShort}-001' } } @@ -45,7 +41,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-virtualHub-${serviceShort}' params: { - name: '${namePrefix}-${serviceShort}-001' + name: '<>-${serviceShort}-001' addressPrefix: '10.0.0.0/16' virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId } diff --git a/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep b/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep index 6963cb027a..847ec58f5b 100644 --- a/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep @@ -4,10 +4,6 @@ targetScope = 'subscription' // Parameters // // ========== // -// Resource Group -@description('Required. The name prefix to inject into all resource names') -param namePrefix string - @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.network-vpnSites-rg' @@ -33,8 +29,8 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-${namePrefix}-msi-${serviceShort}-01' - virtualWANName: 'dep-${namePrefix}-vw-${serviceShort}-001' + managedIdentityName: 'dep-<>-msi-${serviceShort}-01' + virtualWANName: 'dep-<>-vw-${serviceShort}-001' } } @@ -46,7 +42,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-vpnSites-${serviceShort}' params: { - name: '${namePrefix}-${serviceShort}-001' + name: '<>-${serviceShort}-001' virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId lock: 'CanNotDelete' tags: { @@ -58,7 +54,7 @@ module testDeployment '../../deploy.bicep' = { } vpnSiteLinks: [ { - name: '${namePrefix}-vSite-${serviceShort}-001' + name: '<>-vSite-${serviceShort}-001' properties: { bgpProperties: { asn: 65010 diff --git a/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep b/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep index 4c988c20dd..0c684c4953 100644 --- a/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep @@ -4,10 +4,6 @@ targetScope = 'subscription' // Parameters // // ========== // -// Resource Group -@description('Required. The name prefix to inject into all resource names') -param namePrefix string - @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.network-vpnSites-rg' @@ -33,7 +29,7 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - virtualWANName: 'dep-${namePrefix}-vw-${serviceShort}-001' + virtualWANName: 'dep-<>-vw-${serviceShort}-001' } } @@ -45,7 +41,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-vpnSites-${serviceShort}' params: { - name: '${namePrefix}-${serviceShort}-001' + name: '<>-${serviceShort}-001' virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId addressPrefixes: [ '10.0.0.0/16' diff --git a/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep b/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep index 008bca02c5..f972f9e78a 100644 --- a/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep +++ b/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep @@ -4,10 +4,6 @@ targetScope = 'subscription' // Parameters // // ========== // -// Resource Group -@description('Required. The name prefix to inject into all resource names') -param namePrefix string - @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.sql-servers-rg' @@ -33,7 +29,7 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-${namePrefix}-msi-${serviceShort}-01' + managedIdentityName: 'dep-<>-msi-${serviceShort}-01' } } @@ -45,7 +41,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { - name: '${namePrefix}-${serviceShort}-001' + name: '<>-${serviceShort}-001' administrators: { azureADOnlyAuthentication: true login: 'myspn' diff --git a/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep b/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep index d80bb57b29..dadc906d64 100644 --- a/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep @@ -4,10 +4,6 @@ targetScope = 'subscription' // Parameters // // ========== // -// Resource Group -@description('Required. The name prefix to inject into all resource names') -param namePrefix string - @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.sql-servers-rg' @@ -33,17 +29,17 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-${namePrefix}-msi-${serviceShort}-01' - virtualNetworkName: 'adp-${namePrefix}-vnet-${serviceShort}-01' - deploymentScriptName: 'adp-${namePrefix}-ds-kv-${serviceShort}-01' - keyVaultName: 'adp-${namePrefix}-kv-${serviceShort}-01' + managedIdentityName: 'dep-<>-msi-${serviceShort}-01' + virtualNetworkName: 'adp-<>-vnet-${serviceShort}-01' + deploymentScriptName: 'adp-<>-ds-kv-${serviceShort}-01' + keyVaultName: 'adp-<>-kv-${serviceShort}-01' passwordSecretName: 'adminPassword' location: location } } resource keyVaultReference 'Microsoft.KeyVault/vaults@2021-10-01' existing = { - name: 'adp-${namePrefix}-kv-${serviceShort}-01' + name: 'adp-<>-kv-${serviceShort}-01' scope: resourceGroup } @@ -53,10 +49,10 @@ module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnost scope: resourceGroup name: '${uniqueString(deployment().name, location)}-diagDep' params: { - storageAccountName: 'dep${namePrefix}azsa${serviceShort}01' - logAnalyticsWorkspaceName: 'dep-${namePrefix}-law-${serviceShort}-01' - eventHubNamespaceEventHubName: 'dep-${namePrefix}-evh-${serviceShort}-01' - eventHubNamespaceName: 'dep-${namePrefix}-evhns-${serviceShort}-01' + storageAccountName: 'dep<>azsa${serviceShort}01' + logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}-01' + eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}-01' + eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}-01' location: location } } @@ -69,7 +65,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { - name: '${namePrefix}-${serviceShort}-001' + name: '<>-${serviceShort}-001' lock: 'CanNotDelete' administratorLogin: 'adminUserName' administratorLoginPassword: keyVaultReference.getSecret(resourceGroupResources.outputs.secretName) @@ -95,7 +91,7 @@ module testDeployment '../../deploy.bicep' = { } databases: [ { - name: '${namePrefix}-${serviceShort}db-001' + name: '<>-${serviceShort}db-001' collation: 'SQL_Latin1_General_CP1_CI_AS' skuTier: 'BusinessCritical' skuName: 'BC_Gen5' From b203be8b2d8c42c98394a4db1d33b59817fe9aed Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 5 Aug 2022 22:38:15 +0200 Subject: [PATCH 159/274] Removed namePrefix param leftovers --- .../jobs.validateModuleDeployment.yml | 28 ------------------- .../validateModuleDeployment/action.yml | 28 ------------------- utilities/tools/Test-ModuleLocally.ps1 | 17 ----------- 3 files changed, 73 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 957dbb79ee..b707cc5857 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -234,20 +234,6 @@ jobs: # ================================ $functionInput['templateFilePath'] = $moduleTestFilePath - - # Handle test template parameters - # ------------------------------- - if ((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { - $testTemplatePossibleParameters = (az bicep build --file $moduleTestFilePath --stdout | ConvertFrom-Json -AsHashtable).parameters.Keys - } else { - $testTemplatePossibleParameters = ((Get-Content $moduleTestFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys - } - - if ($testTemplatePossibleParameters -contains 'namePrefix') { - $functionInput['additionalParameters'] += @{ - namePrefix = ($projectSettings.parameterFileTokens.localTokens | Where-Object { $_.name -eq 'namePrefix' }).value - } - } } # Handle additional parameters @@ -326,20 +312,6 @@ jobs: # ================================ $functionInput['templateFilePath'] = $moduleTestFilePath - - # Handle test template parameters - # ------------------------------- - if ((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { - $testTemplatePossibleParameters = (az bicep build --file $moduleTestFilePath --stdout | ConvertFrom-Json -AsHashtable).parameters.Keys - } else { - $testTemplatePossibleParameters = ((Get-Content $moduleTestFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys - } - - if ($testTemplatePossibleParameters -contains 'namePrefix') { - $functionInput['additionalParameters'] += @{ - namePrefix = ($projectSettings.parameterFileTokens.localTokens | Where-Object { $_.name -eq 'namePrefix' }).value - } - } } # Handle additional parameters diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 84fb768a77..2197580e1b 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -241,20 +241,6 @@ runs: # ================================ $functionInput['templateFilePath'] = $moduleTestFilePath - - # Handle test template parameters - # ------------------------------- - if ((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { - $testTemplatePossibleParameters = (az bicep build --file $moduleTestFilePath --stdout | ConvertFrom-Json -AsHashtable).parameters.Keys - } else { - $testTemplatePossibleParameters = ((Get-Content $moduleTestFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys - } - - if ($testTemplatePossibleParameters -contains 'namePrefix') { - $functionInput['additionalParameters'] += @{ - namePrefix = ($projectSettings.parameterFileTokens.localTokens | Where-Object { $_.name -eq 'namePrefix' }).value - } - } } # Handle additional parameters @@ -337,20 +323,6 @@ runs: # ================================ $functionInput['templateFilePath'] = $moduleTestFilePath - - # Handle test template parameters - # ------------------------------- - if ((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { - $testTemplatePossibleParameters = (az bicep build --file $moduleTestFilePath --stdout | ConvertFrom-Json -AsHashtable).parameters.Keys - } else { - $testTemplatePossibleParameters = ((Get-Content $moduleTestFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys - } - - if ($testTemplatePossibleParameters -contains 'namePrefix') { - $functionInput['additionalParameters'] += @{ - namePrefix = ($projectSettings.parameterFileTokens.localTokens | Where-Object { $_.name -eq 'namePrefix' }).value - } - } } # Handle additional parameters diff --git a/utilities/tools/Test-ModuleLocally.ps1 b/utilities/tools/Test-ModuleLocally.ps1 index 81ba46bac9..bd1ea3bad8 100644 --- a/utilities/tools/Test-ModuleLocally.ps1 +++ b/utilities/tools/Test-ModuleLocally.ps1 @@ -252,23 +252,6 @@ function Test-ModuleLocally { Verbose = $true } - if (-not $moduleTestFiles) { - # Using new testing templates - adding special parameters - if ((Split-Path $TemplateFilePath -Extension) -eq '.bicep') { - $testTemplatePossibleParameters = (az bicep build --file $TemplateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable).parameters.Keys - } else { - $testTemplatePossibleParameters = ((Get-Content $TemplateFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys - } - - if (Test-Path $settingsFilePath) { - if ($testTemplatePossibleParameters -contains 'namePrefix') { - $functionInput['additionalParameters'] += @{ - namePrefix = ($Settings.parameterFileTokens.localTokens | Where-Object { $_.name -eq 'namePrefix' }).value - } - } - } - } - try { # Validate template # ----------------- From 907c54ec359c5cebecfd099b087755b9f3d1d0a2 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 5 Aug 2022 22:50:59 +0200 Subject: [PATCH 160/274] Changed comments --- .../jobs.validateModuleDeployment.yml | 20 ++++-------------- .../validateModuleDeployment/action.yml | 21 ++++--------------- 2 files changed, 8 insertions(+), 33 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index b707cc5857..d54524af95 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -222,17 +222,11 @@ jobs: # Handle template file if ((Split-Path $moduleTestFilePath -Leaf) -like '*parameters.*') { - - # CASE: MODULE USES ORIGINAL JSON PARAMETER FILES - # =============================================== - + # Original JSON parameter files $functionInput['templateFilePath'] = $moduleTemplateFilePath $functionInput['moduleTestFilePath'] = $moduleTestFilePath } else { - - # CASE: MODULE USES NEW TEST FILES - # ================================ - + # Test template files $functionInput['templateFilePath'] = $moduleTestFilePath } @@ -299,18 +293,12 @@ jobs: # Handle template file if ((Split-Path $moduleTestFilePath -Leaf) -like '*parameters.*') { - - # CASE: MODULE USES ORIGINAL JSON PARAMETER FILES - # =============================================== - + # Original JSON parameter files $functionInput['templateFilePath'] = $moduleTemplateFilePath $functionInput['moduleTestFilePath'] = $moduleTestFilePath } else { - - # CASE: MODULE USES NEW TEST FILES - # ================================ - + # Test template files $functionInput['templateFilePath'] = $moduleTestFilePath } diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 2197580e1b..df31bf9179 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -228,18 +228,11 @@ runs: # Handle template file if ((Split-Path $moduleTestFilePath -Leaf) -like '*parameters.*') { - - # CASE: MODULE USES ORIGINAL JSON PARAMETER FILES - # =============================================== - + # Original JSON parameter files $functionInput['templateFilePath'] = $moduleTemplateFilePath $functionInput['parameterFilePath'] = $moduleTestFilePath - } else { - - # CASE: MODULE USES NEW TEST FILES - # ================================ - + # Test template files $functionInput['templateFilePath'] = $moduleTestFilePath } @@ -310,18 +303,12 @@ runs: # Handle template file if ((Split-Path $moduleTestFilePath -Leaf) -like '*parameters.*') { - - # CASE: MODULE USES ORIGINAL JSON PARAMETER FILES - # =============================================== - + # Original JSON parameter files $functionInput['templateFilePath'] = $moduleTemplateFilePath $functionInput['parameterFilePath'] = $moduleTestFilePath } else { - - # CASE: MODULE USES NEW TEST FILES - # ================================ - + # Test template files $functionInput['templateFilePath'] = $moduleTestFilePath } From 9a3c580b8b175d065c401bd5eb3b77a56d97e046 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 5 Aug 2022 22:58:25 +0200 Subject: [PATCH 161/274] Adjust case hanlding --- .../jobs.validateModuleDeployment.yml | 25 +++++++++---------- .../validateModuleDeployment/action.yml | 17 ++++++------- 2 files changed, 20 insertions(+), 22 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index d54524af95..adf49634cd 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -221,13 +221,13 @@ jobs: } # Handle template file - if ((Split-Path $moduleTestFilePath -Leaf) -like '*parameters.*') { + if((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { + # Test template files + $functionInput['templateFilePath'] = $moduleTestFilePath + } else { # Original JSON parameter files $functionInput['templateFilePath'] = $moduleTemplateFilePath $functionInput['moduleTestFilePath'] = $moduleTestFilePath - } else { - # Test template files - $functionInput['templateFilePath'] = $moduleTestFilePath } # Handle additional parameters @@ -292,14 +292,13 @@ jobs: } # Handle template file - if ((Split-Path $moduleTestFilePath -Leaf) -like '*parameters.*') { + if((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { + # Test template files + $functionInput['templateFilePath'] = $moduleTestFilePath + } else { # Original JSON parameter files $functionInput['templateFilePath'] = $moduleTemplateFilePath $functionInput['moduleTestFilePath'] = $moduleTestFilePath - - } else { - # Test template files - $functionInput['templateFilePath'] = $moduleTestFilePath } # Handle additional parameters @@ -364,11 +363,11 @@ jobs: } if((Split-Path '$(moduleTestFilePath)' -Extension) -eq '.bicep') { - # MODULE USES NEW TEST FILES - $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(moduleTestFilePath)' + # Test template files + $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(moduleTestFilePath)' } else { - # MODULE USES ORIGINAL JSON PARAMETER FILES - $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' + # Original JSON parameter files + $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' } Write-Verbose 'Invoke task with' -Verbose diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index df31bf9179..c6116f66b2 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -227,13 +227,13 @@ runs: } # Handle template file - if ((Split-Path $moduleTestFilePath -Leaf) -like '*parameters.*') { + if((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { + # Test template files + $functionInput['templateFilePath'] = $moduleTestFilePath + } else { # Original JSON parameter files $functionInput['templateFilePath'] = $moduleTemplateFilePath $functionInput['parameterFilePath'] = $moduleTestFilePath - } else { - # Test template files - $functionInput['templateFilePath'] = $moduleTestFilePath } # Handle additional parameters @@ -302,14 +302,13 @@ runs: } # Handle template file - if ((Split-Path $moduleTestFilePath -Leaf) -like '*parameters.*') { + if((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { + # Test template files + $functionInput['templateFilePath'] = $moduleTestFilePath + } else { # Original JSON parameter files $functionInput['templateFilePath'] = $moduleTemplateFilePath $functionInput['parameterFilePath'] = $moduleTestFilePath - - } else { - # Test template files - $functionInput['templateFilePath'] = $moduleTestFilePath } # Handle additional parameters From 6129ff47a7b03b7e71d9982619d0c25a708dbedb Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 5 Aug 2022 23:14:39 +0200 Subject: [PATCH 162/274] Adjusted name prefix handling --- .../servers/.test/default/deploy.test.bicep | 15 ++++++----- .../servers/.test/max/deploy.test.bicep | 15 ++++++----- .../servers/.test/min/deploy.test.bicep | 5 +++- .../.test/default/deploy.test.bicep | 13 ++++++---- .../virtualHubs/.test/min/deploy.test.bicep | 7 ++++-- .../vpnSites/.test/default/deploy.test.bicep | 11 +++++--- .../vpnSites/.test/min/deploy.test.bicep | 7 ++++-- .../servers/.test/admin/deploy.test.bicep | 7 ++++-- .../servers/.test/default/deploy.test.bicep | 25 +++++++++++-------- 9 files changed, 66 insertions(+), 39 deletions(-) diff --git a/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep index deb354bf62..adb1df0b77 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep @@ -4,6 +4,9 @@ targetScope = 'subscription' // Parameters // // ========== // +@description('Optional. The name prefix to inject into all resource names') +param namePrefix string = '<>' + @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.analysisservices-servers-rg' @@ -29,7 +32,7 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-<>-msi-${serviceShort}-01' + managedIdentityName: 'dep-${namePrefix}-msi-${serviceShort}-01' } } @@ -39,10 +42,10 @@ module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnost scope: resourceGroup name: '${uniqueString(deployment().name, location)}-diagDep' params: { - storageAccountName: 'dep<>azsa${serviceShort}01' - logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}-01' - eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}-01' - eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}-01' + storageAccountName: 'dep${namePrefix}azsa${serviceShort}01' + logAnalyticsWorkspaceName: 'dep-${namePrefix}-law-${serviceShort}-01' + eventHubNamespaceEventHubName: 'dep-${namePrefix}-evh-${serviceShort}-01' + eventHubNamespaceName: 'dep-${namePrefix}-evhns-${serviceShort}-01' location: location } } @@ -55,7 +58,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { - name: '<>az${serviceShort}001' + name: '${namePrefix}az${serviceShort}001' lock: 'CanNotDelete' skuName: 'S0' roleAssignments: [ diff --git a/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep index 869ce4ab1e..b63fd3e331 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep @@ -4,6 +4,9 @@ targetScope = 'subscription' // Parameters // // ========== // +@description('Optional. The name prefix to inject into all resource names') +param namePrefix string = '<>' + @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.analysisservices-servers-rg' @@ -29,7 +32,7 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-<>-msi-${serviceShort}-01' + managedIdentityName: 'dep-${namePrefix}-msi-${serviceShort}-01' } } @@ -39,10 +42,10 @@ module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnost scope: resourceGroup name: '${uniqueString(deployment().name, location)}-diagDep' params: { - storageAccountName: 'dep<>azsa${serviceShort}01' - logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}-01' - eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}-01' - eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}-01' + storageAccountName: 'dep${namePrefix}azsa${serviceShort}01' + logAnalyticsWorkspaceName: 'dep-${namePrefix}-law-${serviceShort}-01' + eventHubNamespaceEventHubName: 'dep-${namePrefix}-evh-${serviceShort}-01' + eventHubNamespaceName: 'dep-${namePrefix}-evhns-${serviceShort}-01' location: location } } @@ -55,7 +58,7 @@ module testDeployment '../../deploy.bicep' = { scope: az.resourceGroup(resourceGroupName) name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { - name: '<>az${serviceShort}001' + name: '${namePrefix}az${serviceShort}001' lock: 'CanNotDelete' skuName: 'S0' skuCapacity: 1 diff --git a/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep index 5856ad254b..2c68e23a2f 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep @@ -4,6 +4,9 @@ targetScope = 'subscription' // Parameters // // ========== // +@description('Optional. The name prefix to inject into all resource names') +param namePrefix string = '<>' + @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.analysisservices-servers-rg' @@ -33,6 +36,6 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { - name: '<>az${serviceShort}001' + name: '${namePrefix}az${serviceShort}001' } } diff --git a/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep b/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep index 8084a3985f..b066657659 100644 --- a/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep @@ -4,6 +4,9 @@ targetScope = 'subscription' // Parameters // // ========== // +@description('Optional. The name prefix to inject into all resource names') +param namePrefix string = '<>' + @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.network-virtualHub-rg' @@ -29,8 +32,8 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - virtualWANName: 'dep-<>-vw-${serviceShort}-001' - virtualNetworkName: 'dep-<>-vnet-${serviceShort}-001' + virtualWANName: 'dep-${namePrefix}-vw-${serviceShort}-001' + virtualNetworkName: 'dep-${namePrefix}-vnet-${serviceShort}-001' } } @@ -42,7 +45,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-virtualHub-${serviceShort}' params: { - name: '<>-${serviceShort}-001' + name: '${namePrefix}-${serviceShort}-001' lock: 'CanNotDelete' addressPrefix: '10.1.0.0/16' virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId @@ -57,12 +60,12 @@ module testDeployment '../../deploy.bicep' = { remoteVirtualNetworkId: resourceGroupResources.outputs.virtualNetworkResourceId routingConfiguration: { associatedRouteTable: { - id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-${serviceShort}-001/hubRouteTables/routeTable1' + id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/${namePrefix}-${serviceShort}-001/hubRouteTables/routeTable1' } propagatedRouteTables: { ids: [ { - id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-${serviceShort}-001/hubRouteTables/routeTable1' + id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/${namePrefix}-${serviceShort}-001/hubRouteTables/routeTable1' } ] labels: [ diff --git a/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep b/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep index 27394a4b6b..f5a2e7afde 100644 --- a/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep +++ b/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep @@ -4,6 +4,9 @@ targetScope = 'subscription' // Parameters // // ========== // +@description('Optional. The name prefix to inject into all resource names') +param namePrefix string = '<>' + @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.network-virtualHub-rg' @@ -29,7 +32,7 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - virtualWANName: 'dep-<>-vw-${serviceShort}-001' + virtualWANName: 'dep-${namePrefix}-vw-${serviceShort}-001' } } @@ -41,7 +44,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-virtualHub-${serviceShort}' params: { - name: '<>-${serviceShort}-001' + name: '${namePrefix}-${serviceShort}-001' addressPrefix: '10.0.0.0/16' virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId } diff --git a/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep b/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep index 847ec58f5b..304c37e199 100644 --- a/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep @@ -4,6 +4,9 @@ targetScope = 'subscription' // Parameters // // ========== // +@description('Optional. The name prefix to inject into all resource names') +param namePrefix string = '<>' + @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.network-vpnSites-rg' @@ -29,8 +32,8 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-<>-msi-${serviceShort}-01' - virtualWANName: 'dep-<>-vw-${serviceShort}-001' + managedIdentityName: 'dep-${namePrefix}-msi-${serviceShort}-01' + virtualWANName: 'dep-${namePrefix}-vw-${serviceShort}-001' } } @@ -42,7 +45,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-vpnSites-${serviceShort}' params: { - name: '<>-${serviceShort}-001' + name: '${namePrefix}-${serviceShort}-001' virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId lock: 'CanNotDelete' tags: { @@ -54,7 +57,7 @@ module testDeployment '../../deploy.bicep' = { } vpnSiteLinks: [ { - name: '<>-vSite-${serviceShort}-001' + name: '${namePrefix}-vSite-${serviceShort}-001' properties: { bgpProperties: { asn: 65010 diff --git a/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep b/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep index 0c684c4953..97a95d94f7 100644 --- a/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep @@ -4,6 +4,9 @@ targetScope = 'subscription' // Parameters // // ========== // +@description('Optional. The name prefix to inject into all resource names') +param namePrefix string = '<>' + @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.network-vpnSites-rg' @@ -29,7 +32,7 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - virtualWANName: 'dep-<>-vw-${serviceShort}-001' + virtualWANName: 'dep-${namePrefix}-vw-${serviceShort}-001' } } @@ -41,7 +44,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-vpnSites-${serviceShort}' params: { - name: '<>-${serviceShort}-001' + name: '${namePrefix}-${serviceShort}-001' virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId addressPrefixes: [ '10.0.0.0/16' diff --git a/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep b/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep index f972f9e78a..21bee00f90 100644 --- a/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep +++ b/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep @@ -4,6 +4,9 @@ targetScope = 'subscription' // Parameters // // ========== // +@description('Optional. The name prefix to inject into all resource names') +param namePrefix string = '<>' + @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.sql-servers-rg' @@ -29,7 +32,7 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-<>-msi-${serviceShort}-01' + managedIdentityName: 'dep-${namePrefix}-msi-${serviceShort}-01' } } @@ -41,7 +44,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { - name: '<>-${serviceShort}-001' + name: '${namePrefix}-${serviceShort}-001' administrators: { azureADOnlyAuthentication: true login: 'myspn' diff --git a/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep b/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep index dadc906d64..98b7f174f2 100644 --- a/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep @@ -4,6 +4,9 @@ targetScope = 'subscription' // Parameters // // ========== // +@description('Optional. The name prefix to inject into all resource names') +param namePrefix string = '<>' + @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.sql-servers-rg' @@ -29,17 +32,17 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-<>-msi-${serviceShort}-01' - virtualNetworkName: 'adp-<>-vnet-${serviceShort}-01' - deploymentScriptName: 'adp-<>-ds-kv-${serviceShort}-01' - keyVaultName: 'adp-<>-kv-${serviceShort}-01' + managedIdentityName: 'dep-${namePrefix}-msi-${serviceShort}-01' + virtualNetworkName: 'adp-${namePrefix}-vnet-${serviceShort}-01' + deploymentScriptName: 'adp-${namePrefix}-ds-kv-${serviceShort}-01' + keyVaultName: 'adp-${namePrefix}-kv-${serviceShort}-01' passwordSecretName: 'adminPassword' location: location } } resource keyVaultReference 'Microsoft.KeyVault/vaults@2021-10-01' existing = { - name: 'adp-<>-kv-${serviceShort}-01' + name: 'adp-${namePrefix}-kv-${serviceShort}-01' scope: resourceGroup } @@ -49,10 +52,10 @@ module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnost scope: resourceGroup name: '${uniqueString(deployment().name, location)}-diagDep' params: { - storageAccountName: 'dep<>azsa${serviceShort}01' - logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}-01' - eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}-01' - eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}-01' + storageAccountName: 'dep${namePrefix}azsa${serviceShort}01' + logAnalyticsWorkspaceName: 'dep-${namePrefix}-law-${serviceShort}-01' + eventHubNamespaceEventHubName: 'dep-${namePrefix}-evh-${serviceShort}-01' + eventHubNamespaceName: 'dep-${namePrefix}-evhns-${serviceShort}-01' location: location } } @@ -65,7 +68,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { - name: '<>-${serviceShort}-001' + name: '${namePrefix}-${serviceShort}-001' lock: 'CanNotDelete' administratorLogin: 'adminUserName' administratorLoginPassword: keyVaultReference.getSecret(resourceGroupResources.outputs.secretName) @@ -91,7 +94,7 @@ module testDeployment '../../deploy.bicep' = { } databases: [ { - name: '<>-${serviceShort}db-001' + name: '${namePrefix}-${serviceShort}db-001' collation: 'SQL_Latin1_General_CP1_CI_AS' skuTier: 'BusinessCritical' skuName: 'BC_Gen5' From da8c3c20bca3b0f177e4ab110625decfc56f5b69 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 6 Aug 2022 20:56:34 +0200 Subject: [PATCH 163/274] Added output --- .github/actions/templates/validateModuleDeployment/action.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 7d77a0c460..9130d9e7f4 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -214,6 +214,7 @@ runs: $moduleTemplateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' } + Write-Verbose "Processing: [$moduleTemplatePossibleParameters]" if ((Split-Path $moduleTemplateFilePath -Extension) -eq '.bicep') { $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout | ConvertFrom-Json -AsHashtable $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys From c65acc8e835de0a68085bde6e2b0df99a5498875 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 6 Aug 2022 21:01:44 +0200 Subject: [PATCH 164/274] Update to latest --- .github/actions/templates/validateModuleDeployment/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 9130d9e7f4..79cc1fb42a 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -214,7 +214,7 @@ runs: $moduleTemplateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' } - Write-Verbose "Processing: [$moduleTemplatePossibleParameters]" + Write-Verbose "Processing: [$moduleTemplatePossibleParameters]" -Verbose if ((Split-Path $moduleTemplateFilePath -Extension) -eq '.bicep') { $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout | ConvertFrom-Json -AsHashtable $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys From a8baa8c3eaaa6a9ef1ec60aae70724d52d1c6f62 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 6 Aug 2022 21:02:44 +0200 Subject: [PATCH 165/274] Disabled pester --- .github/workflows/ms.network.vpnsites.yml | 36 +++++++++++------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/workflows/ms.network.vpnsites.yml b/.github/workflows/ms.network.vpnsites.yml index c1c02d0e4d..395daf27f9 100644 --- a/.github/workflows/ms.network.vpnsites.yml +++ b/.github/workflows/ms.network.vpnsites.yml @@ -62,23 +62,23 @@ jobs: ######################### # Static validation # ######################### - job_module_pester_validation: - runs-on: ubuntu-20.04 - name: 'Static validation' - steps: - - name: 'Checkout' - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - name: Set environment variables - uses: ./.github/actions/templates/setEnvironmentVariables - with: - variablesPath: ${{ env.variablesPath }} - - name: 'Run tests' - uses: ./.github/actions/templates/validateModulePester - with: - modulePath: '${{ env.modulePath }}' - moduleTestFilePath: '${{ env.moduleTestFilePath }}' + # job_module_pester_validation: + # runs-on: ubuntu-20.04 + # name: 'Static validation' + # steps: + # - name: 'Checkout' + # uses: actions/checkout@v2 + # with: + # fetch-depth: 0 + # - name: Set environment variables + # uses: ./.github/actions/templates/setEnvironmentVariables + # with: + # variablesPath: ${{ env.variablesPath }} + # - name: 'Run tests' + # uses: ./.github/actions/templates/validateModulePester + # with: + # modulePath: '${{ env.modulePath }}' + # moduleTestFilePath: '${{ env.moduleTestFilePath }}' ############################# # Deployment validation # @@ -88,7 +88,7 @@ jobs: name: 'Deployment validation' needs: - job_initialize_pipeline - - job_module_pester_validation + # - job_module_pester_validation strategy: fail-fast: false matrix: From ada3354d74298c49b4e46bd57067ca32e7bb95d8 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 6 Aug 2022 21:06:34 +0200 Subject: [PATCH 166/274] Update to latest --- .github/actions/templates/validateModuleDeployment/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 79cc1fb42a..0abdb3a057 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -214,7 +214,7 @@ runs: $moduleTemplateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' } - Write-Verbose "Processing: [$moduleTemplatePossibleParameters]" -Verbose + Write-Verbose "Processing: [$moduleTemplateFilePath]" -Verbose if ((Split-Path $moduleTemplateFilePath -Extension) -eq '.bicep') { $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout | ConvertFrom-Json -AsHashtable $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys From 0e80d00eca53310b95c0cadcba301e4146f880f6 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 6 Aug 2022 22:53:42 +0200 Subject: [PATCH 167/274] Refactored file handling --- .../validateModuleDeployment/action.yml | 63 +++++++------------ 1 file changed, 24 insertions(+), 39 deletions(-) diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 0abdb3a057..0b2d9da06f 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -191,7 +191,7 @@ runs: azPSVersion: 'latest' inlineScript: | # Grouping task logs - Write-Output "::group::Validate template file" + Write-Output '::group::Validate template file' # Load used functions . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourceDeployment' 'Test-TemplateDeployment.ps1') @@ -205,27 +205,24 @@ runs: $resourceGroupName = '${{ inputs.resourceGroupName }}' $subscriptionId = '${{ inputs.subscriptionId }}' $managementGroupId = '${{ inputs.managementGroupId }}' + $usesDependencyTemplate = '${{ inputs.templateFilePath }}' -like '*/.test/*' - if ('${{ inputs.templateFilePath }}' -like '*/.test/*') { + if ($usesDependencyTemplate) { $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Split-Path (Split-Path $moduleTestFilePath -Parent) -Parent)) + $moduleTemplateFileContent = az bicep build --file $moduleTemplateFilePath --stdout | ConvertFrom-Json -AsHashtable + $moduleTemplateFilePossibleParameters = $moduleTemplateFileContent.parameters.Keys } else { $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' $moduleTemplateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' - } - - Write-Verbose "Processing: [$moduleTemplateFilePath]" -Verbose - if ((Split-Path $moduleTemplateFilePath -Extension) -eq '.bicep') { - $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout | ConvertFrom-Json -AsHashtable - $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys - } else { - $moduleTemplatePossibleParameters = ((Get-Content $moduleTemplateFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys + $moduleTemplateFilePossibleParameters = ((Get-Content $moduleTemplateFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys } # ----------------- # # Invoke validation # # ----------------- # $functionInput = @{ + templateFilePath = $usesDependencyTemplate ? $moduleTestFilePath : $moduleTemplateFilePath location = $location resourceGroupName = $resourceGroupName subscriptionId = $subscriptionId @@ -233,19 +230,14 @@ runs: additionalParameters = @{} } - # Handle template file - if((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { - # Test template files - $functionInput['templateFilePath'] = $moduleTestFilePath - } else { - # Original JSON parameter files - $functionInput['templateFilePath'] = $moduleTemplateFilePath + # Handle parameter file + if ((Split-Path $moduleTestFilePath -Extension) -eq '.json') { $functionInput['parameterFilePath'] = $moduleTestFilePath } # Handle additional parameters # ---------------------------- - if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and ($moduleTemplatePossibleParameters.Keys -contains 'enableDefaultTelemetry')) { + if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and ($moduleTemplateFilePossibleParameters.Keys -contains 'enableDefaultTelemetry')) { $functionInput['additionalParameters'] += @{ enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry } @@ -256,7 +248,7 @@ runs: Test-TemplateDeployment @functionInput -Verbose - Write-Output "::endgroup::" + Write-Output '::endgroup::' # [Deployment execution] task(s) # ------------------------------ @@ -267,7 +259,7 @@ runs: azPSVersion: 'latest' inlineScript: | # Grouping task logs - Write-Output "::group::Deploy template file" + Write-Output '::group::Deploy template file' # Load used functions . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourceDeployment' 'New-TemplateDeployment.ps1') @@ -281,26 +273,24 @@ runs: $resourceGroupName = '${{ inputs.resourceGroupName }}' $subscriptionId = '${{ inputs.subscriptionId }}' $managementGroupId = '${{ inputs.managementGroupId }}' + $usesDependencyTemplate = '${{ inputs.templateFilePath }}' -like '*/.test/*' - if ('${{ inputs.templateFilePath }}' -like '*/.test/*') { + if ($usesDependencyTemplate) { $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Split-Path (Split-Path $moduleTestFilePath -Parent) -Parent)) + $moduleTemplateFileContent = az bicep build --file $moduleTemplateFilePath --stdout | ConvertFrom-Json -AsHashtable + $moduleTemplateFilePossibleParameters = $moduleTemplateFileContent.parameters.Keys } else { $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' $moduleTemplateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' - } - - if ((Split-Path $moduleTemplateFilePath -Extension) -eq '.bicep') { - $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout | ConvertFrom-Json -AsHashtable - $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys - } else { - $moduleTemplatePossibleParameters = ((Get-Content $moduleTemplateFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys + $moduleTemplateFilePossibleParameters = ((Get-Content $moduleTemplateFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys } # ----------------- # # Invoke deployment # # ----------------- # $functionInput = @{ + templateFilePath = $usesDependencyTemplate ? $moduleTestFilePath : $moduleTemplateFilePath location = $location resourceGroupName = $resourceGroupName subscriptionId = $subscriptionId @@ -308,19 +298,14 @@ runs: additionalParameters = @{} } - # Handle template file - if((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { - # Test template files - $functionInput['templateFilePath'] = $moduleTestFilePath - } else { - # Original JSON parameter files - $functionInput['templateFilePath'] = $moduleTemplateFilePath + # Handle parameter file + if ((Split-Path $moduleTestFilePath -Extension) -eq '.json') { $functionInput['parameterFilePath'] = $moduleTestFilePath } # Handle additional parameters # ---------------------------- - if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and ($moduleTemplatePossibleParameters.Keys -contains 'enableDefaultTelemetry')) { + if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and ($moduleTemplateFilePossibleParameters.Keys -contains 'enableDefaultTelemetry')) { $functionInput['additionalParameters'] += @{ enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry } @@ -336,11 +321,11 @@ runs: Write-Output ('::set-output name={0}::{1}' -f 'deploymentName', $res.deploymentName) # Populate further outputs - $deploymentOutputHash=@{} + $deploymentOutputHash = @{} foreach ($outputKey in $res.deploymentOutput.Keys) { Write-Output ('::set-output name={0}::{1}' -f $outputKey, $res.deploymentOutput[$outputKey].Value) - $deploymentOutputHash.add($outputKey,$res.deploymentOutput[$outputKey].Value) + $deploymentOutputHash.add($outputKey, $res.deploymentOutput[$outputKey].Value) } $deploymentOutput = $deploymentOutputHash | ConvertTo-Json -Compress -Depth 100 @@ -352,7 +337,7 @@ runs: throw $res.exception } - Write-Output "::endgroup::" + Write-Output '::endgroup::' # [Deployment removal] task(s) # ---------------------------- From ee189aad5f8953ee8653f42ca1774696a93cd3a2 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 6 Aug 2022 23:30:14 +0200 Subject: [PATCH 168/274] Fallback --- .../validateModuleDeployment/action.yml | 64 ++++++++++++------- 1 file changed, 41 insertions(+), 23 deletions(-) diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 0b2d9da06f..e6d2b3d92a 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -82,7 +82,7 @@ runs: shell: pwsh run: | # Grouping task logs - Write-Output "::group::Setup agent" + Write-Output '::group::Setup agent' # Load used functions . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'sharedScripts' 'Set-EnvironmentOnAgent.ps1') @@ -108,7 +108,7 @@ runs: # Set agent up Set-EnvironmentOnAgent -PSModules $Modules - Write-Output "::endgroup::" + Write-Output '::endgroup::' - name: Azure Login uses: Azure/login@v1 @@ -181,7 +181,7 @@ runs: # Invoke Token Replacement Functionality $null = Convert-TokensInFileList @ConvertTokensInputs - Write-Output "::endgroup::" + Write-Output '::endgroup::' # [Deployment validation] task(s) # ------------------------------- @@ -205,24 +205,28 @@ runs: $resourceGroupName = '${{ inputs.resourceGroupName }}' $subscriptionId = '${{ inputs.subscriptionId }}' $managementGroupId = '${{ inputs.managementGroupId }}' - $usesDependencyTemplate = '${{ inputs.templateFilePath }}' -like '*/.test/*' - if ($usesDependencyTemplate) { + # Determine template & test file path + if ('${{ inputs.templateFilePath }}' -like '*/.test/*') { $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Split-Path (Split-Path $moduleTestFilePath -Parent) -Parent)) - $moduleTemplateFileContent = az bicep build --file $moduleTemplateFilePath --stdout | ConvertFrom-Json -AsHashtable - $moduleTemplateFilePossibleParameters = $moduleTemplateFileContent.parameters.Keys } else { $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' $moduleTemplateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' - $moduleTemplateFilePossibleParameters = ((Get-Content $moduleTemplateFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys + } + + # Determine possible parameters depending on file type + if ((Split-Path $moduleTemplateFilePath -Extension) -eq '.bicep') { + $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout | ConvertFrom-Json -AsHashtable + $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys + } else { + $moduleTemplatePossibleParameters = ((Get-Content $moduleTemplateFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys } # ----------------- # # Invoke validation # # ----------------- # $functionInput = @{ - templateFilePath = $usesDependencyTemplate ? $moduleTestFilePath : $moduleTemplateFilePath location = $location resourceGroupName = $resourceGroupName subscriptionId = $subscriptionId @@ -230,14 +234,19 @@ runs: additionalParameters = @{} } - # Handle parameter file - if ((Split-Path $moduleTestFilePath -Extension) -eq '.json') { + # Handle template file + if ((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { + # Test template files + $functionInput['templateFilePath'] = $moduleTestFilePath + } else { + # Original JSON parameter files + $functionInput['templateFilePath'] = $moduleTemplateFilePath $functionInput['parameterFilePath'] = $moduleTestFilePath } # Handle additional parameters # ---------------------------- - if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and ($moduleTemplateFilePossibleParameters.Keys -contains 'enableDefaultTelemetry')) { + if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and ($moduleTemplatePossibleParameters.Keys -contains 'enableDefaultTelemetry')) { $functionInput['additionalParameters'] += @{ enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry } @@ -273,24 +282,28 @@ runs: $resourceGroupName = '${{ inputs.resourceGroupName }}' $subscriptionId = '${{ inputs.subscriptionId }}' $managementGroupId = '${{ inputs.managementGroupId }}' - $usesDependencyTemplate = '${{ inputs.templateFilePath }}' -like '*/.test/*' - if ($usesDependencyTemplate) { + # Determine template & test file path + if ('${{ inputs.templateFilePath }}' -like '*/.test/*') { $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Split-Path (Split-Path $moduleTestFilePath -Parent) -Parent)) - $moduleTemplateFileContent = az bicep build --file $moduleTemplateFilePath --stdout | ConvertFrom-Json -AsHashtable - $moduleTemplateFilePossibleParameters = $moduleTemplateFileContent.parameters.Keys } else { $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' $moduleTemplateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' - $moduleTemplateFilePossibleParameters = ((Get-Content $moduleTemplateFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys + } + + # Determine possible parameters depending on file type + if ((Split-Path $moduleTemplateFilePath -Extension) -eq '.bicep') { + $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout | ConvertFrom-Json -AsHashtable + $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys + } else { + $moduleTemplatePossibleParameters = ((Get-Content $moduleTemplateFilePath -Raw) | ConvertFrom-Json -AsHashtable).parameters.keys } # ----------------- # # Invoke deployment # # ----------------- # $functionInput = @{ - templateFilePath = $usesDependencyTemplate ? $moduleTestFilePath : $moduleTemplateFilePath location = $location resourceGroupName = $resourceGroupName subscriptionId = $subscriptionId @@ -298,14 +311,19 @@ runs: additionalParameters = @{} } - # Handle parameter file - if ((Split-Path $moduleTestFilePath -Extension) -eq '.json') { + # Handle template file + if ((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { + # Test template files + $functionInput['templateFilePath'] = $moduleTestFilePath + } else { + # Original JSON parameter files + $functionInput['templateFilePath'] = $moduleTemplateFilePath $functionInput['parameterFilePath'] = $moduleTestFilePath } # Handle additional parameters # ---------------------------- - if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and ($moduleTemplateFilePossibleParameters.Keys -contains 'enableDefaultTelemetry')) { + if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and ($moduleTemplatePossibleParameters.Keys -contains 'enableDefaultTelemetry')) { $functionInput['additionalParameters'] += @{ enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry } @@ -348,7 +366,7 @@ runs: azPSVersion: 'latest' inlineScript: | # Grouping task logs - Write-Output "::group::Remove deployed resources" + Write-Output '::group::Remove deployed resources' # Load used function . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourceRemoval' 'Initialize-DeploymentRemoval.ps1') @@ -368,4 +386,4 @@ runs: Initialize-DeploymentRemoval @functionInput } - Write-Output "::endgroup::" + Write-Output '::endgroup::' From 36c2aa9c2096675ccd4c00ab8a50c3d3bf7b9074 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 6 Aug 2022 23:41:27 +0200 Subject: [PATCH 169/274] Update to latest --- .github/actions/templates/validateModuleDeployment/action.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index e6d2b3d92a..a8ccdcda31 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -207,7 +207,7 @@ runs: $managementGroupId = '${{ inputs.managementGroupId }}' # Determine template & test file path - if ('${{ inputs.templateFilePath }}' -like '*/.test/*') { + if ('${{ inputs.templateFilePath }}' -like '*.test*') { $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Split-Path (Split-Path $moduleTestFilePath -Parent) -Parent)) } else { @@ -284,7 +284,7 @@ runs: $managementGroupId = '${{ inputs.managementGroupId }}' # Determine template & test file path - if ('${{ inputs.templateFilePath }}' -like '*/.test/*') { + if ('${{ inputs.templateFilePath }}' -like '*.test*') { $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Split-Path (Split-Path $moduleTestFilePath -Parent) -Parent)) } else { From d8804280c8f4d2acadb85b9657d9b69ebc49ee5d Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 6 Aug 2022 23:48:25 +0200 Subject: [PATCH 170/274] Update to latest --- .github/actions/templates/validateModuleDeployment/action.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index a8ccdcda31..529919affd 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -208,9 +208,11 @@ runs: # Determine template & test file path if ('${{ inputs.templateFilePath }}' -like '*.test*') { + Write-Verbose 'Using template test file [${{ inputs.templateFilePath }}]' -Verbose $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Split-Path (Split-Path $moduleTestFilePath -Parent) -Parent)) } else { + Write-Verbose 'Using parameter test file [${{ inputs.parameterFilePath }}]' -Verbose $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' $moduleTemplateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' } From 4d56ecffc40b5eaceb22e1836eeaeb9188c8c459 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 7 Aug 2022 00:00:14 +0200 Subject: [PATCH 171/274] Update to latest --- .github/actions/templates/validateModuleDeployment/action.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 529919affd..e9a8a18629 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -211,6 +211,7 @@ runs: Write-Verbose 'Using template test file [${{ inputs.templateFilePath }}]' -Verbose $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Split-Path (Split-Path $moduleTestFilePath -Parent) -Parent)) + Write-Verbose $moduleTestFilePath -Verbose } else { Write-Verbose 'Using parameter test file [${{ inputs.parameterFilePath }}]' -Verbose $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' From 90856b3f77bb47f3982caa7f212eb93461f1dcc7 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 7 Aug 2022 00:12:21 +0200 Subject: [PATCH 172/274] Update to latest --- .../actions/templates/validateModuleDeployment/action.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index e9a8a18629..1550cb3d90 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -210,8 +210,10 @@ runs: if ('${{ inputs.templateFilePath }}' -like '*.test*') { Write-Verbose 'Using template test file [${{ inputs.templateFilePath }}]' -Verbose $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' - $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Split-Path (Split-Path $moduleTestFilePath -Parent) -Parent)) - Write-Verbose $moduleTestFilePath -Verbose + $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Get-Item $moduleTestFilePath).Parent.Parent.Parent) + Write-Verbose "one: $moduleTestFilePath" -Verbose + Write-Verbose "two: $moduleTemplateFilePath" -Verbose + Write-Verbose ("three: {0}" -f (Get-Item $moduleTestFilePath).Parent.Parent.Parent) -Verbose } else { Write-Verbose 'Using parameter test file [${{ inputs.parameterFilePath }}]' -Verbose $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' @@ -289,7 +291,7 @@ runs: # Determine template & test file path if ('${{ inputs.templateFilePath }}' -like '*.test*') { $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' - $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Split-Path (Split-Path $moduleTestFilePath -Parent) -Parent)) + $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Get-Item $moduleTestFilePath).Parent.Parent.Parent) } else { $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' $moduleTemplateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' From 15e90fcc101eea4d223cc0b87c5dcd02855163a7 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 7 Aug 2022 00:32:39 +0200 Subject: [PATCH 173/274] Update to latest --- .../actions/templates/validateModuleDeployment/action.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 1550cb3d90..3908e4035e 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -210,10 +210,9 @@ runs: if ('${{ inputs.templateFilePath }}' -like '*.test*') { Write-Verbose 'Using template test file [${{ inputs.templateFilePath }}]' -Verbose $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' - $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Get-Item $moduleTestFilePath).Parent.Parent.Parent) + $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Split-Path (Split-Path (Split-Path $moduleTestFilePath -Parent) -Parent) -Parent)) Write-Verbose "one: $moduleTestFilePath" -Verbose Write-Verbose "two: $moduleTemplateFilePath" -Verbose - Write-Verbose ("three: {0}" -f (Get-Item $moduleTestFilePath).Parent.Parent.Parent) -Verbose } else { Write-Verbose 'Using parameter test file [${{ inputs.parameterFilePath }}]' -Verbose $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' @@ -291,7 +290,7 @@ runs: # Determine template & test file path if ('${{ inputs.templateFilePath }}' -like '*.test*') { $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' - $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Get-Item $moduleTestFilePath).Parent.Parent.Parent) + $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Split-Path (Split-Path (Split-Path $moduleTestFilePath -Parent) -Parent) -Parent)) } else { $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' $moduleTemplateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' From 45eb85481283c79391afeab2f6a21d9f340e3bd8 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 7 Aug 2022 00:38:49 +0200 Subject: [PATCH 174/274] Update to latest --- .github/actions/templates/validateModuleDeployment/action.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 3908e4035e..f0a5a43608 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -210,7 +210,7 @@ runs: if ('${{ inputs.templateFilePath }}' -like '*.test*') { Write-Verbose 'Using template test file [${{ inputs.templateFilePath }}]' -Verbose $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' - $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Split-Path (Split-Path (Split-Path $moduleTestFilePath -Parent) -Parent) -Parent)) + $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f ($moduleTestFilePath | Split-Path | Split-Path | Split-Path)) Write-Verbose "one: $moduleTestFilePath" -Verbose Write-Verbose "two: $moduleTemplateFilePath" -Verbose } else { @@ -290,7 +290,7 @@ runs: # Determine template & test file path if ('${{ inputs.templateFilePath }}' -like '*.test*') { $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' - $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f (Split-Path (Split-Path (Split-Path $moduleTestFilePath -Parent) -Parent) -Parent)) + $moduleTemplateFilePath = Resolve-Path ('{0}/deploy.*' -f ($moduleTestFilePath | Split-Path | Split-Path | Split-Path)) } else { $moduleTestFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' $moduleTemplateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' From b5e7bf9dd5984cb7d16cd803a659124088b4b03b Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 10 Aug 2022 08:56:08 +0200 Subject: [PATCH 175/274] Update to latest --- modules/Microsoft.Sql/servers/databases/readme.md | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/Microsoft.Sql/servers/databases/readme.md b/modules/Microsoft.Sql/servers/databases/readme.md index 29c7a6b90f..c67ee77e6a 100644 --- a/modules/Microsoft.Sql/servers/databases/readme.md +++ b/modules/Microsoft.Sql/servers/databases/readme.md @@ -7,7 +7,6 @@ This module deploys an Azure SQL Server. - [Resource types](#Resource-types) - [Parameters](#Parameters) - [Outputs](#Outputs) -- [Deployment examples](#Deployment-examples) - [Cross-referenced modules](#Cross-referenced-modules) ## Resource types From 95a872af82e28e166f8cbdf2e2e76be5e4d09b4d Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 10 Aug 2022 10:51:21 +0200 Subject: [PATCH 176/274] Removed namePrefix param --- .../servers/.test/default/deploy.test.bicep | 16 +++++------- .../servers/.test/max/deploy.test.bicep | 16 +++++------- .../servers/.test/min/deploy.test.bicep | 6 +---- .../servers/readme.md | 12 ++++----- .../.test/default/deploy.test.bicep | 14 ++++------ .../virtualHubs/.test/min/deploy.test.bicep | 8 ++---- .../Microsoft.Network/virtualHubs/readme.md | 16 ++++++------ .../vpnSites/.test/default/deploy.test.bicep | 12 +++------ .../vpnSites/.test/min/deploy.test.bicep | 8 ++---- modules/Microsoft.Network/vpnSites/readme.md | 12 ++++----- .../servers/.test/admin/deploy.test.bicep | 8 ++---- .../servers/.test/default/deploy.test.bicep | 26 ++++++++----------- modules/Microsoft.Sql/servers/readme.md | 12 ++++----- 13 files changed, 65 insertions(+), 101 deletions(-) diff --git a/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep index adb1df0b77..995be685c8 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep @@ -3,10 +3,6 @@ targetScope = 'subscription' // ========== // // Parameters // // ========== // - -@description('Optional. The name prefix to inject into all resource names') -param namePrefix string = '<>' - @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.analysisservices-servers-rg' @@ -32,7 +28,7 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-${namePrefix}-msi-${serviceShort}-01' + managedIdentityName: 'dep-<>-msi-${serviceShort}-01' } } @@ -42,10 +38,10 @@ module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnost scope: resourceGroup name: '${uniqueString(deployment().name, location)}-diagDep' params: { - storageAccountName: 'dep${namePrefix}azsa${serviceShort}01' - logAnalyticsWorkspaceName: 'dep-${namePrefix}-law-${serviceShort}-01' - eventHubNamespaceEventHubName: 'dep-${namePrefix}-evh-${serviceShort}-01' - eventHubNamespaceName: 'dep-${namePrefix}-evhns-${serviceShort}-01' + storageAccountName: 'dep<>azsa${serviceShort}01' + logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}-01' + eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}-01' + eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}-01' location: location } } @@ -58,7 +54,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { - name: '${namePrefix}az${serviceShort}001' + name: '<>az${serviceShort}001' lock: 'CanNotDelete' skuName: 'S0' roleAssignments: [ diff --git a/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep index b63fd3e331..56e5d48551 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep @@ -3,10 +3,6 @@ targetScope = 'subscription' // ========== // // Parameters // // ========== // - -@description('Optional. The name prefix to inject into all resource names') -param namePrefix string = '<>' - @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.analysisservices-servers-rg' @@ -32,7 +28,7 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-${namePrefix}-msi-${serviceShort}-01' + managedIdentityName: 'dep-<>-msi-${serviceShort}-01' } } @@ -42,10 +38,10 @@ module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnost scope: resourceGroup name: '${uniqueString(deployment().name, location)}-diagDep' params: { - storageAccountName: 'dep${namePrefix}azsa${serviceShort}01' - logAnalyticsWorkspaceName: 'dep-${namePrefix}-law-${serviceShort}-01' - eventHubNamespaceEventHubName: 'dep-${namePrefix}-evh-${serviceShort}-01' - eventHubNamespaceName: 'dep-${namePrefix}-evhns-${serviceShort}-01' + storageAccountName: 'dep<>azsa${serviceShort}01' + logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}-01' + eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}-01' + eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}-01' location: location } } @@ -58,7 +54,7 @@ module testDeployment '../../deploy.bicep' = { scope: az.resourceGroup(resourceGroupName) name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { - name: '${namePrefix}az${serviceShort}001' + name: '<>az${serviceShort}001' lock: 'CanNotDelete' skuName: 'S0' skuCapacity: 1 diff --git a/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep index 2c68e23a2f..cfbacf0c3d 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep @@ -3,10 +3,6 @@ targetScope = 'subscription' // ========== // // Parameters // // ========== // - -@description('Optional. The name prefix to inject into all resource names') -param namePrefix string = '<>' - @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.analysisservices-servers-rg' @@ -36,6 +32,6 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { - name: '${namePrefix}az${serviceShort}001' + name: '<>az${serviceShort}001' } } diff --git a/modules/Microsoft.AnalysisServices/servers/readme.md b/modules/Microsoft.AnalysisServices/servers/readme.md index 45417fa0a3..5ad2b30ebd 100644 --- a/modules/Microsoft.AnalysisServices/servers/readme.md +++ b/modules/Microsoft.AnalysisServices/servers/readme.md @@ -177,7 +177,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-servers-aspar' params: { // Required parameters - name: 'azaspar001' + name: '<>azaspar001' // Non-required parameters diagnosticEventHubAuthorizationRuleId: '' diagnosticEventHubName: '' @@ -212,7 +212,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "azaspar001" + "value": "<>azaspar001" }, // Non-required parameters "diagnosticEventHubAuthorizationRuleId": { @@ -264,7 +264,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-servers-asmax' params: { // Required parameters - name: 'azasmax001' + name: '<>azasmax001' // Non-required parameters diagnosticEventHubAuthorizationRuleId: '' diagnosticEventHubName: '' @@ -317,7 +317,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "azasmax001" + "value": "<>azasmax001" }, // Non-required parameters "diagnosticEventHubAuthorizationRuleId": { @@ -394,7 +394,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-servers-asmin' params: { - name: 'azasmin001' + name: '<>azasmin001' } } ``` @@ -412,7 +412,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "azasmin001" + "value": "<>azasmin001" } } } diff --git a/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep b/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep index b066657659..e118277e51 100644 --- a/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep @@ -3,10 +3,6 @@ targetScope = 'subscription' // ========== // // Parameters // // ========== // - -@description('Optional. The name prefix to inject into all resource names') -param namePrefix string = '<>' - @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.network-virtualHub-rg' @@ -32,8 +28,8 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - virtualWANName: 'dep-${namePrefix}-vw-${serviceShort}-001' - virtualNetworkName: 'dep-${namePrefix}-vnet-${serviceShort}-001' + virtualWANName: 'dep-<>-vw-${serviceShort}-001' + virtualNetworkName: 'dep-<>-vnet-${serviceShort}-001' } } @@ -45,7 +41,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-virtualHub-${serviceShort}' params: { - name: '${namePrefix}-${serviceShort}-001' + name: '<>-${serviceShort}-001' lock: 'CanNotDelete' addressPrefix: '10.1.0.0/16' virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId @@ -60,12 +56,12 @@ module testDeployment '../../deploy.bicep' = { remoteVirtualNetworkId: resourceGroupResources.outputs.virtualNetworkResourceId routingConfiguration: { associatedRouteTable: { - id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/${namePrefix}-${serviceShort}-001/hubRouteTables/routeTable1' + id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-${serviceShort}-001/hubRouteTables/routeTable1' } propagatedRouteTables: { ids: [ { - id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/${namePrefix}-${serviceShort}-001/hubRouteTables/routeTable1' + id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-${serviceShort}-001/hubRouteTables/routeTable1' } ] labels: [ diff --git a/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep b/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep index f5a2e7afde..54104bc5b6 100644 --- a/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep +++ b/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep @@ -3,10 +3,6 @@ targetScope = 'subscription' // ========== // // Parameters // // ========== // - -@description('Optional. The name prefix to inject into all resource names') -param namePrefix string = '<>' - @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.network-virtualHub-rg' @@ -32,7 +28,7 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - virtualWANName: 'dep-${namePrefix}-vw-${serviceShort}-001' + virtualWANName: 'dep-<>-vw-${serviceShort}-001' } } @@ -44,7 +40,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-virtualHub-${serviceShort}' params: { - name: '${namePrefix}-${serviceShort}-001' + name: '<>-${serviceShort}-001' addressPrefix: '10.0.0.0/16' virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId } diff --git a/modules/Microsoft.Network/virtualHubs/readme.md b/modules/Microsoft.Network/virtualHubs/readme.md index cef67d58e2..8b0c07ab92 100644 --- a/modules/Microsoft.Network/virtualHubs/readme.md +++ b/modules/Microsoft.Network/virtualHubs/readme.md @@ -124,7 +124,7 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { params: { // Required parameters addressPrefix: '10.1.0.0/16' - name: '-vhpar-001' + name: '<>-vhpar-001' virtualWanId: '' // Non-required parameters hubRouteTables: [ @@ -138,12 +138,12 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { remoteVirtualNetworkId: '' routingConfiguration: { associatedRouteTable: { - id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/-vhpar-001/hubRouteTables/routeTable1' + id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-vhpar-001/hubRouteTables/routeTable1' } propagatedRouteTables: { ids: [ { - id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/-vhpar-001/hubRouteTables/routeTable1' + id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-vhpar-001/hubRouteTables/routeTable1' } ] labels: [ @@ -175,7 +175,7 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { "value": "10.1.0.0/16" }, "name": { - "value": "-vhpar-001" + "value": "<>-vhpar-001" }, "virtualWanId": { "value": "" @@ -195,12 +195,12 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { "remoteVirtualNetworkId": "", "routingConfiguration": { "associatedRouteTable": { - "id": "${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/-vhpar-001/hubRouteTables/routeTable1" + "id": "${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-vhpar-001/hubRouteTables/routeTable1" }, "propagatedRouteTables": { "ids": [ { - "id": "${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/-vhpar-001/hubRouteTables/routeTable1" + "id": "${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-vhpar-001/hubRouteTables/routeTable1" } ], "labels": [ @@ -233,7 +233,7 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { params: { // Required parameters addressPrefix: '10.0.0.0/16' - name: '-vhmin-001' + name: '<>-vhmin-001' virtualWanId: '' } } @@ -256,7 +256,7 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { "value": "10.0.0.0/16" }, "name": { - "value": "-vhmin-001" + "value": "<>-vhmin-001" }, "virtualWanId": { "value": "" diff --git a/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep b/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep index 304c37e199..29ddb62280 100644 --- a/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep @@ -3,10 +3,6 @@ targetScope = 'subscription' // ========== // // Parameters // // ========== // - -@description('Optional. The name prefix to inject into all resource names') -param namePrefix string = '<>' - @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.network-vpnSites-rg' @@ -32,8 +28,8 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-${namePrefix}-msi-${serviceShort}-01' - virtualWANName: 'dep-${namePrefix}-vw-${serviceShort}-001' + managedIdentityName: 'dep-<>-msi-${serviceShort}-01' + virtualWANName: 'dep-<>-vw-${serviceShort}-001' } } @@ -45,7 +41,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-vpnSites-${serviceShort}' params: { - name: '${namePrefix}-${serviceShort}-001' + name: '<>-${serviceShort}-001' virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId lock: 'CanNotDelete' tags: { @@ -57,7 +53,7 @@ module testDeployment '../../deploy.bicep' = { } vpnSiteLinks: [ { - name: '${namePrefix}-vSite-${serviceShort}-001' + name: '<>-vSite-${serviceShort}-001' properties: { bgpProperties: { asn: 65010 diff --git a/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep b/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep index 97a95d94f7..f67efa8c72 100644 --- a/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep @@ -3,10 +3,6 @@ targetScope = 'subscription' // ========== // // Parameters // // ========== // - -@description('Optional. The name prefix to inject into all resource names') -param namePrefix string = '<>' - @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.network-vpnSites-rg' @@ -32,7 +28,7 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - virtualWANName: 'dep-${namePrefix}-vw-${serviceShort}-001' + virtualWANName: 'dep-<>-vw-${serviceShort}-001' } } @@ -44,7 +40,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-vpnSites-${serviceShort}' params: { - name: '${namePrefix}-${serviceShort}-001' + name: '<>-${serviceShort}-001' virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId addressPrefixes: [ '10.0.0.0/16' diff --git a/modules/Microsoft.Network/vpnSites/readme.md b/modules/Microsoft.Network/vpnSites/readme.md index 1047c774a5..e9e8579e44 100644 --- a/modules/Microsoft.Network/vpnSites/readme.md +++ b/modules/Microsoft.Network/vpnSites/readme.md @@ -342,7 +342,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-vpnSites-vsipar' params: { // Required parameters - name: '-vsipar-001' + name: '<>-vsipar-001' virtualWanId: '' // Non-required parameters deviceProperties: { @@ -370,7 +370,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { } vpnSiteLinks: [ { - name: '-vSite-vsipar-001' + name: '<>-vSite-vsipar-001' properties: { bgpProperties: { asn: 65010 @@ -416,7 +416,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "-vsipar-001" + "value": "<>-vsipar-001" }, "virtualWanId": { "value": "" @@ -458,7 +458,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { "vpnSiteLinks": { "value": [ { - "name": "-vSite-vsipar-001", + "name": "<>-vSite-vsipar-001", "properties": { "bgpProperties": { "asn": 65010, @@ -505,7 +505,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-vpnSites-vsimin' params: { // Required parameters - name: '-vsimin-001' + name: '<>-vsimin-001' virtualWanId: '' // Non-required parameters addressPrefixes: [ @@ -530,7 +530,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "-vsimin-001" + "value": "<>-vsimin-001" }, "virtualWanId": { "value": "" diff --git a/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep b/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep index 21bee00f90..81a433c4f8 100644 --- a/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep +++ b/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep @@ -3,10 +3,6 @@ targetScope = 'subscription' // ========== // // Parameters // // ========== // - -@description('Optional. The name prefix to inject into all resource names') -param namePrefix string = '<>' - @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.sql-servers-rg' @@ -32,7 +28,7 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-${namePrefix}-msi-${serviceShort}-01' + managedIdentityName: 'dep-<>-msi-${serviceShort}-01' } } @@ -44,7 +40,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { - name: '${namePrefix}-${serviceShort}-001' + name: '<>-${serviceShort}-001' administrators: { azureADOnlyAuthentication: true login: 'myspn' diff --git a/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep b/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep index 98b7f174f2..8edb907441 100644 --- a/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep @@ -3,10 +3,6 @@ targetScope = 'subscription' // ========== // // Parameters // // ========== // - -@description('Optional. The name prefix to inject into all resource names') -param namePrefix string = '<>' - @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) param resourceGroupName string = '${serviceShort}-ms.sql-servers-rg' @@ -32,17 +28,17 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-${namePrefix}-msi-${serviceShort}-01' - virtualNetworkName: 'adp-${namePrefix}-vnet-${serviceShort}-01' - deploymentScriptName: 'adp-${namePrefix}-ds-kv-${serviceShort}-01' - keyVaultName: 'adp-${namePrefix}-kv-${serviceShort}-01' + managedIdentityName: 'dep-<>-msi-${serviceShort}-01' + virtualNetworkName: 'adp-<>-vnet-${serviceShort}-01' + deploymentScriptName: 'adp-<>-ds-kv-${serviceShort}-01' + keyVaultName: 'adp-<>-kv-${serviceShort}-01' passwordSecretName: 'adminPassword' location: location } } resource keyVaultReference 'Microsoft.KeyVault/vaults@2021-10-01' existing = { - name: 'adp-${namePrefix}-kv-${serviceShort}-01' + name: 'adp-<>-kv-${serviceShort}-01' scope: resourceGroup } @@ -52,10 +48,10 @@ module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnost scope: resourceGroup name: '${uniqueString(deployment().name, location)}-diagDep' params: { - storageAccountName: 'dep${namePrefix}azsa${serviceShort}01' - logAnalyticsWorkspaceName: 'dep-${namePrefix}-law-${serviceShort}-01' - eventHubNamespaceEventHubName: 'dep-${namePrefix}-evh-${serviceShort}-01' - eventHubNamespaceName: 'dep-${namePrefix}-evhns-${serviceShort}-01' + storageAccountName: 'dep<>azsa${serviceShort}01' + logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}-01' + eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}-01' + eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}-01' location: location } } @@ -68,7 +64,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' params: { - name: '${namePrefix}-${serviceShort}-001' + name: '<>-${serviceShort}-001' lock: 'CanNotDelete' administratorLogin: 'adminUserName' administratorLoginPassword: keyVaultReference.getSecret(resourceGroupResources.outputs.secretName) @@ -94,7 +90,7 @@ module testDeployment '../../deploy.bicep' = { } databases: [ { - name: '${namePrefix}-${serviceShort}db-001' + name: '<>-${serviceShort}db-001' collation: 'SQL_Latin1_General_CP1_CI_AS' skuTier: 'BusinessCritical' skuName: 'BC_Gen5' diff --git a/modules/Microsoft.Sql/servers/readme.md b/modules/Microsoft.Sql/servers/readme.md index a34ccac2ca..7c98aec609 100644 --- a/modules/Microsoft.Sql/servers/readme.md +++ b/modules/Microsoft.Sql/servers/readme.md @@ -342,7 +342,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-servers-sqladmin' params: { // Required parameters - name: '-sqladmin-001' + name: '<>-sqladmin-001' // Non-required parameters administrators: { azureADOnlyAuthentication: true @@ -369,7 +369,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "-sqladmin-001" + "value": "<>-sqladmin-001" }, // Non-required parameters "administrators": { @@ -399,7 +399,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-servers-sqlpar' params: { // Required parameters - name: '-sqlpar-001' + name: '<>-sqlpar-001' // Non-required parameters administratorLogin: 'adminUserName' administratorLoginPassword: '' @@ -413,7 +413,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { diagnosticWorkspaceId: '' licenseType: 'LicenseIncluded' maxSizeBytes: 34359738368 - name: '-sqlpardb-001' + name: '<>-sqlpardb-001' skuCapacity: 12 skuFamily: 'Gen5' skuName: 'BC_Gen5' @@ -483,7 +483,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "-sqlpar-001" + "value": "<>-sqlpar-001" }, // Non-required parameters "administratorLogin": { @@ -503,7 +503,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { "diagnosticWorkspaceId": "", "licenseType": "LicenseIncluded", "maxSizeBytes": 34359738368, - "name": "-sqlpardb-001", + "name": "<>-sqlpardb-001", "skuCapacity": 12, "skuFamily": "Gen5", "skuName": "BC_Gen5", From e579b48cccdf7daba7b96c8133c10a3a76249b5d Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 13 Aug 2022 06:21:20 +0200 Subject: [PATCH 177/274] Minor fix --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 0166cf5ee2..2597cec16d 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -206,6 +206,7 @@ jobs: $moduleTemplateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(moduleTestFilePath)' + # Determine possible parameters depending on file type if ((Split-Path $moduleTemplateFilePath -Extension) -eq '.bicep') { $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout | ConvertFrom-Json -AsHashtable $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys @@ -268,15 +269,16 @@ jobs: # -------------------------- $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json + # Fetching parameters $location = '${{ parameters.location }}' $resourceGroupName = '${{ parameters.resourceGroupName }}' $subscriptionId = '${{ parameters.subscriptionId }}' $managementGroupId = '${{ parameters.managementGroupId }}' $moduleTemplateFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' - $moduleTestFilePath = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(moduleTestFilePath)' + # Determine possible parameters depending on file type if ((Split-Path $moduleTemplateFilePath -Extension) -eq '.bicep') { $moduleTemplateContent = az bicep build --file $moduleTemplateFilePath --stdout | ConvertFrom-Json -AsHashtable $moduleTemplatePossibleParameters = $moduleTemplateContent.parameters.Keys @@ -304,7 +306,7 @@ jobs: } else { # Original JSON parameter files $functionInput['templateFilePath'] = $moduleTemplateFilePath - $functionInput['moduleTestFilePath'] = $moduleTestFilePath + $functionInput['parameterFilePath'] = $moduleTestFilePath } # Handle additional parameters From 29d594377e0c259715b5256a28003fb0df45cbc6 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 13 Aug 2022 09:39:05 +0200 Subject: [PATCH 178/274] Added VM draft --- .../servers/.test/default/deploy.test.bicep | 4 +- .../servers/.test/max/deploy.test.bicep | 4 +- .../servers/.test/min/deploy.test.bicep | 4 +- .../.test/linux.autmg.parameters.json | 64 ----- .../.test/linux.autmg/dependencies.bicep | 28 +++ .../.test/linux.autmg/deploy.test.bicep | 82 ++++++ .../.test/linux.min.parameters.json | 61 ----- .../.test/linux.min/dependencies.bicep | 28 +++ .../.test/linux.min/deploy.test.bicep | 81 ++++++ .../.test/linux.parameters.json | 218 ---------------- .../.test/linux/dependencies.bicep | 187 ++++++++++++++ .../.test/linux/deploy.test.bicep | 213 ++++++++++++++++ .../.test/windows.autmg.parameters.json | 58 ----- .../.test/windows.autmg/dependencies.bicep | 28 +++ .../.test/windows.autmg/deploy.test.bicep | 77 ++++++ .../.test/windows.min.parameters.json | 55 ---- .../.test/windows.min/dependencies.bicep | 28 +++ .../.test/windows.min/deploy.test.bicep | 75 ++++++ .../.test/windows.parameters.json | 238 ------------------ .../.test/windows/dependencies.bicep | 198 +++++++++++++++ .../.test/windows/deploy.test.bicep | 232 +++++++++++++++++ .../.test/default/deploy.test.bicep | 4 +- .../virtualHubs/.test/min/deploy.test.bicep | 4 +- .../vpnSites/.test/default/deploy.test.bicep | 4 +- .../vpnSites/.test/min/deploy.test.bicep | 4 +- .../servers/.test/admin/deploy.test.bicep | 4 +- .../servers/.test/default/deploy.test.bicep | 4 +- utilities/tools/Test-ModuleLocally.ps1 | 2 + 28 files changed, 1277 insertions(+), 712 deletions(-) delete mode 100644 modules/Microsoft.Compute/virtualMachines/.test/linux.autmg.parameters.json create mode 100644 modules/Microsoft.Compute/virtualMachines/.test/linux.autmg/dependencies.bicep create mode 100644 modules/Microsoft.Compute/virtualMachines/.test/linux.autmg/deploy.test.bicep delete mode 100644 modules/Microsoft.Compute/virtualMachines/.test/linux.min.parameters.json create mode 100644 modules/Microsoft.Compute/virtualMachines/.test/linux.min/dependencies.bicep create mode 100644 modules/Microsoft.Compute/virtualMachines/.test/linux.min/deploy.test.bicep delete mode 100644 modules/Microsoft.Compute/virtualMachines/.test/linux.parameters.json create mode 100644 modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep create mode 100644 modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep delete mode 100644 modules/Microsoft.Compute/virtualMachines/.test/windows.autmg.parameters.json create mode 100644 modules/Microsoft.Compute/virtualMachines/.test/windows.autmg/dependencies.bicep create mode 100644 modules/Microsoft.Compute/virtualMachines/.test/windows.autmg/deploy.test.bicep delete mode 100644 modules/Microsoft.Compute/virtualMachines/.test/windows.min.parameters.json create mode 100644 modules/Microsoft.Compute/virtualMachines/.test/windows.min/dependencies.bicep create mode 100644 modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep delete mode 100644 modules/Microsoft.Compute/virtualMachines/.test/windows.parameters.json create mode 100644 modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep create mode 100644 modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep diff --git a/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep index 995be685c8..a146384c88 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep @@ -5,7 +5,7 @@ targetScope = 'subscription' // ========== // @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.analysisservices-servers-rg' +param resourceGroupName string = '${serviceShort}-ms.analysisservices.servers-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location @@ -52,7 +52,7 @@ module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnost module testDeployment '../../deploy.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' + name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { name: '<>az${serviceShort}001' lock: 'CanNotDelete' diff --git a/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep index 56e5d48551..954763f0db 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep @@ -5,7 +5,7 @@ targetScope = 'subscription' // ========== // @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.analysisservices-servers-rg' +param resourceGroupName string = '${serviceShort}-ms.analysisservices.servers-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location @@ -52,7 +52,7 @@ module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnost module testDeployment '../../deploy.bicep' = { scope: az.resourceGroup(resourceGroupName) - name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' + name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { name: '<>az${serviceShort}001' lock: 'CanNotDelete' diff --git a/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep index cfbacf0c3d..b17f9f5a56 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep @@ -5,7 +5,7 @@ targetScope = 'subscription' // ========== // @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.analysisservices-servers-rg' +param resourceGroupName string = '${serviceShort}-ms.analysisservices.servers-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location @@ -30,7 +30,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { module testDeployment '../../deploy.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' + name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { name: '<>az${serviceShort}001' } diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux.autmg.parameters.json b/modules/Microsoft.Compute/virtualMachines/.test/linux.autmg.parameters.json deleted file mode 100644 index f375587dcf..0000000000 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux.autmg.parameters.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-vm-linux-autmg-01" - }, - "osType": { - "value": "Linux" - }, - "imageReference": { - "value": { - "publisher": "Canonical", - "offer": "UbuntuServer", - "sku": "18.04-LTS", - "version": "latest" - } - }, - "osDisk": { - "value": { - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - } - }, - "vmSize": { - "value": "Standard_B12ms" - }, - "adminUsername": { - "value": "localAdminUser" - }, - "disablePasswordAuthentication": { - "value": true - }, - "publicKeys": { - "value": [ - { - "path": "/home/localAdminUser/.ssh/authorized_keys", - "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure" - } - ] - }, - "nicConfigurations": { - "value": [ - { - "nicSuffix": "-nic-01", - "ipConfigurations": [ - { - "name": "ipconfig01", - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001", - "pipConfiguration": { - "publicIpNameSuffix": "-pip-01" - } - } - ] - } - ] - }, - "configurationProfile": { - "value": "/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction" - } - } -} diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux.autmg/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux.autmg/dependencies.bicep new file mode 100644 index 0000000000..da11790f18 --- /dev/null +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux.autmg/dependencies.bicep @@ -0,0 +1,28 @@ +@description('Required. The name of the managed identity to create') +param virtualNetworkName string + +@description('Optional. The location to deploy to') +param location string = resourceGroup().location + +resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { + name: virtualNetworkName + location: location + properties: { + addressSpace: { + addressPrefixes: [ + '10.0.0.0/24' + ] + } + subnets: [ + { + name: 'defaultSubnet' + properties: { + addressPrefix: '10.0.0.0/24' + } + } + ] + } +} + +@description('The resource ID of the created Virtual Network Subnet') +output subnetResourceId string = virtualNetwork.properties.subnets[0].id diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux.autmg/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux.autmg/deploy.test.bicep new file mode 100644 index 0000000000..60910b50d4 --- /dev/null +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux.autmg/deploy.test.bicep @@ -0,0 +1,82 @@ +targetScope = 'subscription' + +// ========== // +// Parameters // +// ========== // +@description('Optional. The name of the resource group to deploy for a testing purposes') +@maxLength(90) +param resourceGroupName string = '${serviceShort}-ms.compute.virtualMachines-rg' + +@description('Optional. The location to deploy resources to') +param location string = deployment().location + +@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +param serviceShort string = '...' + +// =========== // +// Deployments // +// =========== // + +// General resources +// ================= +resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { + name: resourceGroupName + location: location +} + +module resourceGroupResources 'dependencies.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-paramNested' + params: { + virtualNetworkName: 'dep-<>-vnet-${serviceShort}-01' + } +} + +// ============== // +// Test Execution // +// ============== // + +module testDeployment '../../deploy.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name)}-test-${serviceShort}' + params: { + name: '<>${serviceShort}001' + adminUsername: 'localAdminUser' + imageReference: { + offer: 'UbuntuServer' + publisher: 'Canonical' + sku: '18.04-LTS' + version: 'latest' + } + nicConfigurations: [ + { + ipConfigurations: [ + { + name: 'ipconfig01' + pipConfiguration: { + publicIpNameSuffix: '-pip-01' + } + subnetResourceId: resourceGroupResources.outputs.subnetResourceId + } + ] + nicSuffix: '-nic-01' + } + ] + osDisk: { + diskSizeGB: '128' + managedDisk: { + storageAccountType: 'Premium_LRS' + } + } + osType: 'Linux' + vmSize: 'Standard_B12ms' + configurationProfile: '/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction' + disablePasswordAuthentication: true + publicKeys: [ + { + keyData: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure' + path: '/home/localAdminUser/.ssh/authorized_keys' + } + ] + } +} diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux.min.parameters.json b/modules/Microsoft.Compute/virtualMachines/.test/linux.min.parameters.json deleted file mode 100644 index ac54d9aaee..0000000000 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux.min.parameters.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-vm-linux-min-01" - }, - "osType": { - "value": "Linux" - }, - "imageReference": { - "value": { - "publisher": "Canonical", - "offer": "UbuntuServer", - "sku": "18.04-LTS", - "version": "latest" - } - }, - "osDisk": { - "value": { - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - } - }, - "vmSize": { - "value": "Standard_B12ms" - }, - "adminUsername": { - "value": "localAdminUser" - }, - "disablePasswordAuthentication": { - "value": true - }, - "publicKeys": { - "value": [ - { - "path": "/home/localAdminUser/.ssh/authorized_keys", - "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure" - } - ] - }, - "nicConfigurations": { - "value": [ - { - "nicSuffix": "-nic-01", - "ipConfigurations": [ - { - "name": "ipconfig01", - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001", - "pipConfiguration": { - "publicIpNameSuffix": "-pip-01" - } - } - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux.min/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux.min/dependencies.bicep new file mode 100644 index 0000000000..da11790f18 --- /dev/null +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux.min/dependencies.bicep @@ -0,0 +1,28 @@ +@description('Required. The name of the managed identity to create') +param virtualNetworkName string + +@description('Optional. The location to deploy to') +param location string = resourceGroup().location + +resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { + name: virtualNetworkName + location: location + properties: { + addressSpace: { + addressPrefixes: [ + '10.0.0.0/24' + ] + } + subnets: [ + { + name: 'defaultSubnet' + properties: { + addressPrefix: '10.0.0.0/24' + } + } + ] + } +} + +@description('The resource ID of the created Virtual Network Subnet') +output subnetResourceId string = virtualNetwork.properties.subnets[0].id diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux.min/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux.min/deploy.test.bicep new file mode 100644 index 0000000000..87ddc70ce5 --- /dev/null +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux.min/deploy.test.bicep @@ -0,0 +1,81 @@ +targetScope = 'subscription' + +// ========== // +// Parameters // +// ========== // +@description('Optional. The name of the resource group to deploy for a testing purposes') +@maxLength(90) +param resourceGroupName string = '${serviceShort}-ms.compute.virtualMachines-rg' + +@description('Optional. The location to deploy resources to') +param location string = deployment().location + +@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +param serviceShort string = 'vmlinmin' + +// =========== // +// Deployments // +// =========== // + +// General resources +// ================= +resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { + name: resourceGroupName + location: location +} + +module resourceGroupResources 'dependencies.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-paramNested' + params: { + virtualNetworkName: 'dep-<>-vnet-${serviceShort}-01' + } +} + +// ============== // +// Test Execution // +// ============== // + +module testDeployment '../../deploy.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name)}-test-${serviceShort}' + params: { + name: '<>${serviceShort}001' + adminUsername: 'localAdminUser' + imageReference: { + offer: 'UbuntuServer' + publisher: 'Canonical' + sku: '18.04-LTS' + version: 'latest' + } + nicConfigurations: [ + { + ipConfigurations: [ + { + name: 'ipconfig01' + pipConfiguration: { + publicIpNameSuffix: '-pip-01' + } + subnetResourceId: resourceGroupResources.outputs.subnetResourceId + } + ] + nicSuffix: '-nic-01' + } + ] + osDisk: { + diskSizeGB: '128' + managedDisk: { + storageAccountType: 'Premium_LRS' + } + } + osType: 'Linux' + vmSize: 'Standard_B12ms' + disablePasswordAuthentication: true + publicKeys: [ + { + keyData: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure' + path: '/home/localAdminUser/.ssh/authorized_keys' + } + ] + } +} diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux.parameters.json b/modules/Microsoft.Compute/virtualMachines/.test/linux.parameters.json deleted file mode 100644 index 05938fb23a..0000000000 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux.parameters.json +++ /dev/null @@ -1,218 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-vm-linux-01" - }, - "lock": { - "value": "CanNotDelete" - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "osType": { - "value": "Linux" - }, - "encryptionAtHost": { - "value": false - }, - "availabilityZone": { - "value": 1 - }, - "vmSize": { - "value": "Standard_B12ms" - }, - "imageReference": { - "value": { - "publisher": "Canonical", - "offer": "UbuntuServer", - "sku": "18.04-LTS", - "version": "latest" - } - }, - "osDisk": { - "value": { - "createOption": "fromImage", - "deleteOption": "Delete", - "caching": "ReadOnly", - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - } - }, - "dataDisks": { - "value": [ - { - "createOption": "Empty", - "deleteOption": "Delete", - "caching": "ReadWrite", - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - }, - { - "createOption": "Empty", - "deleteOption": "Delete", - "caching": "ReadWrite", - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - } - ] - }, - "adminUsername": { - "value": "localAdminUser" - }, - "disablePasswordAuthentication": { - "value": true - }, - "publicKeys": { - "value": [ - { - "path": "/home/localAdminUser/.ssh/authorized_keys", - "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure" - } - ] - }, - "nicConfigurations": { - "value": [ - { - "nicSuffix": "-nic-01", - "deleteOption": "Delete", - "ipConfigurations": [ - { - "name": "ipconfig01", - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001", - "pipConfiguration": { - "publicIpNameSuffix": "-pip-01", - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "loadBalancerBackendAddressPools": [ - { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/loadBalancers/adp-<>-az-lb-internal-001/backendAddressPools/servers" - } - ], - "applicationSecurityGroups": [ - { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationSecurityGroups/adp-<>-az-asg-x-001" - } - ] - } - ], - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - ] - }, - "backupVaultName": { - "value": "adp-<>-az-rsv-x-001" - }, - "backupVaultResourceGroup": { - "value": "validation-rg" - }, - "backupPolicyName": { - "value": "VMpolicy" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "extensionMonitoringAgentConfig": { - "value": { - "enabled": true - } - }, - "monitoringWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "extensionDependencyAgentConfig": { - "value": { - "enabled": true - } - }, - "extensionNetworkWatcherAgentConfig": { - "value": { - "enabled": true - } - }, - "extensionDiskEncryptionConfig": { - "value": { - "enabled": true, - "settings": { - "EncryptionOperation": "EnableEncryption", - "KeyVaultURL": "https://adp-<>-az-kv-x-001.vault.azure.net/", - "KeyVaultResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", - "KeyEncryptionKeyURL": "https://adp-<>-az-kv-x-001.vault.azure.net/keys/keyEncryptionKey/bc3bb46d95c64367975d722f473eeae5", // ID must be updated for new keys - "KekVaultResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", - "KeyEncryptionAlgorithm": "RSA-OAEP", - "VolumeType": "All", - "ResizeOSDisk": "false" - } - } - }, - "extensionDSCConfig": { - "value": { - "enabled": false - } - }, - "extensionCustomScriptConfig": { - "value": { - "enabled": true, - "fileData": [ - { - "uri": "https://adp<>azsax001.blob.core.windows.net/scripts/scriptExtensionMasterInstaller.ps1", - "storageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - } - ] - } - }, - "extensionCustomScriptProtectedSetting": { - "value": { - "commandToExecute": "sudo apt-get update" - } - } - } -} diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep new file mode 100644 index 0000000000..9497d15fd3 --- /dev/null +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep @@ -0,0 +1,187 @@ +@description('Required. The name of the Virtual Network to create.') +param virtualNetworkName string + +@description('Required. The name of the Application Security Group to create.') +param applicationSecurityGroupName string + +@description('Required. The name of the Managed Identity to create.') +param managedIdentityName string + +@description('Required. The name of the Load Balancer to create.') +param loadBalancerName string + +@description('Required. The name of the Recovery Services Vault to create.') +param recoveryServicesVaultName string + +@description('Required. The name of the Key Vault to create.') +param keyVaultName string + +@description('Required. The name of the Storage Account to create.') +param storageAccountName string + +@description('Required. The name of the Deployment Script used to upload data to the Storage Account.') +param storageUploadDeploymentScriptName string + +@description('Optional. The location to deploy to.') +param location string = resourceGroup().location + +var storageContainerName = 'scripts' +var storageAccountCSEFileName = 'scriptExtensionMasterInstaller.ps1' +var backupPolicyName = 'backupPolicy' + +resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { + name: virtualNetworkName + location: location + properties: { + addressSpace: { + addressPrefixes: [ + '10.0.0.0/24' + ] + } + subnets: [ + { + name: 'defaultSubnet' + properties: { + addressPrefix: '10.0.0.0/24' + } + } + ] + } +} + +resource applicationSecurityGroup 'Microsoft.Network/applicationSecurityGroups@2022-01-01' = { + name: applicationSecurityGroupName +} + +resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { + name: managedIdentityName + location: location +} + +resource loadBalancer 'Microsoft.Network/loadBalancers@2022-01-01' = { + name: loadBalancerName + properties: { + frontendIPConfigurations: [ + { + name: 'privateIPConfig1' + properties: { + subnet: virtualNetwork.properties.subnets[0] + } + } + ] + } + + resource backendPool 'backendAddressPools@2022-01-01' = { + name: 'servers' + } +} + +resource recoveryServicesVault 'Microsoft.RecoveryServices/vaults@2022-04-01' = { + name: recoveryServicesVaultName + location: location + + resource backupPolicy 'backupPolicies@2022-03-01' = { + name: backupPolicyName + properties: { + backupManagementType: 'AzureIaasVM' + } + } +} + +resource keyVault 'Microsoft.KeyVault/vaults@2022-07-01' = { + name: keyVaultName + location: location + properties: { + sku: { + family: 'A' + name: 'standard' + } + tenantId: tenant().tenantId + enabledForTemplateDeployment: true + enablePurgeProtection: false + } + + resource key 'keys@2022-07-01' = { + name: 'encryptionKey' + properties: { + } + } +} + +resource storageAccount 'Microsoft.Storage/storageAccounts@2021-09-01' = { + name: storageAccountName + location: location + sku: { + name: 'Standard_LRS' + } + kind: 'StorageV2' + + resource blobService 'blobServices@2021-09-01' = { + name: 'default' + + resource container 'containers@2021-09-01' = { + name: storageContainerName + } + } +} + +resource storageUpload 'Microsoft.Resources/deploymentScripts@2020-10-01' = { + name: storageUploadDeploymentScriptName + location: location + kind: 'AzurePowerShell' + properties: { + azPowerShellVersion: '3.0' + retentionInterval: 'P1D' + arguments: ' -StorageAccountName "${storageAccount.name}" -ResourceGroupName "${resourceGroup().name}" -ContainerName "${storageAccount::blobService::container.name}" -FileName "${storageAccountCSEFileName}"' + scriptContent: ''' + param( + [string] $StorageAccountName, + [string] $ResourceGroupName, + [string] $ContainerName, + [string] $FileName + ) + Write-Verbose "Create file [$FileName]" -Verbose + $file = New-Item -Value "Write-Host 'I am content'" -Path $FileName -Force + Write-Verbose "Getting storage account [$StorageAccountName|$ResourceGroupName] context." -Verbose + $storageAccount = Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -StorageAccountName $StorageAccountName -ErrorAction 'Stop' + Write-Verbose 'Uploading file [$fileName]' -Verbose + Set-AzStorageBlobContent -File $file.FullName -Container $ContainerName -Context $storageAccount.Context -Force -ErrorAction 'Stop' | Out-Null + ''' + } +} + +@description('The resource ID of the created Virtual Network Subnet.') +output subnetResourceId string = virtualNetwork.properties.subnets[0].id + +@description('The resource ID of the created Application Security Group.') +output applicationSecurityGroupResourceId string = applicationSecurityGroup.id + +@description('The principal ID of the created Managed Identity.') +output managedIdentityPrincipalId string = managedIdentity.properties.principalId + +@description('The resource ID of the created Managed Identity.') +output managedIdentityResourceId string = managedIdentity.properties.principalId + +@description('The resource ID of the created Load Balancer Backend Pool.') +output loadBalancerBackendPoolResourceId string = loadBalancer::backendPool.id + +@description('The resource ID of the created Recovery Services Vault.') +output recoveryServicesVaultResourceId string = recoveryServicesVault.id + +@description('The name of the Backup Policy created in the Backup Recovery Vault.') +output recoveryServicesVaultBackupPolicyName string = backupPolicyName + +@description('The resource ID of the created Key Vault.') +output keyVaultResourceId string = keyVault.id + +@description('The URL of the created Key Vault.') +output keyVaultUrl string = keyVault.properties.vaultUri + +@description('The URL of the created Key Vault Encryption Key.') +output keyVaultEncryptionKeyUrl string = keyVault::key.properties.keyUriWithVersion + +@description('The resource ID of the created Storage Account.') +output storageAccountResourceId string = storageAccount.id + +@description('The URL of the Custom Script Extension in the created Storage Account') +output storageAccountCSEFileUrl string = '${storageAccount.properties.primaryEndpoints.blob}${storageContainerName}/${storageAccountCSEFileName}' diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep new file mode 100644 index 0000000000..2371bdac90 --- /dev/null +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep @@ -0,0 +1,213 @@ +targetScope = 'subscription' + +// ========== // +// Parameters // +// ========== // +@description('Optional. The name of the resource group to deploy for a testing purposes') +@maxLength(90) +param resourceGroupName string = '${serviceShort}-ms.compute.virtualMachines-rg' + +@description('Optional. The location to deploy resources to') +param location string = deployment().location + +@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +param serviceShort string = 'vmlinmpar' + +// =========== // +// Deployments // +// =========== // + +// General resources +// ================= +resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { + name: resourceGroupName + location: location +} + +module resourceGroupResources 'dependencies.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-paramNested' + params: { + virtualNetworkName: 'dep-<>-vnet-${serviceShort}-01' + applicationSecurityGroupName: 'adp-<>-asg-${serviceShort}-01' + managedIdentityName: 'dep-<>-msi-${serviceShort}-01' + keyVaultName: 'dep-<>-kv-${serviceShort}-01' + loadBalancerName: 'dep-<>-lb-${serviceShort}-01' + recoveryServicesVaultName: 'dep-<>-rsv-${serviceShort}-01' + storageAccountName: 'dep-<>-sa-${serviceShort}-01' + storageUploadDeploymentScriptName: 'dep-<>-sads-${serviceShort}-01' + } +} + +// Diagnostics +// =========== +module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-diagDep' + params: { + storageAccountName: 'dep<>azsa${serviceShort}01' + logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}-01' + eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}-01' + eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}-01' + location: location + } +} + +// ============== // +// Test Execution // +// ============== // + +module testDeployment '../../deploy.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name)}-test-${serviceShort}' + params: { + name: '<>${serviceShort}001' + adminUsername: 'localAdminUser' + imageReference: { + offer: 'UbuntuServer' + publisher: 'Canonical' + sku: '18.04-LTS' + version: 'latest' + } + nicConfigurations: [ + { + deleteOption: 'Delete' + ipConfigurations: [ + { + applicationSecurityGroups: [ + { + id: resourceGroupResources.outputs.applicationSecurityGroupResourceId + } + ] + loadBalancerBackendAddressPools: [ + { + id: resourceGroupResources.outputs.loadBalancerBackendPoolResourceId + } + ] + name: 'ipconfig01' + pipConfiguration: { + publicIpNameSuffix: '-pip-01' + roleAssignments: [ + { + principalIds: [ + resourceGroupResources.outputs.managedIdentityPrincipalId + ] + roleDefinitionIdOrName: 'Reader' + } + ] + } + subnetResourceId: resourceGroupResources.outputs.subnetResourceId + } + ] + nicSuffix: '-nic-01' + roleAssignments: [ + { + principalIds: [ + resourceGroupResources.outputs.managedIdentityPrincipalId + ] + roleDefinitionIdOrName: 'Reader' + } + ] + } + ] + osDisk: { + caching: 'ReadOnly' + createOption: 'fromImage' + deleteOption: 'Delete' + diskSizeGB: '128' + managedDisk: { + storageAccountType: 'Premium_LRS' + } + } + osType: 'Linux' + vmSize: 'Standard_B12ms' + availabilityZone: 1 + backupPolicyName: resourceGroupResources.outputs.recoveryServicesVaultBackupPolicyName + backupVaultName: last(split(resourceGroupResources.outputs.recoveryServicesVaultResourceId, '/')) + backupVaultResourceGroup: (split(resourceGroupResources.outputs.recoveryServicesVaultResourceId, '/'))[4] + dataDisks: [ + { + caching: 'ReadWrite' + createOption: 'Empty' + deleteOption: 'Delete' + diskSizeGB: '128' + managedDisk: { + storageAccountType: 'Premium_LRS' + } + } + { + caching: 'ReadWrite' + createOption: 'Empty' + deleteOption: 'Delete' + diskSizeGB: '128' + managedDisk: { + storageAccountType: 'Premium_LRS' + } + } + ] + diagnosticStorageAccountId: diagnosticDependencies.outputs.storageAccountResourceId + diagnosticWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId + diagnosticEventHubAuthorizationRuleId: diagnosticDependencies.outputs.eventHubAuthorizationRuleId + diagnosticEventHubName: diagnosticDependencies.outputs.eventHubNamespaceEventHubName + diagnosticLogsRetentionInDays: 7 + disablePasswordAuthentication: true + encryptionAtHost: false + extensionCustomScriptConfig: { + enabled: true + fileData: [ + { + storageAccountId: resourceGroupResources.outputs.storageAccountResourceId + uri: resourceGroupResources.outputs.storageAccountCSEFileUrl + } + ] + } + extensionCustomScriptProtectedSetting: { + commandToExecute: 'sudo apt-get update' + } + extensionDependencyAgentConfig: { + enabled: true + } + extensionDiskEncryptionConfig: { + enabled: true + settings: { + EncryptionOperation: 'EnableEncryption' + KekVaultResourceId: resourceGroupResources.outputs.keyVaultResourceId + KeyEncryptionAlgorithm: 'RSA-OAEP' + KeyEncryptionKeyURL: resourceGroupResources.outputs.keyVaultEncryptionKeyUrl + KeyVaultResourceId: resourceGroupResources.outputs.keyVaultResourceId + KeyVaultURL: resourceGroupResources.outputs.keyVaultUrl + ResizeOSDisk: 'false' + VolumeType: 'All' + } + } + extensionDSCConfig: { + enabled: false + } + extensionMonitoringAgentConfig: { + enabled: true + } + extensionNetworkWatcherAgentConfig: { + enabled: true + } + lock: 'CanNotDelete' + monitoringWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId + publicKeys: [ + { + keyData: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure' + path: '/home/localAdminUser/.ssh/authorized_keys' + } + ] + roleAssignments: [ + { + principalIds: [ + resourceGroupResources.outputs.managedIdentityPrincipalId + ] + roleDefinitionIdOrName: 'Reader' + } + ] + systemAssignedIdentity: true + userAssignedIdentities: { + '${resourceGroupResources.outputs.managedIdentityResourceId}': {} + } + } +} diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.autmg.parameters.json b/modules/Microsoft.Compute/virtualMachines/.test/windows.autmg.parameters.json deleted file mode 100644 index cc63de20a4..0000000000 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows.autmg.parameters.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-vm-win-03" - }, - "imageReference": { - "value": { - "publisher": "MicrosoftWindowsServer", - "offer": "WindowsServer", - "sku": "2019-Datacenter", - "version": "latest" - } - }, - "osType": { - "value": "Windows" - }, - "vmSize": { - "value": "Standard_B12ms" - }, - "osDisk": { - "value": { - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - } - }, - "adminUsername": { - "value": "localAdminUser" - }, - "adminPassword": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "adminPassword" - } - }, - "nicConfigurations": { - "value": [ - { - "nicSuffix": "-nic-01", - "ipConfigurations": [ - { - "name": "ipconfig01", - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001" - } - ] - } - ] - }, - "configurationProfile": { - "value": "/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction" - } - } -} diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.autmg/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows.autmg/dependencies.bicep new file mode 100644 index 0000000000..da11790f18 --- /dev/null +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows.autmg/dependencies.bicep @@ -0,0 +1,28 @@ +@description('Required. The name of the managed identity to create') +param virtualNetworkName string + +@description('Optional. The location to deploy to') +param location string = resourceGroup().location + +resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { + name: virtualNetworkName + location: location + properties: { + addressSpace: { + addressPrefixes: [ + '10.0.0.0/24' + ] + } + subnets: [ + { + name: 'defaultSubnet' + properties: { + addressPrefix: '10.0.0.0/24' + } + } + ] + } +} + +@description('The resource ID of the created Virtual Network Subnet') +output subnetResourceId string = virtualNetwork.properties.subnets[0].id diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.autmg/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows.autmg/deploy.test.bicep new file mode 100644 index 0000000000..cbde144f91 --- /dev/null +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows.autmg/deploy.test.bicep @@ -0,0 +1,77 @@ +targetScope = 'subscription' + +// ========== // +// Parameters // +// ========== // +@description('Optional. The name of the resource group to deploy for a testing purposes') +@maxLength(90) +param resourceGroupName string = '${serviceShort}-ms.compute.virtualMachines-rg' + +@description('Optional. The location to deploy resources to') +param location string = deployment().location + +@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +param serviceShort string = 'vmautmg' + +@description('Optional. The password to leverage for the login.') +@secure() +param password string = newGuid() + +// =========== // +// Deployments // +// =========== // + +// General resources +// ================= +resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { + name: resourceGroupName + location: location +} + +module resourceGroupResources 'dependencies.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-paramNested' + params: { + virtualNetworkName: 'dep-<>-vnet-${serviceShort}-01' + } +} + +// ============== // +// Test Execution // +// ============== // + +module testDeployment '../../deploy.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name)}-test-${serviceShort}' + params: { + name: '<>${serviceShort}001' + adminUsername: 'localAdminUser' + imageReference: { + offer: 'WindowsServer' + publisher: 'MicrosoftWindowsServer' + sku: '2019-Datacenter' + version: 'latest' + } + nicConfigurations: [ + { + ipConfigurations: [ + { + name: 'ipconfig01' + subnetResourceId: resourceGroupResources.outputs.subnetResourceId + } + ] + nicSuffix: '-nic-01' + } + ] + osDisk: { + diskSizeGB: '128' + managedDisk: { + storageAccountType: 'Premium_LRS' + } + } + osType: 'Windows' + vmSize: 'Standard_B12ms' + adminPassword: password + configurationProfile: '/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction' + } +} diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.min.parameters.json b/modules/Microsoft.Compute/virtualMachines/.test/windows.min.parameters.json deleted file mode 100644 index 8537deaacf..0000000000 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows.min.parameters.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-vm-win-02" - }, - "imageReference": { - "value": { - "publisher": "MicrosoftWindowsServer", - "offer": "WindowsServer", - "sku": "2022-datacenter-azure-edition", - "version": "latest" - } - }, - "osType": { - "value": "Windows" - }, - "vmSize": { - "value": "Standard_B12ms" - }, - "osDisk": { - "value": { - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - } - }, - "adminUsername": { - "value": "localAdminUser" - }, - "adminPassword": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "adminPassword" - } - }, - "nicConfigurations": { - "value": [ - { - "nicSuffix": "-nic-01", - "ipConfigurations": [ - { - "name": "ipconfig01", - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001" - } - ] - } - ] - } - } -} diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.min/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows.min/dependencies.bicep new file mode 100644 index 0000000000..6245a4784c --- /dev/null +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows.min/dependencies.bicep @@ -0,0 +1,28 @@ +@description('Required. The name of the managed identity to create') +param virtualNetworkName string + +@description('Optional. The location to deploy to.') +param location string = resourceGroup().location + +resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { + name: virtualNetworkName + location: location + properties: { + addressSpace: { + addressPrefixes: [ + '10.0.0.0/24' + ] + } + subnets: [ + { + name: 'defaultSubnet' + properties: { + addressPrefix: '10.0.0.0/24' + } + } + ] + } +} + +@description('The resource ID of the created Virtual Network Subnet.') +output subnetResourceId string = virtualNetwork.properties.subnets[0].id diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep new file mode 100644 index 0000000000..76784adf04 --- /dev/null +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep @@ -0,0 +1,75 @@ +targetScope = 'subscription' + +// ========== // +// Parameters // +// ========== // +@description('Optional. The name of the resource group to deploy for a testing purposes') +@maxLength(90) +param resourceGroupName string = '${serviceShort}-ms.compute.virtualMachines-rg' + +@description('Optional. The location to deploy resources to') +param location string = deployment().location + +@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +param serviceShort string = 'vmmin' + +@description('Optional. The password to leverage for the login.') +@secure() +param password string = newGuid() + +// =========== // +// Deployments // +// =========== // + +// General resources +// ================= +resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { + name: resourceGroupName + location: location +} + +module resourceGroupResources 'dependencies.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-paramNested' + params: { + virtualNetworkName: 'dep-<>-vnet-${serviceShort}-01' + } +} + +// ============== // +// Test Execution // +// ============== // +module testDeployment '../../deploy.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name)}-test-${serviceShort}' + params: { + name: '<>${serviceShort}001' + adminUsername: 'localAdminUser' + imageReference: { + offer: 'WindowsServer' + publisher: 'MicrosoftWindowsServer' + sku: '2022-datacenter-azure-edition' + version: 'latest' + } + nicConfigurations: [ + { + ipConfigurations: [ + { + name: 'ipconfig01' + subnetResourceId: resourceGroupResources.outputs.subnetResourceId + } + ] + nicSuffix: '-nic-01' + } + ] + osDisk: { + diskSizeGB: '128' + managedDisk: { + storageAccountType: 'Premium_LRS' + } + } + osType: 'Windows' + vmSize: 'Standard_B12ms' + adminPassword: password + } +} diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.parameters.json b/modules/Microsoft.Compute/virtualMachines/.test/windows.parameters.json deleted file mode 100644 index eea472aa0f..0000000000 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows.parameters.json +++ /dev/null @@ -1,238 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-vm-win-01" - }, - "lock": { - "value": "CanNotDelete" - }, - "encryptionAtHost": { - "value": false - }, - "imageReference": { - "value": { - "publisher": "MicrosoftWindowsServer", - "offer": "WindowsServer", - "sku": "2019-Datacenter", - "version": "latest" - } - }, - "osType": { - "value": "Windows" - }, - "vmSize": { - "value": "Standard_B12ms" - }, - "osDisk": { - "value": { - "createOption": "fromImage", - "deleteOption": "Delete", - "caching": "None", - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - } - }, - "dataDisks": { - "value": [ - { - "createOption": "Empty", - "deleteOption": "Delete", - "caching": "None", - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - }, - { - "createOption": "Empty", - "deleteOption": "Delete", - "caching": "None", - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - } - ] - }, - "availabilityZone": { - "value": 2 - }, - "adminUsername": { - "value": "localAdminUser" - }, - "adminPassword": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "adminPassword" - } - }, - "nicConfigurations": { - "value": [ - { - "nicSuffix": "-nic-01", - "deleteOption": "Delete", - "ipConfigurations": [ - { - "name": "ipconfig01", - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001", - "pipConfiguration": { - "publicIpNameSuffix": "-pip-01", - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "loadBalancerBackendAddressPools": [ - { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/loadBalancers/adp-<>-az-lb-internal-001/backendAddressPools/servers" - } - ], - "applicationSecurityGroups": [ - { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationSecurityGroups/adp-<>-az-asg-x-001" - } - ] - } - ], - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - } - ] - }, - "backupVaultName": { - "value": "adp-<>-az-rsv-x-001" - }, - "backupVaultResourceGroup": { - "value": "validation-rg" - }, - "backupPolicyName": { - "value": "VMpolicy" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "proximityPlacementGroupResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Compute/proximityPlacementGroups/adp-<>-az-ppg-vm-001" - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "extensionAntiMalwareConfig": { - "value": { - "enabled": true, - "settings": { - "AntimalwareEnabled": "true", - "Exclusions": { - "Extensions": ".ext1;.ext2", - "Paths": "c:\\excluded-path-1;c:\\excluded-path-2", - "Processes": "excludedproc1.exe;excludedproc2.exe" - }, - "RealtimeProtectionEnabled": "true", - "ScheduledScanSettings": { - "isEnabled": "true", - "scanType": "Quick", - "day": "7", - "time": "120" - } - } - } - }, - "extensionMonitoringAgentConfig": { - "value": { - "enabled": true - } - }, - "monitoringWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "extensionDependencyAgentConfig": { - "value": { - "enabled": true - } - }, - "extensionNetworkWatcherAgentConfig": { - "value": { - "enabled": true - } - }, - "extensionDiskEncryptionConfig": { - "value": { - "enabled": true, - "settings": { - "EncryptionOperation": "EnableEncryption", - "KeyVaultURL": "https://adp-<>-az-kv-x-001.vault.azure.net/", - "KeyVaultResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", - "KeyEncryptionKeyURL": "https://adp-<>-az-kv-x-001.vault.azure.net/keys/keyEncryptionKey/bc3bb46d95c64367975d722f473eeae5", // ID must be updated for new keys - "KekVaultResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", - "KeyEncryptionAlgorithm": "RSA-OAEP", - "VolumeType": "All", - "ResizeOSDisk": "false" - } - } - }, - "extensionDSCConfig": { - "value": { - "enabled": true - } - }, - "extensionCustomScriptConfig": { - "value": { - "enabled": true, - "fileData": [ - { - "uri": "https://adp<>azsax001.blob.core.windows.net/scripts/scriptExtensionMasterInstaller.ps1", - "storageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - } - ] - } - }, - "extensionCustomScriptProtectedSetting": { - "value": { - "commandToExecute": "powershell -ExecutionPolicy Unrestricted -Command \"& .\\scriptExtensionMasterInstaller.ps1\"" - } - } - } -} diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep new file mode 100644 index 0000000000..da2e9e1dfd --- /dev/null +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep @@ -0,0 +1,198 @@ +@description('Required. The name of the managed identity to create') +param virtualNetworkName string + +@description('Required. The name of the Application Security Group to create.') +param applicationSecurityGroupName string + +@description('Required. The name of the Managed Identity to create.') +param managedIdentityName string + +@description('Required. The name of the Load Balancer to create.') +param loadBalancerName string + +@description('Required. The name of the Recovery Services Vault to create.') +param recoveryServicesVaultName string + +@description('Required. The name of the Key Vault to create.') +param keyVaultName string + +@description('Required. The name of the Storage Account to create.') +param storageAccountName string + +@description('Required. The name of the Deployment Script used to upload data to the Storage Account.') +param storageUploadDeploymentScriptName string + +@description('Required. The name of the Proximity Placement Group to create.') +param proximityPlacementGroupName string + +@description('Optional. The location to deploy to') +param location string = resourceGroup().location + +var storageContainerName = 'scripts' +var storageAccountCSEFileName = 'scriptExtensionMasterInstaller.ps1' +var backupPolicyName = 'backupPolicy' + +resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { + name: virtualNetworkName + location: location + properties: { + addressSpace: { + addressPrefixes: [ + '10.0.0.0/24' + ] + } + subnets: [ + { + name: 'defaultSubnet' + properties: { + addressPrefix: '10.0.0.0/24' + } + } + ] + } +} + +resource applicationSecurityGroup 'Microsoft.Network/applicationSecurityGroups@2022-01-01' = { + name: applicationSecurityGroupName +} + +resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { + name: managedIdentityName + location: location +} + +resource loadBalancer 'Microsoft.Network/loadBalancers@2022-01-01' = { + name: loadBalancerName + properties: { + frontendIPConfigurations: [ + { + name: 'privateIPConfig1' + properties: { + subnet: virtualNetwork.properties.subnets[0] + } + } + ] + } + + resource backendPool 'backendAddressPools@2022-01-01' = { + name: 'servers' + } +} + +resource recoveryServicesVault 'Microsoft.RecoveryServices/vaults@2022-04-01' = { + name: recoveryServicesVaultName + location: location + + resource backupPolicy 'backupPolicies@2022-03-01' = { + name: backupPolicyName + properties: { + backupManagementType: 'AzureIaasVM' + } + } +} + +resource keyVault 'Microsoft.KeyVault/vaults@2022-07-01' = { + name: keyVaultName + location: location + properties: { + sku: { + family: 'A' + name: 'standard' + } + tenantId: tenant().tenantId + enabledForTemplateDeployment: true + enablePurgeProtection: false + } + + resource key 'keys@2022-07-01' = { + name: 'encryptionKey' + properties: { + } + } +} + +resource storageAccount 'Microsoft.Storage/storageAccounts@2021-09-01' = { + name: storageAccountName + location: location + sku: { + name: 'Standard_LRS' + } + kind: 'StorageV2' + + resource blobService 'blobServices@2021-09-01' = { + name: 'default' + + resource container 'containers@2021-09-01' = { + name: storageContainerName + } + } +} + +resource storageUpload 'Microsoft.Resources/deploymentScripts@2020-10-01' = { + name: storageUploadDeploymentScriptName + location: location + kind: 'AzurePowerShell' + properties: { + azPowerShellVersion: '3.0' + retentionInterval: 'P1D' + arguments: ' -StorageAccountName "${storageAccount.name}" -ResourceGroupName "${resourceGroup().name}" -ContainerName "${storageAccount::blobService::container.name}" -FileName "${storageAccountCSEFileName}"' + scriptContent: ''' + param( + [string] $StorageAccountName, + [string] $ResourceGroupName, + [string] $ContainerName, + [string] $FileName + ) + Write-Verbose "Create file [$FileName]" -Verbose + $file = New-Item -Value "Write-Host 'I am content'" -Path $FileName -Force + Write-Verbose "Getting storage account [$StorageAccountName|$ResourceGroupName] context." -Verbose + $storageAccount = Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -StorageAccountName $StorageAccountName -ErrorAction 'Stop' + Write-Verbose 'Uploading file [$fileName]' -Verbose + Set-AzStorageBlobContent -File $file.FullName -Container $ContainerName -Context $storageAccount.Context -Force -ErrorAction 'Stop' | Out-Null + ''' + } +} + +resource proximityPlacementGroup 'Microsoft.Compute/proximityPlacementGroups@2022-03-01' = { + name: proximityPlacementGroupName + location: location +} + +@description('The resource ID of the created Virtual Network Subnet.') +output subnetResourceId string = virtualNetwork.properties.subnets[0].id + +@description('The resource ID of the created Application Security Group.') +output applicationSecurityGroupResourceId string = applicationSecurityGroup.id + +@description('The principal ID of the created Managed Identity.') +output managedIdentityPrincipalId string = managedIdentity.properties.principalId + +@description('The resource ID of the created Managed Identity.') +output managedIdentityResourceId string = managedIdentity.properties.principalId + +@description('The resource ID of the created Load Balancer Backend Pool.') +output loadBalancerBackendPoolResourceId string = loadBalancer::backendPool.id + +@description('The resource ID of the created Recovery Services Vault.') +output recoveryServicesVaultResourceId string = recoveryServicesVault.id + +@description('The name of the Backup Policy created in the Backup Recovery Vault.') +output recoveryServicesVaultBackupPolicyName string = backupPolicyName + +@description('The resource ID of the created Key Vault.') +output keyVaultResourceId string = keyVault.id + +@description('The URL of the created Key Vault.') +output keyVaultUrl string = keyVault.properties.vaultUri + +@description('The URL of the created Key Vault Encryption Key.') +output keyVaultEncryptionKeyUrl string = keyVault::key.properties.keyUriWithVersion + +@description('The resource ID of the created Storage Account.') +output storageAccountResourceId string = storageAccount.id + +@description('The URL of the Custom Script Extension in the created Storage Account') +output storageAccountCSEFileUrl string = '${storageAccount.properties.primaryEndpoints.blob}${storageContainerName}/${storageAccountCSEFileName}' + +@description('The resource ID of the created Proximity Placement Group.') +output proximityPlacementGroupResourceId string = proximityPlacementGroup.id diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep new file mode 100644 index 0000000000..2206ee0aa4 --- /dev/null +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep @@ -0,0 +1,232 @@ +targetScope = 'subscription' + +// ========== // +// Parameters // +// ========== // +@description('Optional. The name of the resource group to deploy for a testing purposes') +@maxLength(90) +param resourceGroupName string = '${serviceShort}-ms.compute.virtualMachines-rg' + +@description('Optional. The location to deploy resources to') +param location string = deployment().location + +@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +param serviceShort string = 'vmpar' + +@description('Optional. The password to leverage for the login.') +@secure() +param password string = newGuid() + +// =========== // +// Deployments // +// =========== // + +// General resources +// ================= +resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { + name: resourceGroupName + location: location +} + +module resourceGroupResources 'dependencies.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-paramNested' + params: { + virtualNetworkName: 'dep-<>-vnet-${serviceShort}-01' + applicationSecurityGroupName: 'adp-<>-asg-${serviceShort}-01' + managedIdentityName: 'dep-<>-msi-${serviceShort}-01' + keyVaultName: 'dep-<>-kv-${serviceShort}-01' + loadBalancerName: 'dep-<>-lb-${serviceShort}-01' + recoveryServicesVaultName: 'dep-<>-rsv-${serviceShort}-01' + storageAccountName: 'dep-<>-sa-${serviceShort}-01' + storageUploadDeploymentScriptName: 'dep-<>-sads-${serviceShort}-01' + proximityPlacementGroupName: 'dep-<>-ppg-${serviceShort}-01' + } +} + +// Diagnostics +// =========== +module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-diagDep' + params: { + storageAccountName: 'dep<>azsa${serviceShort}01' + logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}-01' + eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}-01' + eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}-01' + location: location + } +} + +// ============== // +// Test Execution // +// ============== // + +module testDeployment '../../deploy.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name)}-test-${serviceShort}' + params: { + name: '<>${serviceShort}001' + + adminUsername: 'localAdminUser' + imageReference: { + offer: 'WindowsServer' + publisher: 'MicrosoftWindowsServer' + sku: '2019-Datacenter' + version: 'latest' + } + nicConfigurations: [ + { + deleteOption: 'Delete' + ipConfigurations: [ + { + applicationSecurityGroups: [ + { + id: resourceGroupResources.outputs.applicationSecurityGroupResourceId + } + ] + loadBalancerBackendAddressPools: [ + { + id: resourceGroupResources.outputs.loadBalancerBackendPoolResourceId + } + ] + name: 'ipconfig01' + pipConfiguration: { + publicIpNameSuffix: '-pip-01' + roleAssignments: [ + { + principalIds: [ + resourceGroupResources.outputs.managedIdentityPrincipalId + ] + roleDefinitionIdOrName: 'Reader' + } + ] + } + subnetResourceId: resourceGroupResources.outputs.subnetResourceId + } + ] + nicSuffix: '-nic-01' + roleAssignments: [ + { + principalIds: [ + resourceGroupResources.outputs.managedIdentityPrincipalId + ] + roleDefinitionIdOrName: 'Reader' + } + ] + } + ] + osDisk: { + caching: 'None' + createOption: 'fromImage' + deleteOption: 'Delete' + diskSizeGB: '128' + managedDisk: { + storageAccountType: 'Premium_LRS' + } + } + osType: 'Windows' + vmSize: 'Standard_B12ms' + adminPassword: password + availabilityZone: 2 + backupPolicyName: resourceGroupResources.outputs.recoveryServicesVaultBackupPolicyName + backupVaultName: last(split(resourceGroupResources.outputs.recoveryServicesVaultResourceId, '/')) + backupVaultResourceGroup: (split(resourceGroupResources.outputs.recoveryServicesVaultResourceId, '/'))[4] + dataDisks: [ + { + caching: 'None' + createOption: 'Empty' + deleteOption: 'Delete' + diskSizeGB: '128' + managedDisk: { + storageAccountType: 'Premium_LRS' + } + } + { + caching: 'None' + createOption: 'Empty' + deleteOption: 'Delete' + diskSizeGB: '128' + managedDisk: { + storageAccountType: 'Premium_LRS' + } + } + ] + diagnosticStorageAccountId: diagnosticDependencies.outputs.storageAccountResourceId + diagnosticWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId + diagnosticEventHubAuthorizationRuleId: diagnosticDependencies.outputs.eventHubAuthorizationRuleId + diagnosticEventHubName: diagnosticDependencies.outputs.eventHubNamespaceEventHubName + diagnosticLogsRetentionInDays: 7 + encryptionAtHost: false + extensionAntiMalwareConfig: { + enabled: true + settings: { + AntimalwareEnabled: 'true' + Exclusions: { + Extensions: '.ext1;.ext2' + Paths: 'c:\\excluded-path-1;c:\\excluded-path-2' + Processes: 'excludedproc1.exe;excludedproc2.exe' + } + RealtimeProtectionEnabled: 'true' + ScheduledScanSettings: { + day: '7' + isEnabled: 'true' + scanType: 'Quick' + time: '120' + } + } + } + extensionCustomScriptConfig: { + enabled: true + fileData: [ + { + storageAccountId: resourceGroupResources.outputs.storageAccountResourceId + uri: resourceGroupResources.outputs.storageAccountCSEFileUrl + } + ] + } + extensionCustomScriptProtectedSetting: { + commandToExecute: 'powershell -ExecutionPolicy Unrestricted -Command \'& .\\${last(split(resourceGroupResources.outputs.storageAccountCSEFileUrl, '/'))}\'' + } + extensionDependencyAgentConfig: { + enabled: true + } + extensionDiskEncryptionConfig: { + enabled: true + settings: { + EncryptionOperation: 'EnableEncryption' + KekVaultResourceId: resourceGroupResources.outputs.keyVaultResourceId + KeyEncryptionAlgorithm: 'RSA-OAEP' + KeyEncryptionKeyURL: resourceGroupResources.outputs.keyVaultEncryptionKeyUrl + KeyVaultResourceId: resourceGroupResources.outputs.keyVaultResourceId + KeyVaultURL: resourceGroupResources.outputs.keyVaultUrl + ResizeOSDisk: 'false' + VolumeType: 'All' + } + } + extensionDSCConfig: { + enabled: true + } + extensionMonitoringAgentConfig: { + enabled: true + } + extensionNetworkWatcherAgentConfig: { + enabled: true + } + lock: 'CanNotDelete' + monitoringWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId + proximityPlacementGroupResourceId: resourceGroupResources.outputs.proximityPlacementGroupResourceId + roleAssignments: [ + { + principalIds: [ + resourceGroupResources.outputs.managedIdentityPrincipalId + ] + roleDefinitionIdOrName: 'Reader' + } + ] + systemAssignedIdentity: true + userAssignedIdentities: { + '${resourceGroupResources.outputs.managedIdentityResourceId}': {} + } + } +} diff --git a/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep b/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep index e118277e51..f723414c5d 100644 --- a/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep @@ -5,7 +5,7 @@ targetScope = 'subscription' // ========== // @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.network-virtualHub-rg' +param resourceGroupName string = '${serviceShort}-ms.network.virtualHub-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location @@ -39,7 +39,7 @@ module resourceGroupResources 'dependencies.bicep' = { module testDeployment '../../deploy.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name)}-test-virtualHub-${serviceShort}' + name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { name: '<>-${serviceShort}-001' lock: 'CanNotDelete' diff --git a/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep b/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep index 54104bc5b6..516060c5ec 100644 --- a/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep +++ b/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep @@ -5,7 +5,7 @@ targetScope = 'subscription' // ========== // @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.network-virtualHub-rg' +param resourceGroupName string = '${serviceShort}-ms.network.virtualHub-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location @@ -38,7 +38,7 @@ module resourceGroupResources 'dependencies.bicep' = { module testDeployment '../../deploy.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name)}-test-virtualHub-${serviceShort}' + name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { name: '<>-${serviceShort}-001' addressPrefix: '10.0.0.0/16' diff --git a/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep b/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep index 29ddb62280..0c86135e59 100644 --- a/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep @@ -5,7 +5,7 @@ targetScope = 'subscription' // ========== // @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.network-vpnSites-rg' +param resourceGroupName string = '${serviceShort}-ms.network.vpnSites-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location @@ -39,7 +39,7 @@ module resourceGroupResources 'dependencies.bicep' = { module testDeployment '../../deploy.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name)}-test-vpnSites-${serviceShort}' + name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { name: '<>-${serviceShort}-001' virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId diff --git a/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep b/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep index f67efa8c72..d0d3b9b020 100644 --- a/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep @@ -5,7 +5,7 @@ targetScope = 'subscription' // ========== // @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.network-vpnSites-rg' +param resourceGroupName string = '${serviceShort}-ms.network.vpnSites-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location @@ -38,7 +38,7 @@ module resourceGroupResources 'dependencies.bicep' = { module testDeployment '../../deploy.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name)}-test-vpnSites-${serviceShort}' + name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { name: '<>-${serviceShort}-001' virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId diff --git a/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep b/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep index 81a433c4f8..cf8b39a004 100644 --- a/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep +++ b/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep @@ -5,7 +5,7 @@ targetScope = 'subscription' // ========== // @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.sql-servers-rg' +param resourceGroupName string = '${serviceShort}-ms.sql.servers-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location @@ -38,7 +38,7 @@ module resourceGroupResources 'dependencies.bicep' = { module testDeployment '../../deploy.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' + name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { name: '<>-${serviceShort}-001' administrators: { diff --git a/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep b/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep index 8edb907441..a4a5a40f7f 100644 --- a/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep @@ -5,7 +5,7 @@ targetScope = 'subscription' // ========== // @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.sql-servers-rg' +param resourceGroupName string = '${serviceShort}-ms.sql.servers-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location @@ -62,7 +62,7 @@ module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnost module testDeployment '../../deploy.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name)}-test-servers-${serviceShort}' + name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { name: '<>-${serviceShort}-001' lock: 'CanNotDelete' diff --git a/utilities/tools/Test-ModuleLocally.ps1 b/utilities/tools/Test-ModuleLocally.ps1 index a867cdfe0e..69f4062b79 100644 --- a/utilities/tools/Test-ModuleLocally.ps1 +++ b/utilities/tools/Test-ModuleLocally.ps1 @@ -198,6 +198,8 @@ function Test-ModuleLocally { } else { $moduleTestFiles = @($testFilePath) } + } else { + $moduleTestFiles = @($TemplateFilePath) } # Replace parameter file tokens From e738423dcd7d81cf3e5f8b6314b8ae8c3d5cde2b Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 14 Aug 2022 16:08:54 +0200 Subject: [PATCH 179/274] Improved case handling --- utilities/tools/Set-ModuleReadMe.ps1 | 34 ++++++++++++++++++---------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index f06ae62d2c..b2c1325b8b 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -655,21 +655,31 @@ function ConvertTo-FormattedJSONParameterObject { # [2.2] Syntax: All single-quotes are double-quotes $paramInJsonFormat = $paramInJsonFormat -replace "'", '"' - # [2.3] Syntax: Everything left of a ':' should be wrapped in quotes (as a parameter name is always a string) - $paramInJsonFormat = $paramInJsonFormat -replace '([0-9a-zA-Z]+):', '"$1":' - # [2.4] Split the object to format line-by-line (& also remove any empty lines) - $paramInJSONFormatArray = $paramInJsonFormat -split '\n' | Where-Object { $_ } + # [2.3] Split the object to format line-by-line (& also remove any empty lines) + $paramInJSONFormatArray = $paramInJsonFormat -split '\n' | Where-Object { -not [String]::IsNullOrEmpty($_.Trim()) } - # [2.5] Syntax: Replace Bicep resource ID references for ($index = 0; $index -lt $paramInJSONFormatArray.Count; $index++) { - if ($paramInJSONFormatArray[$index] -like '*:*' -and ($paramInJSONFormatArray[$index] -split ':')[1].Trim() -notmatch '".+"' -and $paramInJSONFormatArray[$index] -like '*.*') { - # In case of a reference like : "virtualWanId": resourceGroupResources.outputs.virtualWWANResourceId - $paramInJSONFormatArray[$index] = '{0}: "<{1}>"' -f ($paramInJSONFormatArray[$index] -split ':')[0], ([regex]::Match(($paramInJSONFormatArray[$index] -split ':')[0], '"(.+)"')).Captures.Groups[1].Value - } - if ($paramInJSONFormatArray[$index] -notlike '*:*' -and $paramInJSONFormatArray[$index] -notlike '*"*"*' -and $paramInJSONFormatArray[$index] -like '*.*') { - # In case of a reference like : [ \n resourceGroupResources.outputs.managedIdentityPrincipalId \n ] - $paramInJSONFormatArray[$index] = '"<{0}>"' -f $paramInJSONFormatArray[$index].Split('.')[-1].Trim() + + $lineValue = $paramInJSONFormatArray[$index] + + # [2.4] Syntax: Everything left of a leftest ':' should be wrapped in quotes (as a parameter name is always a string) + [regex]$pattern = '\:{0}([0-9a-zA-Z]+):' + $lineValue = $pattern.replace($lineValue, '"$1":', 1) + + # [2.5] Syntax: Replace Bicep resource ID references + if ($lineValue -like '*:*' -and $lineValue -notmatch '^.+:\s*{\s*}\s*$' -and ($lineValue -split ':')[1].Trim() -notmatch '".+"' -and $lineValue -like '*.*') { + # In case of an output reference like '"virtualWanId": resourceGroupResources.outputs.virtualWWANResourceId' we'll only show "" (but NOT e.g. 'reference': {}) + $paramInJSONFormatArray[$index] = '{0}: "<{1}>"' -f ($lineValue -split ':')[0], ([regex]::Match(($lineValue -split ':')[0], '"(.+)"')).Captures.Groups[1].Value + } elseif ($lineValue -like '*:*' -and ($lineValue -split ':')[1].Trim() -match '[a-zA-Z]+\(.+\)') { + # In case of a any contained function like '"backupVaultResourceGroup": (split(resourceGroupResources.outputs.recoveryServicesVaultResourceId, "/"))[4]' we'll only show "" + $paramInJSONFormatArray[$index] = '{0}: "<{1}>"' -f ($lineValue -split ':')[0], ([regex]::Match(($lineValue -split ':')[0], '"(.+)"')).Captures.Groups[1].Value + } elseif ($lineValue -like '*:*' -and ($lineValue -split ':')[1].Trim() -match '^\w+$' -and ($lineValue -split ':')[1].Trim() -notmatch '^\s*true|false|[0-9]+$') { + # In case of a parameter/variable reference like 'adminPassword: password' we'll only show "" (but NOT e.g. enableMe: true) + $paramInJSONFormatArray[$index] = '{0}: "<{1}>"' -f ($lineValue -split ':')[0], ([regex]::Match(($lineValue -split ':')[0], '"(.+)"')).Captures.Groups[1].Value + } elseif ($lineValue -notlike '*:*' -and $lineValue -notlike '*"*"*' -and $lineValue -like '*.*') { + # In case of a array value like '[ \n -> resourceGroupResources.outputs.managedIdentityPrincipalId <- \n ]' we'll only show """ + $paramInJSONFormatArray[$index] = '"<{0}>"' -f $lineValue.Split('.')[-1].Trim() } } From a1722bb63dcdbda4150c3cc0670f2ad3ea0c5142 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 14 Aug 2022 16:09:41 +0200 Subject: [PATCH 180/274] Updated readme --- .../servers/readme.md | 6 +- .../.test/windows/deploy.test.bicep | 1 - .../virtualMachines/readme.md | 834 +++++++++--------- 3 files changed, 405 insertions(+), 436 deletions(-) diff --git a/modules/Microsoft.AnalysisServices/servers/readme.md b/modules/Microsoft.AnalysisServices/servers/readme.md index 175598f3a3..cb790bff5f 100644 --- a/modules/Microsoft.AnalysisServices/servers/readme.md +++ b/modules/Microsoft.AnalysisServices/servers/readme.md @@ -174,7 +174,7 @@ The following module usage examples are retrieved from the content of the files ```bicep module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-servers-aspar' + name: '${uniqueString(deployment().name)}-test-aspar' params: { // Required parameters name: '<>azaspar001' @@ -261,7 +261,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { ```bicep module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-servers-asmax' + name: '${uniqueString(deployment().name)}-test-asmax' params: { // Required parameters name: '<>azasmax001' @@ -392,7 +392,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { ```bicep module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-servers-asmin' + name: '${uniqueString(deployment().name)}-test-asmin' params: { name: '<>azasmin001' } diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep index 2206ee0aa4..31c4e94e8b 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep @@ -67,7 +67,6 @@ module testDeployment '../../deploy.bicep' = { name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { name: '<>${serviceShort}001' - adminUsername: 'localAdminUser' imageReference: { offer: 'WindowsServer' diff --git a/modules/Microsoft.Compute/virtualMachines/readme.md b/modules/Microsoft.Compute/virtualMachines/readme.md index 58ae78c88c..66aeda606f 100644 --- a/modules/Microsoft.Compute/virtualMachines/readme.md +++ b/modules/Microsoft.Compute/virtualMachines/readme.md @@ -1015,277 +1015,15 @@ The following module usage examples are retrieved from the content of the files >**Note**: The name of each example is based on the name of the file from which it is taken. >**Note**: Each example lists all the required parameters first, followed by the rest - each in alphabetical order. -

Example 1: Linux Autmg

+

Example 1: Linux

via Bicep module ```bicep -module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-virtualMachines' - params: { - // Required parameters - adminUsername: 'localAdminUser' - imageReference: { - offer: 'UbuntuServer' - publisher: 'Canonical' - sku: '18.04-LTS' - version: 'latest' - } - nicConfigurations: [ - { - ipConfigurations: [ - { - name: 'ipconfig01' - pipConfiguration: { - publicIpNameSuffix: '-pip-01' - } - subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001' - } - ] - nicSuffix: '-nic-01' - } - ] - osDisk: { - diskSizeGB: '128' - managedDisk: { - storageAccountType: 'Premium_LRS' - } - } - osType: 'Linux' - vmSize: 'Standard_B12ms' - // Non-required parameters - configurationProfile: '/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction' - disablePasswordAuthentication: true - name: '<>-vm-linux-autmg-01' - publicKeys: [ - { - keyData: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure' - path: '/home/localAdminUser/.ssh/authorized_keys' - } - ] - } -} -``` - -
-

- -

- -via JSON Parameter file - -```json -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - // Required parameters - "adminUsername": { - "value": "localAdminUser" - }, - "imageReference": { - "value": { - "offer": "UbuntuServer", - "publisher": "Canonical", - "sku": "18.04-LTS", - "version": "latest" - } - }, - "nicConfigurations": { - "value": [ - { - "ipConfigurations": [ - { - "name": "ipconfig01", - "pipConfiguration": { - "publicIpNameSuffix": "-pip-01" - }, - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001" - } - ], - "nicSuffix": "-nic-01" - } - ] - }, - "osDisk": { - "value": { - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - } - }, - "osType": { - "value": "Linux" - }, - "vmSize": { - "value": "Standard_B12ms" - }, - // Non-required parameters - "configurationProfile": { - "value": "/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction" - }, - "disablePasswordAuthentication": { - "value": true - }, - "name": { - "value": "<>-vm-linux-autmg-01" - }, - "publicKeys": { - "value": [ - { - "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure", - "path": "/home/localAdminUser/.ssh/authorized_keys" - } - ] - } - } -} -``` - -
-

- -

Example 2: Linux Min

- -
- -via Bicep module - -```bicep -module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-virtualMachines' - params: { - // Required parameters - adminUsername: 'localAdminUser' - imageReference: { - offer: 'UbuntuServer' - publisher: 'Canonical' - sku: '18.04-LTS' - version: 'latest' - } - nicConfigurations: [ - { - ipConfigurations: [ - { - name: 'ipconfig01' - pipConfiguration: { - publicIpNameSuffix: '-pip-01' - } - subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001' - } - ] - nicSuffix: '-nic-01' - } - ] - osDisk: { - diskSizeGB: '128' - managedDisk: { - storageAccountType: 'Premium_LRS' - } - } - osType: 'Linux' - vmSize: 'Standard_B12ms' - // Non-required parameters - disablePasswordAuthentication: true - name: '<>-vm-linux-min-01' - publicKeys: [ - { - keyData: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure' - path: '/home/localAdminUser/.ssh/authorized_keys' - } - ] - } -} -``` - -
-

- -

- -via JSON Parameter file - -```json -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - // Required parameters - "adminUsername": { - "value": "localAdminUser" - }, - "imageReference": { - "value": { - "offer": "UbuntuServer", - "publisher": "Canonical", - "sku": "18.04-LTS", - "version": "latest" - } - }, - "nicConfigurations": { - "value": [ - { - "ipConfigurations": [ - { - "name": "ipconfig01", - "pipConfiguration": { - "publicIpNameSuffix": "-pip-01" - }, - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001" - } - ], - "nicSuffix": "-nic-01" - } - ] - }, - "osDisk": { - "value": { - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - } - }, - "osType": { - "value": "Linux" - }, - "vmSize": { - "value": "Standard_B12ms" - }, - // Non-required parameters - "disablePasswordAuthentication": { - "value": true - }, - "name": { - "value": "<>-vm-linux-min-01" - }, - "publicKeys": { - "value": [ - { - "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure", - "path": "/home/localAdminUser/.ssh/authorized_keys" - } - ] - } - } -} -``` - -
-

- -

Example 3: Linux

- -
- -via Bicep module - -```bicep -module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-virtualMachines' +module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { + name: '${uniqueString(deployment().name)}-test-vmlinmpar' params: { // Required parameters adminUsername: 'localAdminUser' @@ -1302,12 +1040,12 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { { applicationSecurityGroups: [ { - id: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationSecurityGroups/adp-<>-az-asg-x-001' + id: '' } ] loadBalancerBackendAddressPools: [ { - id: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/loadBalancers/adp-<>-az-lb-internal-001/backendAddressPools/servers' + id: '' } ] name: 'ipconfig01' @@ -1316,20 +1054,20 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { roleAssignments: [ { principalIds: [ - '<>' + '' ] roleDefinitionIdOrName: 'Reader' } ] } - subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001' + subnetResourceId: '' } ] nicSuffix: '-nic-01' roleAssignments: [ { principalIds: [ - '<>' + '' ] roleDefinitionIdOrName: 'Reader' } @@ -1349,9 +1087,9 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { vmSize: 'Standard_B12ms' // Non-required parameters availabilityZone: 1 - backupPolicyName: 'VMpolicy' - backupVaultName: 'adp-<>-az-rsv-x-001' - backupVaultResourceGroup: 'validation-rg' + backupPolicyName: '' + backupVaultName: '' + backupVaultResourceGroup: '' dataDisks: [ { caching: 'ReadWrite' @@ -1372,19 +1110,19 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { } } ] - diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' - diagnosticEventHubName: 'adp-<>-az-evh-x-001' + diagnosticEventHubAuthorizationRuleId: '' + diagnosticEventHubName: '' diagnosticLogsRetentionInDays: 7 - diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' - diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' + diagnosticStorageAccountId: '' + diagnosticWorkspaceId: '' disablePasswordAuthentication: true encryptionAtHost: false extensionCustomScriptConfig: { enabled: true fileData: [ { - storageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' - uri: 'https://adp<>azsax001.blob.core.windows.net/scripts/scriptExtensionMasterInstaller.ps1' + storageAccountId: '' + uri: '' } ] } @@ -1398,11 +1136,11 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { enabled: true settings: { EncryptionOperation: 'EnableEncryption' - KekVaultResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001' + KekVaultResourceId: '' KeyEncryptionAlgorithm: 'RSA-OAEP' - KeyEncryptionKeyURL: 'https://adp-<>-az-kv-x-001.vault.azure.net/keys/keyEncryptionKey/bc3bb46d95c64367975d722f473eeae5' - KeyVaultResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001' - KeyVaultURL: 'https://adp-<>-az-kv-x-001.vault.azure.net/' + KeyEncryptionKeyURL: '' + KeyVaultResourceId: '' + KeyVaultURL: '' ResizeOSDisk: 'false' VolumeType: 'All' } @@ -1417,8 +1155,8 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { enabled: true } lock: 'CanNotDelete' - monitoringWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' - name: '<>-vm-linux-01' + monitoringWorkspaceId: '' + name: '<>vmlinmpar001' publicKeys: [ { keyData: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure' @@ -1428,14 +1166,14 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { roleAssignments: [ { principalIds: [ - '<>' + '' ] roleDefinitionIdOrName: 'Reader' } ] systemAssignedIdentity: true userAssignedIdentities: { - '/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} + '${resourceGroupResources.outputs.managedIdentityResourceId}': {} } } } @@ -1473,12 +1211,12 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { { "applicationSecurityGroups": [ { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationSecurityGroups/adp-<>-az-asg-x-001" + "id": "" } ], "loadBalancerBackendAddressPools": [ { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/loadBalancers/adp-<>-az-lb-internal-001/backendAddressPools/servers" + "id": "" } ], "name": "ipconfig01", @@ -1487,20 +1225,20 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { "roleAssignments": [ { "principalIds": [ - "<>" + "" ], "roleDefinitionIdOrName": "Reader" } ] }, - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001" + "subnetResourceId": "" } ], "nicSuffix": "-nic-01", "roleAssignments": [ { "principalIds": [ - "<>" + "" ], "roleDefinitionIdOrName": "Reader" } @@ -1530,13 +1268,13 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { "value": 1 }, "backupPolicyName": { - "value": "VMpolicy" + "value": "" }, "backupVaultName": { - "value": "adp-<>-az-rsv-x-001" + "value": "" }, "backupVaultResourceGroup": { - "value": "validation-rg" + "value": "" }, "dataDisks": { "value": [ @@ -1561,19 +1299,19 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { ] }, "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" + "value": "" }, "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" + "value": "" }, "diagnosticLogsRetentionInDays": { "value": 7 }, "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" + "value": "" }, "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" + "value": "" }, "disablePasswordAuthentication": { "value": true @@ -1586,8 +1324,8 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { "enabled": true, "fileData": [ { - "storageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", - "uri": "https://adp<>azsax001.blob.core.windows.net/scripts/scriptExtensionMasterInstaller.ps1" + "storageAccountId": "", + "uri": "" } ] } @@ -1607,11 +1345,11 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { "enabled": true, "settings": { "EncryptionOperation": "EnableEncryption", - "KekVaultResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", + "KekVaultResourceId": "", "KeyEncryptionAlgorithm": "RSA-OAEP", - "KeyEncryptionKeyURL": "https://adp-<>-az-kv-x-001.vault.azure.net/keys/keyEncryptionKey/bc3bb46d95c64367975d722f473eeae5", - "KeyVaultResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", - "KeyVaultURL": "https://adp-<>-az-kv-x-001.vault.azure.net/", + "KeyEncryptionKeyURL": "", + "KeyVaultResourceId": "", + "KeyVaultURL": "", "ResizeOSDisk": "false", "VolumeType": "All" } @@ -1636,10 +1374,10 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { "value": "CanNotDelete" }, "monitoringWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" + "value": "" }, "name": { - "value": "<>-vm-linux-01" + "value": "<>vmlinmpar001" }, "publicKeys": { "value": [ @@ -1653,7 +1391,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { "value": [ { "principalIds": [ - "<>" + "" ], "roleDefinitionIdOrName": "Reader" } @@ -1664,7 +1402,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { }, "userAssignedIdentities": { "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} + "${resourceGroupResources.outputs.managedIdentityResourceId}": {} } } } @@ -1674,27 +1412,22 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = {

-

Example 4: Windows Autmg

+

Example 2: Linux.Autmg

via Bicep module ```bicep -resource kv1 'Microsoft.KeyVault/vaults@2019-09-01' existing = { - name: 'adp-<>-az-kv-x-001' - scope: resourceGroup('<>','validation-rg') -} - -module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-virtualMachines' +module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { + name: '${uniqueString(deployment().name)}-test-...' params: { // Required parameters adminUsername: 'localAdminUser' imageReference: { - offer: 'WindowsServer' - publisher: 'MicrosoftWindowsServer' - sku: '2019-Datacenter' + offer: 'UbuntuServer' + publisher: 'Canonical' + sku: '18.04-LTS' version: 'latest' } nicConfigurations: [ @@ -1702,7 +1435,10 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { ipConfigurations: [ { name: 'ipconfig01' - subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001' + pipConfiguration: { + publicIpNameSuffix: '-pip-01' + } + subnetResourceId: '' } ] nicSuffix: '-nic-01' @@ -1714,12 +1450,18 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { storageAccountType: 'Premium_LRS' } } - osType: 'Windows' + osType: 'Linux' vmSize: 'Standard_B12ms' // Non-required parameters - adminPassword: kv1.getSecret('adminPassword') configurationProfile: '/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction' - name: '<>-vm-win-03' + disablePasswordAuthentication: true + name: '<>...001' + publicKeys: [ + { + keyData: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure' + path: '/home/localAdminUser/.ssh/authorized_keys' + } + ] } } ``` @@ -1742,9 +1484,9 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { }, "imageReference": { "value": { - "offer": "WindowsServer", - "publisher": "MicrosoftWindowsServer", - "sku": "2019-Datacenter", + "offer": "UbuntuServer", + "publisher": "Canonical", + "sku": "18.04-LTS", "version": "latest" } }, @@ -1754,7 +1496,10 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { "ipConfigurations": [ { "name": "ipconfig01", - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001" + "pipConfiguration": { + "publicIpNameSuffix": "-pip-01" + }, + "subnetResourceId": "" } ], "nicSuffix": "-nic-01" @@ -1770,25 +1515,28 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { } }, "osType": { - "value": "Windows" + "value": "Linux" }, "vmSize": { "value": "Standard_B12ms" }, // Non-required parameters - "adminPassword": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "adminPassword" - } - }, "configurationProfile": { "value": "/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction" }, + "disablePasswordAuthentication": { + "value": true + }, "name": { - "value": "<>-vm-win-03" + "value": "<>...001" + }, + "publicKeys": { + "value": [ + { + "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure", + "path": "/home/localAdminUser/.ssh/authorized_keys" + } + ] } } } @@ -1797,27 +1545,22 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = {

-

Example 5: Windows Min

+

Example 3: Linux.Min

-via Bicep module - -```bicep -resource kv1 'Microsoft.KeyVault/vaults@2019-09-01' existing = { - name: 'adp-<>-az-kv-x-001' - scope: resourceGroup('<>','validation-rg') -} - -module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-virtualMachines' +via Bicep module + +```bicep +module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { + name: '${uniqueString(deployment().name)}-test-vmlinmin' params: { // Required parameters adminUsername: 'localAdminUser' imageReference: { - offer: 'WindowsServer' - publisher: 'MicrosoftWindowsServer' - sku: '2022-datacenter-azure-edition' + offer: 'UbuntuServer' + publisher: 'Canonical' + sku: '18.04-LTS' version: 'latest' } nicConfigurations: [ @@ -1825,7 +1568,10 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { ipConfigurations: [ { name: 'ipconfig01' - subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001' + pipConfiguration: { + publicIpNameSuffix: '-pip-01' + } + subnetResourceId: '' } ] nicSuffix: '-nic-01' @@ -1837,11 +1583,17 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { storageAccountType: 'Premium_LRS' } } - osType: 'Windows' + osType: 'Linux' vmSize: 'Standard_B12ms' // Non-required parameters - adminPassword: kv1.getSecret('adminPassword') - name: '<>-vm-win-02' + disablePasswordAuthentication: true + name: '<>vmlinmin001' + publicKeys: [ + { + keyData: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure' + path: '/home/localAdminUser/.ssh/authorized_keys' + } + ] } } ``` @@ -1864,9 +1616,9 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { }, "imageReference": { "value": { - "offer": "WindowsServer", - "publisher": "MicrosoftWindowsServer", - "sku": "2022-datacenter-azure-edition", + "offer": "UbuntuServer", + "publisher": "Canonical", + "sku": "18.04-LTS", "version": "latest" } }, @@ -1876,7 +1628,10 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { "ipConfigurations": [ { "name": "ipconfig01", - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001" + "pipConfiguration": { + "publicIpNameSuffix": "-pip-01" + }, + "subnetResourceId": "" } ], "nicSuffix": "-nic-01" @@ -1892,22 +1647,25 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { } }, "osType": { - "value": "Windows" + "value": "Linux" }, "vmSize": { "value": "Standard_B12ms" }, // Non-required parameters - "adminPassword": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "adminPassword" - } + "disablePasswordAuthentication": { + "value": true }, "name": { - "value": "<>-vm-win-02" + "value": "<>vmlinmin001" + }, + "publicKeys": { + "value": [ + { + "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure", + "path": "/home/localAdminUser/.ssh/authorized_keys" + } + ] } } } @@ -1916,20 +1674,15 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = {

-

Example 6: Windows

+

Example 4: Windows

via Bicep module ```bicep -resource kv1 'Microsoft.KeyVault/vaults@2019-09-01' existing = { - name: 'adp-<>-az-kv-x-001' - scope: resourceGroup('<>','validation-rg') -} - -module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-virtualMachines' +module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { + name: '${uniqueString(deployment().name)}-test-vmpar' params: { // Required parameters adminUsername: 'localAdminUser' @@ -1946,12 +1699,12 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { { applicationSecurityGroups: [ { - id: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationSecurityGroups/adp-<>-az-asg-x-001' + id: '' } ] loadBalancerBackendAddressPools: [ { - id: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/loadBalancers/adp-<>-az-lb-internal-001/backendAddressPools/servers' + id: '' } ] name: 'ipconfig01' @@ -1960,20 +1713,20 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { roleAssignments: [ { principalIds: [ - '<>' + '' ] roleDefinitionIdOrName: 'Reader' } ] } - subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001' + subnetResourceId: '' } ] nicSuffix: '-nic-01' roleAssignments: [ { principalIds: [ - '<>' + '' ] roleDefinitionIdOrName: 'Reader' } @@ -1992,11 +1745,11 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { osType: 'Windows' vmSize: 'Standard_B12ms' // Non-required parameters - adminPassword: kv1.getSecret('adminPassword') + adminPassword: '' availabilityZone: 2 - backupPolicyName: 'VMpolicy' - backupVaultName: 'adp-<>-az-rsv-x-001' - backupVaultResourceGroup: 'validation-rg' + backupPolicyName: '' + backupVaultName: '' + backupVaultResourceGroup: '' dataDisks: [ { caching: 'None' @@ -2017,11 +1770,11 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { } } ] - diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' - diagnosticEventHubName: 'adp-<>-az-evh-x-001' + diagnosticEventHubAuthorizationRuleId: '' + diagnosticEventHubName: '' diagnosticLogsRetentionInDays: 7 - diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' - diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' + diagnosticStorageAccountId: '' + diagnosticWorkspaceId: '' encryptionAtHost: false extensionAntiMalwareConfig: { enabled: true @@ -2045,13 +1798,13 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { enabled: true fileData: [ { - storageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' - uri: 'https://adp<>azsax001.blob.core.windows.net/scripts/scriptExtensionMasterInstaller.ps1' + storageAccountId: '' + uri: '' } ] } extensionCustomScriptProtectedSetting: { - commandToExecute: 'powershell -ExecutionPolicy Unrestricted -Command \'& .\\scriptExtensionMasterInstaller.ps1\'' + commandToExecute: '' } extensionDependencyAgentConfig: { enabled: true @@ -2060,11 +1813,11 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { enabled: true settings: { EncryptionOperation: 'EnableEncryption' - KekVaultResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001' + KekVaultResourceId: '' KeyEncryptionAlgorithm: 'RSA-OAEP' - KeyEncryptionKeyURL: 'https://adp-<>-az-kv-x-001.vault.azure.net/keys/keyEncryptionKey/bc3bb46d95c64367975d722f473eeae5' - KeyVaultResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001' - KeyVaultURL: 'https://adp-<>-az-kv-x-001.vault.azure.net/' + KeyEncryptionKeyURL: '' + KeyVaultResourceId: '' + KeyVaultURL: '' ResizeOSDisk: 'false' VolumeType: 'All' } @@ -2079,20 +1832,20 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { enabled: true } lock: 'CanNotDelete' - monitoringWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' - name: '<>-vm-win-01' - proximityPlacementGroupResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Compute/proximityPlacementGroups/adp-<>-az-ppg-vm-001' + monitoringWorkspaceId: '' + name: '<>vmpar001' + proximityPlacementGroupResourceId: '' roleAssignments: [ { principalIds: [ - '<>' + '' ] roleDefinitionIdOrName: 'Reader' } ] systemAssignedIdentity: true userAssignedIdentities: { - '/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} + '${resourceGroupResources.outputs.managedIdentityResourceId}': {} } } } @@ -2130,12 +1883,12 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { { "applicationSecurityGroups": [ { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationSecurityGroups/adp-<>-az-asg-x-001" + "id": "" } ], "loadBalancerBackendAddressPools": [ { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/loadBalancers/adp-<>-az-lb-internal-001/backendAddressPools/servers" + "id": "" } ], "name": "ipconfig01", @@ -2144,20 +1897,20 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { "roleAssignments": [ { "principalIds": [ - "<>" + "" ], "roleDefinitionIdOrName": "Reader" } ] }, - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001" + "subnetResourceId": "" } ], "nicSuffix": "-nic-01", "roleAssignments": [ { "principalIds": [ - "<>" + "" ], "roleDefinitionIdOrName": "Reader" } @@ -2184,24 +1937,19 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { }, // Non-required parameters "adminPassword": { - "reference": { - "keyVault": { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" - }, - "secretName": "adminPassword" - } + "value": "" }, "availabilityZone": { "value": 2 }, "backupPolicyName": { - "value": "VMpolicy" + "value": "" }, "backupVaultName": { - "value": "adp-<>-az-rsv-x-001" + "value": "" }, "backupVaultResourceGroup": { - "value": "validation-rg" + "value": "" }, "dataDisks": { "value": [ @@ -2226,19 +1974,19 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { ] }, "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" + "value": "" }, "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" + "value": "" }, "diagnosticLogsRetentionInDays": { "value": 7 }, "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" + "value": "" }, "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" + "value": "" }, "encryptionAtHost": { "value": false @@ -2268,15 +2016,15 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { "enabled": true, "fileData": [ { - "storageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", - "uri": "https://adp<>azsax001.blob.core.windows.net/scripts/scriptExtensionMasterInstaller.ps1" + "storageAccountId": "", + "uri": "" } ] } }, "extensionCustomScriptProtectedSetting": { "value": { - "commandToExecute": "powershell -ExecutionPolicy Unrestricted -Command \"& .\\scriptExtensionMasterInstaller.ps1\"" + "commandToExecute": "" } }, "extensionDependencyAgentConfig": { @@ -2289,11 +2037,11 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { "enabled": true, "settings": { "EncryptionOperation": "EnableEncryption", - "KekVaultResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", + "KekVaultResourceId": "", "KeyEncryptionAlgorithm": "RSA-OAEP", - "KeyEncryptionKeyURL": "https://adp-<>-az-kv-x-001.vault.azure.net/keys/keyEncryptionKey/bc3bb46d95c64367975d722f473eeae5", - "KeyVaultResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", - "KeyVaultURL": "https://adp-<>-az-kv-x-001.vault.azure.net/", + "KeyEncryptionKeyURL": "", + "KeyVaultResourceId": "", + "KeyVaultURL": "", "ResizeOSDisk": "false", "VolumeType": "All" } @@ -2318,19 +2066,19 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { "value": "CanNotDelete" }, "monitoringWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" + "value": "" }, "name": { - "value": "<>-vm-win-01" + "value": "<>vmpar001" }, "proximityPlacementGroupResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Compute/proximityPlacementGroups/adp-<>-az-ppg-vm-001" + "value": "" }, "roleAssignments": { "value": [ { "principalIds": [ - "<>" + "" ], "roleDefinitionIdOrName": "Reader" } @@ -2341,8 +2089,230 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { }, "userAssignedIdentities": { "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} + "${resourceGroupResources.outputs.managedIdentityResourceId}": {} + } + } + } +} +``` + +
+

+ +

Example 5: Windows.Autmg

+ +
+ +via Bicep module + +```bicep +module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { + name: '${uniqueString(deployment().name)}-test-vmautmg' + params: { + // Required parameters + adminUsername: 'localAdminUser' + imageReference: { + offer: 'WindowsServer' + publisher: 'MicrosoftWindowsServer' + sku: '2019-Datacenter' + version: 'latest' + } + nicConfigurations: [ + { + ipConfigurations: [ + { + name: 'ipconfig01' + subnetResourceId: '' + } + ] + nicSuffix: '-nic-01' + } + ] + osDisk: { + diskSizeGB: '128' + managedDisk: { + storageAccountType: 'Premium_LRS' + } + } + osType: 'Windows' + vmSize: 'Standard_B12ms' + // Non-required parameters + adminPassword: '' + configurationProfile: '/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction' + name: '<>vmautmg001' + } +} +``` + +
+

+ +

+ +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + // Required parameters + "adminUsername": { + "value": "localAdminUser" + }, + "imageReference": { + "value": { + "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", + "sku": "2019-Datacenter", + "version": "latest" + } + }, + "nicConfigurations": { + "value": [ + { + "ipConfigurations": [ + { + "name": "ipconfig01", + "subnetResourceId": "" + } + ], + "nicSuffix": "-nic-01" + } + ] + }, + "osDisk": { + "value": { + "diskSizeGB": "128", + "managedDisk": { + "storageAccountType": "Premium_LRS" + } + } + }, + "osType": { + "value": "Windows" + }, + "vmSize": { + "value": "Standard_B12ms" + }, + // Non-required parameters + "adminPassword": { + "value": "" + }, + "configurationProfile": { + "value": "/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction" + }, + "name": { + "value": "<>vmautmg001" + } + } +} +``` + +
+

+ +

Example 6: Windows.Min

+ +
+ +via Bicep module + +```bicep +module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { + name: '${uniqueString(deployment().name)}-test-vmmin' + params: { + // Required parameters + adminUsername: 'localAdminUser' + imageReference: { + offer: 'WindowsServer' + publisher: 'MicrosoftWindowsServer' + sku: '2022-datacenter-azure-edition' + version: 'latest' + } + nicConfigurations: [ + { + ipConfigurations: [ + { + name: 'ipconfig01' + subnetResourceId: '' + } + ] + nicSuffix: '-nic-01' + } + ] + osDisk: { + diskSizeGB: '128' + managedDisk: { + storageAccountType: 'Premium_LRS' + } + } + osType: 'Windows' + vmSize: 'Standard_B12ms' + // Non-required parameters + adminPassword: '' + name: '<>vmmin001' + } +} +``` + +
+

+ +

+ +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + // Required parameters + "adminUsername": { + "value": "localAdminUser" + }, + "imageReference": { + "value": { + "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", + "sku": "2022-datacenter-azure-edition", + "version": "latest" + } + }, + "nicConfigurations": { + "value": [ + { + "ipConfigurations": [ + { + "name": "ipconfig01", + "subnetResourceId": "" + } + ], + "nicSuffix": "-nic-01" + } + ] + }, + "osDisk": { + "value": { + "diskSizeGB": "128", + "managedDisk": { + "storageAccountType": "Premium_LRS" + } } + }, + "osType": { + "value": "Windows" + }, + "vmSize": { + "value": "Standard_B12ms" + }, + // Non-required parameters + "adminPassword": { + "value": "" + }, + "name": { + "value": "<>vmmin001" } } } From 17c9842994d97118907f110d89b4b3a6848fa813 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 14 Aug 2022 16:24:16 +0200 Subject: [PATCH 181/274] Cleanup --- .../pipelines/staticValidation/module.tests.ps1 | 11 ----------- utilities/tools/Set-ModuleReadMe.ps1 | 14 -------------- 2 files changed, 25 deletions(-) diff --git a/utilities/pipelines/staticValidation/module.tests.ps1 b/utilities/pipelines/staticValidation/module.tests.ps1 index bdcf34fa88..edd5ba281c 100644 --- a/utilities/pipelines/staticValidation/module.tests.ps1 +++ b/utilities/pipelines/staticValidation/module.tests.ps1 @@ -584,17 +584,6 @@ Describe 'Parameter file tests' -Tag 'Parameter' { $expectedNameFormat | Should -Be $true -Because 'the handle ''-test-'' should be part of the module test invocation''s resource name to allow identification.' } - It '[] Bicep test deployment should have parameter [namePrefix]' -TestCases ($deploymentTestFileTestCases | Where-Object { (Split-Path $_.testFilePath -Extension) -eq '.bicep' }) { - - param( - [object[]] $testFileContent - ) - - $hasExpectedParam = ($testFileContent | Out-String) -match '\s*param\s+namePrefix\s+string\s*' - - $hasExpectedParam | Should -Be $true - } - It '[] Bicep test deployment should have parameter [serviceShort]' -TestCases ($deploymentTestFileTestCases | Where-Object { (Split-Path $_.testFilePath -Extension) -eq '.bicep' }) { param( diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index b2c1325b8b..537bda1b4d 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -818,9 +818,6 @@ Optional. A switch to control whether or not to add a ARM-JSON-Parameter file ex .PARAMETER addBicep Optional. A switch to control whether or not to add a Bicep deployment example. Defaults to true. -.PARAMETER ProjectSettings -Optional. Projects settings to draw information from. For example the `namePrefix`. - .EXAMPLE Set-DeploymentExamplesSection -TemplateFileContent @{ resource = @{}; ... } -TemplateFilePath 'C:/deploy.bicep' -ReadMeFileContent @('# Title', '', '## Section 1', ...) @@ -845,9 +842,6 @@ function Set-DeploymentExamplesSection { [Parameter(Mandatory = $false)] [bool] $addBicep = $true, - [Parameter(Mandatory = $false)] - [hashtable] $ProjectSettings = @{}, - [Parameter(Mandatory = $false)] [string] $SectionStartIdentifier = '## Deployment examples' ) @@ -1350,13 +1344,6 @@ function Set-ModuleReadMe { $fullResourcePath = (Split-Path $TemplateFilePath -Parent).Replace('\', '/').split('/modules/')[1] $root = (Get-Item $PSScriptRoot).Parent.Parent.FullName - $projectSettingsPath = Join-Path $root 'settings.json' - if (Test-Path $projectSettingsPath) { - $projectSettings = Get-Content $projectSettingsPath | ConvertFrom-Json -AsHashtable - } else { - Write-Warning "No settings file found in path [$projectSettingsPath]" - $projectSettings = @{} - } # Check readme if (-not (Test-Path $ReadMeFilePath) -or ([String]::IsNullOrEmpty((Get-Content $ReadMeFilePath -Raw)))) { @@ -1453,7 +1440,6 @@ function Set-ModuleReadMe { ReadMeFileContent = $readMeFileContent TemplateFilePath = $TemplateFilePath TemplateFileContent = $templateFileContent - ProjectSettings = $projectSettings } $readMeFileContent = Set-DeploymentExamplesSection @inputObject } From 71cfd54e105c299b716f4f2df074e9a8f929c45b Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 14 Aug 2022 16:29:44 +0200 Subject: [PATCH 182/274] Update to latest --- utilities/tools/Get-CrossReferencedModuleList.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/tools/Get-CrossReferencedModuleList.ps1 b/utilities/tools/Get-CrossReferencedModuleList.ps1 index 96aac12d1a..3155910e49 100644 --- a/utilities/tools/Get-CrossReferencedModuleList.ps1 +++ b/utilities/tools/Get-CrossReferencedModuleList.ps1 @@ -125,7 +125,7 @@ function Get-CrossReferencedModuleList { # Expand local references recursively $localReferencesResultSet = [ordered]@{} foreach ($resourceType in ($resultSet.Keys | Sort-Object)) { - $relevantLocalReferences = $resultSet[$resourceType].localPathReferences | Where-Object { $_ -match '^\.\..*$' } + $relevantLocalReferences = $resultSet[$resourceType].localPathReferences | Where-Object { $_ -match '^\.\..*$' } # e.g. '../ if ($relevantLocalReferences) { $relevantLocalReferences = $relevantLocalReferences | ForEach-Object { # remove deploy.bicep From 612678eed27618947a9d76367ebd13bb4bfef1ae Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 14 Aug 2022 19:42:45 +0200 Subject: [PATCH 183/274] Fixed Pester test --- utilities/pipelines/staticValidation/module.tests.ps1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/utilities/pipelines/staticValidation/module.tests.ps1 b/utilities/pipelines/staticValidation/module.tests.ps1 index edd5ba281c..18cf9a9d1f 100644 --- a/utilities/pipelines/staticValidation/module.tests.ps1 +++ b/utilities/pipelines/staticValidation/module.tests.ps1 @@ -638,11 +638,11 @@ Describe 'Parameter file tests' -Tag 'Parameter' { foreach ($moduleFolderPath in $moduleFolderPaths) { if (Test-Path (Join-Path $moduleFolderPath '.test')) { - $testFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.parameters.json') -Recurse -Force).FullName + $testFilePaths = Get-ModuleTestFileList -ModulePath $moduleFolderPath | ForEach-Object { Join-Path $moduleFolderPath $_ } foreach ($testFilePath in $testFilePaths) { foreach ($token in $enforcedTokenList.Keys) { $parameterFileTokenTestCases += @{ - parameterFilePath = $testFilePath + testFilePath = $testFilePath parameterFileName = Split-Path $testFilePath -Leaf tokenSettings = $Settings.parameterFileTokens tokenName = $token @@ -668,7 +668,7 @@ Describe 'Parameter file tests' -Tag 'Parameter' { $incorrectReferencesFound = $ParameterFileContent | Select-String -Pattern $tokenValue -AllMatches if ($incorrectReferencesFound.Matches) { - $incorrectReferencesFound.Matches.Count | Should -Be 0 -Because ('Parameter file should not contain the [{0}] value, instead should reference the token value [{1}]. Please check the {2} lines: [{3}]' -f $tokenName, $ParameterFileTokenName, $incorrectReferencesFound.Matches.Count, ($incorrectReferencesFound.Line.Trim() -join ",`n")) + $incorrectReferencesFound.Matches.Count | Should -Be 0 -Because ('Test file should not contain the value [{0}], instead it should reference the token value [{1}]. Please check the {2} lines: [{3}]' -f $tokenName, $ParameterFileTokenName, $incorrectReferencesFound.Matches.Count, ($incorrectReferencesFound.Line.Trim() -join ",`n")) } } } From 80ac8af4ebe97ba419071155e5310cb77e50b252 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 14 Aug 2022 19:54:50 +0200 Subject: [PATCH 184/274] Update to latest --- utilities/tools/Test-ModuleLocally.ps1 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/utilities/tools/Test-ModuleLocally.ps1 b/utilities/tools/Test-ModuleLocally.ps1 index 992424ab31..cf900b9321 100644 --- a/utilities/tools/Test-ModuleLocally.ps1 +++ b/utilities/tools/Test-ModuleLocally.ps1 @@ -117,7 +117,7 @@ function Test-ModuleLocally { [string] $ParameterFilePath = (Join-Path (Split-Path $TemplateFilePath -Parent) '.test'), [Parameter(Mandatory = $false)] - [string] $pesterTestFilePath = 'utilities/pipelines/staticValidation/module.tests.ps1', + [string] $PesterTestFilePath = 'utilities/pipelines/staticValidation/module.tests.ps1', [Parameter(Mandatory = $false)] [Psobject] $ValidateOrDeployParameters = @{}, @@ -169,7 +169,7 @@ function Test-ModuleLocally { Invoke-Pester -Configuration @{ Run = @{ - Container = New-PesterContainer -Path (Join-Path $repoRootPath $pesterTestFilePath) -Data @{ + Container = New-PesterContainer -Path (Join-Path $repoRootPath $PesterTestFilePath) -Data @{ repoRootPath = $repoRootPath moduleFolderPaths = Split-Path $TemplateFilePath -Parent tokenConfiguration = $PesterTokenConfiguration @@ -198,10 +198,10 @@ function Test-ModuleLocally { if ($TemplateFilePath -like '*.test*') { $parameterFiles = @($TemplateFilePath) } else { - if ((Get-Item -Path $testFilePath) -is [System.IO.DirectoryInfo]) { - $parameterFiles = (Get-ChildItem -Path $testFilePath).FullName + if ((Get-Item -Path $ParameterFilePath) -is [System.IO.DirectoryInfo]) { + $parameterFiles = (Get-ChildItem -Path $ParameterFilePath).FullName } else { - $parameterFiles = @($testFilePath) + $parameterFiles = @($ParameterFilePath) } } From 09c4f69e84abf646dfac1e63c6e1a6f0cc6d944b Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 14 Aug 2022 20:20:10 +0200 Subject: [PATCH 185/274] Update to latest --- utilities/tools/Test-ModuleLocally.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/tools/Test-ModuleLocally.ps1 b/utilities/tools/Test-ModuleLocally.ps1 index cf900b9321..61986484d9 100644 --- a/utilities/tools/Test-ModuleLocally.ps1 +++ b/utilities/tools/Test-ModuleLocally.ps1 @@ -198,7 +198,7 @@ function Test-ModuleLocally { if ($TemplateFilePath -like '*.test*') { $parameterFiles = @($TemplateFilePath) } else { - if ((Get-Item -Path $ParameterFilePath) -is [System.IO.DirectoryInfo]) { + if ((Get-Item -Path $ParameterFilePath -Force) -is [System.IO.DirectoryInfo]) { $parameterFiles = (Get-ChildItem -Path $ParameterFilePath).FullName } else { $parameterFiles = @($ParameterFilePath) From 01bccecc4785156105309d1457b5d4ae658904fe Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 14 Aug 2022 21:00:13 +0200 Subject: [PATCH 186/274] Small fix --- utilities/tools/Get-CrossReferencedModuleList.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/tools/Get-CrossReferencedModuleList.ps1 b/utilities/tools/Get-CrossReferencedModuleList.ps1 index 3155910e49..c3fe176859 100644 --- a/utilities/tools/Get-CrossReferencedModuleList.ps1 +++ b/utilities/tools/Get-CrossReferencedModuleList.ps1 @@ -98,7 +98,7 @@ function Get-CrossReferencedModuleList { foreach ($topLevelFolderPath in $topLevelFolderPaths) { - $moduleTemplatePaths = (Get-ChildItem -Path $topLevelFolderPath -Recurse -Depth 1 -Filter '*.bicep' -File).FullName + $moduleTemplatePaths = (Get-ChildItem -Path $topLevelFolderPath -Recurse -Filter '*.bicep' -File).FullName | Where-Object { $_ -notlike '*.test*' } $resourceReferences = [System.Collections.ArrayList]@() $localPathReferences = [System.Collections.ArrayList]@() From 9f3e575154bae565dc14f5ed702fd221212af03a Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 14 Aug 2022 21:14:59 +0200 Subject: [PATCH 187/274] Another small fix for linux --- utilities/tools/Get-CrossReferencedModuleList.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/tools/Get-CrossReferencedModuleList.ps1 b/utilities/tools/Get-CrossReferencedModuleList.ps1 index c3fe176859..005736f145 100644 --- a/utilities/tools/Get-CrossReferencedModuleList.ps1 +++ b/utilities/tools/Get-CrossReferencedModuleList.ps1 @@ -98,7 +98,7 @@ function Get-CrossReferencedModuleList { foreach ($topLevelFolderPath in $topLevelFolderPaths) { - $moduleTemplatePaths = (Get-ChildItem -Path $topLevelFolderPath -Recurse -Filter '*.bicep' -File).FullName | Where-Object { $_ -notlike '*.test*' } + $moduleTemplatePaths = (Get-ChildItem -Path $topLevelFolderPath -Recurse -Filter '*.bicep' -File -Force).FullName | Where-Object { $_ -notlike '*.test*' } $resourceReferences = [System.Collections.ArrayList]@() $localPathReferences = [System.Collections.ArrayList]@() From 76e638ddcb164aa6f03cd5821f29e12890da4fe2 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 14 Aug 2022 21:46:40 +0200 Subject: [PATCH 188/274] Fixed ref --- utilities/pipelines/staticValidation/module.tests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/pipelines/staticValidation/module.tests.ps1 b/utilities/pipelines/staticValidation/module.tests.ps1 index 18cf9a9d1f..663797e1f1 100644 --- a/utilities/pipelines/staticValidation/module.tests.ps1 +++ b/utilities/pipelines/staticValidation/module.tests.ps1 @@ -1164,7 +1164,7 @@ Describe 'Deployment template tests' -Tag Template { foreach ($moduleFolderPath in $moduleFolderPaths) { if (Test-Path (Join-Path $moduleFolderPath '.test')) { - $TestFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test') -Recurse -Force).FullName + $TestFilePaths = (Get-ChildItem (Join-Path -Path $moduleFolderPath -ChildPath '.test') -Recurse -File -Force).FullName foreach ($TestFilePath in $TestFilePaths) { foreach ($token in $tokenConfiguration.Tokens.Keys) { $parameterFileTokenTestCases += @{ From 5a2db3ee9c175d44550c1a8c1dc39fe71da2e756 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 14 Aug 2022 21:56:30 +0200 Subject: [PATCH 189/274] Merged latest main --- utilities/tools/Test-ModuleLocally.ps1 | 78 ++++++++++++++++++++------ 1 file changed, 61 insertions(+), 17 deletions(-) diff --git a/utilities/tools/Test-ModuleLocally.ps1 b/utilities/tools/Test-ModuleLocally.ps1 index 61986484d9..e7b3596e52 100644 --- a/utilities/tools/Test-ModuleLocally.ps1 +++ b/utilities/tools/Test-ModuleLocally.ps1 @@ -147,26 +147,66 @@ function Test-ModuleLocally { } process { + # Find Test Parameter Files + # ------------------------- + if ((Get-Item -Path $ParameterFilePath) -is [System.IO.DirectoryInfo]) { + $parameterFiles = (Get-ChildItem -Path $ParameterFilePath).FullName + } else { + $parameterFiles = @($ParameterFilePath) + } + + # Construct Token Configuration Input + $GlobalVariablesObject = Get-Content -Path (Join-Path $PSScriptRoot '..\..\settings.yml') | ConvertFrom-Yaml -ErrorAction Stop | Select-Object -ExpandProperty variables + $tokenConfiguration = @{ + FilePathList = $parameterFiles + Tokens = @{} + TokenPrefix = $GlobalVariablesObject | Select-Object -ExpandProperty tokenPrefix + TokenSuffix = $GlobalVariablesObject | Select-Object -ExpandProperty tokenSuffix + } + + # Add Enforced Tokens + $enforcedTokenList = @{} + if ($ValidateOrDeployParameters.ContainsKey('subscriptionId')) { + $enforcedTokenList['subscriptionId'] = $ValidateOrDeployParameters.SubscriptionId + } + if ($ValidateOrDeployParameters.ContainsKey('managementGroupId')) { + $enforcedTokenList['managementGroupId'] = $ValidateOrDeployParameters.ManagementGroupId + } + if ($AdditionalTokens.ContainsKey('deploymentSpId')) { + $enforcedTokenList['deploymentSpId'] = $AdditionalTokens['deploymentSpId'] + } + if ($AdditionalTokens.ContainsKey('tenantId')) { + $enforcedTokenList['tenantId'] = $AdditionalTokens['tenantId'] + } + $tokenConfiguration.Tokens += $enforcedTokenList + + # Add local (source control) tokens + foreach ($localToken in ($GlobalVariablesObject.Keys | ForEach-Object { if ($PSItem.contains('localToken_')) { $PSItem } })) { + $tokenConfiguration.Tokens[$localToken.Replace('localToken_', '', 'OrdinalIgnoreCase')] = $GlobalVariablesObject.$localToken + } + + # Add Other Parameter File Tokens (For Testing) + $AdditionalTokens.Keys | ForEach-Object { + if (-not $tokenConfiguration.Tokens.ContainsKey($PSItem)) { + $tokenConfiguration.Tokens[$PSItem] = $AdditionalTokens.$PSItem + } + } + ################ # PESTER Tests # ################ if ($PesterTest) { - Write-Verbose "Pester-test module: $ModuleName" - try { - $enforcedTokenList = @{} - if ($ValidateOrDeployParameters.ContainsKey('subscriptionId')) { - $enforcedTokenList['subscriptionId'] = $ValidateOrDeployParameters.SubscriptionId - } - if ($ValidateOrDeployParameters.ContainsKey('managementGroupId')) { - $enforcedTokenList['managementGroupId'] = $ValidateOrDeployParameters.ManagementGroupId - } - if ($AdditionalTokens.ContainsKey('deploymentSpId')) { - $enforcedTokenList['deploymentSpId'] = $AdditionalTokens['deploymentSpId'] - } - if ($AdditionalTokens.ContainsKey('tenantId')) { - $enforcedTokenList['tenantId'] = $AdditionalTokens['tenantId'] - } + Write-Verbose "Pester Testing Module: $ModuleName" + + # Construct Pester Token Configuration Input + $PesterTokenConfiguration = @{ + FilePathList = $parameterFiles + Tokens = $enforcedTokenList + TokenPrefix = $GlobalVariablesObject | Select-Object -ExpandProperty tokenPrefix + TokenSuffix = $GlobalVariablesObject | Select-Object -ExpandProperty tokenSuffix + } + try { Invoke-Pester -Configuration @{ Run = @{ Container = New-PesterContainer -Path (Join-Path $repoRootPath $PesterTestFilePath) -Data @{ @@ -220,13 +260,14 @@ function Test-ModuleLocally { # Validate template # ----------------- if ($ValidationTest) { - # Loop through test parameter files if ($parameterFiles) { + # Loop through test parameter files foreach ($parameterFile in $parameterFiles) { Write-Verbose ('Validating module [{0}] with test file [{1}]' -f $ModuleName, (Split-Path $parameterFile -Leaf)) -Verbose Test-TemplateDeployment @functionInput -ParameterFilePath $parameterFile } } else { + Write-Verbose ('Validating module [{0}]' -f $ModuleName) -Verbose Test-TemplateDeployment @functionInput } } @@ -244,7 +285,10 @@ function Test-ModuleLocally { } } } else { - New-TemplateDeployment @functionInput + Write-Verbose ('Deploy Module [{0}]' -f $ModuleName) -Verbose + if ($PSCmdlet.ShouldProcess(('Module [{0}]' -f $ModuleName), 'Deploy')) { + New-TemplateDeployment @functionInput + } } } From 0d490af41ecafef96506efdba792d469549625bf Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 14 Aug 2022 22:09:28 +0200 Subject: [PATCH 190/274] Another small fix --- utilities/tools/Test-ModuleLocally.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/tools/Test-ModuleLocally.ps1 b/utilities/tools/Test-ModuleLocally.ps1 index e7b3596e52..fc1fd0c91c 100644 --- a/utilities/tools/Test-ModuleLocally.ps1 +++ b/utilities/tools/Test-ModuleLocally.ps1 @@ -150,7 +150,7 @@ function Test-ModuleLocally { # Find Test Parameter Files # ------------------------- if ((Get-Item -Path $ParameterFilePath) -is [System.IO.DirectoryInfo]) { - $parameterFiles = (Get-ChildItem -Path $ParameterFilePath).FullName + $parameterFiles = (Get-ChildItem -Path $ParameterFilePath -File).FullName } else { $parameterFiles = @($ParameterFilePath) } From d5cf65636f11c63558b44bb819bfb3cdd9058a79 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 14 Aug 2022 22:19:00 +0200 Subject: [PATCH 191/274] Update to latest --- utilities/tools/Test-ModuleLocally.ps1 | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/utilities/tools/Test-ModuleLocally.ps1 b/utilities/tools/Test-ModuleLocally.ps1 index fc1fd0c91c..ab41cfaf42 100644 --- a/utilities/tools/Test-ModuleLocally.ps1 +++ b/utilities/tools/Test-ModuleLocally.ps1 @@ -149,7 +149,7 @@ function Test-ModuleLocally { # Find Test Parameter Files # ------------------------- - if ((Get-Item -Path $ParameterFilePath) -is [System.IO.DirectoryInfo]) { + if ((Get-Item -Path $ParameterFilePath -Force) -is [System.IO.DirectoryInfo]) { $parameterFiles = (Get-ChildItem -Path $ParameterFilePath -File).FullName } else { $parameterFiles = @($ParameterFilePath) @@ -233,18 +233,6 @@ function Test-ModuleLocally { # Invoke Token Replacement Functionality and Convert Tokens in Parameter Files $null = Convert-TokensInFileList @tokenConfiguration - # Find Test Parameter Files - # ------------------------- - if ($TemplateFilePath -like '*.test*') { - $parameterFiles = @($TemplateFilePath) - } else { - if ((Get-Item -Path $ParameterFilePath -Force) -is [System.IO.DirectoryInfo]) { - $parameterFiles = (Get-ChildItem -Path $ParameterFilePath).FullName - } else { - $parameterFiles = @($ParameterFilePath) - } - } - # Deployment & Validation Testing # ------------------------------- $functionInput = @{ From 8e93d172bd5ff666c714690e900ef7cd82ac9207 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 14 Aug 2022 22:23:49 +0200 Subject: [PATCH 192/274] Update to latest --- utilities/tools/Test-ModuleLocally.ps1 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/utilities/tools/Test-ModuleLocally.ps1 b/utilities/tools/Test-ModuleLocally.ps1 index ab41cfaf42..f9480a14fd 100644 --- a/utilities/tools/Test-ModuleLocally.ps1 +++ b/utilities/tools/Test-ModuleLocally.ps1 @@ -150,7 +150,7 @@ function Test-ModuleLocally { # Find Test Parameter Files # ------------------------- if ((Get-Item -Path $ParameterFilePath -Force) -is [System.IO.DirectoryInfo]) { - $parameterFiles = (Get-ChildItem -Path $ParameterFilePath -File).FullName + $parameterFiles = (Get-ChildItem -Path $ParameterFilePath -File -Filter '*.json').FullName } else { $parameterFiles = @($ParameterFilePath) } @@ -164,6 +164,9 @@ function Test-ModuleLocally { TokenSuffix = $GlobalVariablesObject | Select-Object -ExpandProperty tokenSuffix } + # Add replacement for template itself + $tokenConfiguration['FilePathList'] += $TemplateFilePath + # Add Enforced Tokens $enforcedTokenList = @{} if ($ValidateOrDeployParameters.ContainsKey('subscriptionId')) { From 7e4548b4e6e3ecc770d4c8a200049a749d8e7e38 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 14 Aug 2022 23:09:49 +0200 Subject: [PATCH 193/274] Update to latest --- utilities/tools/Test-ModuleLocally.ps1 | 58 +++++++++++++++----------- 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/utilities/tools/Test-ModuleLocally.ps1 b/utilities/tools/Test-ModuleLocally.ps1 index f9480a14fd..e7f4d70d4c 100644 --- a/utilities/tools/Test-ModuleLocally.ps1 +++ b/utilities/tools/Test-ModuleLocally.ps1 @@ -9,8 +9,8 @@ subscription Id, principal Id, tenant ID and other parameters that need to be to .PARAMETER TemplateFilePath Mandatory. Path to the Bicep/ARM module that is being tested -.PARAMETER ParameterFilePath -Optional. Path to the template file/folder that is to be tested with the template file. Defaults to the module's default '.parameter' folder. Will be used if the DeploymentTest/ValidationTest switches are set. +.PARAMETER ModuleTestFilePath +Optional. Path to the template file/folder that is to be tested with the template file. Defaults to the module's default '.test' folder. Will be used if the DeploymentTest/ValidationTest switches are set. .PARAMETER PesterTest Optional. A switch parameter that triggers a Pester test for the module @@ -34,7 +34,7 @@ Optional. A hashtable parameter that contains custom tokens to be replaced in th $TestModuleLocallyInput = @{ TemplateFilePath = 'C:\Microsoft.Network\routeTables\deploy.bicep' - ParameterFilePath = 'C:\Microsoft.Network\routeTables\.test\parameters.json' + ModuleTestFilePath = 'C:\Microsoft.Network\routeTables\.test\parameters.json' PesterTest = $false DeploymentTest = $false ValidationTest = $true @@ -114,7 +114,7 @@ function Test-ModuleLocally { [string] $TemplateFilePath, [Parameter(Mandatory = $false)] - [string] $ParameterFilePath = (Join-Path (Split-Path $TemplateFilePath -Parent) '.test'), + [string] $ModuleTestFilePath = (Join-Path (Split-Path $TemplateFilePath -Parent) '.test'), [Parameter(Mandatory = $false)] [string] $PesterTestFilePath = 'utilities/pipelines/staticValidation/module.tests.ps1', @@ -149,24 +149,21 @@ function Test-ModuleLocally { # Find Test Parameter Files # ------------------------- - if ((Get-Item -Path $ParameterFilePath -Force) -is [System.IO.DirectoryInfo]) { - $parameterFiles = (Get-ChildItem -Path $ParameterFilePath -File -Filter '*.json').FullName + if ((Get-Item -Path $ModuleTestFilePath) -is [System.IO.DirectoryInfo]) { + $moduleTestFiles = (Get-ChildItem -Path $ModuleTestFilePath -File).FullName } else { - $parameterFiles = @($ParameterFilePath) + $moduleTestFiles = @($ModuleTestFilePath) } # Construct Token Configuration Input $GlobalVariablesObject = Get-Content -Path (Join-Path $PSScriptRoot '..\..\settings.yml') | ConvertFrom-Yaml -ErrorAction Stop | Select-Object -ExpandProperty variables $tokenConfiguration = @{ - FilePathList = $parameterFiles + FilePathList = $moduleTestFiles Tokens = @{} TokenPrefix = $GlobalVariablesObject | Select-Object -ExpandProperty tokenPrefix TokenSuffix = $GlobalVariablesObject | Select-Object -ExpandProperty tokenSuffix } - # Add replacement for template itself - $tokenConfiguration['FilePathList'] += $TemplateFilePath - # Add Enforced Tokens $enforcedTokenList = @{} if ($ValidateOrDeployParameters.ContainsKey('subscriptionId')) { @@ -190,9 +187,7 @@ function Test-ModuleLocally { # Add Other Parameter File Tokens (For Testing) $AdditionalTokens.Keys | ForEach-Object { - if (-not $tokenConfiguration.Tokens.ContainsKey($PSItem)) { - $tokenConfiguration.Tokens[$PSItem] = $AdditionalTokens.$PSItem - } + $tokenConfiguration.Tokens[$PSItem] = $AdditionalTokens.$PSItem } ################ @@ -203,7 +198,7 @@ function Test-ModuleLocally { # Construct Pester Token Configuration Input $PesterTokenConfiguration = @{ - FilePathList = $parameterFiles + FilePathList = $moduleTestFiles Tokens = $enforcedTokenList TokenPrefix = $GlobalVariablesObject | Select-Object -ExpandProperty tokenPrefix TokenSuffix = $GlobalVariablesObject | Select-Object -ExpandProperty tokenSuffix @@ -251,11 +246,16 @@ function Test-ModuleLocally { # Validate template # ----------------- if ($ValidationTest) { - if ($parameterFiles) { + if ($moduleTestFiles) { # Loop through test parameter files - foreach ($parameterFile in $parameterFiles) { - Write-Verbose ('Validating module [{0}] with test file [{1}]' -f $ModuleName, (Split-Path $parameterFile -Leaf)) -Verbose - Test-TemplateDeployment @functionInput -ParameterFilePath $parameterFile + foreach ($moduleTestFile in $moduleTestFiles) { + Write-Verbose ('Validating module [{0}] with test file [{1}]' -f $ModuleName, (Split-Path $moduleTestFile -Leaf)) -Verbose + if ((Split-Path $moduleTestFile -LeafBase) -eq 'json') { + Test-TemplateDeployment @functionInput -ParameterFilePath $moduleTestFile + } else { + $functionInput['TemplateFilePath'] = $moduleTestFile + Test-TemplateDeployment @functionInput + } } } else { Write-Verbose ('Validating module [{0}]' -f $ModuleName) -Verbose @@ -268,11 +268,18 @@ function Test-ModuleLocally { if ($DeploymentTest) { $functionInput['retryLimit'] = 1 # Overwrite default of 3 # Loop through test parameter files - if ($parameterFiles) { - foreach ($parameterFile in $parameterFiles) { - Write-Verbose ('Deploy Module [{0}] with test file [{1}]' -f $ModuleName, (Split-Path $parameterFile -Leaf)) -Verbose - if ($PSCmdlet.ShouldProcess(('Module [{0}] with test file [{1}]' -f $ModuleName, (Split-Path $parameterFile -Leaf)), 'Deploy')) { - New-TemplateDeployment @functionInput -ParameterFilePath $parameterFile + if ($moduleTestFile) { + foreach ($moduleTestFile in $moduleTestFiles) { + Write-Verbose ('Deploy Module [{0}] with test file [{1}]' -f $ModuleName, (Split-Path $moduleTestFile -Leaf)) -Verbose + if ((Split-Path $moduleTestFile -LeafBase) -eq 'json') { + if ($PSCmdlet.ShouldProcess(('Module [{0}] with test file [{1}]' -f $ModuleName, (Split-Path $moduleTestFile -Leaf)), 'Deploy')) { + New-TemplateDeployment @functionInput -ParameterFilePath $moduleTestFile + } else { + $functionInput['TemplateFilePath'] = $moduleTestFile + if ($PSCmdlet.ShouldProcess(('Module [{0}] with test file [{1}]' -f $ModuleName, (Split-Path $moduleTestFile -Leaf)), 'Deploy')) { + New-TemplateDeployment @functionInput + } + } } } } else { @@ -288,7 +295,7 @@ function Test-ModuleLocally { } finally { # Restore parameter files # ----------------------- - if (($ValidationTest -or $DeploymentTest) -and $ValidateOrDeployParameters -and $parameterFiles) { + if (($ValidationTest -or $DeploymentTest) -and $ValidateOrDeployParameters -and $moduleTestFiles) { # Replace Values with Tokens For Repo Updates Write-Verbose 'Restoring Tokens' $null = Convert-TokensInFileList @tokenConfiguration -SwapValueWithName $true @@ -299,3 +306,4 @@ function Test-ModuleLocally { end { } } + From 3556fe7c76c7ec00c1436d30b580037caf49b2f2 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 14 Aug 2022 23:17:38 +0200 Subject: [PATCH 194/274] Merged latest --- utilities/tools/Test-ModuleLocally.ps1 | 51 ++++++++++---------------- 1 file changed, 19 insertions(+), 32 deletions(-) diff --git a/utilities/tools/Test-ModuleLocally.ps1 b/utilities/tools/Test-ModuleLocally.ps1 index e7f4d70d4c..2e1ff3604b 100644 --- a/utilities/tools/Test-ModuleLocally.ps1 +++ b/utilities/tools/Test-ModuleLocally.ps1 @@ -246,20 +246,15 @@ function Test-ModuleLocally { # Validate template # ----------------- if ($ValidationTest) { - if ($moduleTestFiles) { - # Loop through test parameter files - foreach ($moduleTestFile in $moduleTestFiles) { - Write-Verbose ('Validating module [{0}] with test file [{1}]' -f $ModuleName, (Split-Path $moduleTestFile -Leaf)) -Verbose - if ((Split-Path $moduleTestFile -LeafBase) -eq 'json') { - Test-TemplateDeployment @functionInput -ParameterFilePath $moduleTestFile - } else { - $functionInput['TemplateFilePath'] = $moduleTestFile - Test-TemplateDeployment @functionInput - } + # Loop through test files + foreach ($moduleTestFile in $moduleTestFiles) { + Write-Verbose ('Validating module [{0}] with test file [{1}]' -f $ModuleName, (Split-Path $moduleTestFile -Leaf)) -Verbose + if ((Split-Path $moduleTestFile -LeafBase) -eq 'json') { + Test-TemplateDeployment @functionInput -ParameterFilePath $moduleTestFile + } else { + $functionInput['TemplateFilePath'] = $moduleTestFile + Test-TemplateDeployment @functionInput } - } else { - Write-Verbose ('Validating module [{0}]' -f $ModuleName) -Verbose - Test-TemplateDeployment @functionInput } } @@ -267,34 +262,27 @@ function Test-ModuleLocally { # --------------- if ($DeploymentTest) { $functionInput['retryLimit'] = 1 # Overwrite default of 3 - # Loop through test parameter files - if ($moduleTestFile) { - foreach ($moduleTestFile in $moduleTestFiles) { - Write-Verbose ('Deploy Module [{0}] with test file [{1}]' -f $ModuleName, (Split-Path $moduleTestFile -Leaf)) -Verbose - if ((Split-Path $moduleTestFile -LeafBase) -eq 'json') { + # Loop through test files + foreach ($moduleTestFile in $moduleTestFiles) { + Write-Verbose ('Deploy Module [{0}] with test file [{1}]' -f $ModuleName, (Split-Path $moduleTestFile -Leaf)) -Verbose + if ((Split-Path $moduleTestFile -LeafBase) -eq 'json') { + if ($PSCmdlet.ShouldProcess(('Module [{0}] with test file [{1}]' -f $ModuleName, (Split-Path $moduleTestFile -Leaf)), 'Deploy')) { + New-TemplateDeployment @functionInput -ParameterFilePath $moduleTestFile + } else { + $functionInput['TemplateFilePath'] = $moduleTestFile if ($PSCmdlet.ShouldProcess(('Module [{0}] with test file [{1}]' -f $ModuleName, (Split-Path $moduleTestFile -Leaf)), 'Deploy')) { - New-TemplateDeployment @functionInput -ParameterFilePath $moduleTestFile - } else { - $functionInput['TemplateFilePath'] = $moduleTestFile - if ($PSCmdlet.ShouldProcess(('Module [{0}] with test file [{1}]' -f $ModuleName, (Split-Path $moduleTestFile -Leaf)), 'Deploy')) { - New-TemplateDeployment @functionInput - } + New-TemplateDeployment @functionInput } } } - } else { - Write-Verbose ('Deploy Module [{0}]' -f $ModuleName) -Verbose - if ($PSCmdlet.ShouldProcess(('Module [{0}]' -f $ModuleName), 'Deploy')) { - New-TemplateDeployment @functionInput - } } } } catch { Write-Error $_ } finally { - # Restore parameter files - # ----------------------- + # Restore test files + # ------------------ if (($ValidationTest -or $DeploymentTest) -and $ValidateOrDeployParameters -and $moduleTestFiles) { # Replace Values with Tokens For Repo Updates Write-Verbose 'Restoring Tokens' @@ -306,4 +294,3 @@ function Test-ModuleLocally { end { } } - From b3b65cfa217dee7fa5d00c0043adc35a00e54a3d Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 14 Aug 2022 23:35:52 +0200 Subject: [PATCH 195/274] Added small upgrade to mgmtgroup removal + cleanup of pipeline --- .../actions/templates/validateModuleDeployment/action.yml | 5 ----- utilities/tools/Clear-ManagementGroupDeployment.ps1 | 2 ++ 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index efd49366dc..1eb25c2b65 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -213,8 +213,6 @@ runs: # Prepare general parameters # -------------------------- - $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json - # Fetching parameters $location = '${{ inputs.location }}' $resourceGroupName = '${{ inputs.resourceGroupName }}' @@ -290,9 +288,6 @@ runs: # Prepare general parameters # -------------------------- - $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json - - # Fetching parameters $location = '${{ inputs.location }}' $resourceGroupName = '${{ inputs.resourceGroupName }}' $subscriptionId = '${{ inputs.subscriptionId }}' diff --git a/utilities/tools/Clear-ManagementGroupDeployment.ps1 b/utilities/tools/Clear-ManagementGroupDeployment.ps1 index 4c1d1314b7..bcafa5ca6f 100644 --- a/utilities/tools/Clear-ManagementGroupDeployment.ps1 +++ b/utilities/tools/Clear-ManagementGroupDeployment.ps1 @@ -34,6 +34,8 @@ function Clear-ManagementGroupDeployment { [string[]] $DeploymentStatusToExclude = @('running', 'failed') ) + [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 # Enables web reponse + # Load used functions . (Join-Path $PSScriptRoot 'helper' 'Split-Array.ps1') From ec55a5f04f8cedcd756bd36df5d1a6254da7bdbf Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 14 Aug 2022 23:38:11 +0200 Subject: [PATCH 196/274] Update to latest --- utilities/tools/Test-ModuleLocally.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/tools/Test-ModuleLocally.ps1 b/utilities/tools/Test-ModuleLocally.ps1 index 2e1ff3604b..2f002df39b 100644 --- a/utilities/tools/Test-ModuleLocally.ps1 +++ b/utilities/tools/Test-ModuleLocally.ps1 @@ -283,7 +283,7 @@ function Test-ModuleLocally { } finally { # Restore test files # ------------------ - if (($ValidationTest -or $DeploymentTest) -and $ValidateOrDeployParameters -and $moduleTestFiles) { + if (($ValidationTest -or $DeploymentTest) -and $ValidateOrDeployParameters) { # Replace Values with Tokens For Repo Updates Write-Verbose 'Restoring Tokens' $null = Convert-TokensInFileList @tokenConfiguration -SwapValueWithName $true From 29f55990251501a9b1e78c08448d16f8861f1453 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 14 Aug 2022 23:48:45 +0200 Subject: [PATCH 197/274] Fixed sa name --- .../virtualMachines/.test/linux/deploy.test.bicep | 2 +- .../virtualMachines/.test/windows/deploy.test.bicep | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep index 2371bdac90..d2b3841308 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep @@ -34,7 +34,7 @@ module resourceGroupResources 'dependencies.bicep' = { keyVaultName: 'dep-<>-kv-${serviceShort}-01' loadBalancerName: 'dep-<>-lb-${serviceShort}-01' recoveryServicesVaultName: 'dep-<>-rsv-${serviceShort}-01' - storageAccountName: 'dep-<>-sa-${serviceShort}-01' + storageAccountName: 'dep<>azsa${serviceShort}01' storageUploadDeploymentScriptName: 'dep-<>-sads-${serviceShort}-01' } } diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep index 31c4e94e8b..dd956fdb53 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep @@ -38,7 +38,7 @@ module resourceGroupResources 'dependencies.bicep' = { keyVaultName: 'dep-<>-kv-${serviceShort}-01' loadBalancerName: 'dep-<>-lb-${serviceShort}-01' recoveryServicesVaultName: 'dep-<>-rsv-${serviceShort}-01' - storageAccountName: 'dep-<>-sa-${serviceShort}-01' + storageAccountName: 'dep<>azsa${serviceShort}01' storageUploadDeploymentScriptName: 'dep-<>-sads-${serviceShort}-01' proximityPlacementGroupName: 'dep-<>-ppg-${serviceShort}-01' } From 3b85c467d28c83ab60236b4cdf87576aab817dd2 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 14 Aug 2022 23:52:48 +0200 Subject: [PATCH 198/274] Renamed res --- .../virtualMachines/.test/linux.autmg/deploy.test.bicep | 2 +- .../virtualMachines/.test/linux/deploy.test.bicep | 2 +- .../virtualMachines/.test/windows.autmg/deploy.test.bicep | 2 +- .../virtualMachines/.test/windows.min/deploy.test.bicep | 2 +- .../virtualMachines/.test/windows/deploy.test.bicep | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux.autmg/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux.autmg/deploy.test.bicep index 60910b50d4..fbae313b29 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux.autmg/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux.autmg/deploy.test.bicep @@ -11,7 +11,7 @@ param resourceGroupName string = '${serviceShort}-ms.compute.virtualMachines-rg' param location string = deployment().location @description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') -param serviceShort string = '...' +param serviceShort string = 'vmlinautmg' // =========== // // Deployments // diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep index d2b3841308..da4905db6e 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep @@ -11,7 +11,7 @@ param resourceGroupName string = '${serviceShort}-ms.compute.virtualMachines-rg' param location string = deployment().location @description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'vmlinmpar' +param serviceShort string = 'vmlinpar' // =========== // // Deployments // diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.autmg/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows.autmg/deploy.test.bicep index cbde144f91..a53a031ce5 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows.autmg/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows.autmg/deploy.test.bicep @@ -11,7 +11,7 @@ param resourceGroupName string = '${serviceShort}-ms.compute.virtualMachines-rg' param location string = deployment().location @description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'vmautmg' +param serviceShort string = 'vmwinautmg' @description('Optional. The password to leverage for the login.') @secure() diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep index 76784adf04..24af05a605 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep @@ -11,7 +11,7 @@ param resourceGroupName string = '${serviceShort}-ms.compute.virtualMachines-rg' param location string = deployment().location @description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'vmmin' +param serviceShort string = 'vmwinmin' @description('Optional. The password to leverage for the login.') @secure() diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep index dd956fdb53..2d26b6c249 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep @@ -11,7 +11,7 @@ param resourceGroupName string = '${serviceShort}-ms.compute.virtualMachines-rg' param location string = deployment().location @description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'vmpar' +param serviceShort string = 'vmwinpar' @description('Optional. The password to leverage for the login.') @secure() From b159efcdbbf88039961b8350c15136d178611789 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 00:03:35 +0200 Subject: [PATCH 199/274] Updated removal --- .../validateModuleDeployment/action.yml | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 1eb25c2b65..78b905d6e9 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -379,19 +379,23 @@ runs: # Load used function . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourceRemoval' 'Initialize-DeploymentRemoval.ps1') - if (-not [String]::IsNullOrEmpty('${{ steps.deploy_step.outputs.deploymentName }}')) { - $functionInput = @{ - DeploymentName = '${{ steps.deploy_step.outputs.deploymentName }}' - TemplateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' - ResourceGroupName = '${{ inputs.resourceGroupName }}' - ManagementGroupId = '${{ inputs.managementGroupId }}' - Verbose = $true - } - - Write-Verbose 'Invoke task with' -Verbose - Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose - - Initialize-DeploymentRemoval @functionInput + $functionInput = @{ + DeploymentName = '${{ steps.deploy_step.outputs.deploymentName }}' + ResourceGroupName = '${{ inputs.resourceGroupName }}' + ManagementGroupId = '${{ inputs.managementGroupId }}' + Verbose = $true + } + + # Determine template file path + if ('${{ inputs.templateFilePath }}' -like '*.test*') { + $functionInput['TemplateFilePath'] = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' + } else { + $functionInput['TemplateFilePath'] = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' } + Write-Verbose 'Invoke task with' -Verbose + Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose + + Initialize-DeploymentRemoval @functionInput + Write-Output '::endgroup::' From c15182b01983f2873d744a5c3bfbca675cc8f1c0 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 00:08:46 +0200 Subject: [PATCH 200/274] added commment --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index d3706e2863..c1983daa93 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -377,7 +377,7 @@ jobs: Verbose = $true } - if((Split-Path '$(moduleTestFilePath)' -Extension) -eq '.bicep') { + if((Split-Path '$(moduleTestFilePath)' -Extension) -eq '.bicep') { # TODO: Updated with non-bicep support # Test template files $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(moduleTestFilePath)' } else { From 29568c9e16bb74a9386d24291777ae2ff4cfa114 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 00:16:17 +0200 Subject: [PATCH 201/274] Update to latest --- utilities/tools/Set-ModuleReadMe.ps1 | 3 --- 1 file changed, 3 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index 9c5b6dbdb0..66df2ed4ce 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -1329,7 +1329,6 @@ function Set-ModuleReadMe { } if (-not $TemplateFileContent) { - if ((Split-Path -Path $TemplateFilePath -Extension) -eq '.bicep') { $templateFileContent = az bicep build --file $TemplateFilePath --stdout | ConvertFrom-Json -AsHashtable } else { @@ -1343,8 +1342,6 @@ function Set-ModuleReadMe { $fullResourcePath = (Split-Path $TemplateFilePath -Parent).Replace('\', '/').split('/modules/')[1] - $root = (Get-Item $PSScriptRoot).Parent.Parent.FullName - # Check readme if (-not (Test-Path $ReadMeFilePath) -or ([String]::IsNullOrEmpty((Get-Content $ReadMeFilePath -Raw)))) { # Create new readme file From 53faea21c7e96ee36ab3ee1d95d1fc8f57ef86ac Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 07:00:24 +0200 Subject: [PATCH 202/274] Adjusted conditions --- .../jobs.validateModuleDeployment.yml | 41 +++++++------------ .../validateModuleDeployment/action.yml | 26 ++++-------- .../managedPrivateEndpoints/deploy.bicep | 2 +- .../managedPrivateEndpoints/readme.md | 7 +--- .../factories/managedVirtualNetwork/readme.md | 4 +- .../Microsoft.DataFactory/factories/readme.md | 4 +- 6 files changed, 28 insertions(+), 56 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index c1983daa93..89e05fceb4 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -231,6 +231,7 @@ jobs: # Building input object $functionInput = @{ + TemplateFilePath = ($moduleTestFilePath -like '*parameters.json') ? $moduleTemplateFilePath : $moduleTestFilePath location = $location resourceGroupName = $resourceGroupName subscriptionId = $subscriptionId @@ -239,13 +240,9 @@ jobs: } # Handle template file - if((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { - # Test template files - $functionInput['templateFilePath'] = $moduleTestFilePath - } else { - # Original JSON parameter files - $functionInput['templateFilePath'] = $moduleTemplateFilePath - $functionInput['moduleTestFilePath'] = $moduleTestFilePath + if ($moduleTestFilePath -like '*parameters.json') { + # Original paramter file + $functionInput['parameterFilePath'] = $moduleTestFilePath } # Handle additional parameters @@ -299,20 +296,17 @@ jobs: # Building input object $functionInput = @{ - location = $location - resourceGroupName = $resourceGroupName - subscriptionId = $subscriptionId - managementGroupId = $managementGroupId - additionalParameters = @{} + TemplateFilePath = ($moduleTestFilePath -like '*parameters.json') ? $moduleTemplateFilePath : $moduleTestFilePath + Location = $location + ResourceGroupName = $resourceGroupName + SubscriptionId = $subscriptionId + ManagementGroupId = $managementGroupId + AdditionalParameters = @{} } # Handle template file - if((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { - # Test template files - $functionInput['templateFilePath'] = $moduleTestFilePath - } else { - # Original JSON parameter files - $functionInput['templateFilePath'] = $moduleTemplateFilePath + if ($moduleTestFilePath -like '*parameters.json') { + # Original paramter file $functionInput['parameterFilePath'] = $moduleTestFilePath } @@ -370,6 +364,9 @@ jobs: . (Join-Path '$(System.DefaultWorkingDirectory)' '$(pipelineFunctionsPath)' 'resourceRemoval' 'Initialize-DeploymentRemoval.ps1') $functionInput = @{ + TemplateFilePath = ('$(moduleTestFilePath)' -like '*parameters.json') ? + (Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}') : + (Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(moduleTestFilePath)') ResourceGroupName = '${{ parameters.resourceGroupName }}' subscriptionId = '${{ parameters.subscriptionId }}' ManagementGroupId = '${{ parameters.managementGroupId }}' @@ -377,14 +374,6 @@ jobs: Verbose = $true } - if((Split-Path '$(moduleTestFilePath)' -Extension) -eq '.bicep') { # TODO: Updated with non-bicep support - # Test template files - $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(moduleTestFilePath)' - } else { - # Original JSON parameter files - $functionInput['templateFilePath'] = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}' - } - Write-Verbose 'Invoke task with' -Verbose Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 78b905d6e9..c381a40369 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -242,6 +242,7 @@ runs: # Invoke validation # # ----------------- # $functionInput = @{ + TemplateFilePath = ($moduleTestFilePath -like '*parameters.json') ? $moduleTemplateFilePath : $moduleTestFilePath location = $location resourceGroupName = $resourceGroupName subscriptionId = $subscriptionId @@ -250,12 +251,7 @@ runs: } # Handle template file - if ((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { - # Test template files - $functionInput['templateFilePath'] = $moduleTestFilePath - } else { - # Original JSON parameter files - $functionInput['templateFilePath'] = $moduleTemplateFilePath + if ($moduleTestFilePath -like '*parameters.json') { $functionInput['parameterFilePath'] = $moduleTestFilePath } @@ -314,6 +310,7 @@ runs: # Invoke deployment # # ----------------- # $functionInput = @{ + TemplateFilePath = ($moduleTestFilePath -like '*parameters.json') ? $moduleTemplateFilePath : $moduleTestFilePath location = $location resourceGroupName = $resourceGroupName subscriptionId = $subscriptionId @@ -322,12 +319,7 @@ runs: } # Handle template file - if ((Split-Path $moduleTestFilePath -Extension) -eq '.bicep') { - # Test template files - $functionInput['templateFilePath'] = $moduleTestFilePath - } else { - # Original JSON parameter files - $functionInput['templateFilePath'] = $moduleTemplateFilePath + if ($moduleTestFilePath -like '*parameters.json') { $functionInput['parameterFilePath'] = $moduleTestFilePath } @@ -380,19 +372,15 @@ runs: . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourceRemoval' 'Initialize-DeploymentRemoval.ps1') $functionInput = @{ + TemplateFilePath = ('${{ inputs.templateFilePath }}' -like '*.test*') ? + (Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}') : + (Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}') DeploymentName = '${{ steps.deploy_step.outputs.deploymentName }}' ResourceGroupName = '${{ inputs.resourceGroupName }}' ManagementGroupId = '${{ inputs.managementGroupId }}' Verbose = $true } - # Determine template file path - if ('${{ inputs.templateFilePath }}' -like '*.test*') { - $functionInput['TemplateFilePath'] = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' - } else { - $functionInput['TemplateFilePath'] = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' - } - Write-Verbose 'Invoke task with' -Verbose Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose diff --git a/modules/Microsoft.DataFactory/factories/managedVirtualNetwork/managedPrivateEndpoints/deploy.bicep b/modules/Microsoft.DataFactory/factories/managedVirtualNetwork/managedPrivateEndpoints/deploy.bicep index 377b29ed3c..e2d8a0747a 100644 --- a/modules/Microsoft.DataFactory/factories/managedVirtualNetwork/managedPrivateEndpoints/deploy.bicep +++ b/modules/Microsoft.DataFactory/factories/managedVirtualNetwork/managedPrivateEndpoints/deploy.bicep @@ -4,7 +4,7 @@ param dataFactoryName string @description('Required. The name of the parent managed virtual network.') param managedVirtualNetworkName string -@description('Required. The managed privated endpoint resource name.') +@description('Required. The managed private endpoint resource name.') param name string @description('Required. The groupId to which the managed private endpoint is created.') diff --git a/modules/Microsoft.DataFactory/factories/managedVirtualNetwork/managedPrivateEndpoints/readme.md b/modules/Microsoft.DataFactory/factories/managedVirtualNetwork/managedPrivateEndpoints/readme.md index 86712a6956..b1dd2a10f7 100644 --- a/modules/Microsoft.DataFactory/factories/managedVirtualNetwork/managedPrivateEndpoints/readme.md +++ b/modules/Microsoft.DataFactory/factories/managedVirtualNetwork/managedPrivateEndpoints/readme.md @@ -23,7 +23,7 @@ This module deploys a Managed Private Endpoint in a Managed Virtual Network for | `fqdns` | array | Fully qualified domain names. | | `groupId` | string | The groupId to which the managed private endpoint is created. | | `managedVirtualNetworkName` | string | The name of the parent managed virtual network. | -| `name` | string | The managed privated endpoint resource name. | +| `name` | string | The managed private endpoint resource name. | | `privateLinkResourceId` | string | The ARM resource ID of the resource to which the managed private endpoint is created. | **Conditional parameters** @@ -36,11 +36,6 @@ This module deploys a Managed Private Endpoint in a Managed Virtual Network for | :-- | :-- | :-- | :-- | | `enableDefaultTelemetry` | bool | `True` | Enable telemetry via the Customer Usage Attribution ID (GUID). | - -### Parameter Usage: `` - -// TODO: Fill in Parameter usage - ## Outputs | Output Name | Type | Description | diff --git a/modules/Microsoft.DataFactory/factories/managedVirtualNetwork/readme.md b/modules/Microsoft.DataFactory/factories/managedVirtualNetwork/readme.md index cdf1bff40d..9b668c8c16 100644 --- a/modules/Microsoft.DataFactory/factories/managedVirtualNetwork/readme.md +++ b/modules/Microsoft.DataFactory/factories/managedVirtualNetwork/readme.md @@ -49,7 +49,7 @@ To use Managed Private Endpoints the following dependencies must be deployed: "managedPrivateEndpoints": { "value": [ { - "name": "mystorageaccount-managed-privateEndpoint", // Required: The managed privated endpoint resource name + "name": "mystorageaccount-managed-privateEndpoint", // Required: The managed private endpoint resource name "groupId": "blob", // Required: The groupId to which the managed private endpoint is created "fqdns": [ "mystorageaccount.blob.core.windows.net" // Required: Fully qualified domain names @@ -71,7 +71,7 @@ To use Managed Private Endpoints the following dependencies must be deployed: managedPrivateEndpoints: [ // Example showing all available fields { - name: 'mystorageaccount-managed-privateEndpoint' // Required: The managed privated endpoint resource name + name: 'mystorageaccount-managed-privateEndpoint' // Required: The managed private endpoint resource name groupId: 'blob' // Required: The groupId to which the managed private endpoint is created fqdns: [ 'mystorageaccount.blob.core.windows.net' // Required: Fully qualified domain names diff --git a/modules/Microsoft.DataFactory/factories/readme.md b/modules/Microsoft.DataFactory/factories/readme.md index 4d9bbf1e01..9ba27ce89b 100644 --- a/modules/Microsoft.DataFactory/factories/readme.md +++ b/modules/Microsoft.DataFactory/factories/readme.md @@ -290,7 +290,7 @@ To use Managed Private Endpoints the following dependencies must be deployed: "managedPrivateEndpoints": { "value": [ { - "name": "mystorageaccount-managed-privateEndpoint", // Required: The managed privated endpoint resource name + "name": "mystorageaccount-managed-privateEndpoint", // Required: The managed private endpoint resource name "groupId": "blob", // Required: The groupId to which the managed private endpoint is created "fqdns": [ "mystorageaccount.blob.core.windows.net" // Required: Fully qualified domain names @@ -312,7 +312,7 @@ To use Managed Private Endpoints the following dependencies must be deployed: managedPrivateEndpoints: [ // Example showing all available fields { - name: 'mystorageaccount-managed-privateEndpoint' // Required: The managed privated endpoint resource name + name: 'mystorageaccount-managed-privateEndpoint' // Required: The managed private endpoint resource name groupId: 'blob' // Required: The groupId to which the managed private endpoint is created fqdns: [ 'mystorageaccount.blob.core.windows.net' // Required: Fully qualified domain names From 440abdb82a78db4c39c0e5e0131b745cad600664 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 07:01:17 +0200 Subject: [PATCH 203/274] Update to latest --- .../jobs.validateModuleDeployment.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 89e05fceb4..9f3eb3efa3 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -296,11 +296,11 @@ jobs: # Building input object $functionInput = @{ - TemplateFilePath = ($moduleTestFilePath -like '*parameters.json') ? $moduleTemplateFilePath : $moduleTestFilePath - Location = $location - ResourceGroupName = $resourceGroupName - SubscriptionId = $subscriptionId - ManagementGroupId = $managementGroupId + TemplateFilePath = ($moduleTestFilePath -like '*parameters.json') ? $moduleTemplateFilePath : $moduleTestFilePath + Location = $location + ResourceGroupName = $resourceGroupName + SubscriptionId = $subscriptionId + ManagementGroupId = $managementGroupId AdditionalParameters = @{} } From 26e3d20884ef4b2087180ecfbfcb5a50795036d3 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 07:06:18 +0200 Subject: [PATCH 204/274] Update to latest --- .github/workflows/ms.network.vpnsites.yml | 34 +++++++++++------------ 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/workflows/ms.network.vpnsites.yml b/.github/workflows/ms.network.vpnsites.yml index 13a870e8bf..34dcc1c3e0 100644 --- a/.github/workflows/ms.network.vpnsites.yml +++ b/.github/workflows/ms.network.vpnsites.yml @@ -63,23 +63,23 @@ jobs: ######################### # Static validation # ######################### - # job_module_pester_validation: - # runs-on: ubuntu-20.04 - # name: 'Static validation' - # steps: - # - name: 'Checkout' - # uses: actions/checkout@v2 - # with: - # fetch-depth: 0 - # - name: Set environment variables - # uses: ./.github/actions/templates/setEnvironmentVariables - # with: - # variablesPath: ${{ env.variablesPath }} - # - name: 'Run tests' - # uses: ./.github/actions/templates/validateModulePester - # with: - # modulePath: '${{ env.modulePath }}' - # moduleTestFilePath: '${{ env.moduleTestFilePath }}' + job_module_pester_validation: + runs-on: ubuntu-20.04 + name: 'Static validation' + steps: + - name: 'Checkout' + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Set environment variables + uses: ./.github/actions/templates/setEnvironmentVariables + with: + variablesPath: ${{ env.variablesPath }} + - name: 'Run tests' + uses: ./.github/actions/templates/validateModulePester + with: + modulePath: '${{ env.modulePath }}' + moduleTestFilePath: '${{ env.moduleTestFilePath }}' ############################# # Deployment validation # From 21209fdc2674168d40788344c44eba9f61773093 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 07:06:55 +0200 Subject: [PATCH 205/274] Update to latest --- .github/workflows/ms.network.vpnsites.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ms.network.vpnsites.yml b/.github/workflows/ms.network.vpnsites.yml index 34dcc1c3e0..73f10b3c22 100644 --- a/.github/workflows/ms.network.vpnsites.yml +++ b/.github/workflows/ms.network.vpnsites.yml @@ -89,7 +89,7 @@ jobs: name: 'Deployment validation' needs: - job_initialize_pipeline - # - job_module_pester_validation + - job_module_pester_validation strategy: fail-fast: false matrix: From 89acfe089e2ef143ac58bd121e63291a89f94d82 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 07:12:10 +0200 Subject: [PATCH 206/274] Updated ReadMe --- .../virtualMachines/readme.md | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/modules/Microsoft.Compute/virtualMachines/readme.md b/modules/Microsoft.Compute/virtualMachines/readme.md index 66aeda606f..2649e40328 100644 --- a/modules/Microsoft.Compute/virtualMachines/readme.md +++ b/modules/Microsoft.Compute/virtualMachines/readme.md @@ -1023,7 +1023,7 @@ The following module usage examples are retrieved from the content of the files ```bicep module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-vmlinmpar' + name: '${uniqueString(deployment().name)}-test-vmlinpar' params: { // Required parameters adminUsername: 'localAdminUser' @@ -1156,7 +1156,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { } lock: 'CanNotDelete' monitoringWorkspaceId: '' - name: '<>vmlinmpar001' + name: '<>vmlinpar001' publicKeys: [ { keyData: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure' @@ -1377,7 +1377,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "value": "" }, "name": { - "value": "<>vmlinmpar001" + "value": "<>vmlinpar001" }, "publicKeys": { "value": [ @@ -1420,7 +1420,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { ```bicep module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-...' + name: '${uniqueString(deployment().name)}-test-vmlinautmg' params: { // Required parameters adminUsername: 'localAdminUser' @@ -1455,7 +1455,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { // Non-required parameters configurationProfile: '/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction' disablePasswordAuthentication: true - name: '<>...001' + name: '<>vmlinautmg001' publicKeys: [ { keyData: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure' @@ -1528,7 +1528,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "value": true }, "name": { - "value": "<>...001" + "value": "<>vmlinautmg001" }, "publicKeys": { "value": [ @@ -1682,7 +1682,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { ```bicep module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-vmpar' + name: '${uniqueString(deployment().name)}-test-vmwinpar' params: { // Required parameters adminUsername: 'localAdminUser' @@ -1833,7 +1833,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { } lock: 'CanNotDelete' monitoringWorkspaceId: '' - name: '<>vmpar001' + name: '<>vmwinpar001' proximityPlacementGroupResourceId: '' roleAssignments: [ { @@ -2069,7 +2069,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "value": "" }, "name": { - "value": "<>vmpar001" + "value": "<>vmwinpar001" }, "proximityPlacementGroupResourceId": { "value": "" @@ -2107,7 +2107,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { ```bicep module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-vmautmg' + name: '${uniqueString(deployment().name)}-test-vmwinautmg' params: { // Required parameters adminUsername: 'localAdminUser' @@ -2139,7 +2139,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { // Non-required parameters adminPassword: '' configurationProfile: '/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction' - name: '<>vmautmg001' + name: '<>vmwinautmg001' } } ``` @@ -2203,7 +2203,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "value": "/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction" }, "name": { - "value": "<>vmautmg001" + "value": "<>vmwinautmg001" } } } @@ -2220,7 +2220,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { ```bicep module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-vmmin' + name: '${uniqueString(deployment().name)}-test-vmwinmin' params: { // Required parameters adminUsername: 'localAdminUser' @@ -2251,7 +2251,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { vmSize: 'Standard_B12ms' // Non-required parameters adminPassword: '' - name: '<>vmmin001' + name: '<>vmwinmin001' } } ``` @@ -2312,7 +2312,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "value": "" }, "name": { - "value": "<>vmmin001" + "value": "<>vmwinmin001" } } } From 395a7434c507dcad4ed972a1b6b0633c72845801 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 07:46:25 +0200 Subject: [PATCH 207/274] Simplified names & updated readmes --- .../servers/.test/default/deploy.test.bicep | 10 +++---- .../servers/.test/max/deploy.test.bicep | 10 +++---- .../servers/.test/min/deploy.test.bicep | 2 +- .../servers/readme.md | 12 ++++---- .../dependencies.bicep | 0 .../deploy.test.bicep | 6 ++-- .../.test/linux.min/deploy.test.bicep | 4 +-- .../.test/linux/deploy.test.bicep | 22 +++++++------- .../dependencies.bicep | 0 .../deploy.test.bicep | 4 +-- .../.test/windows.min/deploy.test.bicep | 4 +-- .../.test/windows/deploy.test.bicep | 24 +++++++-------- .../virtualMachines/readme.md | 30 +++++++++---------- .../.test/default/deploy.test.bicep | 10 +++---- .../virtualHubs/.test/min/deploy.test.bicep | 4 +-- .../Microsoft.Network/virtualHubs/readme.md | 20 ++++++------- .../vpnSites/.test/default/deploy.test.bicep | 8 ++--- .../vpnSites/.test/min/deploy.test.bicep | 4 +-- modules/Microsoft.Network/vpnSites/readme.md | 16 +++++----- .../servers/.test/admin/deploy.test.bicep | 4 +-- .../servers/.test/default/deploy.test.bicep | 18 +++++------ modules/Microsoft.Sql/servers/readme.md | 16 +++++----- 22 files changed, 114 insertions(+), 114 deletions(-) rename modules/Microsoft.Compute/virtualMachines/.test/{linux.autmg => linux.atmg}/dependencies.bicep (100%) rename modules/Microsoft.Compute/virtualMachines/.test/{linux.autmg => linux.atmg}/deploy.test.bicep (96%) rename modules/Microsoft.Compute/virtualMachines/.test/{windows.autmg => windows.atmg}/dependencies.bicep (100%) rename modules/Microsoft.Compute/virtualMachines/.test/{windows.autmg => windows.atmg}/deploy.test.bicep (97%) diff --git a/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep index a146384c88..743f2fffcc 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep @@ -28,7 +28,7 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-<>-msi-${serviceShort}-01' + managedIdentityName: 'dep-<>-msi-${serviceShort}' } } @@ -39,9 +39,9 @@ module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnost name: '${uniqueString(deployment().name, location)}-diagDep' params: { storageAccountName: 'dep<>azsa${serviceShort}01' - logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}-01' - eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}-01' - eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}-01' + logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}' + eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}' + eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}' location: location } } @@ -54,7 +54,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { - name: '<>az${serviceShort}001' + name: '<>az${serviceShort}' lock: 'CanNotDelete' skuName: 'S0' roleAssignments: [ diff --git a/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep index 954763f0db..c9d9a83be6 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep @@ -28,7 +28,7 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-<>-msi-${serviceShort}-01' + managedIdentityName: 'dep-<>-msi-${serviceShort}' } } @@ -39,9 +39,9 @@ module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnost name: '${uniqueString(deployment().name, location)}-diagDep' params: { storageAccountName: 'dep<>azsa${serviceShort}01' - logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}-01' - eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}-01' - eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}-01' + logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}' + eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}' + eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}' location: location } } @@ -54,7 +54,7 @@ module testDeployment '../../deploy.bicep' = { scope: az.resourceGroup(resourceGroupName) name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { - name: '<>az${serviceShort}001' + name: '<>az${serviceShort}' lock: 'CanNotDelete' skuName: 'S0' skuCapacity: 1 diff --git a/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep index b17f9f5a56..9e8d826914 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep @@ -32,6 +32,6 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { - name: '<>az${serviceShort}001' + name: '<>az${serviceShort}' } } diff --git a/modules/Microsoft.AnalysisServices/servers/readme.md b/modules/Microsoft.AnalysisServices/servers/readme.md index cb790bff5f..9aff07ebe2 100644 --- a/modules/Microsoft.AnalysisServices/servers/readme.md +++ b/modules/Microsoft.AnalysisServices/servers/readme.md @@ -177,7 +177,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-aspar' params: { // Required parameters - name: '<>azaspar001' + name: '<>azaspar' // Non-required parameters diagnosticEventHubAuthorizationRuleId: '' diagnosticEventHubName: '' @@ -212,7 +212,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "<>azaspar001" + "value": "<>azaspar" }, // Non-required parameters "diagnosticEventHubAuthorizationRuleId": { @@ -264,7 +264,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-asmax' params: { // Required parameters - name: '<>azasmax001' + name: '<>azasmax' // Non-required parameters diagnosticEventHubAuthorizationRuleId: '' diagnosticEventHubName: '' @@ -317,7 +317,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "<>azasmax001" + "value": "<>azasmax" }, // Non-required parameters "diagnosticEventHubAuthorizationRuleId": { @@ -394,7 +394,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { name: '${uniqueString(deployment().name)}-test-asmin' params: { - name: '<>azasmin001' + name: '<>azasmin' } } ``` @@ -412,7 +412,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "<>azasmin001" + "value": "<>azasmin" } } } diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux.autmg/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/dependencies.bicep similarity index 100% rename from modules/Microsoft.Compute/virtualMachines/.test/linux.autmg/dependencies.bicep rename to modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/dependencies.bicep diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux.autmg/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/deploy.test.bicep similarity index 96% rename from modules/Microsoft.Compute/virtualMachines/.test/linux.autmg/deploy.test.bicep rename to modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/deploy.test.bicep index fbae313b29..7ed2a1f70c 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux.autmg/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/deploy.test.bicep @@ -11,7 +11,7 @@ param resourceGroupName string = '${serviceShort}-ms.compute.virtualMachines-rg' param location string = deployment().location @description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'vmlinautmg' +param serviceShort string = 'vmlinatmg' // =========== // // Deployments // @@ -28,7 +28,7 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - virtualNetworkName: 'dep-<>-vnet-${serviceShort}-01' + virtualNetworkName: 'dep-<>-vnet-${serviceShort}' } } @@ -40,7 +40,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { - name: '<>${serviceShort}001' + name: '<>${serviceShort}' adminUsername: 'localAdminUser' imageReference: { offer: 'UbuntuServer' diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux.min/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux.min/deploy.test.bicep index 87ddc70ce5..b66af80516 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux.min/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux.min/deploy.test.bicep @@ -28,7 +28,7 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - virtualNetworkName: 'dep-<>-vnet-${serviceShort}-01' + virtualNetworkName: 'dep-<>-vnet-${serviceShort}' } } @@ -40,7 +40,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { - name: '<>${serviceShort}001' + name: '<>${serviceShort}' adminUsername: 'localAdminUser' imageReference: { offer: 'UbuntuServer' diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep index da4905db6e..a5abb30434 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep @@ -28,14 +28,14 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - virtualNetworkName: 'dep-<>-vnet-${serviceShort}-01' - applicationSecurityGroupName: 'adp-<>-asg-${serviceShort}-01' - managedIdentityName: 'dep-<>-msi-${serviceShort}-01' - keyVaultName: 'dep-<>-kv-${serviceShort}-01' - loadBalancerName: 'dep-<>-lb-${serviceShort}-01' - recoveryServicesVaultName: 'dep-<>-rsv-${serviceShort}-01' + virtualNetworkName: 'dep-<>-vnet-${serviceShort}' + applicationSecurityGroupName: 'adp-<>-asg-${serviceShort}' + managedIdentityName: 'dep-<>-msi-${serviceShort}' + keyVaultName: 'dep-<>-kv-${serviceShort}' + loadBalancerName: 'dep-<>-lb-${serviceShort}' + recoveryServicesVaultName: 'dep-<>-rsv-${serviceShort}' storageAccountName: 'dep<>azsa${serviceShort}01' - storageUploadDeploymentScriptName: 'dep-<>-sads-${serviceShort}-01' + storageUploadDeploymentScriptName: 'dep-<>-sads-${serviceShort}' } } @@ -46,9 +46,9 @@ module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnost name: '${uniqueString(deployment().name, location)}-diagDep' params: { storageAccountName: 'dep<>azsa${serviceShort}01' - logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}-01' - eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}-01' - eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}-01' + logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}' + eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}' + eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}' location: location } } @@ -61,7 +61,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { - name: '<>${serviceShort}001' + name: '<>${serviceShort}' adminUsername: 'localAdminUser' imageReference: { offer: 'UbuntuServer' diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.autmg/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/dependencies.bicep similarity index 100% rename from modules/Microsoft.Compute/virtualMachines/.test/windows.autmg/dependencies.bicep rename to modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/dependencies.bicep diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.autmg/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/deploy.test.bicep similarity index 97% rename from modules/Microsoft.Compute/virtualMachines/.test/windows.autmg/deploy.test.bicep rename to modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/deploy.test.bicep index a53a031ce5..ab68b262bd 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows.autmg/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/deploy.test.bicep @@ -32,7 +32,7 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - virtualNetworkName: 'dep-<>-vnet-${serviceShort}-01' + virtualNetworkName: 'dep-<>-vnet-${serviceShort}' } } @@ -44,7 +44,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { - name: '<>${serviceShort}001' + name: '<>${serviceShort}' adminUsername: 'localAdminUser' imageReference: { offer: 'WindowsServer' diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep index 24af05a605..26a0cecc59 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep @@ -32,7 +32,7 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - virtualNetworkName: 'dep-<>-vnet-${serviceShort}-01' + virtualNetworkName: 'dep-<>-vnet-${serviceShort}' } } @@ -43,7 +43,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { - name: '<>${serviceShort}001' + name: '<>${serviceShort}' adminUsername: 'localAdminUser' imageReference: { offer: 'WindowsServer' diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep index 2d26b6c249..1ff4b7675b 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep @@ -32,15 +32,15 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - virtualNetworkName: 'dep-<>-vnet-${serviceShort}-01' - applicationSecurityGroupName: 'adp-<>-asg-${serviceShort}-01' - managedIdentityName: 'dep-<>-msi-${serviceShort}-01' - keyVaultName: 'dep-<>-kv-${serviceShort}-01' - loadBalancerName: 'dep-<>-lb-${serviceShort}-01' - recoveryServicesVaultName: 'dep-<>-rsv-${serviceShort}-01' + virtualNetworkName: 'dep-<>-vnet-${serviceShort}' + applicationSecurityGroupName: 'adp-<>-asg-${serviceShort}' + managedIdentityName: 'dep-<>-msi-${serviceShort}' + keyVaultName: 'dep-<>-kv-${serviceShort}' + loadBalancerName: 'dep-<>-lb-${serviceShort}' + recoveryServicesVaultName: 'dep-<>-rsv-${serviceShort}' storageAccountName: 'dep<>azsa${serviceShort}01' - storageUploadDeploymentScriptName: 'dep-<>-sads-${serviceShort}-01' - proximityPlacementGroupName: 'dep-<>-ppg-${serviceShort}-01' + storageUploadDeploymentScriptName: 'dep-<>-sads-${serviceShort}' + proximityPlacementGroupName: 'dep-<>-ppg-${serviceShort}' } } @@ -51,9 +51,9 @@ module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnost name: '${uniqueString(deployment().name, location)}-diagDep' params: { storageAccountName: 'dep<>azsa${serviceShort}01' - logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}-01' - eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}-01' - eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}-01' + logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}' + eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}' + eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}' location: location } } @@ -66,7 +66,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { - name: '<>${serviceShort}001' + name: '<>${serviceShort}' adminUsername: 'localAdminUser' imageReference: { offer: 'WindowsServer' diff --git a/modules/Microsoft.Compute/virtualMachines/readme.md b/modules/Microsoft.Compute/virtualMachines/readme.md index 2649e40328..fa82165f53 100644 --- a/modules/Microsoft.Compute/virtualMachines/readme.md +++ b/modules/Microsoft.Compute/virtualMachines/readme.md @@ -1156,7 +1156,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { } lock: 'CanNotDelete' monitoringWorkspaceId: '' - name: '<>vmlinpar001' + name: '<>vmlinpar' publicKeys: [ { keyData: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure' @@ -1377,7 +1377,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "value": "" }, "name": { - "value": "<>vmlinpar001" + "value": "<>vmlinpar" }, "publicKeys": { "value": [ @@ -1412,7 +1412,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = {

-

Example 2: Linux.Autmg

+

Example 2: Linux.Atmg

@@ -1420,7 +1420,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { ```bicep module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-vmlinautmg' + name: '${uniqueString(deployment().name)}-test-vmlinatmg' params: { // Required parameters adminUsername: 'localAdminUser' @@ -1455,7 +1455,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { // Non-required parameters configurationProfile: '/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction' disablePasswordAuthentication: true - name: '<>vmlinautmg001' + name: '<>vmlinatmg' publicKeys: [ { keyData: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure' @@ -1528,7 +1528,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "value": true }, "name": { - "value": "<>vmlinautmg001" + "value": "<>vmlinatmg" }, "publicKeys": { "value": [ @@ -1587,7 +1587,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { vmSize: 'Standard_B12ms' // Non-required parameters disablePasswordAuthentication: true - name: '<>vmlinmin001' + name: '<>vmlinmin' publicKeys: [ { keyData: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure' @@ -1657,7 +1657,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "value": true }, "name": { - "value": "<>vmlinmin001" + "value": "<>vmlinmin" }, "publicKeys": { "value": [ @@ -1833,7 +1833,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { } lock: 'CanNotDelete' monitoringWorkspaceId: '' - name: '<>vmwinpar001' + name: '<>vmwinpar' proximityPlacementGroupResourceId: '' roleAssignments: [ { @@ -2069,7 +2069,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "value": "" }, "name": { - "value": "<>vmwinpar001" + "value": "<>vmwinpar" }, "proximityPlacementGroupResourceId": { "value": "" @@ -2099,7 +2099,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = {

-

Example 5: Windows.Autmg

+

Example 5: Windows.Atmg

@@ -2139,7 +2139,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { // Non-required parameters adminPassword: '' configurationProfile: '/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction' - name: '<>vmwinautmg001' + name: '<>vmwinautmg' } } ``` @@ -2203,7 +2203,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "value": "/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction" }, "name": { - "value": "<>vmwinautmg001" + "value": "<>vmwinautmg" } } } @@ -2251,7 +2251,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { vmSize: 'Standard_B12ms' // Non-required parameters adminPassword: '' - name: '<>vmwinmin001' + name: '<>vmwinmin' } } ``` @@ -2312,7 +2312,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "value": "" }, "name": { - "value": "<>vmwinmin001" + "value": "<>vmwinmin" } } } diff --git a/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep b/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep index f723414c5d..546b910a32 100644 --- a/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep @@ -28,8 +28,8 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - virtualWANName: 'dep-<>-vw-${serviceShort}-001' - virtualNetworkName: 'dep-<>-vnet-${serviceShort}-001' + virtualWANName: 'dep-<>-vw-${serviceShort}' + virtualNetworkName: 'dep-<>-vnet-${serviceShort}' } } @@ -41,7 +41,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { - name: '<>-${serviceShort}-001' + name: '<>-${serviceShort}' lock: 'CanNotDelete' addressPrefix: '10.1.0.0/16' virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId @@ -56,12 +56,12 @@ module testDeployment '../../deploy.bicep' = { remoteVirtualNetworkId: resourceGroupResources.outputs.virtualNetworkResourceId routingConfiguration: { associatedRouteTable: { - id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-${serviceShort}-001/hubRouteTables/routeTable1' + id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-${serviceShort}/hubRouteTables/routeTable1' } propagatedRouteTables: { ids: [ { - id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-${serviceShort}-001/hubRouteTables/routeTable1' + id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-${serviceShort}/hubRouteTables/routeTable1' } ] labels: [ diff --git a/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep b/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep index 516060c5ec..d675a2308e 100644 --- a/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep +++ b/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep @@ -28,7 +28,7 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - virtualWANName: 'dep-<>-vw-${serviceShort}-001' + virtualWANName: 'dep-<>-vw-${serviceShort}' } } @@ -40,7 +40,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { - name: '<>-${serviceShort}-001' + name: '<>-${serviceShort}' addressPrefix: '10.0.0.0/16' virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId } diff --git a/modules/Microsoft.Network/virtualHubs/readme.md b/modules/Microsoft.Network/virtualHubs/readme.md index 8b0c07ab92..5e8ac34cf6 100644 --- a/modules/Microsoft.Network/virtualHubs/readme.md +++ b/modules/Microsoft.Network/virtualHubs/readme.md @@ -120,11 +120,11 @@ The following module usage examples are retrieved from the content of the files ```bicep module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-virtualHub-vhpar' + name: '${uniqueString(deployment().name)}-test-vhpar' params: { // Required parameters addressPrefix: '10.1.0.0/16' - name: '<>-vhpar-001' + name: '<>-vhpar' virtualWanId: '' // Non-required parameters hubRouteTables: [ @@ -138,12 +138,12 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { remoteVirtualNetworkId: '' routingConfiguration: { associatedRouteTable: { - id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-vhpar-001/hubRouteTables/routeTable1' + id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-vhpar/hubRouteTables/routeTable1' } propagatedRouteTables: { ids: [ { - id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-vhpar-001/hubRouteTables/routeTable1' + id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-vhpar/hubRouteTables/routeTable1' } ] labels: [ @@ -175,7 +175,7 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { "value": "10.1.0.0/16" }, "name": { - "value": "<>-vhpar-001" + "value": "<>-vhpar" }, "virtualWanId": { "value": "" @@ -195,12 +195,12 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { "remoteVirtualNetworkId": "", "routingConfiguration": { "associatedRouteTable": { - "id": "${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-vhpar-001/hubRouteTables/routeTable1" + "id": "${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-vhpar/hubRouteTables/routeTable1" }, "propagatedRouteTables": { "ids": [ { - "id": "${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-vhpar-001/hubRouteTables/routeTable1" + "id": "${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-vhpar/hubRouteTables/routeTable1" } ], "labels": [ @@ -229,11 +229,11 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { ```bicep module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-virtualHub-vhmin' + name: '${uniqueString(deployment().name)}-test-vhmin' params: { // Required parameters addressPrefix: '10.0.0.0/16' - name: '<>-vhmin-001' + name: '<>-vhmin' virtualWanId: '' } } @@ -256,7 +256,7 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { "value": "10.0.0.0/16" }, "name": { - "value": "<>-vhmin-001" + "value": "<>-vhmin" }, "virtualWanId": { "value": "" diff --git a/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep b/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep index 0c86135e59..e6d8702ec6 100644 --- a/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep @@ -28,8 +28,8 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-<>-msi-${serviceShort}-01' - virtualWANName: 'dep-<>-vw-${serviceShort}-001' + managedIdentityName: 'dep-<>-msi-${serviceShort}' + virtualWANName: 'dep-<>-vw-${serviceShort}' } } @@ -41,7 +41,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { - name: '<>-${serviceShort}-001' + name: '<>-${serviceShort}' virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId lock: 'CanNotDelete' tags: { @@ -53,7 +53,7 @@ module testDeployment '../../deploy.bicep' = { } vpnSiteLinks: [ { - name: '<>-vSite-${serviceShort}-001' + name: '<>-vSite-${serviceShort}' properties: { bgpProperties: { asn: 65010 diff --git a/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep b/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep index d0d3b9b020..55dc71e959 100644 --- a/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep @@ -28,7 +28,7 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - virtualWANName: 'dep-<>-vw-${serviceShort}-001' + virtualWANName: 'dep-<>-vw-${serviceShort}' } } @@ -40,7 +40,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { - name: '<>-${serviceShort}-001' + name: '<>-${serviceShort}' virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId addressPrefixes: [ '10.0.0.0/16' diff --git a/modules/Microsoft.Network/vpnSites/readme.md b/modules/Microsoft.Network/vpnSites/readme.md index 31284c5f5f..8dea4db2c2 100644 --- a/modules/Microsoft.Network/vpnSites/readme.md +++ b/modules/Microsoft.Network/vpnSites/readme.md @@ -339,10 +339,10 @@ The following module usage examples are retrieved from the content of the files ```bicep module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-vpnSites-vsipar' + name: '${uniqueString(deployment().name)}-test-vsipar' params: { // Required parameters - name: '<>-vsipar-001' + name: '<>-vsipar' virtualWanId: '' // Non-required parameters deviceProperties: { @@ -370,7 +370,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { } vpnSiteLinks: [ { - name: '<>-vSite-vsipar-001' + name: '<>-vSite-vsipar' properties: { bgpProperties: { asn: 65010 @@ -416,7 +416,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "<>-vsipar-001" + "value": "<>-vsipar" }, "virtualWanId": { "value": "" @@ -458,7 +458,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { "vpnSiteLinks": { "value": [ { - "name": "<>-vSite-vsipar-001", + "name": "<>-vSite-vsipar", "properties": { "bgpProperties": { "asn": 65010, @@ -502,10 +502,10 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { ```bicep module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-vpnSites-vsimin' + name: '${uniqueString(deployment().name)}-test-vsimin' params: { // Required parameters - name: '<>-vsimin-001' + name: '<>-vsimin' virtualWanId: '' // Non-required parameters addressPrefixes: [ @@ -530,7 +530,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "<>-vsimin-001" + "value": "<>-vsimin" }, "virtualWanId": { "value": "" diff --git a/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep b/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep index cf8b39a004..58e0fe45b9 100644 --- a/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep +++ b/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep @@ -28,7 +28,7 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-<>-msi-${serviceShort}-01' + managedIdentityName: 'dep-<>-msi-${serviceShort}' } } @@ -40,7 +40,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { - name: '<>-${serviceShort}-001' + name: '<>-${serviceShort}' administrators: { azureADOnlyAuthentication: true login: 'myspn' diff --git a/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep b/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep index a4a5a40f7f..24852b52d3 100644 --- a/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep @@ -28,17 +28,17 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-paramNested' params: { - managedIdentityName: 'dep-<>-msi-${serviceShort}-01' - virtualNetworkName: 'adp-<>-vnet-${serviceShort}-01' - deploymentScriptName: 'adp-<>-ds-kv-${serviceShort}-01' - keyVaultName: 'adp-<>-kv-${serviceShort}-01' + managedIdentityName: 'dep-<>-msi-${serviceShort}' + virtualNetworkName: 'adp-<>-vnet-${serviceShort}' + deploymentScriptName: 'adp-<>-ds-kv-${serviceShort}' + keyVaultName: 'adp-<>-kv-${serviceShort}' passwordSecretName: 'adminPassword' location: location } } resource keyVaultReference 'Microsoft.KeyVault/vaults@2021-10-01' existing = { - name: 'adp-<>-kv-${serviceShort}-01' + name: 'adp-<>-kv-${serviceShort}' scope: resourceGroup } @@ -49,9 +49,9 @@ module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnost name: '${uniqueString(deployment().name, location)}-diagDep' params: { storageAccountName: 'dep<>azsa${serviceShort}01' - logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}-01' - eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}-01' - eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}-01' + logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}' + eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}' + eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}' location: location } } @@ -64,7 +64,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { - name: '<>-${serviceShort}-001' + name: '<>-${serviceShort}' lock: 'CanNotDelete' administratorLogin: 'adminUserName' administratorLoginPassword: keyVaultReference.getSecret(resourceGroupResources.outputs.secretName) diff --git a/modules/Microsoft.Sql/servers/readme.md b/modules/Microsoft.Sql/servers/readme.md index e1101e04ea..48c5f65ccd 100644 --- a/modules/Microsoft.Sql/servers/readme.md +++ b/modules/Microsoft.Sql/servers/readme.md @@ -339,10 +339,10 @@ The following module usage examples are retrieved from the content of the files ```bicep module servers './Microsoft.Sql/servers/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-servers-sqladmin' + name: '${uniqueString(deployment().name)}-test-sqladmin' params: { // Required parameters - name: '<>-sqladmin-001' + name: '<>-sqladmin' // Non-required parameters administrators: { azureADOnlyAuthentication: true @@ -369,7 +369,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "<>-sqladmin-001" + "value": "<>-sqladmin" }, // Non-required parameters "administrators": { @@ -396,10 +396,10 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { ```bicep module servers './Microsoft.Sql/servers/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-servers-sqlpar' + name: '${uniqueString(deployment().name)}-test-sqlpar' params: { // Required parameters - name: '<>-sqlpar-001' + name: '<>-sqlpar' // Non-required parameters administratorLogin: 'adminUserName' administratorLoginPassword: '' @@ -453,7 +453,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { ] systemAssignedIdentity: true userAssignedIdentities: { - '${resourceGroupResources.outputs.managedIdentitResourceId}': '<${resourceGroupResources.outputs.managedIdentitResourceId}>' + '${resourceGroupResources.outputs.managedIdentitResourceId}': {} } vulnerabilityAssessmentsObj: { emailSubscriptionAdmins: true @@ -483,7 +483,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "<>-sqlpar-001" + "value": "<>-sqlpar" }, // Non-required parameters "administratorLogin": { @@ -561,7 +561,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { }, "userAssignedIdentities": { "value": { - "${resourceGroupResources.outputs.managedIdentitResourceId}": "<${resourceGroupResources.outputs.managedIdentitResourceId}>" + "${resourceGroupResources.outputs.managedIdentitResourceId}": {} } }, "vulnerabilityAssessmentsObj": { From f2646610a7e519c50c14c23d664d300129e219cc Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 07:58:44 +0200 Subject: [PATCH 208/274] Renamed RG --- .../servers/.test/default/deploy.test.bicep | 2 +- .../servers/.test/max/deploy.test.bicep | 2 +- .../servers/.test/min/deploy.test.bicep | 2 +- .../virtualMachines/.test/linux.atmg/deploy.test.bicep | 2 +- .../virtualMachines/.test/linux.min/deploy.test.bicep | 2 +- .../virtualMachines/.test/linux/deploy.test.bicep | 2 +- .../virtualMachines/.test/windows.atmg/deploy.test.bicep | 2 +- .../virtualMachines/.test/windows.min/deploy.test.bicep | 2 +- .../virtualMachines/.test/windows/deploy.test.bicep | 2 +- .../virtualHubs/.test/default/deploy.test.bicep | 2 +- .../Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep | 2 +- .../Microsoft.Network/vpnSites/.test/default/deploy.test.bicep | 2 +- modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep | 2 +- modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep | 2 +- modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep | 2 +- 15 files changed, 15 insertions(+), 15 deletions(-) diff --git a/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep index 743f2fffcc..4d89192cb5 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep @@ -5,7 +5,7 @@ targetScope = 'subscription' // ========== // @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.analysisservices.servers-rg' +param resourceGroupName string = 'ms.analysisservices.servers-${serviceShort}-test-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location diff --git a/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep index c9d9a83be6..8750daff55 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep @@ -5,7 +5,7 @@ targetScope = 'subscription' // ========== // @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.analysisservices.servers-rg' +param resourceGroupName string = 'ms.analysisservices.servers-${serviceShort}-test-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location diff --git a/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep index 9e8d826914..2637f35f5e 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep @@ -5,7 +5,7 @@ targetScope = 'subscription' // ========== // @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.analysisservices.servers-rg' +param resourceGroupName string = 'ms.analysisservices.servers-${serviceShort}-test-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/deploy.test.bicep index 7ed2a1f70c..069a48704d 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/deploy.test.bicep @@ -5,7 +5,7 @@ targetScope = 'subscription' // ========== // @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.compute.virtualMachines-rg' +param resourceGroupName string = 'ms.compute.virtualMachines-${serviceShort}-test-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux.min/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux.min/deploy.test.bicep index b66af80516..5761fffd6a 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux.min/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux.min/deploy.test.bicep @@ -5,7 +5,7 @@ targetScope = 'subscription' // ========== // @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.compute.virtualMachines-rg' +param resourceGroupName string = 'ms.compute.virtualMachines-${serviceShort}-test-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep index a5abb30434..209c2ac269 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep @@ -5,7 +5,7 @@ targetScope = 'subscription' // ========== // @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.compute.virtualMachines-rg' +param resourceGroupName string = 'ms.compute.virtualMachines-${serviceShort}-test-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/deploy.test.bicep index ab68b262bd..a988004530 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/deploy.test.bicep @@ -5,7 +5,7 @@ targetScope = 'subscription' // ========== // @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.compute.virtualMachines-rg' +param resourceGroupName string = 'ms.compute.virtualMachines-${serviceShort}-test-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep index 26a0cecc59..3d18c263b3 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep @@ -5,7 +5,7 @@ targetScope = 'subscription' // ========== // @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.compute.virtualMachines-rg' +param resourceGroupName string = 'ms.compute.virtualMachines-${serviceShort}-test-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep index 1ff4b7675b..80d17fc376 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep @@ -5,7 +5,7 @@ targetScope = 'subscription' // ========== // @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.compute.virtualMachines-rg' +param resourceGroupName string = 'ms.compute.virtualMachines-${serviceShort}-test-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location diff --git a/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep b/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep index 546b910a32..cb9d16afb5 100644 --- a/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep @@ -5,7 +5,7 @@ targetScope = 'subscription' // ========== // @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.network.virtualHub-rg' +param resourceGroupName string = 'ms.network.virtualHub-${serviceShort}-test-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location diff --git a/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep b/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep index d675a2308e..0918d7ace3 100644 --- a/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep +++ b/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep @@ -5,7 +5,7 @@ targetScope = 'subscription' // ========== // @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.network.virtualHub-rg' +param resourceGroupName string = 'ms.network.virtualHub-${serviceShort}-test-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location diff --git a/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep b/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep index e6d8702ec6..a8096cf753 100644 --- a/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep @@ -5,7 +5,7 @@ targetScope = 'subscription' // ========== // @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.network.vpnSites-rg' +param resourceGroupName string = 'ms.network.vpnSites-${serviceShort}-test-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location diff --git a/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep b/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep index 55dc71e959..0b66aff8c4 100644 --- a/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep @@ -5,7 +5,7 @@ targetScope = 'subscription' // ========== // @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.network.vpnSites-rg' +param resourceGroupName string = 'ms.network.vpnSites-${serviceShort}-test-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location diff --git a/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep b/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep index 58e0fe45b9..ae8b078ec4 100644 --- a/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep +++ b/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep @@ -5,7 +5,7 @@ targetScope = 'subscription' // ========== // @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.sql.servers-rg' +param resourceGroupName string = 'ms.sql.servers-${serviceShort}-test-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location diff --git a/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep b/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep index 24852b52d3..30af946a03 100644 --- a/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep @@ -5,7 +5,7 @@ targetScope = 'subscription' // ========== // @description('Optional. The name of the resource group to deploy for a testing purposes') @maxLength(90) -param resourceGroupName string = '${serviceShort}-ms.sql.servers-rg' +param resourceGroupName string = 'ms.sql.servers-${serviceShort}-test-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location From 9f4e7f1a9398ad72bcb67b233717d1e21ee09abc Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 10:06:45 +0200 Subject: [PATCH 209/274] Fixed VM dependencies --- .../virtualMachines/.test/linux/dependencies.bicep | 6 ++++++ .../virtualMachines/.test/windows/dependencies.bicep | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep index 9497d15fd3..5e5f9f5264 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep @@ -79,6 +79,12 @@ resource loadBalancer 'Microsoft.Network/loadBalancers@2022-01-01' = { resource recoveryServicesVault 'Microsoft.RecoveryServices/vaults@2022-04-01' = { name: recoveryServicesVaultName location: location + sku: { + name: 'RS0' + tier: 'Standard' + } + properties: { + } resource backupPolicy 'backupPolicies@2022-03-01' = { name: backupPolicyName diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep index da2e9e1dfd..05305edff1 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep @@ -82,6 +82,12 @@ resource loadBalancer 'Microsoft.Network/loadBalancers@2022-01-01' = { resource recoveryServicesVault 'Microsoft.RecoveryServices/vaults@2022-04-01' = { name: recoveryServicesVaultName location: location + sku: { + name: 'RS0' + tier: 'Standard' + } + properties: { + } resource backupPolicy 'backupPolicies@2022-03-01' = { name: backupPolicyName From 63aa398c1938782f46165d8da370444334201212 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 10:23:09 +0200 Subject: [PATCH 210/274] Naming update --- .../servers/.test/default/deploy.test.bicep | 2 +- .../virtualMachines/.test/linux/deploy.test.bicep | 2 +- .../virtualMachines/.test/windows/deploy.test.bicep | 2 +- .../virtualHubs/.test/default/deploy.test.bicep | 2 +- .../Microsoft.Network/vpnSites/.test/default/deploy.test.bicep | 2 +- modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep index 4d89192cb5..f29adcd961 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep @@ -11,7 +11,7 @@ param resourceGroupName string = 'ms.analysisservices.servers-${serviceShort}-te param location string = deployment().location @description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'aspar' +param serviceShort string = 'asdef' // =========== // // Deployments // diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep index 209c2ac269..4ab15cb9be 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep @@ -11,7 +11,7 @@ param resourceGroupName string = 'ms.compute.virtualMachines-${serviceShort}-tes param location string = deployment().location @description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'vmlinpar' +param serviceShort string = 'vmlindef' // =========== // // Deployments // diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep index 80d17fc376..735c98170e 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep @@ -11,7 +11,7 @@ param resourceGroupName string = 'ms.compute.virtualMachines-${serviceShort}-tes param location string = deployment().location @description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'vmwinpar' +param serviceShort string = 'vmwindef' @description('Optional. The password to leverage for the login.') @secure() diff --git a/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep b/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep index cb9d16afb5..a8ad9c14be 100644 --- a/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep @@ -11,7 +11,7 @@ param resourceGroupName string = 'ms.network.virtualHub-${serviceShort}-test-rg' param location string = deployment().location @description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'vhpar' +param serviceShort string = 'vhdef' // =========== // // Deployments // diff --git a/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep b/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep index a8096cf753..c1a5e7aaca 100644 --- a/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep @@ -11,7 +11,7 @@ param resourceGroupName string = 'ms.network.vpnSites-${serviceShort}-test-rg' param location string = deployment().location @description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'vsipar' +param serviceShort string = 'vsidef' // =========== // // Deployments // diff --git a/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep b/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep index 30af946a03..5ad1cab6ab 100644 --- a/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep @@ -11,7 +11,7 @@ param resourceGroupName string = 'ms.sql.servers-${serviceShort}-test-rg' param location string = deployment().location @description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'sqlpar' +param serviceShort string = 'sqldef' // =========== // // Deployments // From b1cb94ae9777f5802b93cd1976c29c1c7134cfd5 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 10:37:09 +0200 Subject: [PATCH 211/274] Updated VM dependencies --- .../.test/linux/dependencies.bicep | 85 ++++++++++++++++++- .../.test/windows/dependencies.bicep | 85 ++++++++++++++++++- 2 files changed, 168 insertions(+), 2 deletions(-) diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep index 5e5f9f5264..be07c122a0 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep @@ -51,6 +51,7 @@ resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { resource applicationSecurityGroup 'Microsoft.Network/applicationSecurityGroups@2022-01-01' = { name: applicationSecurityGroupName + location: location } resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { @@ -60,6 +61,7 @@ resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018- resource loadBalancer 'Microsoft.Network/loadBalancers@2022-01-01' = { name: loadBalancerName + location: location properties: { frontendIPConfigurations: [ { @@ -90,6 +92,81 @@ resource recoveryServicesVault 'Microsoft.RecoveryServices/vaults@2022-04-01' = name: backupPolicyName properties: { backupManagementType: 'AzureIaasVM' + instantRPDetails: {} + schedulePolicy: { + schedulePolicyType: 'SimpleSchedulePolicy' + scheduleRunFrequency: 'Weekly' + scheduleRunTimes: [ + '2019-11-07T07:00:00Z' + ] + scheduleWeeklyFrequency: 0 + } + retentionPolicy: { + retentionPolicyType: 'LongTermRetentionPolicy' + dailySchedule: { + retentionTimes: [ + '2019-11-07T07:00:00Z' + ] + retentionDuration: { + count: 180 + durationType: 'Days' + } + } + weeklySchedule: { + daysOfTheWeek: [ + 'Sunday' + ] + retentionTimes: [ + '2019-11-07T07:00:00Z' + ] + retentionDuration: { + count: 12 + durationType: 'Weeks' + } + } + monthlySchedule: { + retentionScheduleFormatType: 'Weekly' + retentionScheduleWeekly: { + daysOfTheWeek: [ + 'Sunday' + ] + weeksOfTheMonth: [ + 'First' + ] + } + retentionTimes: [ + '2019-11-07T07:00:00Z' + ] + retentionDuration: { + count: 60 + durationType: 'Months' + } + } + yearlySchedule: { + retentionScheduleFormatType: 'Weekly' + monthsOfYear: [ + 'January' + ] + retentionScheduleWeekly: { + daysOfTheWeek: [ + 'Sunday' + ] + weeksOfTheMonth: [ + 'First' + ] + } + retentionTimes: [ + '2019-11-07T07:00:00Z' + ] + retentionDuration: { + count: 10 + durationType: 'Years' + } + } + } + instantRpRetentionRangeInDays: 2 + timeZone: 'UTC' + protectedItemsCount: 0 } } } @@ -104,7 +181,7 @@ resource keyVault 'Microsoft.KeyVault/vaults@2022-07-01' = { } tenantId: tenant().tenantId enabledForTemplateDeployment: true - enablePurgeProtection: false + enablePurgeProtection: null } resource key 'keys@2022-07-01' = { @@ -135,6 +212,12 @@ resource storageUpload 'Microsoft.Resources/deploymentScripts@2020-10-01' = { name: storageUploadDeploymentScriptName location: location kind: 'AzurePowerShell' + identity: { + type: 'UserAssigned' + userAssignedIdentities: { + '${managedIdentity.id}': {} + } + } properties: { azPowerShellVersion: '3.0' retentionInterval: 'P1D' diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep index 05305edff1..4a133a3ced 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep @@ -54,6 +54,7 @@ resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { resource applicationSecurityGroup 'Microsoft.Network/applicationSecurityGroups@2022-01-01' = { name: applicationSecurityGroupName + location: location } resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { @@ -63,6 +64,7 @@ resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018- resource loadBalancer 'Microsoft.Network/loadBalancers@2022-01-01' = { name: loadBalancerName + location: location properties: { frontendIPConfigurations: [ { @@ -93,6 +95,81 @@ resource recoveryServicesVault 'Microsoft.RecoveryServices/vaults@2022-04-01' = name: backupPolicyName properties: { backupManagementType: 'AzureIaasVM' + instantRPDetails: {} + schedulePolicy: { + schedulePolicyType: 'SimpleSchedulePolicy' + scheduleRunFrequency: 'Weekly' + scheduleRunTimes: [ + '2019-11-07T07:00:00Z' + ] + scheduleWeeklyFrequency: 0 + } + retentionPolicy: { + retentionPolicyType: 'LongTermRetentionPolicy' + dailySchedule: { + retentionTimes: [ + '2019-11-07T07:00:00Z' + ] + retentionDuration: { + count: 180 + durationType: 'Days' + } + } + weeklySchedule: { + daysOfTheWeek: [ + 'Sunday' + ] + retentionTimes: [ + '2019-11-07T07:00:00Z' + ] + retentionDuration: { + count: 12 + durationType: 'Weeks' + } + } + monthlySchedule: { + retentionScheduleFormatType: 'Weekly' + retentionScheduleWeekly: { + daysOfTheWeek: [ + 'Sunday' + ] + weeksOfTheMonth: [ + 'First' + ] + } + retentionTimes: [ + '2019-11-07T07:00:00Z' + ] + retentionDuration: { + count: 60 + durationType: 'Months' + } + } + yearlySchedule: { + retentionScheduleFormatType: 'Weekly' + monthsOfYear: [ + 'January' + ] + retentionScheduleWeekly: { + daysOfTheWeek: [ + 'Sunday' + ] + weeksOfTheMonth: [ + 'First' + ] + } + retentionTimes: [ + '2019-11-07T07:00:00Z' + ] + retentionDuration: { + count: 10 + durationType: 'Years' + } + } + } + instantRpRetentionRangeInDays: 2 + timeZone: 'UTC' + protectedItemsCount: 0 } } } @@ -107,7 +184,7 @@ resource keyVault 'Microsoft.KeyVault/vaults@2022-07-01' = { } tenantId: tenant().tenantId enabledForTemplateDeployment: true - enablePurgeProtection: false + enablePurgeProtection: null } resource key 'keys@2022-07-01' = { @@ -138,6 +215,12 @@ resource storageUpload 'Microsoft.Resources/deploymentScripts@2020-10-01' = { name: storageUploadDeploymentScriptName location: location kind: 'AzurePowerShell' + identity: { + type: 'UserAssigned' + userAssignedIdentities: { + '${managedIdentity.id}': {} + } + } properties: { azPowerShellVersion: '3.0' retentionInterval: 'P1D' From 59902ce30cd94082a59245b6323733a4cc6a0344 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 10:40:01 +0200 Subject: [PATCH 212/274] Updated docs --- modules/Microsoft.AnalysisServices/servers/readme.md | 4 ++-- modules/Microsoft.Compute/virtualMachines/readme.md | 12 ++++++------ modules/Microsoft.Network/virtualHubs/readme.md | 4 ++-- modules/Microsoft.Network/vpnSites/readme.md | 6 +++--- modules/Microsoft.Sql/servers/readme.md | 4 ++-- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/modules/Microsoft.AnalysisServices/servers/readme.md b/modules/Microsoft.AnalysisServices/servers/readme.md index 9aff07ebe2..c9e246bccf 100644 --- a/modules/Microsoft.AnalysisServices/servers/readme.md +++ b/modules/Microsoft.AnalysisServices/servers/readme.md @@ -174,10 +174,10 @@ The following module usage examples are retrieved from the content of the files ```bicep module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-aspar' + name: '${uniqueString(deployment().name)}-test-asdef' params: { // Required parameters - name: '<>azaspar' + name: '<>azasdef' // Non-required parameters diagnosticEventHubAuthorizationRuleId: '' diagnosticEventHubName: '' diff --git a/modules/Microsoft.Compute/virtualMachines/readme.md b/modules/Microsoft.Compute/virtualMachines/readme.md index fa82165f53..5ffc3b02a5 100644 --- a/modules/Microsoft.Compute/virtualMachines/readme.md +++ b/modules/Microsoft.Compute/virtualMachines/readme.md @@ -1023,7 +1023,7 @@ The following module usage examples are retrieved from the content of the files ```bicep module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-vmlinpar' + name: '${uniqueString(deployment().name)}-test-vmlindef' params: { // Required parameters adminUsername: 'localAdminUser' @@ -1156,7 +1156,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { } lock: 'CanNotDelete' monitoringWorkspaceId: '' - name: '<>vmlinpar' + name: '<>vmlindef' publicKeys: [ { keyData: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure' @@ -1377,7 +1377,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "value": "" }, "name": { - "value": "<>vmlinpar" + "value": "<>vmlindef" }, "publicKeys": { "value": [ @@ -1682,7 +1682,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { ```bicep module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-vmwinpar' + name: '${uniqueString(deployment().name)}-test-vmwindef' params: { // Required parameters adminUsername: 'localAdminUser' @@ -1833,7 +1833,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { } lock: 'CanNotDelete' monitoringWorkspaceId: '' - name: '<>vmwinpar' + name: '<>vmwindef' proximityPlacementGroupResourceId: '' roleAssignments: [ { @@ -2069,7 +2069,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "value": "" }, "name": { - "value": "<>vmwinpar" + "value": "<>vmwindef" }, "proximityPlacementGroupResourceId": { "value": "" diff --git a/modules/Microsoft.Network/virtualHubs/readme.md b/modules/Microsoft.Network/virtualHubs/readme.md index 5e8ac34cf6..0fddbbd283 100644 --- a/modules/Microsoft.Network/virtualHubs/readme.md +++ b/modules/Microsoft.Network/virtualHubs/readme.md @@ -120,11 +120,11 @@ The following module usage examples are retrieved from the content of the files ```bicep module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-vhpar' + name: '${uniqueString(deployment().name)}-test-vhdef' params: { // Required parameters addressPrefix: '10.1.0.0/16' - name: '<>-vhpar' + name: '<>-vhdef' virtualWanId: '' // Non-required parameters hubRouteTables: [ diff --git a/modules/Microsoft.Network/vpnSites/readme.md b/modules/Microsoft.Network/vpnSites/readme.md index 8dea4db2c2..70cb568687 100644 --- a/modules/Microsoft.Network/vpnSites/readme.md +++ b/modules/Microsoft.Network/vpnSites/readme.md @@ -339,10 +339,10 @@ The following module usage examples are retrieved from the content of the files ```bicep module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-vsipar' + name: '${uniqueString(deployment().name)}-test-vsidef' params: { // Required parameters - name: '<>-vsipar' + name: '<>-vsidef' virtualWanId: '' // Non-required parameters deviceProperties: { @@ -370,7 +370,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { } vpnSiteLinks: [ { - name: '<>-vSite-vsipar' + name: '<>-vSite-vsidef' properties: { bgpProperties: { asn: 65010 diff --git a/modules/Microsoft.Sql/servers/readme.md b/modules/Microsoft.Sql/servers/readme.md index 48c5f65ccd..4449351290 100644 --- a/modules/Microsoft.Sql/servers/readme.md +++ b/modules/Microsoft.Sql/servers/readme.md @@ -396,10 +396,10 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { ```bicep module servers './Microsoft.Sql/servers/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-sqlpar' + name: '${uniqueString(deployment().name)}-test-sqldef' params: { // Required parameters - name: '<>-sqlpar' + name: '<>-sqldef' // Non-required parameters administratorLogin: 'adminUserName' administratorLoginPassword: '' From 9d885e41c1f13cf847a90ba0a7e118242bf3cd1f Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 11:07:58 +0200 Subject: [PATCH 213/274] Added missing role assignment --- .../.test/linux/dependencies.bicep | 18 +++++++++++++++++- .../.test/windows/dependencies.bicep | 14 ++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep index be07c122a0..a5f3f8ea6a 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep @@ -59,9 +59,20 @@ resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018- location: location } +resource msiRoleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = { + name: 'msi-${managedIdentityName}-Subscription-Contributor-RoleAssignment' + properties: { + principalId: managedIdentity.properties.principalId + roleDefinitionId: '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' // Contributor + } +} + resource loadBalancer 'Microsoft.Network/loadBalancers@2022-01-01' = { name: loadBalancerName location: location + sku: { + name: 'Standard' + } properties: { frontendIPConfigurations: [ { @@ -95,7 +106,7 @@ resource recoveryServicesVault 'Microsoft.RecoveryServices/vaults@2022-04-01' = instantRPDetails: {} schedulePolicy: { schedulePolicyType: 'SimpleSchedulePolicy' - scheduleRunFrequency: 'Weekly' + scheduleRunFrequency: 'Daily' scheduleRunTimes: [ '2019-11-07T07:00:00Z' ] @@ -182,6 +193,8 @@ resource keyVault 'Microsoft.KeyVault/vaults@2022-07-01' = { tenantId: tenant().tenantId enabledForTemplateDeployment: true enablePurgeProtection: null + accessPolicies: [ + ] } resource key 'keys@2022-07-01' = { @@ -237,6 +250,9 @@ resource storageUpload 'Microsoft.Resources/deploymentScripts@2020-10-01' = { Set-AzStorageBlobContent -File $file.FullName -Container $ContainerName -Context $storageAccount.Context -Force -ErrorAction 'Stop' | Out-Null ''' } + dependsOn: [ + msiRoleAssignment + ] } @description('The resource ID of the created Virtual Network Subnet.') diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep index 4a133a3ced..245faf0640 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep @@ -62,9 +62,20 @@ resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018- location: location } +resource msiRoleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = { + name: 'msi-${managedIdentityName}-Subscription-Contributor-RoleAssignment' + properties: { + principalId: managedIdentity.properties.principalId + roleDefinitionId: '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' // Contributor + } +} + resource loadBalancer 'Microsoft.Network/loadBalancers@2022-01-01' = { name: loadBalancerName location: location + sku: { + name: 'Standard' + } properties: { frontendIPConfigurations: [ { @@ -240,6 +251,9 @@ resource storageUpload 'Microsoft.Resources/deploymentScripts@2020-10-01' = { Set-AzStorageBlobContent -File $file.FullName -Container $ContainerName -Context $storageAccount.Context -Force -ErrorAction 'Stop' | Out-Null ''' } + dependsOn: [ + msiRoleAssignment + ] } resource proximityPlacementGroup 'Microsoft.Compute/proximityPlacementGroups@2022-03-01' = { From 583d3ebc36ca8fa612b63d123987401f05b3b91d Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 11:10:06 +0200 Subject: [PATCH 214/274] Small bracket fix --- utilities/tools/Test-ModuleLocally.ps1 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/utilities/tools/Test-ModuleLocally.ps1 b/utilities/tools/Test-ModuleLocally.ps1 index 2f002df39b..b0bd4af689 100644 --- a/utilities/tools/Test-ModuleLocally.ps1 +++ b/utilities/tools/Test-ModuleLocally.ps1 @@ -268,11 +268,11 @@ function Test-ModuleLocally { if ((Split-Path $moduleTestFile -LeafBase) -eq 'json') { if ($PSCmdlet.ShouldProcess(('Module [{0}] with test file [{1}]' -f $ModuleName, (Split-Path $moduleTestFile -Leaf)), 'Deploy')) { New-TemplateDeployment @functionInput -ParameterFilePath $moduleTestFile - } else { - $functionInput['TemplateFilePath'] = $moduleTestFile - if ($PSCmdlet.ShouldProcess(('Module [{0}] with test file [{1}]' -f $ModuleName, (Split-Path $moduleTestFile -Leaf)), 'Deploy')) { - New-TemplateDeployment @functionInput - } + } + } else { + $functionInput['TemplateFilePath'] = $moduleTestFile + if ($PSCmdlet.ShouldProcess(('Module [{0}] with test file [{1}]' -f $ModuleName, (Split-Path $moduleTestFile -Leaf)), 'Deploy')) { + New-TemplateDeployment @functionInput } } } From 3f22b337da216a8b6c46f82fe0b0f8a04c08fd85 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 11:15:52 +0200 Subject: [PATCH 215/274] RoleAssignment fix --- .../virtualMachines/.test/linux/dependencies.bicep | 2 +- .../virtualMachines/.test/windows/dependencies.bicep | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep index a5f3f8ea6a..47c4cbb52f 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep @@ -60,7 +60,7 @@ resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018- } resource msiRoleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = { - name: 'msi-${managedIdentityName}-Subscription-Contributor-RoleAssignment' + name: guid('msi-${managedIdentityName}-Subscription-Contributor-RoleAssignment') properties: { principalId: managedIdentity.properties.principalId roleDefinitionId: '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' // Contributor diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep index 245faf0640..c37b7fc3e4 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep @@ -63,7 +63,7 @@ resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018- } resource msiRoleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = { - name: 'msi-${managedIdentityName}-Subscription-Contributor-RoleAssignment' + name: guid('msi-${managedIdentityName}-Subscription-Contributor-RoleAssignment') properties: { principalId: managedIdentity.properties.principalId roleDefinitionId: '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' // Contributor From 64a290612c7994522e5b402b2138c75c67b6fb02 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 11:23:13 +0200 Subject: [PATCH 216/274] Further fixes --- .../virtualMachines/.test/linux/dependencies.bicep | 1 + .../virtualMachines/.test/linux/deploy.test.bicep | 4 ++-- .../virtualMachines/.test/windows/dependencies.bicep | 1 + .../virtualMachines/.test/windows/deploy.test.bicep | 4 ++-- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep index 47c4cbb52f..ede75e162e 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep @@ -64,6 +64,7 @@ resource msiRoleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' properties: { principalId: managedIdentity.properties.principalId roleDefinitionId: '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' // Contributor + principalType: 'ServicePrincipal' } } diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep index 4ab15cb9be..e8b9be6727 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep @@ -34,7 +34,7 @@ module resourceGroupResources 'dependencies.bicep' = { keyVaultName: 'dep-<>-kv-${serviceShort}' loadBalancerName: 'dep-<>-lb-${serviceShort}' recoveryServicesVaultName: 'dep-<>-rsv-${serviceShort}' - storageAccountName: 'dep<>azsa${serviceShort}01' + storageAccountName: 'dep<>sa${serviceShort}01' storageUploadDeploymentScriptName: 'dep-<>-sads-${serviceShort}' } } @@ -45,7 +45,7 @@ module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnost scope: resourceGroup name: '${uniqueString(deployment().name, location)}-diagDep' params: { - storageAccountName: 'dep<>azsa${serviceShort}01' + storageAccountName: 'dep<>diasa${serviceShort}01' logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}' eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}' eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}' diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep index c37b7fc3e4..301311277b 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep @@ -67,6 +67,7 @@ resource msiRoleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' properties: { principalId: managedIdentity.properties.principalId roleDefinitionId: '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' // Contributor + principalType: 'ServicePrincipal' } } diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep index 735c98170e..d414a4df65 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep @@ -38,7 +38,7 @@ module resourceGroupResources 'dependencies.bicep' = { keyVaultName: 'dep-<>-kv-${serviceShort}' loadBalancerName: 'dep-<>-lb-${serviceShort}' recoveryServicesVaultName: 'dep-<>-rsv-${serviceShort}' - storageAccountName: 'dep<>azsa${serviceShort}01' + storageAccountName: 'dep<>sa${serviceShort}01' storageUploadDeploymentScriptName: 'dep-<>-sads-${serviceShort}' proximityPlacementGroupName: 'dep-<>-ppg-${serviceShort}' } @@ -50,7 +50,7 @@ module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnost scope: resourceGroup name: '${uniqueString(deployment().name, location)}-diagDep' params: { - storageAccountName: 'dep<>azsa${serviceShort}01' + storageAccountName: 'dep<>diasa${serviceShort}01' logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}' eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}' eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}' From 7650310a7d38d413793cfb4af933f7b8ee963239 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 11:34:34 +0200 Subject: [PATCH 217/274] Further fixes --- .../virtualMachines/.test/linux/dependencies.bicep | 1 + .../virtualMachines/.test/windows/dependencies.bicep | 1 + 2 files changed, 2 insertions(+) diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep index ede75e162e..2fa2cc2fb4 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep @@ -201,6 +201,7 @@ resource keyVault 'Microsoft.KeyVault/vaults@2022-07-01' = { resource key 'keys@2022-07-01' = { name: 'encryptionKey' properties: { + kty: 'EC' } } } diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep index 301311277b..c37fa3a430 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep @@ -202,6 +202,7 @@ resource keyVault 'Microsoft.KeyVault/vaults@2022-07-01' = { resource key 'keys@2022-07-01' = { name: 'encryptionKey' properties: { + kty: 'EC' } } } From 05822d87d28c6e4c583c8c02b44aefa756adcdcc Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 11:35:24 +0200 Subject: [PATCH 218/274] Further fixes --- .../virtualMachines/.test/linux/dependencies.bicep | 2 +- .../virtualMachines/.test/windows/dependencies.bicep | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep index 2fa2cc2fb4..09344b6e80 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep @@ -267,7 +267,7 @@ output applicationSecurityGroupResourceId string = applicationSecurityGroup.id output managedIdentityPrincipalId string = managedIdentity.properties.principalId @description('The resource ID of the created Managed Identity.') -output managedIdentityResourceId string = managedIdentity.properties.principalId +output managedIdentityResourceId string = managedIdentity.id @description('The resource ID of the created Load Balancer Backend Pool.') output loadBalancerBackendPoolResourceId string = loadBalancer::backendPool.id diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep index c37fa3a430..e262fdbe10 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep @@ -273,7 +273,7 @@ output applicationSecurityGroupResourceId string = applicationSecurityGroup.id output managedIdentityPrincipalId string = managedIdentity.properties.principalId @description('The resource ID of the created Managed Identity.') -output managedIdentityResourceId string = managedIdentity.properties.principalId +output managedIdentityResourceId string = managedIdentity.id @description('The resource ID of the created Load Balancer Backend Pool.') output loadBalancerBackendPoolResourceId string = loadBalancer::backendPool.id From 5387e243a77a3a50f8584c31844a290494440709 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 11:37:25 +0200 Subject: [PATCH 219/274] Further fixes --- .../virtualMachines/.test/linux/dependencies.bicep | 4 ++-- .../virtualMachines/.test/windows/dependencies.bicep | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep index 09344b6e80..119af75b1c 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep @@ -194,8 +194,8 @@ resource keyVault 'Microsoft.KeyVault/vaults@2022-07-01' = { tenantId: tenant().tenantId enabledForTemplateDeployment: true enablePurgeProtection: null - accessPolicies: [ - ] + enableRbacAuthorization: true + accessPolicies: [] } resource key 'keys@2022-07-01' = { diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep index e262fdbe10..475ad6d817 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep @@ -197,6 +197,8 @@ resource keyVault 'Microsoft.KeyVault/vaults@2022-07-01' = { tenantId: tenant().tenantId enabledForTemplateDeployment: true enablePurgeProtection: null + enableRbacAuthorization: true + accessPolicies: [] } resource key 'keys@2022-07-01' = { From f0c58eda4e0e3684e3d9f7c714a23b31d7361f46 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 12:50:15 +0200 Subject: [PATCH 220/274] Sync --- .github/actions/templates/validateModuleDeployment/action.yml | 1 + utilities/pipelines/staticValidation/module.tests.ps1 | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index c381a40369..fcab7c0ea9 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -358,6 +358,7 @@ runs: Write-Output '::endgroup::' # [Deployment removal] task(s) + # TODO: Fix that its not running if deployment failed # ---------------------------- - name: 'Remove deployed resources' if: ${{ always() && inputs.removeDeployment == 'true' && steps.deploy_step.outputs.deploymentName != '' }} diff --git a/utilities/pipelines/staticValidation/module.tests.ps1 b/utilities/pipelines/staticValidation/module.tests.ps1 index 663797e1f1..2774b77b03 100644 --- a/utilities/pipelines/staticValidation/module.tests.ps1 +++ b/utilities/pipelines/staticValidation/module.tests.ps1 @@ -1129,8 +1129,6 @@ Describe 'Deployment template tests' -Tag Template { [hashtable[]] $testFileTestCases ) - # TODO: Skip any non-parameter json files - foreach ($parameterFileTestCase in $testFileTestCases) { $TemplateFile_RequiredParametersNames = $parameterFileTestCase.TemplateFile_RequiredParametersNames $testFile_AllParameterNames = $parameterFileTestCase.testFile_AllParameterNames From 93b08b54c19871ed010d042cf4d44d0a43af3b4d Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 14:30:47 +0200 Subject: [PATCH 221/274] Fixed folder ref --- .../pipelineTemplates/jobs.getModuleTestFiles.yml | 11 ++++++----- .../actions/templates/getModuleTestFiles/action.yml | 5 +++++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml b/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml index 46229ad481..74b38d5e97 100644 --- a/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml +++ b/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml @@ -39,13 +39,14 @@ jobs: $deploymentTestPaths = Get-ModuleTestFileList @functionInput -Verbose $testTable = @{} - foreach($deploymentTestPath in $deploymentTestPaths) { - $deploymentTestFileName = Split-Path $deploymentTestPath -Leaf - $testTable[$deploymentTestFileName] = @{ - moduleTestFilePath = $deploymentTestPath - } + foreach ($deploymentTestPath in $deploymentTestPaths) { + $deploymentTestFileName = Split-Path (Split-Path $deploymentTestPath -Parent) -Leaf + $testTable[$deploymentTestFileName] += @{ + moduleTestFilePath = $deploymentTestPath + } } $deploymentTestPathsOutput = $testTable | ConvertTo-Json -Compress + Write-Host ('##vso[task.setVariable variable=moduleTests;isOutput=true]{0}' -f ($testTable | ConvertTo-Json -Compress)) Write-Verbose "Module test files: $deploymentTestPathsOutput" -Verbose diff --git a/.github/actions/templates/getModuleTestFiles/action.yml b/.github/actions/templates/getModuleTestFiles/action.yml index 8b3dc9bac5..05f6bcc643 100644 --- a/.github/actions/templates/getModuleTestFiles/action.yml +++ b/.github/actions/templates/getModuleTestFiles/action.yml @@ -20,15 +20,20 @@ runs: run: | # Grouping task logs Write-Output "::group::Get parameter files" + # Load used functions . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'sharedScripts' 'Get-ModuleTestFileList.ps1') + $functionInput = @{ ModulePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.modulePath }}' } + Write-Verbose "Invoke task with" -Verbose Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose + # Get the list of parameter file paths $testFilePaths = Get-ModuleTestFileList @functionInput -Verbose + # Output values to be accessed by next jobs $compressedOutput = $testFilePaths | ConvertTo-Json -Compress if($compressedOutput -notmatch "\[.*\]") { From 7b56ff18f382662c6becf4c1a9e4551638cadd3f Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 14:47:30 +0200 Subject: [PATCH 222/274] Adjuted lb --- .../virtualMachines/.test/linux/dependencies.bicep | 11 ++++++++--- .../virtualMachines/.test/windows/dependencies.bicep | 11 ++++++++--- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep index 119af75b1c..8a0170622c 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep @@ -83,11 +83,16 @@ resource loadBalancer 'Microsoft.Network/loadBalancers@2022-01-01' = { } } ] + backendAddressPools: [ + { + name: 'servers' + } + ] } - resource backendPool 'backendAddressPools@2022-01-01' = { - name: 'servers' - } + // resource backendPool 'backendAddressPools@2022-01-01' = { + // name: 'servers' + // } } resource recoveryServicesVault 'Microsoft.RecoveryServices/vaults@2022-04-01' = { diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep index 475ad6d817..ccce864cf7 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep @@ -86,11 +86,16 @@ resource loadBalancer 'Microsoft.Network/loadBalancers@2022-01-01' = { } } ] + backendAddressPools: [ + { + name: 'servers' + } + ] } - resource backendPool 'backendAddressPools@2022-01-01' = { - name: 'servers' - } + // resource backendPool 'backendAddressPools@2022-01-01' = { + // name: 'servers' + // } } resource recoveryServicesVault 'Microsoft.RecoveryServices/vaults@2022-04-01' = { From 90299fa9950a7658a8fc23e910ce21757ca93265 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 16:19:48 +0200 Subject: [PATCH 223/274] Update to latest --- .github/workflows/ms.compute.virtualmachines.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ms.compute.virtualmachines.yml b/.github/workflows/ms.compute.virtualmachines.yml index bec15527fa..33d214bd98 100644 --- a/.github/workflows/ms.compute.virtualmachines.yml +++ b/.github/workflows/ms.compute.virtualmachines.yml @@ -106,8 +106,7 @@ jobs: - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' + templateFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' From ad7eefcc41b34b1e3bcad0fe847a5fdf9a6312ac Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 21:34:10 +0200 Subject: [PATCH 224/274] Update to latest --- .../virtualMachines/.test/linux/dependencies.bicep | 2 +- .../virtualMachines/.test/windows/dependencies.bicep | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep index 8a0170622c..18d7ea07af 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep @@ -275,7 +275,7 @@ output managedIdentityPrincipalId string = managedIdentity.properties.principalI output managedIdentityResourceId string = managedIdentity.id @description('The resource ID of the created Load Balancer Backend Pool.') -output loadBalancerBackendPoolResourceId string = loadBalancer::backendPool.id +output loadBalancerBackendPoolResourceId string = loadBalancer.properties.backendAddressPools[0].id @description('The resource ID of the created Recovery Services Vault.') output recoveryServicesVaultResourceId string = recoveryServicesVault.id diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep index ccce864cf7..cd8c63911e 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep @@ -283,7 +283,7 @@ output managedIdentityPrincipalId string = managedIdentity.properties.principalI output managedIdentityResourceId string = managedIdentity.id @description('The resource ID of the created Load Balancer Backend Pool.') -output loadBalancerBackendPoolResourceId string = loadBalancer::backendPool.id +output loadBalancerBackendPoolResourceId string = loadBalancer.properties.backendAddressPools[0].id @description('The resource ID of the created Recovery Services Vault.') output recoveryServicesVaultResourceId string = recoveryServicesVault.id From 90a95e66f50270734a239fb9638e17068b301b00 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 21:34:36 +0200 Subject: [PATCH 225/274] Update to latest --- .../virtualMachines/.test/linux/dependencies.bicep | 4 ---- .../virtualMachines/.test/windows/dependencies.bicep | 4 ---- 2 files changed, 8 deletions(-) diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep index 18d7ea07af..7ff04a3793 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep @@ -89,10 +89,6 @@ resource loadBalancer 'Microsoft.Network/loadBalancers@2022-01-01' = { } ] } - - // resource backendPool 'backendAddressPools@2022-01-01' = { - // name: 'servers' - // } } resource recoveryServicesVault 'Microsoft.RecoveryServices/vaults@2022-04-01' = { diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep index cd8c63911e..993b3f62ef 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep @@ -92,10 +92,6 @@ resource loadBalancer 'Microsoft.Network/loadBalancers@2022-01-01' = { } ] } - - // resource backendPool 'backendAddressPools@2022-01-01' = { - // name: 'servers' - // } } resource recoveryServicesVault 'Microsoft.RecoveryServices/vaults@2022-04-01' = { From 8572d5f34c1e16734a1d183fee75fc2fd8b106cc Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 21:41:23 +0200 Subject: [PATCH 226/274] Added missing pipeline flag --- .azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml | 1 + .github/actions/templates/validateModuleDeployment/action.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 9f3eb3efa3..7917461bd1 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -301,6 +301,7 @@ jobs: ResourceGroupName = $resourceGroupName SubscriptionId = $subscriptionId ManagementGroupId = $managementGroupId + doNotThrow = $true AdditionalParameters = @{} } diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 951a4220d7..3478216409 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -315,6 +315,7 @@ runs: resourceGroupName = $resourceGroupName subscriptionId = $subscriptionId managementGroupId = $managementGroupId + doNotThrow = $true additionalParameters = @{} } From 387cc81dea6e5d27a13674436cc38c6b3d281b7d Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 21:48:01 +0200 Subject: [PATCH 227/274] Adjusted output --- .../resourceRemoval/helper/Invoke-ResourceRemoval.ps1 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/utilities/pipelines/resourceRemoval/helper/Invoke-ResourceRemoval.ps1 b/utilities/pipelines/resourceRemoval/helper/Invoke-ResourceRemoval.ps1 index 53a504e8a8..75a9f9e179 100644 --- a/utilities/pipelines/resourceRemoval/helper/Invoke-ResourceRemoval.ps1 +++ b/utilities/pipelines/resourceRemoval/helper/Invoke-ResourceRemoval.ps1 @@ -27,8 +27,7 @@ function Invoke-ResourceRemoval { [string] $Type ) - Write-Verbose ('Resource ID [{0}]' -f $resourceId) -Verbose - Write-Verbose ('Resource Type [{0}]' -f $type) -Verbose + Write-Verbose ('Removing resource [{0}]' -f $resourceId) -Verbose switch ($type) { 'Microsoft.Insights/diagnosticSettings' { From ab804c32aa28e4e79ad2940c6c15b9392d6b72f8 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 23:07:30 +0200 Subject: [PATCH 228/274] Added docs for new dependencies approach --- .../validateModuleDeployment/action.yml | 1 - ...ibution guide - Validate module locally.md | 8 +- ...rio 2 Module library and CI environment.md | 8 +- ...started - Check NamePrefix availability.md | 4 +- ...board module library and CI environment.md | 12 +- docs/wiki/Known issues.md | 8 +- ... CI environment - Deployment validation.md | 12 +- .../The CI environment - Pipeline design.md | 4 +- .../The CI environment - Pipeline usage.md | 2 +- .../The CI environment - Static validation.md | 10 +- .../The CI environment - Token replacement.md | 24 ++-- .../The context - CARML CI environment.md | 2 +- docs/wiki/The context - CARML library.md | 8 +- docs/wiki/The library - Module design.md | 121 ++++++++++++++++-- .../servers/.test/default/deploy.test.bicep | 2 +- .../servers/.test/max/deploy.test.bicep | 2 +- .../servers/.test/min/deploy.test.bicep | 2 +- .../.test/linux.atmg/deploy.test.bicep | 2 +- .../.test/linux.min/deploy.test.bicep | 2 +- .../.test/linux/deploy.test.bicep | 2 +- .../.test/windows.atmg/deploy.test.bicep | 2 +- .../.test/windows.min/deploy.test.bicep | 2 +- .../.test/windows/deploy.test.bicep | 2 +- 23 files changed, 170 insertions(+), 72 deletions(-) diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 3478216409..fc8305d4df 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -359,7 +359,6 @@ runs: Write-Output '::endgroup::' # [Deployment removal] task(s) - # TODO: Fix that its not running if deployment failed # ---------------------------- - name: 'Remove deployed resources' if: ${{ always() && inputs.removeDeployment == 'true' && steps.deploy_step.outputs.deploymentName != '' }} diff --git a/docs/wiki/Contribution guide - Validate module locally.md b/docs/wiki/Contribution guide - Validate module locally.md index 2d53990eff..8c086c62d7 100644 --- a/docs/wiki/Contribution guide - Validate module locally.md +++ b/docs/wiki/Contribution guide - Validate module locally.md @@ -1,4 +1,4 @@ -Use this script to test a module from your PC locally, without a CI environment. You can use it to run only the static validation (Pester tests), a deployment validation (dryRun) or an actual deployment to Azure. In the latter cases the script also takes care to replace placeholder tokens in the used parameter file for you. +Use this script to test a module from your PC locally, without a CI environment. You can use it to run only the static validation (Pester tests), a deployment validation (dryRun) or an actual deployment to Azure. In the latter cases the script also takes care to replace placeholder tokens in the used module test & template files for you. --- @@ -19,14 +19,14 @@ If the switch for Pester tests (`-PesterTest`) is provided the script will 1. Invoke the module test for the provided template file path and run all tests for it. If the switch for either the validation test (`-ValidationTest`) or deployment test (`-DeploymentTest`) is provided alongside a HashTable for the token replacement (`-ValidateOrDeployParameters`), the script will -1. Either fetch all parameter files of the module's parameter folder (default) or you can specify a single parameter file by leveraging the `parameterFilePath` parameter instead. -1. Create a dictionary to replace all tokens in these parameter files with actual values. This dictionary will consist +1. Either fetch all module test files of the module's `.test` folder (default) or you can specify a single module test file by leveraging the `ModuleTestFilePath` parameter instead. +1. Create a dictionary to replace all tokens in these module test files with actual values. This dictionary will consist - of the subscriptionID & managementGroupID of the provided `ValidateOrDeployParameters` object, - add all key-value pairs of the `-AdditionalTokens` object to it, - and optionally also add all key-value pairs specified in the `settings.yml`, under the 'local tokens settings'. 1. If the `-ValidationTest` parameter was set, it runs a deployment validation using the `Test-TemplateDeployment` script. 1. If the `-DeploymentTest` parameter was set, it runs a deployment using the `New-TemplateDeployment` script (with no retries). -1. As a final step, it rolls the parameter files back to their original state if either the `-ValidationTest` or `-DeploymentTest` parameters were provided. +1. As a final step, it rolls the module test files back to their original state if either the `-ValidationTest` or `-DeploymentTest` parameters were provided. # How to use it diff --git a/docs/wiki/Fetching latest changes - Scenario 2 Module library and CI environment.md b/docs/wiki/Fetching latest changes - Scenario 2 Module library and CI environment.md index 17e2969c21..0ae06aa333 100644 --- a/docs/wiki/Fetching latest changes - Scenario 2 Module library and CI environment.md +++ b/docs/wiki/Fetching latest changes - Scenario 2 Module library and CI environment.md @@ -10,7 +10,7 @@ The update process is the following: - [2. Apply specific settings to files](#2-apply-specific-settings-to-files) - [3. (Optional) Re-apply your customizations](#3-optional-re-apply-your-customizations) - [4. Run dependencies pipeline](#4-run-dependencies-pipeline) -- [5. Update module parameter files](#5-update-module-parameter-files) +- [5. Update module module test files](#5-update-module-module-test-files) - [6. (Optional) Convert library to ARM](#6-optional-convert-library-to-arm) - [7. Push updated code](#7-push-updated-code) - [8. Test and publish modules](#8-test-and-publish-modules) @@ -72,13 +72,13 @@ This process can be automated, by script or CI, if customization tasks are repea Run the '*dependencies pipeline*' to update dependencies configuration that can be updated on the downloaded CARML release. Follow [Deploy dependencies](./Fetching%20latest%20changes%20-%20Scenario%202%20Module%20library%20only#4-deploy-dependencies) section in Getting started - Scenario 2 Onboard module library and CI environment documentation to do this. -# 5. Update module parameter files +# 5. Update module module test files -Follow the [Update module parameter files](./Getting%20started%20-%20Scenario%202%20Onboard%20module%20library%20and%20CI%20environment#5-update-module-parameter-files) procedure +Follow the [Update module module test files](./Getting%20started%20-%20Scenario%202%20Onboard%20module%20library%20and%20CI%20environment#5-update-module-module-test-files) procedure # 6. (Optional) Convert library to ARM -Follow istructions in [(Optional) Convert library to ARM](./Fetching%20latest%20changes%20-%20Scenario%202%20Module%20library%20only#6-optional-convert-library-to-arm) +Follow instructions in [(Optional) Convert library to ARM](./Fetching%20latest%20changes%20-%20Scenario%202%20Module%20library%20only#6-optional-convert-library-to-arm) # 7. Push updated code diff --git a/docs/wiki/Getting started - Check NamePrefix availability.md b/docs/wiki/Getting started - Check NamePrefix availability.md index 98aca48592..e3592f27e9 100644 --- a/docs/wiki/Getting started - Check NamePrefix availability.md +++ b/docs/wiki/Getting started - Check NamePrefix availability.md @@ -17,11 +17,11 @@ You can find the script under [`utilities/tools/Test-NamePrefixAvailability.ps1` When invoked, the script -1. Fetches all parameter files for modules that require unique names. For example +1. Fetches all module test files for modules that require unique names. For example - `'Microsoft.Storage/storageAccounts'` - `'Microsoft.ContainerRegistry/registries'` - `'Microsoft.KeyVault/vaults'` -1. Replace any tokens contained in the parameter files with the key-value pairs provided in the `Tokens` input parameter. +1. Replace any tokens contained in the module test files with the key-value pairs provided in the `Tokens` input parameter. 1. Search for each resource resource type if the final name would be taken. 1. Return the result for each resource alongside a final recommendation to use / not use the chosen `'namePrefix'`. diff --git a/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md b/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md index 96e98f3bed..193e301a32 100644 --- a/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md +++ b/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md @@ -6,7 +6,7 @@ This requires several steps: 1. [Fork/clone the repository into your DevOps environment](#2-forkclone-the-repository-into-your-devops-environment) 1. [Configure the CI environment](#3-configure-the-ci-environment) 1. [Deploy dependencies](#4-deploy-dependencies) -1. [Update module parameter files](#5-update-module-parameter-files) +1. [Update module test files](#5-update-module-module-test-files) 1. [(Optional) Convert library to ARM](#6-optional-convert-library-to-arm) Depending on the DevOps environment you choose (GitHub or Azure DevOps), make sure you also account for the specific requirements outlined below. @@ -98,7 +98,7 @@ To lower the barrier to entry and allow users to easily define their own naming > **Note:** This prefix is only used by the CI environment you validate your modules in, and doesn't affect the naming of any resources you deploy as part of any multi-module solutions (applications/workloads) based on the modules. -Each pipeline in CARML deploying resources uses a logic that automatically replaces "tokens" (i.e., placeholders) in any parameter file. Tokens are stored in only a few central locations to facilitate maintenance (e.g., local `settings.yml`, repository secrets or variable groups). +Each pipeline in CARML deploying resources uses a logic that automatically replaces "tokens" (i.e., placeholders) in any module test file. Tokens are stored in only a few central locations to facilitate maintenance (e.g., local `settings.yml`, repository secrets or variable groups). To update the `namePrefix`, perform the following steps: @@ -185,7 +185,7 @@ The primary pipeline settings file ([`settings.yml`](https://github.com/Azure/Re | Variable Name | Example Value | Description | | - | - | - | -| `location` | `"WestEurope"` | The default location to deploy resources to and store deployment metadata at. If no location is specified in the deploying parameter file, this location is used. | +| `location` | `"WestEurope"` | The default location to deploy resources to and store deployment metadata at. If no location is specified in the deploying module test file, this location is used. | | `resourceGroupName` | `"validation-rg"` | The resource group to deploy all resources for validation to. |
@@ -295,7 +295,7 @@ The primary pipeline settings file ([`settings.yml`](https://github.com/Azure/Re | Variable Name | Example Value | Description | | - | - | - | -| `location` | `'WestEurope'` | The default location to deploy resources to. If no location is specified in the deploying parameter file, this location is used. | +| `location` | `'WestEurope'` | The default location to deploy resources to. If no location is specified in the deploying module test file, this location is used. | | `resourceGroupName` | `'validation-rg'` | The resource group to deploy all resources for validation into. | | `serviceConnection` | `'Contoso-Connection'` | The service connection that points to the subscription to test in and publish to. | @@ -383,7 +383,7 @@ In special cases, manual actions may be required to provision certain resources To successfully deploy the sites module using the `fa.parameters.json` parameter file, you need to create an Azure Active Directory App with its API endpoint enabled (e.g., `api://`) and add a secret. The secret value needs then to be stored in a Key Vault secret. -# 5. Update module parameter files +# 5. Update module test files Once the required dependencies are deployed, there is one more step left to get as many module pipelines running as possible. @@ -393,8 +393,6 @@ For this reason, make sure to update the references in the following modules onc | File | Parameter | Notes | | - | - | - | -| `modules\Microsoft.Compute\virtualMachines\.test\linux.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | -| `modules\Microsoft.Compute\virtualMachines\.test\windows.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | | `modules\Microsoft.Compute\virtualMachineScaleSets\.test\linux.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | | `modules\Microsoft.Compute\virtualMachineScaleSets\.test\windows.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | | `modules\Microsoft.Sql\managedInstances\.test\parameters.json` | `keys.value.uri` | | diff --git a/docs/wiki/Known issues.md b/docs/wiki/Known issues.md index 2bd7b4a51c..b3eff50726 100644 --- a/docs/wiki/Known issues.md +++ b/docs/wiki/Known issues.md @@ -16,7 +16,7 @@ This section provides an overview of the most impactful limitations and known is - [CI environment specific](#ci-environment-specific) - [Static validation](#static-validation) - [Deployment validation](#deployment-validation) - - [Limited parameter file set](#limited-parameter-file-set) + - [Limited module test file set](#limited-module-test-file-set) - [Publishing](#publishing) --- @@ -89,11 +89,11 @@ This section outlines known issues that currently affect the CI environment stat This section outlines known issues that currently affect the CI environment deployment validation step. -### Limited parameter file set +### Limited module test file set -The deployment validation step aims to validate multiple configurations for each module. This is done by providing multiple parameter files to be leveraged by the same resource module, each covering a specific scenario. +The deployment validation step aims to validate multiple configurations for each module. This is done by providing multiple module test files to be leveraged by the same resource module, each covering a specific scenario. -The first planned step for each module is to provide a 'minimum-set' parameter file, limited to the top-level resource required parameters, vs. a 'maximum-set' parameter file, including all possible properties, child resources and extension resources. Some of the modules are still tested through one parameter file only. This is tracked by issue [#401](https://github.com/Azure/ResourceModules/issues/401). +The first planned step for each module is to provide a 'minimum-set' module test file, limited to the top-level resource required parameters, vs. a 'maximum-set' module test file, including all possible properties, child resources and extension resources. Some of the modules are still tested through one module test file only. This is tracked by issue [#401](https://github.com/Azure/ResourceModules/issues/401). ## Publishing diff --git a/docs/wiki/The CI environment - Deployment validation.md b/docs/wiki/The CI environment - Deployment validation.md index 1f4ccef177..fa741f7f82 100644 --- a/docs/wiki/The CI environment - Deployment validation.md +++ b/docs/wiki/The CI environment - Deployment validation.md @@ -21,19 +21,21 @@ The deployment validation phase can be divided into three steps, running in sequ # Template validation -The template validation step performs a dry-run with each parameter file in the module's `'.test'` folder +The template validation step performs a dry-run with each module test file in the module's `'.test'` folder (and its subfolders) -In particular, the step runs a `Test-AzDeployment` cmdlet (_the command may vary based on the template schema_) for each provided module parameter file to verify if the template could be deployed using them. +In particular, the step runs a `Test-AzDeployment` cmdlet (_the command may vary based on the template schema_) for each provided module test file to verify if the template could be deployed using them. -The intention of this test is to **fail fast**, before getting to the later deployment step. The template validation could fail either because the template is invalid, or because any of the parameter files is configured incorrectly. +The intention of this test is to **fail fast**, before getting to the later deployment step. The template validation could fail either because the template is invalid, or because any of the module test files is configured incorrectly. # Azure deployment validation -This step performs the actual Azure deployments using each available & configured module parameter file. The purpose of this step is to prove the module can be deployed in different configurations based on the different parameters provided. Deployments for the different variants happen in parallel. +This step performs the actual Azure deployments using each available & configured module module test file. The purpose of this step is to prove the module can be deployed in different configurations based on the different parameters provided. Deployments for the different variants happen in parallel. If any of these parallel deployments require multiple/different/specific resource instances already present, these resources are deployed by the [dependencies pipeline](./The%20CI%20environment%20-%20Pipeline%20design#dependencies-pipeline). E.g., for the Azure Firewall to be tested with multiple configurations, the dependencies pipeline deploys multiple VNET instances, with a dedicated "AzureFirewallSubnet" in each. -The parameter files used in this stage should ideally cover as many configurations as possible to validate the template flexibility, i.e., to verify that the module can cover multiple scenarios in which the given Azure resource may be used. Using the example of the CosmosDB module, we may want to have one parameter file for the minimum amount of required parameters, one parameter file for each CosmosDB type to test individual configurations, and at least one parameter file testing the supported extension resources such as RBAC & diagnostic settings. +> NOTE: Once the issue [1583](https://github.com/Azure/ResourceModules/issues/1583) is resolved, the deployment of these dependencies will be moved into the module test files. You can find additional information about this effort [here](./The%20library%20-%20Module%20design#module-test-files). + +The module test files used in this stage should ideally cover as many configurations as possible to validate the template flexibility, i.e., to verify that the module can cover multiple scenarios in which the given Azure resource may be used. Using the example of the CosmosDB module, we may want to have one module test file for the minimum amount of required parameters, one module test file for each CosmosDB type to test individual configurations, and at least one module test file testing the supported extension resources such as RBAC & diagnostic settings. > **Note:** Since every customer environment might be different due to applied Azure Policies or security policies, modules might behave differently and naming conventions need to be verified beforehand. diff --git a/docs/wiki/The CI environment - Pipeline design.md b/docs/wiki/The CI environment - Pipeline design.md index 426d097c92..9b8bd774b0 100644 --- a/docs/wiki/The CI environment - Pipeline design.md +++ b/docs/wiki/The CI environment - Pipeline design.md @@ -46,7 +46,7 @@ The following paragraphs provide an overview of the different phases and shared This paragraph provides an overview of the three phases performed by each module pipeline. Further details about the implementation and design of each phase are provided on the dedicated pages linked below. 1. **Static Validation**: Runs a set of static Pester tests on the module and its templates to ensure they comply with the design principles of CARML. Further details for this phase are provided on the corresponding wiki page - see the [Static validation](./The%20CI%20environment%20-%20Static%20validation) section. -1. **Deployment Validation**: An actual Azure deployment is run in a sandbox subscription leveraging a predefined set of parameter files, each validating a different configuration of the same Azure resource in parallel. The test suite is cleaned up by default, removing all test resources post-deployment. Further details for this phase are provided on the corresponding wiki page - see the [Deployment validation](./The%20CI%20environment%20-%20Deployment%20validation) section. +1. **Deployment Validation**: An actual Azure deployment is run in a sandbox subscription leveraging a predefined set of module test files, each validating a different configuration of the same Azure resource in parallel. The test suite is cleaned up by default, removing all test resources post-deployment. Further details for this phase are provided on the corresponding wiki page - see the [Deployment validation](./The%20CI%20environment%20-%20Deployment%20validation) section. 1. **Publishing**: Runs only if the previous steps are successful. A new module version is published to all configured target locations such as template specs, private Bicep registry and Azure DevOps Universal Packages. Published module versions can then be referenced by solutions using them. Further details for this phase are provided on the corresponding wiki page - see the [Publishing](./The%20CI%20environment%20-%20Publishing) page. Pipeline phases @@ -118,6 +118,8 @@ In addition to module pipelines, the repository includes several platform pipeli ## Dependencies pipeline +> NOTE: The dependencies deployed as part of this pipeline will be moved to the individual modules that depend on them once issue [1583](https://github.com/Azure/ResourceModules/issues/1583) is resolved. You can find further information about this effort [here](./The%20library%20-%20Module%20design#module-test-files). + In order to successfully run module pipelines to validate and publish CARML modules to the target environment, certain Azure resources may need to be deployed beforehand. For example, any instance of the \[Virtual Machine] module needs an existing virtual network to be connected to and a Key Vault hosting its required local admin credentials to be referenced. diff --git a/docs/wiki/The CI environment - Pipeline usage.md b/docs/wiki/The CI environment - Pipeline usage.md index b80157ea72..e270ab982b 100644 --- a/docs/wiki/The CI environment - Pipeline usage.md +++ b/docs/wiki/The CI environment - Pipeline usage.md @@ -22,7 +22,7 @@ This section provides a guideline on how to use the CARML CI environment pipelin To validate updates to a module template, you can perform the following steps: -1. (Optionally) Update the module's parameter files to reflect your changes. +1. (Optionally) Update the module's test files to reflect your changes. 1. Push the local changes to the repository (using a branch that is not `main|master`). 1. On the DevOps platform, navigate to your pipelines and select the pipeline that was registered for the module you updated. 1. Select the branch with your updated template. diff --git a/docs/wiki/The CI environment - Static validation.md b/docs/wiki/The CI environment - Static validation.md index 5bdd9ccaa8..65cd457e32 100644 --- a/docs/wiki/The CI environment - Static validation.md +++ b/docs/wiki/The CI environment - Static validation.md @@ -30,11 +30,11 @@ The following activities are performed by the [`utilities/pipelines/staticValida - describes all the parameters - describes all outputs - describes all cross-references -- **Parameter Files**, e.g.: - - at least one `*parameters.json` exists - - files should be valid JSON - - contains all required parameters - - (if tokens are used) Tests that no token values (e.g., `11111111-1111-1111-1111-11111111111`) from the specified token list (i.e., `deploymentSpId`, `subscriptionId`, `managementGroupId`, `tenantId`) are used in the parameter files. Instead, the token itself should be referenced. +- **Module Test Files**, e.g.: + - at least one `*parameters.json`/`deploy.test.bicep` exists + - files should (optionally) be valid JSON + - should contains all required parameters + - (if tokens are used) Tests that no token values (e.g., `11111111-1111-1111-1111-11111111111`) from the specified token list (i.e., `deploymentSpId`, `subscriptionId`, `managementGroupId`, `tenantId`) are used in the module test files. Instead, the token itself should be referenced. ## Output example diff --git a/docs/wiki/The CI environment - Token replacement.md b/docs/wiki/The CI environment - Token replacement.md index 115e46ee96..7a6dcc668f 100644 --- a/docs/wiki/The CI environment - Token replacement.md +++ b/docs/wiki/The CI environment - Token replacement.md @@ -1,4 +1,4 @@ -This section provides details on the tokens replacement functionality that enables the use of tokens inside template parameter files instead of plain text strings. +This section provides details on the tokens replacement functionality that enables the use of tokens inside module test files instead of plain text strings. --- @@ -9,7 +9,7 @@ This section provides details on the tokens replacement functionality that enabl - [Default Tokens](#default-tokens) - [(Optional) Local Custom Tokens](#optional-local-custom-tokens) - [How it works](#how-it-works) - - [How tokens are replaced in a parameter file](#how-tokens-are-replaced-in-a-parameter-file) + - [How tokens are replaced in a module test file](#how-tokens-are-replaced-in-a-module-test-file) --- @@ -17,7 +17,7 @@ This section provides details on the tokens replacement functionality that enabl Tokens allow you to test deploying modules in your own environment (i.e., using tokens for your naming conventions), or apply other customizations to your resources (i.e., injecting a subscription ID inside a Resource ID string). -The [module pipelines](./The%20CI%20environment%20-%20Pipeline%20design#module-pipelines) leverage a token replacement function that enables parameter files to contain tokens (i.e., `<>`, `<>`) instead of using static values. This helps with the following: +The [module pipelines](./The%20CI%20environment%20-%20Pipeline%20design#module-pipelines) leverage a token replacement function that enables module test files to contain tokens (i.e., `<>`, `<>`) instead of using static values. This helps with the following: - Allows the repository to be portable without having static values from where it was cloned. - Enables dynamic updates of the tokens from single locations without having to modify all files. @@ -25,7 +25,7 @@ The [module pipelines](./The%20CI%20environment%20-%20Pipeline%20design#module-p # Token Types -There are 2 types of tokens that can be applied on a parameter file: +There are 2 types of tokens that can be applied on a module test file: ## Default Tokens @@ -49,7 +49,7 @@ localToken_tokenB: 'bar' > **Note:** The CI pipelines automatically removes the `localToken_` prefix from the name when processing the tokens replacement. This means that your actual token name is `tokenA` and NOT `localToken_tokenA`. -Let's say you'd want to use this token inside a Key Vault parameter file, to deploy the Key Vault with a name that contains this token: +Let's say you'd want to use this token inside a Key Vault module test file, to deploy the Key Vault with a name that contains this token: ```json "parameters": { @@ -76,19 +76,19 @@ When validating modules through the CI environment, you must update it to a cust # How it works -The below image compares the different token types that can be used for parameter file tokens: +The below image compares the different token types that can be used for module test file tokens: tokenTypes -## How tokens are replaced in a parameter file +## How tokens are replaced in a module test file The below diagram illustrates the Token Replacement Functionality via the [validate module deployment](https://github.com/Azure/ResourceModules/blob/main/.github/actions/templates/validateModuleDeployment/action.yml) Action/Template. tokenReplacement - **1A.** The user creates default tokens as [GitHub Secrets](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository) or [Azure DevOps Pipeline Variables](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/?view=azure-devops), that are injected as environment variables. -- **1B.** The user can also create local custom Parameter File Tokens in the [settings.yml](https://github.com/Azure/ResourceModules/blob/main/settings.yml). Tokens start with `localTokens_` and then followed by the actual token name (e.g. `tokenA`). This prefix gets removed by the CI leaving the original token name -- **2.** The parameter files can now be tokenized as per required value. And the token format can look like `<>`. Example: +- **1B.** The user can also create local custom Tokens in the [settings.yml](https://github.com/Azure/ResourceModules/blob/main/settings.yml). Tokens start with `localTokens_` and then followed by the actual token name (e.g. `tokenA`). This prefix gets removed by the CI leaving the original token name +- **2.** The module test files can now be tokenized as per required value. And the token format can look like `<>`. Example: ```json "adminPassword": { @@ -106,10 +106,10 @@ The below diagram illustrates the Token Replacement Functionality via the [valid - **3B.** The Replace Tokens function gets local custom tokens from the [settings.yml](https://github.com/Azure/ResourceModules/blob/main/settings.yml). > Local Tokens are easier to scale as you just need to define them in this file without adding new environment variables or modifying workflows or tasks. -- **3C.** The Replace Tokens function gets the Module Parameter file (tokenized and not deployable) and then all tokens are processed for replacement. +- **3C.** The Replace Tokens function gets the module test file (tokenized and not deployable) and then all tokens are processed for replacement. -- **3D.** The updated Module Parameter file is then saved, replacing the tokenized version. This file is now 'deployable'. +- **3D.** The updated module test file is then saved, replacing the tokenized version. This file is now 'deployable'. -- **4A.** The Validate/Deploy function retrieves the latest updated module Parameter file. +- **4A.** The Validate/Deploy function retrieves the latest updated module test file. - **4B.** The Validate/Deploy function validates the deployment artifacts for the module before deploying it to the Azure Sandbox Subscription. diff --git a/docs/wiki/The context - CARML CI environment.md b/docs/wiki/The context - CARML CI environment.md index 5701964290..afc38c0107 100644 --- a/docs/wiki/The context - CARML CI environment.md +++ b/docs/wiki/The context - CARML CI environment.md @@ -22,7 +22,7 @@ This paragraph provides an overview of the standard development-to-deployment fl This flow generally covers 3 phases: -1. In the **Develop modules** phase modules are first implemented/updated and then validated using one or multiple test-parameter files, testing their successful deployment to a sandbox subscription to prove their correctness. +1. In the **Develop modules** phase modules are first implemented/updated and then validated using one or multiple module test files, testing their successful deployment to a sandbox subscription to prove their correctness. 1. The next phase, **Publish modules**, packages and publishes the tested and approved modules to a target location for later consumption. The target location (also known as package store or artifact store) should support versioning to allow referencing a specific module version and to avoid breaking changes when referencing them. diff --git a/docs/wiki/The context - CARML library.md b/docs/wiki/The context - CARML library.md index b01a07f626..50a883782f 100644 --- a/docs/wiki/The context - CARML library.md +++ b/docs/wiki/The context - CARML library.md @@ -20,7 +20,7 @@ Using configuration & template files that represent the deployed infrastructure - Repeatability: You can deploy your infrastructure in a repeatable fashion, hence minimizing the chance of manual errors. - Reusability: You can reuse your automation to deploy the same infrastructure to different environments. For example, leveraging a multi-stage deployment from a sandbox environment, via integration to production using the same code. -In the context of Bicep or ARM/JSON templates, we usually leverage a combination of flexible templates that are deployed using multiple parameter files mapped to different scenarios. +In the context of Bicep or ARM/JSON templates, we usually leverage a combination of flexible templates that are deployed using multiple module test files mapped to different scenarios. # A module in CARML @@ -28,7 +28,7 @@ In the context of _CARML_, we define a module as a reusable, template-based **bu Each module is generalized for maximum flexibility. Each template should be able to cover as many resource-specific scenarios as possible and not restrict the user by making assumptions on the user's behalf. Eventually, the injected parameters should decide what the template deploys. -Furthermore, each module comes with default values for its optional parameters, a detailed documentation for its usage and one or multiple parameter files to prove its correctness. +Furthermore, each module comes with default values for its optional parameters, a detailed documentation for its usage and one or multiple module test files to prove its correctness. ## CARML module features @@ -38,7 +38,7 @@ A CARML module should comply with the following characteristics: > For example, a virtual machine module also deploys related OS disks and network interfaces. - **Reusable**: Several modules can be combined together to create & orchestrate more complex architectures (i.e., multi-module solutions) like workloads/applications or single services. > For example, the resource group, the network security group and the virtual network modules can be combined to create a resource group hosting a virtual network with multiple subnets associated to specific NSGs. -- **Multi-purpose**: Each module aims to cover most of the main resource's capabilities, without the need to maintain multiple module instances for different use cases. Instead, a generalized module can be consumed through parameter files. +- **Multi-purpose**: Each module aims to cover most of the main resource's capabilities, without the need to maintain multiple module instances for different use cases. Instead, a generalized module can be consumed through module test files. > For example, the same virtual machine module can deploy a Windows OS VM or a Linux-based VM depending on input parameters. - **Integrates child resources**: Each module can deploy **_one_** instance of a resource and optionally **_n_** instances of its child resources. > For example, the Key Vault module can deploy **_one_** Key Vault and optionally **_n_** Key Vault access policies. @@ -53,7 +53,7 @@ CARML can be considered "*opinionated*" as its code strictly follows a set of de This section illustrates the previously described module features applied to the storage account module. -Leveraging five different parameter files, the same storage account module is able to deploy five different storage account configurations. +Leveraging five different module test files, the same storage account module is able to deploy five different storage account configurations. Library: storage variants diff --git a/docs/wiki/The library - Module design.md b/docs/wiki/The library - Module design.md index 673299cde8..d925b4fa31 100644 --- a/docs/wiki/The library - Module design.md +++ b/docs/wiki/The library - Module design.md @@ -25,7 +25,7 @@ This section details the design principles followed by the CARML Bicep modules. - [Deployment names](#deployment-names) - [Outputs](#outputs) - [ReadMe](#readme) -- [Parameter files](#parameter-files) +- [Module test files](#module-test-files) - [Telemetry](#telemetry) --- @@ -60,7 +60,7 @@ They can be deployed in different configurations just by changing the input para A **CARML module** consists of - The Bicep template deployment file (`deploy.bicep`). -- One or multiple template parameters files (`*parameters.json`) that will be used for testing, located in the `.test` subfolder. +- One or multiple template parameters files (`*parameters.json`) or module test files (`deploy.test.bicep`) that will be used for testing, located in the `.test` folder and its subfolders. - A `readme.md` file which describes the module itself. A module usually represents a single resource or a set of closely related resources. For example, a storage account and the associated lock or virtual machine and network interfaces. Modules are located in the `modules` folder. @@ -110,7 +110,7 @@ Use the following naming standard for module files and folders: ├─ .bicep | ├─ nested_extensionResource1.bicep ├─ .test - | └─ parameters.json + | └─ ... ├─ deploy.bicep └─ readme.md ``` @@ -122,7 +122,7 @@ Use the following naming standard for module files and folders: > ├─ .bicep > | └─ nested_roleAssignments.bicep > ├─ .test - > | └─ parameters.json + > | └─ ... > ├─ deploy.bicep > └─ readme.md >``` @@ -161,7 +161,7 @@ resource _lock 'Microsoft.Authorization/locks@2017-04-01' = if (!e > - Child and extension resources > - Locks are not automatically passed down, as they are inherited by default in Azure > - The reference of the child/extension template should look similar to: `lock: contains(, 'lock') ? .lock : ''` -> - Using this implementation, a lock is only deployed to the child/extension resource if explicitly specified in the module's parameter file +> - Using this implementation, a lock is only deployed to the child/extension resource if explicitly specified in the module's test file > - For example, the lock of a Storage Account module is not automatically passed to a Storage Container child-deployment. Instead, the Storage Container resource is automatically locked by Azure together with a locked Storage Account > - Cross-referenced resources > - All cross-referenced resources share the lock with the main resource to prevent depending resources to be changed or deleted @@ -524,13 +524,110 @@ Note the following recommendations: - Refer to [Generate module Readme](./Contribution%20guide%20-%20Generate%20module%20Readme) for creating from scratch or updating the module ReadMe Markdown file. - It is not recommended to describe how to use child resources in the parent readme file (for example, 'How to define a \[container] entry for the \[storage account]'). Instead, it is recommended to reference the child resource's ReadMe (for example, 'container/readme.md'). -# Parameter files - -Parameter files in CARML leverage the common `deploymentParameters.json` schema for ARM deployments. As parameters are usually specific to their corresponding template, we only have a few general recommendations: -- Parameter filenames should ideally relate to the content they deploy. For example, a parameter file `min.parameters.json` should be chosen for a parameter file that contains only the minimum set of parameters to deploy the module. -- Likewise, the `name` parameter we have in most modules should give some indication of the file it was deployed with. For example, a `min.parameters.json` parameter file for the virtual network module may have a `name` property with the value `sxx-az-vnet-min-001` where `min` relates to the prefix of the parameter file itself. -- A module should have as many parameter files as it needs to evaluate all parts of the module's functionality. -- Sensitive data should not be stored inside the parameter file but rather be injected by the use of tokens, as described in the [Token replacement](./The%20CI%20environment%20-%20Token%20replacement) section, or via a [Key Vault reference](https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/key-vault-parameter?tabs=azure-cli#reference-secrets-with-static-id). +# Module test files + +Module test files in CARML are implemented in +- a classic way leveraging the common `deploymentParameters.json` schema for ARM deployments or +- using comprehensive `.bicep` test files that not only test the module's template in a certain scenario, but also deploy any required dependency for it. All classic test files will be migrated to this module following the issue [1583](https://github.com/Azure/ResourceModules/issues/1583). + +As parameters are usually specific to their corresponding template, we only have a few general recommendations: +- A module should have as many module test files as it needs to evaluate all parts of the module's functionality. +- Sensitive data should not be stored inside the module test file but rather be injected by the use of tokens, as described in the [Token replacement](./The%20CI%20environment%20-%20Token%20replacement) section, or via a [Key Vault reference](https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/key-vault-parameter?tabs=azure-cli#reference-secrets-with-static-id). + +- JSON Parameter File specific + - Parameter file names should ideally relate to the content they deploy. For example, a parameter file `min.parameters.json` should be chosen for a parameter file that contains only the minimum set of parameters to deploy the module. + - Likewise, the `name` parameter we have in most modules should give some indication of the file it was deployed with. For example, a `min.parameters.json` parameter file for the virtual network module may have a `name` property with the value `sxx-az-vnet-min-001` where `min` relates to the prefix of the parameter file itself. +- Bicep File specific + - Each scenario should be setup in its own sub-folder (e.g. `.test/linux`) + - Each folder should contain at least a file `deploy.test.bicep` and optionally an additional `dependencies.bicep` file. The `deploy.test.bicep` file should deploy any immediate dependencies (e.g. a resource group, if required) and invoke the module's main template while providing all parameters for a given test scenario. The `dependencies.bicep` should optionally be used if any additional dependencies must be deployed into a nested scope (e.g. into a deployed resource group). + - Parameters + - Each file should define a parameter `serviceShort`. This parameter should be unique to this file (i.e, no two test files should share the same) as it is injected into all resource deployments, making them unique too and account for corresponding requirements. As a reference you can create a identifier by combining a substring of the resource type and test scenario (e.g., in case of a Linux Virtual Machine Deployment: `vmlin`) + - If the module deploys a resource group level resource, the template should further have a `resourceGroupName` parameter and subsequent resource deployment. As a reference for the default name you can use `ms..-${serviceShort}-test-rg`. + - Each file should also provide a `location` parameter that may default to the deployments default location + - It is recommended to define all major resource names in the `deploy.test.bicep` file as it makes later maintenance easier. To implement this, make sure to pass all resource names to any referenced module. + - References to dependencies should be implemented using resource references in combination with outputs. In other words: You should not hardcode any references into the module template's deployment. Instead use references such as `resourceGroupResources.outputs.managedIdentityPrincipalId` + - If any diagnostic resources (e.g., a Log Analytics workspace) are required for a test scenario, you can reference the centralized `modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep` template. It will also provide you with all outputs you'd need. + +
+ Example (for a resource group level resource) + + ```Bicep + targetScope = 'subscription' + + // ========== // + // Parameters // + // ========== // + @description('Optional. The name of the resource group to deploy for a testing purposes') + @maxLength(90) + param resourceGroupName string = 'ms.analysisservices.servers-${serviceShort}-test-rg' + + @description('Optional. The location to deploy resources to') + param location string = deployment().location + + @description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') + param serviceShort string = 'asdef' + + // =========== // + // Deployments // + // =========== // + + // General resources + // ================= + resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { + name: resourceGroupName + location: location + } + + module resourceGroupResources 'dependencies.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-paramNested' + params: { + managedIdentityName: 'dep-<>-msi-${serviceShort}' + } + } + + // Diagnostics + // =========== + module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-diagDep' + params: { + storageAccountName: 'dep<>azsa${serviceShort}01' + logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}' + eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}' + eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}' + location: location + } + } + + // ============== // + // Test Execution // + // ============== // + + module testDeployment '../../deploy.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name)}-test-${serviceShort}' + params: { + name: '<>az${serviceShort}' + lock: 'CanNotDelete' + skuName: 'S0' + roleAssignments: [ + { + roleDefinitionIdOrName: 'Reader' + principalIds: [ + resourceGroupResources.outputs.managedIdentityPrincipalId + ] + } + ] + diagnosticLogsRetentionInDays: 7 + diagnosticStorageAccountId: diagnosticDependencies.outputs.storageAccountResourceId + diagnosticWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId + diagnosticEventHubAuthorizationRuleId: diagnosticDependencies.outputs.eventHubAuthorizationRuleId + diagnosticEventHubName: diagnosticDependencies.outputs.eventHubNamespaceEventHubName + } + } + ``` +
# Telemetry diff --git a/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep index f29adcd961..5e0cc09179 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep @@ -10,7 +10,7 @@ param resourceGroupName string = 'ms.analysisservices.servers-${serviceShort}-te @description('Optional. The location to deploy resources to') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') param serviceShort string = 'asdef' // =========== // diff --git a/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep index 8750daff55..9195e7b602 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep @@ -10,7 +10,7 @@ param resourceGroupName string = 'ms.analysisservices.servers-${serviceShort}-te @description('Optional. The location to deploy resources to') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') param serviceShort string = 'asmax' // =========== // diff --git a/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep index 2637f35f5e..f3644793f7 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep @@ -10,7 +10,7 @@ param resourceGroupName string = 'ms.analysisservices.servers-${serviceShort}-te @description('Optional. The location to deploy resources to') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') param serviceShort string = 'asmin' // =========== // diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/deploy.test.bicep index 069a48704d..8947b7d33b 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/deploy.test.bicep @@ -10,7 +10,7 @@ param resourceGroupName string = 'ms.compute.virtualMachines-${serviceShort}-tes @description('Optional. The location to deploy resources to') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') param serviceShort string = 'vmlinatmg' // =========== // diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux.min/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux.min/deploy.test.bicep index 5761fffd6a..4628b5111c 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux.min/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux.min/deploy.test.bicep @@ -10,7 +10,7 @@ param resourceGroupName string = 'ms.compute.virtualMachines-${serviceShort}-tes @description('Optional. The location to deploy resources to') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') param serviceShort string = 'vmlinmin' // =========== // diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep index e8b9be6727..a71d7030fb 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep @@ -10,7 +10,7 @@ param resourceGroupName string = 'ms.compute.virtualMachines-${serviceShort}-tes @description('Optional. The location to deploy resources to') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') param serviceShort string = 'vmlindef' // =========== // diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/deploy.test.bicep index a988004530..eb8e2275b4 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/deploy.test.bicep @@ -10,7 +10,7 @@ param resourceGroupName string = 'ms.compute.virtualMachines-${serviceShort}-tes @description('Optional. The location to deploy resources to') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') param serviceShort string = 'vmwinautmg' @description('Optional. The password to leverage for the login.') diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep index 3d18c263b3..26f2756719 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep @@ -10,7 +10,7 @@ param resourceGroupName string = 'ms.compute.virtualMachines-${serviceShort}-tes @description('Optional. The location to deploy resources to') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') param serviceShort string = 'vmwinmin' @description('Optional. The password to leverage for the login.') diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep index d414a4df65..5d585552da 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep @@ -10,7 +10,7 @@ param resourceGroupName string = 'ms.compute.virtualMachines-${serviceShort}-tes @description('Optional. The location to deploy resources to') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') param serviceShort string = 'vmwindef' @description('Optional. The password to leverage for the login.') From ca05e1a143b023d05f648b02b0730cbdd25f4960 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 23:15:14 +0200 Subject: [PATCH 229/274] Small update --- .../virtualMachines/.test/windows/dependencies.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep index 993b3f62ef..0511d0c263 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep @@ -111,7 +111,7 @@ resource recoveryServicesVault 'Microsoft.RecoveryServices/vaults@2022-04-01' = instantRPDetails: {} schedulePolicy: { schedulePolicyType: 'SimpleSchedulePolicy' - scheduleRunFrequency: 'Weekly' + scheduleRunFrequency: 'Daily' scheduleRunTimes: [ '2019-11-07T07:00:00Z' ] From 69d781d3217ea889d852833a14c13c0befcb0df1 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 23:26:54 +0200 Subject: [PATCH 230/274] Fixed name --- modules/Microsoft.AnalysisServices/servers/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/Microsoft.AnalysisServices/servers/readme.md b/modules/Microsoft.AnalysisServices/servers/readme.md index c9e246bccf..d918a5f2e0 100644 --- a/modules/Microsoft.AnalysisServices/servers/readme.md +++ b/modules/Microsoft.AnalysisServices/servers/readme.md @@ -212,7 +212,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "<>azaspar" + "value": "<>azasdef" }, // Non-required parameters "diagnosticEventHubAuthorizationRuleId": { From e32c23609ee38a24b4d269567155b280fc8d3c36 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 23:29:17 +0200 Subject: [PATCH 231/274] Update to latest --- modules/Microsoft.Sql/servers/readme.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/Microsoft.Sql/servers/readme.md b/modules/Microsoft.Sql/servers/readme.md index 4449351290..1f7fc1ee73 100644 --- a/modules/Microsoft.Sql/servers/readme.md +++ b/modules/Microsoft.Sql/servers/readme.md @@ -413,7 +413,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { diagnosticWorkspaceId: '' licenseType: 'LicenseIncluded' maxSizeBytes: 34359738368 - name: '<>-sqlpardb-001' + name: '<>-sqldefdb-001' skuCapacity: 12 skuFamily: 'Gen5' skuName: 'BC_Gen5' @@ -483,7 +483,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "<>-sqlpar" + "value": "<>-sqldef" }, // Non-required parameters "administratorLogin": { @@ -503,7 +503,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { "diagnosticWorkspaceId": "", "licenseType": "LicenseIncluded", "maxSizeBytes": 34359738368, - "name": "<>-sqlpardb-001", + "name": "<>-sqldefdb-001", "skuCapacity": 12, "skuFamily": "Gen5", "skuName": "BC_Gen5", From ade838b7cd6f80ea162986971fef5362721551e0 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 23:33:18 +0200 Subject: [PATCH 232/274] Reenabled param json compatibility --- .azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml b/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml index 74b38d5e97..eb9d02ed04 100644 --- a/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml +++ b/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml @@ -40,7 +40,11 @@ jobs: $testTable = @{} foreach ($deploymentTestPath in $deploymentTestPaths) { - $deploymentTestFileName = Split-Path (Split-Path $deploymentTestPath -Parent) -Leaf + if((Split-Path $deploymentTestPath -LeafBase) -eq 'bicep') { + $deploymentTestFileName = Split-Path (Split-Path $deploymentTestPath -Parent) -Leaf + } else { + $deploymentTestFileName = Split-Path $deploymentTestPath -Leaf + } $testTable[$deploymentTestFileName] += @{ moduleTestFilePath = $deploymentTestPath } From b0fee249a9576051d9c33602ff004436f3a95f05 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 23:37:17 +0200 Subject: [PATCH 233/274] Updated SQL server api --- modules/Microsoft.Sql/servers/databases/deploy.bicep | 4 ++-- modules/Microsoft.Sql/servers/databases/readme.md | 2 +- modules/Microsoft.Sql/servers/deploy.bicep | 2 +- .../Microsoft.Sql/servers/firewallRules/deploy.bicep | 4 ++-- modules/Microsoft.Sql/servers/firewallRules/readme.md | 2 +- modules/Microsoft.Sql/servers/readme.md | 10 +++++----- .../servers/securityAlertPolicies/deploy.bicep | 4 ++-- .../servers/securityAlertPolicies/readme.md | 2 +- .../servers/vulnerabilityAssessments/deploy.bicep | 4 ++-- .../servers/vulnerabilityAssessments/readme.md | 2 +- 10 files changed, 18 insertions(+), 18 deletions(-) diff --git a/modules/Microsoft.Sql/servers/databases/deploy.bicep b/modules/Microsoft.Sql/servers/databases/deploy.bicep index 917978fd6c..ea106dd350 100644 --- a/modules/Microsoft.Sql/servers/databases/deploy.bicep +++ b/modules/Microsoft.Sql/servers/databases/deploy.bicep @@ -178,11 +178,11 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } } -resource server 'Microsoft.Sql/servers@2021-05-01-preview' existing = { +resource server 'Microsoft.Sql/servers@2022-02-01-preview' existing = { name: serverName } -resource database 'Microsoft.Sql/servers/databases@2021-02-01-preview' = { +resource database 'Microsoft.Sql/servers/databases@2022-02-01-preview' = { name: name parent: server location: location diff --git a/modules/Microsoft.Sql/servers/databases/readme.md b/modules/Microsoft.Sql/servers/databases/readme.md index c67ee77e6a..a5de6b7b7b 100644 --- a/modules/Microsoft.Sql/servers/databases/readme.md +++ b/modules/Microsoft.Sql/servers/databases/readme.md @@ -14,7 +14,7 @@ This module deploys an Azure SQL Server. | Resource Type | API Version | | :-- | :-- | | `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | -| `Microsoft.Sql/servers/databases` | [2021-02-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-02-01-preview/servers/databases) | +| `Microsoft.Sql/servers/databases` | [2022-02-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2022-02-01-preview/servers/databases) | ## Parameters diff --git a/modules/Microsoft.Sql/servers/deploy.bicep b/modules/Microsoft.Sql/servers/deploy.bicep index cc0a4b8a4e..5ac081f141 100644 --- a/modules/Microsoft.Sql/servers/deploy.bicep +++ b/modules/Microsoft.Sql/servers/deploy.bicep @@ -81,7 +81,7 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } } -resource server 'Microsoft.Sql/servers@2021-05-01-preview' = { +resource server 'Microsoft.Sql/servers@2022-02-01-preview' = { location: location name: name tags: tags diff --git a/modules/Microsoft.Sql/servers/firewallRules/deploy.bicep b/modules/Microsoft.Sql/servers/firewallRules/deploy.bicep index 2ca51b8545..89ae71203a 100644 --- a/modules/Microsoft.Sql/servers/firewallRules/deploy.bicep +++ b/modules/Microsoft.Sql/servers/firewallRules/deploy.bicep @@ -25,11 +25,11 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } } -resource server 'Microsoft.Sql/servers@2021-05-01-preview' existing = { +resource server 'Microsoft.Sql/servers@2022-02-01-preview' existing = { name: serverName } -resource firewallRule 'Microsoft.Sql/servers/firewallRules@2021-05-01-preview' = { +resource firewallRule 'Microsoft.Sql/servers/firewallRules@2022-02-01-preview' = { name: name parent: server properties: { diff --git a/modules/Microsoft.Sql/servers/firewallRules/readme.md b/modules/Microsoft.Sql/servers/firewallRules/readme.md index d6cbe3fac1..d5564bac88 100644 --- a/modules/Microsoft.Sql/servers/firewallRules/readme.md +++ b/modules/Microsoft.Sql/servers/firewallRules/readme.md @@ -13,7 +13,7 @@ This module deploys an SQL Server Firewall rule. | Resource Type | API Version | | :-- | :-- | -| `Microsoft.Sql/servers/firewallRules` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-05-01-preview/servers/firewallRules) | +| `Microsoft.Sql/servers/firewallRules` | [2022-02-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2022-02-01-preview/servers/firewallRules) | ## Parameters diff --git a/modules/Microsoft.Sql/servers/readme.md b/modules/Microsoft.Sql/servers/readme.md index 1f7fc1ee73..c7e00f7970 100644 --- a/modules/Microsoft.Sql/servers/readme.md +++ b/modules/Microsoft.Sql/servers/readme.md @@ -19,11 +19,11 @@ This module deploys a SQL server. | `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | | `Microsoft.Network/privateEndpoints` | [2021-08-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-08-01/privateEndpoints) | | `Microsoft.Network/privateEndpoints/privateDnsZoneGroups` | [2021-08-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-08-01/privateEndpoints/privateDnsZoneGroups) | -| `Microsoft.Sql/servers` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-05-01-preview/servers) | -| `Microsoft.Sql/servers/databases` | [2021-02-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-02-01-preview/servers/databases) | -| `Microsoft.Sql/servers/firewallRules` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-05-01-preview/servers/firewallRules) | -| `Microsoft.Sql/servers/securityAlertPolicies` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-05-01-preview/servers/securityAlertPolicies) | -| `Microsoft.Sql/servers/vulnerabilityAssessments` | [2021-11-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-11-01-preview/servers/vulnerabilityAssessments) | +| `Microsoft.Sql/servers` | [2022-02-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2022-02-01-preview/servers) | +| `Microsoft.Sql/servers/databases` | [2022-02-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2022-02-01-preview/servers/databases) | +| `Microsoft.Sql/servers/firewallRules` | [2022-02-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2022-02-01-preview/servers/firewallRules) | +| `Microsoft.Sql/servers/securityAlertPolicies` | [2022-02-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2022-02-01-preview/servers/securityAlertPolicies) | +| `Microsoft.Sql/servers/vulnerabilityAssessments` | [2022-02-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2022-02-01-preview/servers/vulnerabilityAssessments) | ## Parameters diff --git a/modules/Microsoft.Sql/servers/securityAlertPolicies/deploy.bicep b/modules/Microsoft.Sql/servers/securityAlertPolicies/deploy.bicep index 7800a6c409..3115a9751e 100644 --- a/modules/Microsoft.Sql/servers/securityAlertPolicies/deploy.bicep +++ b/modules/Microsoft.Sql/servers/securityAlertPolicies/deploy.bicep @@ -45,11 +45,11 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } } -resource server 'Microsoft.Sql/servers@2021-05-01-preview' existing = { +resource server 'Microsoft.Sql/servers@2022-02-01-preview' existing = { name: serverName } -resource securityAlertPolicy 'Microsoft.Sql/servers/securityAlertPolicies@2021-05-01-preview' = { +resource securityAlertPolicy 'Microsoft.Sql/servers/securityAlertPolicies@2022-02-01-preview' = { name: name parent: server properties: { diff --git a/modules/Microsoft.Sql/servers/securityAlertPolicies/readme.md b/modules/Microsoft.Sql/servers/securityAlertPolicies/readme.md index e68f3c8d39..60cb233bc8 100644 --- a/modules/Microsoft.Sql/servers/securityAlertPolicies/readme.md +++ b/modules/Microsoft.Sql/servers/securityAlertPolicies/readme.md @@ -13,7 +13,7 @@ This module deploys an SQL Server Security Alert Policy. | Resource Type | API Version | | :-- | :-- | -| `Microsoft.Sql/servers/securityAlertPolicies` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-05-01-preview/servers/securityAlertPolicies) | +| `Microsoft.Sql/servers/securityAlertPolicies` | [2022-02-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2022-02-01-preview/servers/securityAlertPolicies) | ## Parameters diff --git a/modules/Microsoft.Sql/servers/vulnerabilityAssessments/deploy.bicep b/modules/Microsoft.Sql/servers/vulnerabilityAssessments/deploy.bicep index 777f905259..89a0f5ffba 100644 --- a/modules/Microsoft.Sql/servers/vulnerabilityAssessments/deploy.bicep +++ b/modules/Microsoft.Sql/servers/vulnerabilityAssessments/deploy.bicep @@ -31,11 +31,11 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } } -resource server 'Microsoft.Sql/servers@2021-05-01-preview' existing = { +resource server 'Microsoft.Sql/servers@2022-02-01-preview' existing = { name: serverName } -resource vulnerabilityAssessment 'Microsoft.Sql/servers/vulnerabilityAssessments@2021-11-01-preview' = { +resource vulnerabilityAssessment 'Microsoft.Sql/servers/vulnerabilityAssessments@2022-02-01-preview' = { name: name parent: server properties: { diff --git a/modules/Microsoft.Sql/servers/vulnerabilityAssessments/readme.md b/modules/Microsoft.Sql/servers/vulnerabilityAssessments/readme.md index 8b8cf7eed5..f48d00123c 100644 --- a/modules/Microsoft.Sql/servers/vulnerabilityAssessments/readme.md +++ b/modules/Microsoft.Sql/servers/vulnerabilityAssessments/readme.md @@ -13,7 +13,7 @@ This module deploys a vulnerability assessment for a SQL server. | Resource Type | API Version | | :-- | :-- | -| `Microsoft.Sql/servers/vulnerabilityAssessments` | [2021-11-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-11-01-preview/servers/vulnerabilityAssessments) | +| `Microsoft.Sql/servers/vulnerabilityAssessments` | [2022-02-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2022-02-01-preview/servers/vulnerabilityAssessments) | ## Parameters From 3b650861569f4e7ad711b5794e0b8fb51e806430 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 23:38:18 +0200 Subject: [PATCH 234/274] Update to latest --- modules/Microsoft.Network/vpnSites/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/Microsoft.Network/vpnSites/readme.md b/modules/Microsoft.Network/vpnSites/readme.md index 70cb568687..4e3ed32f6e 100644 --- a/modules/Microsoft.Network/vpnSites/readme.md +++ b/modules/Microsoft.Network/vpnSites/readme.md @@ -416,7 +416,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "<>-vsipar" + "value": "<>-vsidef" }, "virtualWanId": { "value": "" @@ -458,7 +458,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { "vpnSiteLinks": { "value": [ { - "name": "<>-vSite-vsipar", + "name": "<>-vSite-vsidef", "properties": { "bgpProperties": { "asn": 65010, From 3d8aa7346a42175ead271383985c657bf019204e Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 23:42:42 +0200 Subject: [PATCH 235/274] Several fixes --- .azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml | 2 +- utilities/tools/Test-ModuleLocally.ps1 | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml b/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml index eb9d02ed04..87104eaf4b 100644 --- a/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml +++ b/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml @@ -40,7 +40,7 @@ jobs: $testTable = @{} foreach ($deploymentTestPath in $deploymentTestPaths) { - if((Split-Path $deploymentTestPath -LeafBase) -eq 'bicep') { + if((Split-Path $deploymentTestPath -Extension) -eq '.bicep') { $deploymentTestFileName = Split-Path (Split-Path $deploymentTestPath -Parent) -Leaf } else { $deploymentTestFileName = Split-Path $deploymentTestPath -Leaf diff --git a/utilities/tools/Test-ModuleLocally.ps1 b/utilities/tools/Test-ModuleLocally.ps1 index b0bd4af689..eb7c9e3a90 100644 --- a/utilities/tools/Test-ModuleLocally.ps1 +++ b/utilities/tools/Test-ModuleLocally.ps1 @@ -249,7 +249,7 @@ function Test-ModuleLocally { # Loop through test files foreach ($moduleTestFile in $moduleTestFiles) { Write-Verbose ('Validating module [{0}] with test file [{1}]' -f $ModuleName, (Split-Path $moduleTestFile -Leaf)) -Verbose - if ((Split-Path $moduleTestFile -LeafBase) -eq 'json') { + if ((Split-Path $moduleTestFile -Extension) -eq '.json') { Test-TemplateDeployment @functionInput -ParameterFilePath $moduleTestFile } else { $functionInput['TemplateFilePath'] = $moduleTestFile @@ -265,7 +265,7 @@ function Test-ModuleLocally { # Loop through test files foreach ($moduleTestFile in $moduleTestFiles) { Write-Verbose ('Deploy Module [{0}] with test file [{1}]' -f $ModuleName, (Split-Path $moduleTestFile -Leaf)) -Verbose - if ((Split-Path $moduleTestFile -LeafBase) -eq 'json') { + if ((Split-Path $moduleTestFile -Extension) -eq '.json') { if ($PSCmdlet.ShouldProcess(('Module [{0}] with test file [{1}]' -f $ModuleName, (Split-Path $moduleTestFile -Leaf)), 'Deploy')) { New-TemplateDeployment @functionInput -ParameterFilePath $moduleTestFile } From 7ee5df616456447f6acf5a25ffb4cc4bead58b47 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 23:44:47 +0200 Subject: [PATCH 236/274] Update to latest --- modules/Microsoft.KeyVault/vaults/.test/min.parameters.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/Microsoft.KeyVault/vaults/.test/min.parameters.json b/modules/Microsoft.KeyVault/vaults/.test/min.parameters.json index 1b3f85781f..6aef9589c0 100644 --- a/modules/Microsoft.KeyVault/vaults/.test/min.parameters.json +++ b/modules/Microsoft.KeyVault/vaults/.test/min.parameters.json @@ -3,7 +3,7 @@ "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "<>-az-kv-min-001" + "value": "<>-az-kv-min-002" } } } From a5e820b3f70ca8b20145ef670c43eca72992a49a Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 23:45:32 +0200 Subject: [PATCH 237/274] Update to latest --- modules/Microsoft.KeyVault/vaults/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/Microsoft.KeyVault/vaults/readme.md b/modules/Microsoft.KeyVault/vaults/readme.md index a60a78c14a..af18671abf 100644 --- a/modules/Microsoft.KeyVault/vaults/readme.md +++ b/modules/Microsoft.KeyVault/vaults/readme.md @@ -402,7 +402,7 @@ The following module usage examples are retrieved from the content of the files module vaults './Microsoft.KeyVault/vaults/deploy.bicep' = { name: '${uniqueString(deployment().name)}-vaults' params: { - name: '<>-az-kv-min-001' + name: '<>-az-kv-min-002' } } ``` @@ -420,7 +420,7 @@ module vaults './Microsoft.KeyVault/vaults/deploy.bicep' = { "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "<>-az-kv-min-001" + "value": "<>-az-kv-min-002" } } } From 1f69584e2dc18bd30b3a6f329a181b14e4ba207b Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 15 Aug 2022 23:56:30 +0200 Subject: [PATCH 238/274] Adjusted cond --- .../virtualMachines/.test/linux/dependencies.bicep | 4 +++- .../virtualMachines/.test/windows/dependencies.bicep | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep index 7ff04a3793..a9f8f52972 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep @@ -193,8 +193,10 @@ resource keyVault 'Microsoft.KeyVault/vaults@2022-07-01' = { name: 'standard' } tenantId: tenant().tenantId - enabledForTemplateDeployment: true enablePurgeProtection: null + enabledForTemplateDeployment: true + enabledForDiskEncryption: true + enabledForDeployment: true enableRbacAuthorization: true accessPolicies: [] } diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep index 0511d0c263..13412c7a86 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep @@ -196,8 +196,10 @@ resource keyVault 'Microsoft.KeyVault/vaults@2022-07-01' = { name: 'standard' } tenantId: tenant().tenantId - enabledForTemplateDeployment: true enablePurgeProtection: null + enabledForTemplateDeployment: true + enabledForDiskEncryption: true + enabledForDeployment: true enableRbacAuthorization: true accessPolicies: [] } From de97a2f0cfa59fc79f7b551c2396bce9954f5424 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Tue, 16 Aug 2022 00:33:29 +0200 Subject: [PATCH 239/274] Fixed removal --- .github/actions/templates/validateModuleDeployment/action.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index fc8305d4df..24c42ea55f 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -373,9 +373,7 @@ runs: . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourceRemoval' 'Initialize-DeploymentRemoval.ps1') $functionInput = @{ - TemplateFilePath = ('${{ inputs.templateFilePath }}' -like '*.test*') ? - (Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}') : - (Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}') + TemplateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' DeploymentName = '${{ steps.deploy_step.outputs.deploymentName }}' ResourceGroupName = '${{ inputs.resourceGroupName }}' ManagementGroupId = '${{ inputs.managementGroupId }}' From cecc96ecf300cdfd4da78dd6089db583c2a9a615 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Tue, 16 Aug 2022 07:35:02 +0200 Subject: [PATCH 240/274] Added key rbac + small renames --- docs/wiki/The library - Module design.md | 2 +- .../servers/.test/default/deploy.test.bicep | 2 +- .../servers/.test/max/deploy.test.bicep | 2 +- .../.test/linux.atmg/deploy.test.bicep | 2 +- .../virtualMachines/.test/linux.min/deploy.test.bicep | 2 +- .../virtualMachines/.test/linux/dependencies.bicep | 11 +++++++++++ .../virtualMachines/.test/linux/deploy.test.bicep | 2 +- .../.test/windows.atmg/deploy.test.bicep | 2 +- .../.test/windows.min/deploy.test.bicep | 2 +- .../virtualMachines/.test/windows/dependencies.bicep | 11 +++++++++++ .../virtualMachines/.test/windows/deploy.test.bicep | 2 +- .../virtualHubs/.test/default/deploy.test.bicep | 2 +- .../virtualHubs/.test/min/deploy.test.bicep | 2 +- .../vpnSites/.test/default/deploy.test.bicep | 2 +- .../vpnSites/.test/min/deploy.test.bicep | 2 +- .../servers/.test/admin/deploy.test.bicep | 2 +- .../servers/.test/default/deploy.test.bicep | 2 +- 17 files changed, 37 insertions(+), 15 deletions(-) diff --git a/docs/wiki/The library - Module design.md b/docs/wiki/The library - Module design.md index d925b4fa31..c00bceede3 100644 --- a/docs/wiki/The library - Module design.md +++ b/docs/wiki/The library - Module design.md @@ -580,7 +580,7 @@ As parameters are usually specific to their corresponding template, we only have module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-paramNested' + name: '${uniqueString(deployment().name, location)}-nestedDependencies' params: { managedIdentityName: 'dep-<>-msi-${serviceShort}' } diff --git a/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep index 5e0cc09179..50916b6b28 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep @@ -26,7 +26,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-paramNested' + name: '${uniqueString(deployment().name, location)}-nestedDependencies' params: { managedIdentityName: 'dep-<>-msi-${serviceShort}' } diff --git a/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep index 9195e7b602..9a76be35dd 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep @@ -26,7 +26,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-paramNested' + name: '${uniqueString(deployment().name, location)}-nestedDependencies' params: { managedIdentityName: 'dep-<>-msi-${serviceShort}' } diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/deploy.test.bicep index 8947b7d33b..aecaa0c5e0 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/deploy.test.bicep @@ -26,7 +26,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-paramNested' + name: '${uniqueString(deployment().name, location)}-nestedDependencies' params: { virtualNetworkName: 'dep-<>-vnet-${serviceShort}' } diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux.min/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux.min/deploy.test.bicep index 4628b5111c..bc6e7805ec 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux.min/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux.min/deploy.test.bicep @@ -26,7 +26,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-paramNested' + name: '${uniqueString(deployment().name, location)}-nestedDependencies' params: { virtualNetworkName: 'dep-<>-vnet-${serviceShort}' } diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep index a9f8f52972..6c2b3615e7 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep @@ -209,6 +209,17 @@ resource keyVault 'Microsoft.KeyVault/vaults@2022-07-01' = { } } +resource keyPermissions 'Microsoft.Authorization/roleAssignments@2022-04-01' = { + name: guid('msi-${managedIdentityName}-KeyVault-Key-Read-RoleAssignment') + scope: keyVault::key + properties: { + principalId: managedIdentity.properties.principalId + // Key Vault Crypto User + roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '12338af0-0e69-4776-bea7-57ae8d297424') + principalType: 'ServicePrincipal' + } +} + resource storageAccount 'Microsoft.Storage/storageAccounts@2021-09-01' = { name: storageAccountName location: location diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep index a71d7030fb..0a39404839 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep @@ -26,7 +26,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-paramNested' + name: '${uniqueString(deployment().name, location)}-nestedDependencies' params: { virtualNetworkName: 'dep-<>-vnet-${serviceShort}' applicationSecurityGroupName: 'adp-<>-asg-${serviceShort}' diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/deploy.test.bicep index eb8e2275b4..57d213370c 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/deploy.test.bicep @@ -30,7 +30,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-paramNested' + name: '${uniqueString(deployment().name, location)}-nestedDependencies' params: { virtualNetworkName: 'dep-<>-vnet-${serviceShort}' } diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep index 26f2756719..e7e8ad8a46 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep @@ -30,7 +30,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-paramNested' + name: '${uniqueString(deployment().name, location)}-nestedDependencies' params: { virtualNetworkName: 'dep-<>-vnet-${serviceShort}' } diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep index 13412c7a86..308f7987b4 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep @@ -212,6 +212,17 @@ resource keyVault 'Microsoft.KeyVault/vaults@2022-07-01' = { } } +resource keyPermissions 'Microsoft.Authorization/roleAssignments@2022-04-01' = { + name: guid('msi-${managedIdentityName}-KeyVault-Key-Read-RoleAssignment') + scope: keyVault::key + properties: { + principalId: managedIdentity.properties.principalId + // Key Vault Crypto User + roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '12338af0-0e69-4776-bea7-57ae8d297424') + principalType: 'ServicePrincipal' + } +} + resource storageAccount 'Microsoft.Storage/storageAccounts@2021-09-01' = { name: storageAccountName location: location diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep index 5d585552da..023a8958d9 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep @@ -30,7 +30,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-paramNested' + name: '${uniqueString(deployment().name, location)}-nestedDependencies' params: { virtualNetworkName: 'dep-<>-vnet-${serviceShort}' applicationSecurityGroupName: 'adp-<>-asg-${serviceShort}' diff --git a/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep b/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep index a8ad9c14be..c4b13626ef 100644 --- a/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep @@ -26,7 +26,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-paramNested' + name: '${uniqueString(deployment().name, location)}-nestedDependencies' params: { virtualWANName: 'dep-<>-vw-${serviceShort}' virtualNetworkName: 'dep-<>-vnet-${serviceShort}' diff --git a/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep b/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep index 0918d7ace3..b848baa666 100644 --- a/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep +++ b/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep @@ -26,7 +26,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-paramNested' + name: '${uniqueString(deployment().name, location)}-nestedDependencies' params: { virtualWANName: 'dep-<>-vw-${serviceShort}' } diff --git a/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep b/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep index c1a5e7aaca..316d629104 100644 --- a/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep @@ -26,7 +26,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-paramNested' + name: '${uniqueString(deployment().name, location)}-nestedDependencies' params: { managedIdentityName: 'dep-<>-msi-${serviceShort}' virtualWANName: 'dep-<>-vw-${serviceShort}' diff --git a/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep b/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep index 0b66aff8c4..e5db725949 100644 --- a/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep +++ b/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep @@ -26,7 +26,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-paramNested' + name: '${uniqueString(deployment().name, location)}-nestedDependencies' params: { virtualWANName: 'dep-<>-vw-${serviceShort}' } diff --git a/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep b/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep index ae8b078ec4..c5422612f0 100644 --- a/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep +++ b/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep @@ -26,7 +26,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-paramNested' + name: '${uniqueString(deployment().name, location)}-nestedDependencies' params: { managedIdentityName: 'dep-<>-msi-${serviceShort}' } diff --git a/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep b/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep index 5ad1cab6ab..983bf4b829 100644 --- a/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep @@ -26,7 +26,7 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-paramNested' + name: '${uniqueString(deployment().name, location)}-nestedDependencies' params: { managedIdentityName: 'dep-<>-msi-${serviceShort}' virtualNetworkName: 'adp-<>-vnet-${serviceShort}' From 263f6fab8d8512ac95857e3f33d9420787c803f2 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Tue, 16 Aug 2022 07:37:39 +0200 Subject: [PATCH 241/274] small renames --- docs/wiki/The library - Module design.md | 2 +- .../servers/.test/default/deploy.test.bicep | 2 +- .../servers/.test/max/deploy.test.bicep | 2 +- .../virtualMachines/.test/linux/deploy.test.bicep | 2 +- .../virtualMachines/.test/windows/deploy.test.bicep | 2 +- modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/wiki/The library - Module design.md b/docs/wiki/The library - Module design.md index c00bceede3..58f1d16b0d 100644 --- a/docs/wiki/The library - Module design.md +++ b/docs/wiki/The library - Module design.md @@ -590,7 +590,7 @@ As parameters are usually specific to their corresponding template, we only have // =========== module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-diagDep' + name: '${uniqueString(deployment().name, location)}-diagnosticDependencies' params: { storageAccountName: 'dep<>azsa${serviceShort}01' logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}' diff --git a/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep index 50916b6b28..aaee2cd49f 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep @@ -36,7 +36,7 @@ module resourceGroupResources 'dependencies.bicep' = { // =========== module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-diagDep' + name: '${uniqueString(deployment().name, location)}-diagnosticDependencies' params: { storageAccountName: 'dep<>azsa${serviceShort}01' logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}' diff --git a/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep index 9a76be35dd..aeea0b4532 100644 --- a/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep +++ b/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep @@ -36,7 +36,7 @@ module resourceGroupResources 'dependencies.bicep' = { // =========== module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-diagDep' + name: '${uniqueString(deployment().name, location)}-diagnosticDependencies' params: { storageAccountName: 'dep<>azsa${serviceShort}01' logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}' diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep index 0a39404839..9866f43cda 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep @@ -43,7 +43,7 @@ module resourceGroupResources 'dependencies.bicep' = { // =========== module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-diagDep' + name: '${uniqueString(deployment().name, location)}-diagnosticDependencies' params: { storageAccountName: 'dep<>diasa${serviceShort}01' logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}' diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep index 023a8958d9..1d0965449f 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep @@ -48,7 +48,7 @@ module resourceGroupResources 'dependencies.bicep' = { // =========== module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-diagDep' + name: '${uniqueString(deployment().name, location)}-diagnosticDependencies' params: { storageAccountName: 'dep<>diasa${serviceShort}01' logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}' diff --git a/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep b/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep index 983bf4b829..f444ebc739 100644 --- a/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep +++ b/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep @@ -46,7 +46,7 @@ resource keyVaultReference 'Microsoft.KeyVault/vaults@2021-10-01' existing = { // =========== module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-diagDep' + name: '${uniqueString(deployment().name, location)}-diagnosticDependencies' params: { storageAccountName: 'dep<>azsa${serviceShort}01' logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}' From c9f9145f01abc396f5560b568b2173bd4419477c Mon Sep 17 00:00:00 2001 From: MrMCake Date: Tue, 16 Aug 2022 09:13:55 +0200 Subject: [PATCH 242/274] Template fix --- .azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml b/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml index 87104eaf4b..3f5650fc65 100644 --- a/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml +++ b/.azuredevops/pipelineTemplates/jobs.getModuleTestFiles.yml @@ -40,9 +40,11 @@ jobs: $testTable = @{} foreach ($deploymentTestPath in $deploymentTestPaths) { - if((Split-Path $deploymentTestPath -Extension) -eq '.bicep') { + if((Split-Path (Split-Path $deploymentTestPath) -Leaf) -ne '.test') { + # Using test files in subfolders (e.g. '.test/deploy.test.json') $deploymentTestFileName = Split-Path (Split-Path $deploymentTestPath -Parent) -Leaf } else { + # Using parameter files (e.g. '.test/parameters.json') $deploymentTestFileName = Split-Path $deploymentTestPath -Leaf } $testTable[$deploymentTestFileName] += @{ From 32a21e270558426a87620e678800b3d8219cf009 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Tue, 16 Aug 2022 09:45:08 +0200 Subject: [PATCH 243/274] Updated cse --- .../.test/linux/deploy.test.bicep | 2 +- .../.test/windows/deploy.test.bicep | 30 +++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep index 9866f43cda..6b94940be1 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep @@ -162,7 +162,7 @@ module testDeployment '../../deploy.bicep' = { ] } extensionCustomScriptProtectedSetting: { - commandToExecute: 'sudo apt-get update' + commandToExecute: 'powershell -ExecutionPolicy Unrestricted -Command "& ./${last(split(resourceGroupResources.outputs.storageAccountCSEFileUrl, '/'))}"' } extensionDependencyAgentConfig: { enabled: true diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep index 1d0965449f..855cd2e125 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep @@ -32,15 +32,15 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-nestedDependencies' params: { - virtualNetworkName: 'dep-<>-vnet-${serviceShort}' - applicationSecurityGroupName: 'adp-<>-asg-${serviceShort}' - managedIdentityName: 'dep-<>-msi-${serviceShort}' - keyVaultName: 'dep-<>-kv-${serviceShort}' - loadBalancerName: 'dep-<>-lb-${serviceShort}' - recoveryServicesVaultName: 'dep-<>-rsv-${serviceShort}' - storageAccountName: 'dep<>sa${serviceShort}01' - storageUploadDeploymentScriptName: 'dep-<>-sads-${serviceShort}' - proximityPlacementGroupName: 'dep-<>-ppg-${serviceShort}' + virtualNetworkName: 'dep-carml-vnet-${serviceShort}' + applicationSecurityGroupName: 'adp-carml-asg-${serviceShort}' + managedIdentityName: 'dep-carml-msi-${serviceShort}' + keyVaultName: 'dep-carml-kv-${serviceShort}' + loadBalancerName: 'dep-carml-lb-${serviceShort}' + recoveryServicesVaultName: 'dep-carml-rsv-${serviceShort}' + storageAccountName: 'depcarmlsa${serviceShort}01' + storageUploadDeploymentScriptName: 'dep-carml-sads-${serviceShort}' + proximityPlacementGroupName: 'dep-carml-ppg-${serviceShort}' } } @@ -50,10 +50,10 @@ module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnost scope: resourceGroup name: '${uniqueString(deployment().name, location)}-diagnosticDependencies' params: { - storageAccountName: 'dep<>diasa${serviceShort}01' - logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}' - eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}' - eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}' + storageAccountName: 'depcarmldiasa${serviceShort}01' + logAnalyticsWorkspaceName: 'dep-carml-law-${serviceShort}' + eventHubNamespaceEventHubName: 'dep-carml-evh-${serviceShort}' + eventHubNamespaceName: 'dep-carml-evhns-${serviceShort}' location: location } } @@ -66,7 +66,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { - name: '<>${serviceShort}' + name: 'carml${serviceShort}' adminUsername: 'localAdminUser' imageReference: { offer: 'WindowsServer' @@ -185,7 +185,7 @@ module testDeployment '../../deploy.bicep' = { ] } extensionCustomScriptProtectedSetting: { - commandToExecute: 'powershell -ExecutionPolicy Unrestricted -Command \'& .\\${last(split(resourceGroupResources.outputs.storageAccountCSEFileUrl, '/'))}\'' + commandToExecute: 'powershell -ExecutionPolicy Unrestricted -Command "& ./${last(split(resourceGroupResources.outputs.storageAccountCSEFileUrl, '/'))}"' } extensionDependencyAgentConfig: { enabled: true From ccfac9bb6938f38c7d1ba1ed975e020af4e137c1 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Tue, 16 Aug 2022 10:08:40 +0200 Subject: [PATCH 244/274] Update naming --- .../.test/windows/deploy.test.bicep | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep index 855cd2e125..f18c7191a2 100644 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep @@ -32,15 +32,15 @@ module resourceGroupResources 'dependencies.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name, location)}-nestedDependencies' params: { - virtualNetworkName: 'dep-carml-vnet-${serviceShort}' - applicationSecurityGroupName: 'adp-carml-asg-${serviceShort}' - managedIdentityName: 'dep-carml-msi-${serviceShort}' - keyVaultName: 'dep-carml-kv-${serviceShort}' - loadBalancerName: 'dep-carml-lb-${serviceShort}' - recoveryServicesVaultName: 'dep-carml-rsv-${serviceShort}' - storageAccountName: 'depcarmlsa${serviceShort}01' - storageUploadDeploymentScriptName: 'dep-carml-sads-${serviceShort}' - proximityPlacementGroupName: 'dep-carml-ppg-${serviceShort}' + virtualNetworkName: 'dep-<>-vnet-${serviceShort}' + applicationSecurityGroupName: 'adp-<>-asg-${serviceShort}' + managedIdentityName: 'dep-<>-msi-${serviceShort}' + keyVaultName: 'dep-<>-kv-${serviceShort}' + loadBalancerName: 'dep-<>-lb-${serviceShort}' + recoveryServicesVaultName: 'dep-<>-rsv-${serviceShort}' + storageAccountName: 'dep<>sa${serviceShort}01' + storageUploadDeploymentScriptName: 'dep-<>-sads-${serviceShort}' + proximityPlacementGroupName: 'dep-<>-ppg-${serviceShort}' } } @@ -50,10 +50,10 @@ module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnost scope: resourceGroup name: '${uniqueString(deployment().name, location)}-diagnosticDependencies' params: { - storageAccountName: 'depcarmldiasa${serviceShort}01' - logAnalyticsWorkspaceName: 'dep-carml-law-${serviceShort}' - eventHubNamespaceEventHubName: 'dep-carml-evh-${serviceShort}' - eventHubNamespaceName: 'dep-carml-evhns-${serviceShort}' + storageAccountName: 'dep<>diasa${serviceShort}01' + logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}' + eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}' + eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}' location: location } } @@ -66,7 +66,7 @@ module testDeployment '../../deploy.bicep' = { scope: resourceGroup name: '${uniqueString(deployment().name)}-test-${serviceShort}' params: { - name: 'carml${serviceShort}' + name: '<>${serviceShort}' adminUsername: 'localAdminUser' imageReference: { offer: 'WindowsServer' From a0a74eb22d4a8c619e89ffca2dc147d58e572421 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Tue, 16 Aug 2022 15:42:33 +0200 Subject: [PATCH 245/274] Removed reworked modules from PR --- .../workflows/ms.analysisservices.servers.yml | 3 +- .../workflows/ms.compute.virtualmachines.yml | 3 +- .github/workflows/ms.network.virtualhubs.yml | 3 +- .github/workflows/ms.network.vpnsites.yml | 3 +- .github/workflows/ms.sql.servers.yml | 3 +- .../servers/.test/admin.parameters.json | 18 + .../servers/.test/default/dependencies.bicep | 13 - .../servers/.test/default/deploy.test.bicep | 74 -- .../servers/.test/max.parameters.json | 66 ++ .../servers/.test/max/dependencies.bicep | 13 - .../servers/.test/max/deploy.test.bicep | 92 -- .../servers/.test/min.parameters.json | 9 + .../servers/.test/min/deploy.test.bicep | 37 - .../servers/.test/parameters.json | 40 + .../servers/databases/deploy.bicep | 230 +++++ .../servers/databases/readme.md | 116 +++ .../servers/databases/version.json | 4 + .../servers/firewallRules/deploy.bicep | 48 + .../servers/firewallRules/readme.md | 48 + .../servers/firewallRules/version.json | 4 + .../servers/readme.md | 218 ++--- .../securityAlertPolicies/deploy.bicep | 73 ++ .../servers/securityAlertPolicies/readme.md | 53 ++ .../securityAlertPolicies/version.json | 4 + .../vulnerabilityAssessments/deploy.bicep | 59 ++ .../vulnerabilityAssessments/readme.md | 46 + .../vulnerabilityAssessments/version.json | 4 + .../.test/linux.atmg/dependencies.bicep | 28 - .../.test/linux.atmg/deploy.test.bicep | 82 -- .../.test/linux.autmg.parameters.json | 64 ++ .../.test/linux.min.parameters.json | 61 ++ .../.test/linux.min/dependencies.bicep | 28 - .../.test/linux.min/deploy.test.bicep | 81 -- .../.test/linux.parameters.json | 218 +++++ .../.test/linux/dependencies.bicep | 308 ------- .../.test/linux/deploy.test.bicep | 213 ----- .../.test/windows.atmg/dependencies.bicep | 28 - .../.test/windows.atmg/deploy.test.bicep | 77 -- .../.test/windows.autmg.parameters.json | 58 ++ .../.test/windows.min.parameters.json | 55 ++ .../.test/windows.min/dependencies.bicep | 28 - .../.test/windows.min/deploy.test.bicep | 75 -- .../.test/windows.parameters.json | 238 +++++ .../.test/windows/dependencies.bicep | 319 ------- .../.test/windows/deploy.test.bicep | 231 ----- .../virtualMachines/readme.md | 830 +++++++++--------- .../vaults/.test/min.parameters.json | 2 +- .../vaults/.test/parameters.json | 2 +- modules/Microsoft.KeyVault/vaults/readme.md | 8 +- .../.test/default/dependencies.bicep | 40 - .../.test/default/deploy.test.bicep | 75 -- .../virtualHubs/.test/min.parameters.json | 15 + .../virtualHubs/.test/min/dependencies.bicep | 13 - .../virtualHubs/.test/min/deploy.test.bicep | 47 - .../virtualHubs/.test/parameters.json | 48 + .../Microsoft.Network/virtualHubs/readme.md | 120 +-- .../vpnSites/.test/default/dependencies.bicep | 24 - .../vpnSites/.test/default/deploy.test.bicep | 100 --- .../vpnSites/.test/min.parameters.json | 20 + .../vpnSites/.test/min/dependencies.bicep | 13 - .../vpnSites/.test/min/deploy.test.bicep | 50 -- .../vpnSites/.test/parameters.json | 77 ++ .../Microsoft.Network/vpnSites/deploy.bicep | 4 +- modules/Microsoft.Network/vpnSites/readme.md | 144 ++- .../servers/.test/admin.parameters.json | 18 + .../servers/.test/admin/dependencies.bicep | 13 - .../servers/.test/admin/deploy.test.bicep | 52 -- .../servers/.test/default/dependencies.bicep | 111 --- .../servers/.test/default/deploy.test.bicep | 133 --- .../servers/.test/parameters.json | 104 +++ .../servers/databases/deploy.bicep | 4 +- .../Microsoft.Sql/servers/databases/readme.md | 2 +- modules/Microsoft.Sql/servers/deploy.bicep | 2 +- .../servers/firewallRules/deploy.bicep | 4 +- .../servers/firewallRules/readme.md | 2 +- modules/Microsoft.Sql/servers/readme.md | 90 +- .../securityAlertPolicies/deploy.bicep | 4 +- .../servers/securityAlertPolicies/readme.md | 2 +- .../vulnerabilityAssessments/deploy.bicep | 4 +- .../vulnerabilityAssessments/readme.md | 2 +- 80 files changed, 2548 insertions(+), 3107 deletions(-) create mode 100644 modules/Microsoft.AnalysisServices/servers/.test/admin.parameters.json delete mode 100644 modules/Microsoft.AnalysisServices/servers/.test/default/dependencies.bicep delete mode 100644 modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep create mode 100644 modules/Microsoft.AnalysisServices/servers/.test/max.parameters.json delete mode 100644 modules/Microsoft.AnalysisServices/servers/.test/max/dependencies.bicep delete mode 100644 modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep create mode 100644 modules/Microsoft.AnalysisServices/servers/.test/min.parameters.json delete mode 100644 modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep create mode 100644 modules/Microsoft.AnalysisServices/servers/.test/parameters.json create mode 100644 modules/Microsoft.AnalysisServices/servers/databases/deploy.bicep create mode 100644 modules/Microsoft.AnalysisServices/servers/databases/readme.md create mode 100644 modules/Microsoft.AnalysisServices/servers/databases/version.json create mode 100644 modules/Microsoft.AnalysisServices/servers/firewallRules/deploy.bicep create mode 100644 modules/Microsoft.AnalysisServices/servers/firewallRules/readme.md create mode 100644 modules/Microsoft.AnalysisServices/servers/firewallRules/version.json create mode 100644 modules/Microsoft.AnalysisServices/servers/securityAlertPolicies/deploy.bicep create mode 100644 modules/Microsoft.AnalysisServices/servers/securityAlertPolicies/readme.md create mode 100644 modules/Microsoft.AnalysisServices/servers/securityAlertPolicies/version.json create mode 100644 modules/Microsoft.AnalysisServices/servers/vulnerabilityAssessments/deploy.bicep create mode 100644 modules/Microsoft.AnalysisServices/servers/vulnerabilityAssessments/readme.md create mode 100644 modules/Microsoft.AnalysisServices/servers/vulnerabilityAssessments/version.json delete mode 100644 modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/dependencies.bicep delete mode 100644 modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/deploy.test.bicep create mode 100644 modules/Microsoft.Compute/virtualMachines/.test/linux.autmg.parameters.json create mode 100644 modules/Microsoft.Compute/virtualMachines/.test/linux.min.parameters.json delete mode 100644 modules/Microsoft.Compute/virtualMachines/.test/linux.min/dependencies.bicep delete mode 100644 modules/Microsoft.Compute/virtualMachines/.test/linux.min/deploy.test.bicep create mode 100644 modules/Microsoft.Compute/virtualMachines/.test/linux.parameters.json delete mode 100644 modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep delete mode 100644 modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep delete mode 100644 modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/dependencies.bicep delete mode 100644 modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/deploy.test.bicep create mode 100644 modules/Microsoft.Compute/virtualMachines/.test/windows.autmg.parameters.json create mode 100644 modules/Microsoft.Compute/virtualMachines/.test/windows.min.parameters.json delete mode 100644 modules/Microsoft.Compute/virtualMachines/.test/windows.min/dependencies.bicep delete mode 100644 modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep create mode 100644 modules/Microsoft.Compute/virtualMachines/.test/windows.parameters.json delete mode 100644 modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep delete mode 100644 modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep delete mode 100644 modules/Microsoft.Network/virtualHubs/.test/default/dependencies.bicep delete mode 100644 modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep create mode 100644 modules/Microsoft.Network/virtualHubs/.test/min.parameters.json delete mode 100644 modules/Microsoft.Network/virtualHubs/.test/min/dependencies.bicep delete mode 100644 modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep create mode 100644 modules/Microsoft.Network/virtualHubs/.test/parameters.json delete mode 100644 modules/Microsoft.Network/vpnSites/.test/default/dependencies.bicep delete mode 100644 modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep create mode 100644 modules/Microsoft.Network/vpnSites/.test/min.parameters.json delete mode 100644 modules/Microsoft.Network/vpnSites/.test/min/dependencies.bicep delete mode 100644 modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep create mode 100644 modules/Microsoft.Network/vpnSites/.test/parameters.json create mode 100644 modules/Microsoft.Sql/servers/.test/admin.parameters.json delete mode 100644 modules/Microsoft.Sql/servers/.test/admin/dependencies.bicep delete mode 100644 modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep delete mode 100644 modules/Microsoft.Sql/servers/.test/default/dependencies.bicep delete mode 100644 modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep create mode 100644 modules/Microsoft.Sql/servers/.test/parameters.json diff --git a/.github/workflows/ms.analysisservices.servers.yml b/.github/workflows/ms.analysisservices.servers.yml index 14dc7290bb..7551a91337 100644 --- a/.github/workflows/ms.analysisservices.servers.yml +++ b/.github/workflows/ms.analysisservices.servers.yml @@ -106,7 +106,8 @@ jobs: - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' + templateFilePath: '${{ env.modulePath }}/deploy.bicep' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.compute.virtualmachines.yml b/.github/workflows/ms.compute.virtualmachines.yml index 33d214bd98..bec15527fa 100644 --- a/.github/workflows/ms.compute.virtualmachines.yml +++ b/.github/workflows/ms.compute.virtualmachines.yml @@ -106,7 +106,8 @@ jobs: - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' + templateFilePath: '${{ env.modulePath }}/deploy.bicep' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.virtualhubs.yml b/.github/workflows/ms.network.virtualhubs.yml index 12c1e63689..6f8804f622 100644 --- a/.github/workflows/ms.network.virtualhubs.yml +++ b/.github/workflows/ms.network.virtualhubs.yml @@ -106,7 +106,8 @@ jobs: - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' + templateFilePath: '${{ env.modulePath }}/deploy.bicep' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.network.vpnsites.yml b/.github/workflows/ms.network.vpnsites.yml index 73f10b3c22..8488bb8a44 100644 --- a/.github/workflows/ms.network.vpnsites.yml +++ b/.github/workflows/ms.network.vpnsites.yml @@ -106,7 +106,8 @@ jobs: - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' + templateFilePath: '${{ env.modulePath }}/deploy.bicep' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/.github/workflows/ms.sql.servers.yml b/.github/workflows/ms.sql.servers.yml index 28397eb22f..972e422285 100644 --- a/.github/workflows/ms.sql.servers.yml +++ b/.github/workflows/ms.sql.servers.yml @@ -106,7 +106,8 @@ jobs: - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' + templateFilePath: '${{ env.modulePath }}/deploy.bicep' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/modules/Microsoft.AnalysisServices/servers/.test/admin.parameters.json b/modules/Microsoft.AnalysisServices/servers/.test/admin.parameters.json new file mode 100644 index 0000000000..eadb38deec --- /dev/null +++ b/modules/Microsoft.AnalysisServices/servers/.test/admin.parameters.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-az-sqlsrv-admin-001" + }, + "administrators": { + "value": { + "azureADOnlyAuthentication": true, + "login": "myspn", + "sid": "<>", + "principalType": "Application", + "tenantId": "<>" + } + } + } +} diff --git a/modules/Microsoft.AnalysisServices/servers/.test/default/dependencies.bicep b/modules/Microsoft.AnalysisServices/servers/.test/default/dependencies.bicep deleted file mode 100644 index b3a1b11a15..0000000000 --- a/modules/Microsoft.AnalysisServices/servers/.test/default/dependencies.bicep +++ /dev/null @@ -1,13 +0,0 @@ -@description('Required. The name of the managed identity to create') -param managedIdentityName string - -@description('Optional. The location to deploy to') -param location string = resourceGroup().location - -resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { - name: managedIdentityName - location: location -} - -@description('The principal ID of the created managed identity') -output managedIdentityPrincipalId string = managedIdentity.properties.principalId diff --git a/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep deleted file mode 100644 index aaee2cd49f..0000000000 --- a/modules/Microsoft.AnalysisServices/servers/.test/default/deploy.test.bicep +++ /dev/null @@ -1,74 +0,0 @@ -targetScope = 'subscription' - -// ========== // -// Parameters // -// ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes') -@maxLength(90) -param resourceGroupName string = 'ms.analysisservices.servers-${serviceShort}-test-rg' - -@description('Optional. The location to deploy resources to') -param location string = deployment().location - -@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'asdef' - -// =========== // -// Deployments // -// =========== // - -// General resources -// ================= -resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { - name: resourceGroupName - location: location -} - -module resourceGroupResources 'dependencies.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-nestedDependencies' - params: { - managedIdentityName: 'dep-<>-msi-${serviceShort}' - } -} - -// Diagnostics -// =========== -module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-diagnosticDependencies' - params: { - storageAccountName: 'dep<>azsa${serviceShort}01' - logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}' - eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}' - eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}' - location: location - } -} - -// ============== // -// Test Execution // -// ============== // - -module testDeployment '../../deploy.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name)}-test-${serviceShort}' - params: { - name: '<>az${serviceShort}' - lock: 'CanNotDelete' - skuName: 'S0' - roleAssignments: [ - { - roleDefinitionIdOrName: 'Reader' - principalIds: [ - resourceGroupResources.outputs.managedIdentityPrincipalId - ] - } - ] - diagnosticLogsRetentionInDays: 7 - diagnosticStorageAccountId: diagnosticDependencies.outputs.storageAccountResourceId - diagnosticWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId - diagnosticEventHubAuthorizationRuleId: diagnosticDependencies.outputs.eventHubAuthorizationRuleId - diagnosticEventHubName: diagnosticDependencies.outputs.eventHubNamespaceEventHubName - } -} diff --git a/modules/Microsoft.AnalysisServices/servers/.test/max.parameters.json b/modules/Microsoft.AnalysisServices/servers/.test/max.parameters.json new file mode 100644 index 0000000000..54abf71cc2 --- /dev/null +++ b/modules/Microsoft.AnalysisServices/servers/.test/max.parameters.json @@ -0,0 +1,66 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>azasweumax001" + }, + "lock": { + "value": "CanNotDelete" + }, + "skuName": { + "value": "S0" + }, + "skuCapacity": { + "value": 1 + }, + "firewallSettings": { + "value": { + "firewallRules": [ + { + "firewallRuleName": "AllowFromAll", + "rangeStart": "0.0.0.0", + "rangeEnd": "255.255.255.255" + } + ], + "enablePowerBIService": true + } + }, + "diagnosticLogsRetentionInDays": { + "value": 365 + }, + "diagnosticStorageAccountId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" + }, + "diagnosticWorkspaceId": { + "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" + }, + "diagnosticEventHubAuthorizationRuleId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" + }, + "diagnosticEventHubName": { + "value": "adp-<>-az-evh-x-001" + }, + "roleAssignments": { + "value": [ + { + "roleDefinitionIdOrName": "Reader", + "principalIds": [ + "<>" + ] + } + ] + }, + "diagnosticLogCategoriesToEnable": { + "value": [ + "Engine", + "Service" + ] + }, + "diagnosticMetricsToEnable": { + "value": [ + "AllMetrics" + ] + } + } +} diff --git a/modules/Microsoft.AnalysisServices/servers/.test/max/dependencies.bicep b/modules/Microsoft.AnalysisServices/servers/.test/max/dependencies.bicep deleted file mode 100644 index b3a1b11a15..0000000000 --- a/modules/Microsoft.AnalysisServices/servers/.test/max/dependencies.bicep +++ /dev/null @@ -1,13 +0,0 @@ -@description('Required. The name of the managed identity to create') -param managedIdentityName string - -@description('Optional. The location to deploy to') -param location string = resourceGroup().location - -resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { - name: managedIdentityName - location: location -} - -@description('The principal ID of the created managed identity') -output managedIdentityPrincipalId string = managedIdentity.properties.principalId diff --git a/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep deleted file mode 100644 index aeea0b4532..0000000000 --- a/modules/Microsoft.AnalysisServices/servers/.test/max/deploy.test.bicep +++ /dev/null @@ -1,92 +0,0 @@ -targetScope = 'subscription' - -// ========== // -// Parameters // -// ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes') -@maxLength(90) -param resourceGroupName string = 'ms.analysisservices.servers-${serviceShort}-test-rg' - -@description('Optional. The location to deploy resources to') -param location string = deployment().location - -@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'asmax' - -// =========== // -// Deployments // -// =========== // - -// General resources -// ================= -resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { - name: resourceGroupName - location: location -} - -module resourceGroupResources 'dependencies.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-nestedDependencies' - params: { - managedIdentityName: 'dep-<>-msi-${serviceShort}' - } -} - -// Diagnostics -// =========== -module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-diagnosticDependencies' - params: { - storageAccountName: 'dep<>azsa${serviceShort}01' - logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}' - eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}' - eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}' - location: location - } -} - -// ============== // -// Test Execution // -// ============== // - -module testDeployment '../../deploy.bicep' = { - scope: az.resourceGroup(resourceGroupName) - name: '${uniqueString(deployment().name)}-test-${serviceShort}' - params: { - name: '<>az${serviceShort}' - lock: 'CanNotDelete' - skuName: 'S0' - skuCapacity: 1 - firewallSettings: { - firewallRules: [ - { - firewallRuleName: 'AllowFromAll' - rangeStart: '0.0.0.0' - rangeEnd: '255.255.255.255' - } - ] - enablePowerBIService: true - } - roleAssignments: [ - { - roleDefinitionIdOrName: 'Reader' - principalIds: [ - resourceGroupResources.outputs.managedIdentityPrincipalId - ] - } - ] - diagnosticLogsRetentionInDays: 7 - diagnosticStorageAccountId: diagnosticDependencies.outputs.storageAccountResourceId - diagnosticWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId - diagnosticEventHubAuthorizationRuleId: diagnosticDependencies.outputs.eventHubAuthorizationRuleId - diagnosticEventHubName: diagnosticDependencies.outputs.eventHubNamespaceEventHubName - diagnosticLogCategoriesToEnable: [ - 'Engine' - 'Service' - ] - diagnosticMetricsToEnable: [ - 'AllMetrics' - ] - } -} diff --git a/modules/Microsoft.AnalysisServices/servers/.test/min.parameters.json b/modules/Microsoft.AnalysisServices/servers/.test/min.parameters.json new file mode 100644 index 0000000000..33c06055de --- /dev/null +++ b/modules/Microsoft.AnalysisServices/servers/.test/min.parameters.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>azasweumin001" + } + } +} diff --git a/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep b/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep deleted file mode 100644 index f3644793f7..0000000000 --- a/modules/Microsoft.AnalysisServices/servers/.test/min/deploy.test.bicep +++ /dev/null @@ -1,37 +0,0 @@ -targetScope = 'subscription' - -// ========== // -// Parameters // -// ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes') -@maxLength(90) -param resourceGroupName string = 'ms.analysisservices.servers-${serviceShort}-test-rg' - -@description('Optional. The location to deploy resources to') -param location string = deployment().location - -@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'asmin' - -// =========== // -// Deployments // -// =========== // - -// General resources -// ================= -resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { - name: resourceGroupName - location: location -} - -// ============== // -// Test Execution // -// ============== // - -module testDeployment '../../deploy.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name)}-test-${serviceShort}' - params: { - name: '<>az${serviceShort}' - } -} diff --git a/modules/Microsoft.AnalysisServices/servers/.test/parameters.json b/modules/Microsoft.AnalysisServices/servers/.test/parameters.json new file mode 100644 index 0000000000..592ffff258 --- /dev/null +++ b/modules/Microsoft.AnalysisServices/servers/.test/parameters.json @@ -0,0 +1,40 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>azasweux001" + }, + "lock": { + "value": "CanNotDelete" + }, + "skuName": { + "value": "S0" + }, + "roleAssignments": { + "value": [ + { + "roleDefinitionIdOrName": "Reader", + "principalIds": [ + "<>" + ] + } + ] + }, + "diagnosticLogsRetentionInDays": { + "value": 7 + }, + "diagnosticStorageAccountId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" + }, + "diagnosticWorkspaceId": { + "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" + }, + "diagnosticEventHubAuthorizationRuleId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" + }, + "diagnosticEventHubName": { + "value": "adp-<>-az-evh-x-001" + } + } +} diff --git a/modules/Microsoft.AnalysisServices/servers/databases/deploy.bicep b/modules/Microsoft.AnalysisServices/servers/databases/deploy.bicep new file mode 100644 index 0000000000..917978fd6c --- /dev/null +++ b/modules/Microsoft.AnalysisServices/servers/databases/deploy.bicep @@ -0,0 +1,230 @@ +@description('Required. The name of the database.') +param name string + +@description('Conditional. The name of the parent SQL Server. Required if the template is used in a standalone deployment.') +param serverName string + +@description('Optional. The collation of the database.') +param collation string = 'SQL_Latin1_General_CP1_CI_AS' + +@description('Optional. The skuTier or edition of the particular SKU.') +param skuTier string = 'GeneralPurpose' + +@description('Optional. The name of the SKU.') +param skuName string = 'GP_Gen5_2' + +@description('Optional. Capacity of the particular SKU.') +param skuCapacity int = -1 + +@description('Optional. If the service has different generations of hardware, for the same SKU, then that can be captured here.') +param skuFamily string = '' + +@description('Optional. Size of the particular SKU.') +param skuSize string = '' + +@description('Optional. The max size of the database expressed in bytes.') +param maxSizeBytes int = 34359738368 + +@description('Optional. The name of the sample schema to apply when creating this database.') +param sampleName string = '' + +@description('Optional. Whether or not this database is zone redundant.') +param zoneRedundant bool = false + +@description('Optional. The license type to apply for this database.') +param licenseType string = '' + +@description('Optional. The state of read-only routing.') +@allowed([ + 'Enabled' + 'Disabled' +]) +param readScale string = 'Disabled' + +@description('Optional. The number of readonly secondary replicas associated with the database.') +param highAvailabilityReplicaCount int = 0 + +@description('Optional. Minimal capacity that database will always have allocated.') +param minCapacity string = '' + +@description('Optional. Time in minutes after which database is automatically paused.') +param autoPauseDelay string = '' + +@description('Optional. Tags of the resource.') +param tags object = {} + +@description('Optional. Location for all resources.') +param location string = resourceGroup().location + +@description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') +param enableDefaultTelemetry bool = true + +@description('Optional. Specifies the number of days that logs will be kept for; a value of 0 will retain data indefinitely.') +@minValue(0) +@maxValue(365) +param diagnosticLogsRetentionInDays int = 365 + +@description('Optional. Resource ID of the diagnostic storage account.') +param diagnosticStorageAccountId string = '' + +@description('Optional. Resource ID of the diagnostic log analytics workspace.') +param diagnosticWorkspaceId string = '' + +@description('Optional. Resource ID of the diagnostic event hub authorization rule for the Event Hubs namespace in which the event hub should be created or streamed to.') +param diagnosticEventHubAuthorizationRuleId string = '' + +@description('Optional. Name of the diagnostic event hub within the namespace to which logs are streamed. Without this, an event hub is created for each log category.') +param diagnosticEventHubName string = '' + +@description('Optional. The name of logs that will be streamed.') +@allowed([ + 'SQLInsights' + 'AutomaticTuning' + 'QueryStoreRuntimeStatistics' + 'QueryStoreWaitStatistics' + 'Errors' + 'DatabaseWaitStatistics' + 'Timeouts' + 'Blocks' + 'Deadlocks' + 'DevOpsOperationsAudit' + 'SQLSecurityAuditEvents' +]) +param diagnosticLogCategoriesToEnable array = [ + 'SQLInsights' + 'AutomaticTuning' + 'QueryStoreRuntimeStatistics' + 'QueryStoreWaitStatistics' + 'Errors' + 'DatabaseWaitStatistics' + 'Timeouts' + 'Blocks' + 'Deadlocks' + 'DevOpsOperationsAudit' + 'SQLSecurityAuditEvents' +] + +@description('Optional. The name of metrics that will be streamed.') +@allowed([ + 'Basic' + 'InstanceAndAppAdvanced' + 'WorkloadManagement' +]) +param diagnosticMetricsToEnable array = [ + 'Basic' + 'InstanceAndAppAdvanced' + 'WorkloadManagement' +] + +@description('Optional. The name of the diagnostic setting, if deployed.') +param diagnosticSettingsName string = '${name}-diagnosticSettings' + +var diagnosticsLogs = [for category in diagnosticLogCategoriesToEnable: { + category: category + enabled: true + retentionPolicy: { + enabled: true + days: diagnosticLogsRetentionInDays + } +}] + +var diagnosticsMetrics = [for metric in diagnosticMetricsToEnable: { + category: metric + timeGrain: null + enabled: true + retentionPolicy: { + enabled: true + days: diagnosticLogsRetentionInDays + } +}] + +@description('Optional. The storage account type to be used to store backups for this database.') +@allowed([ + 'Geo' + 'Local' + 'Zone' + '' +]) +param requestedBackupStorageRedundancy string = '' + +@description('Optional. Whether or not this database is a ledger database, which means all tables in the database are ledger tables. Note: the value of this property cannot be changed after the database has been created.') +param isLedgerOn bool = false + +@description('Optional. Maintenance configuration ID assigned to the database. This configuration defines the period when the maintenance updates will occur.') +param maintenanceConfigurationId string = '' + +// The SKU object must be built in a variable +// The alternative, 'null' as default values, leads to non-terminating deployments +var skuVar = union({ + name: skuName + tier: skuTier + }, (skuCapacity != -1) ? { + capacity: skuCapacity + } : !empty(skuFamily) ? { + family: skuFamily + } : !empty(skuSize) ? { + size: skuSize + } : {}) + +resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { + name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + resources: [] + } + } +} + +resource server 'Microsoft.Sql/servers@2021-05-01-preview' existing = { + name: serverName +} + +resource database 'Microsoft.Sql/servers/databases@2021-02-01-preview' = { + name: name + parent: server + location: location + tags: tags + properties: { + collation: collation + maxSizeBytes: maxSizeBytes + sampleName: sampleName + zoneRedundant: zoneRedundant + licenseType: licenseType + readScale: readScale + minCapacity: !empty(minCapacity) ? json(minCapacity) : 0 + autoPauseDelay: !empty(autoPauseDelay) ? json(autoPauseDelay) : 0 + highAvailabilityReplicaCount: highAvailabilityReplicaCount + requestedBackupStorageRedundancy: any(requestedBackupStorageRedundancy) + isLedgerOn: isLedgerOn + maintenanceConfigurationId: !empty(maintenanceConfigurationId) ? maintenanceConfigurationId : null + } + sku: skuVar +} + +resource database_diagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if ((!empty(diagnosticStorageAccountId)) || (!empty(diagnosticWorkspaceId)) || (!empty(diagnosticEventHubAuthorizationRuleId)) || (!empty(diagnosticEventHubName))) { + name: diagnosticSettingsName + properties: { + storageAccountId: !empty(diagnosticStorageAccountId) ? diagnosticStorageAccountId : null + workspaceId: !empty(diagnosticWorkspaceId) ? diagnosticWorkspaceId : null + eventHubAuthorizationRuleId: !empty(diagnosticEventHubAuthorizationRuleId) ? diagnosticEventHubAuthorizationRuleId : null + eventHubName: !empty(diagnosticEventHubName) ? diagnosticEventHubName : null + metrics: diagnosticsMetrics + logs: diagnosticsLogs + } + scope: database +} + +@description('The name of the deployed database.') +output name string = database.name + +@description('The resource ID of the deployed database.') +output resourceId string = database.id + +@description('The resource group of the deployed database.') +output resourceGroupName string = resourceGroup().name + +@description('The location the resource was deployed into.') +output location string = database.location diff --git a/modules/Microsoft.AnalysisServices/servers/databases/readme.md b/modules/Microsoft.AnalysisServices/servers/databases/readme.md new file mode 100644 index 0000000000..c67ee77e6a --- /dev/null +++ b/modules/Microsoft.AnalysisServices/servers/databases/readme.md @@ -0,0 +1,116 @@ +# SQL Server Database `[Microsoft.Sql/servers/databases]` + +This module deploys an Azure SQL Server. + +## Navigation + +- [Resource types](#Resource-types) +- [Parameters](#Parameters) +- [Outputs](#Outputs) +- [Cross-referenced modules](#Cross-referenced-modules) + +## Resource types + +| Resource Type | API Version | +| :-- | :-- | +| `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | +| `Microsoft.Sql/servers/databases` | [2021-02-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-02-01-preview/servers/databases) | + +## Parameters + +**Required parameters** +| Parameter Name | Type | Description | +| :-- | :-- | :-- | +| `name` | string | The name of the database. | + +**Conditional parameters** +| Parameter Name | Type | Description | +| :-- | :-- | :-- | +| `serverName` | string | The name of the parent SQL Server. Required if the template is used in a standalone deployment. | + +**Optional parameters** +| Parameter Name | Type | Default Value | Allowed Values | Description | +| :-- | :-- | :-- | :-- | :-- | +| `autoPauseDelay` | string | `''` | | Time in minutes after which database is automatically paused. | +| `collation` | string | `'SQL_Latin1_General_CP1_CI_AS'` | | The collation of the database. | +| `diagnosticEventHubAuthorizationRuleId` | string | `''` | | Resource ID of the diagnostic event hub authorization rule for the Event Hubs namespace in which the event hub should be created or streamed to. | +| `diagnosticEventHubName` | string | `''` | | Name of the diagnostic event hub within the namespace to which logs are streamed. Without this, an event hub is created for each log category. | +| `diagnosticLogCategoriesToEnable` | array | `[AutomaticTuning, Blocks, DatabaseWaitStatistics, Deadlocks, DevOpsOperationsAudit, Errors, QueryStoreRuntimeStatistics, QueryStoreWaitStatistics, SQLInsights, SQLSecurityAuditEvents, Timeouts]` | `[AutomaticTuning, Blocks, DatabaseWaitStatistics, Deadlocks, DevOpsOperationsAudit, Errors, QueryStoreRuntimeStatistics, QueryStoreWaitStatistics, SQLInsights, SQLSecurityAuditEvents, Timeouts]` | The name of logs that will be streamed. | +| `diagnosticLogsRetentionInDays` | int | `365` | | Specifies the number of days that logs will be kept for; a value of 0 will retain data indefinitely. | +| `diagnosticMetricsToEnable` | array | `[Basic, InstanceAndAppAdvanced, WorkloadManagement]` | `[Basic, InstanceAndAppAdvanced, WorkloadManagement]` | The name of metrics that will be streamed. | +| `diagnosticSettingsName` | string | `[format('{0}-diagnosticSettings', parameters('name'))]` | | The name of the diagnostic setting, if deployed. | +| `diagnosticStorageAccountId` | string | `''` | | Resource ID of the diagnostic storage account. | +| `diagnosticWorkspaceId` | string | `''` | | Resource ID of the diagnostic log analytics workspace. | +| `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | +| `highAvailabilityReplicaCount` | int | `0` | | The number of readonly secondary replicas associated with the database. | +| `isLedgerOn` | bool | `False` | | Whether or not this database is a ledger database, which means all tables in the database are ledger tables. Note: the value of this property cannot be changed after the database has been created. | +| `licenseType` | string | `''` | | The license type to apply for this database. | +| `location` | string | `[resourceGroup().location]` | | Location for all resources. | +| `maintenanceConfigurationId` | string | `''` | | Maintenance configuration ID assigned to the database. This configuration defines the period when the maintenance updates will occur. | +| `maxSizeBytes` | int | `34359738368` | | The max size of the database expressed in bytes. | +| `minCapacity` | string | `''` | | Minimal capacity that database will always have allocated. | +| `readScale` | string | `'Disabled'` | `[Disabled, Enabled]` | The state of read-only routing. | +| `requestedBackupStorageRedundancy` | string | `''` | `['', Geo, Local, Zone]` | The storage account type to be used to store backups for this database. | +| `sampleName` | string | `''` | | The name of the sample schema to apply when creating this database. | +| `skuCapacity` | int | `-1` | | Capacity of the particular SKU. | +| `skuFamily` | string | `''` | | If the service has different generations of hardware, for the same SKU, then that can be captured here. | +| `skuName` | string | `'GP_Gen5_2'` | | The name of the SKU. | +| `skuSize` | string | `''` | | Size of the particular SKU. | +| `skuTier` | string | `'GeneralPurpose'` | | The skuTier or edition of the particular SKU. | +| `tags` | object | `{object}` | | Tags of the resource. | +| `zoneRedundant` | bool | `False` | | Whether or not this database is zone redundant. | + + +### Parameter Usage: `tags` + +Tag names and tag values can be provided as needed. A tag can be left without a value. + +
+ +Parameter JSON format + +```json +"tags": { + "value": { + "Environment": "Non-Prod", + "Contact": "test.user@testcompany.com", + "PurchaseOrder": "1234", + "CostCenter": "7890", + "ServiceName": "DeploymentValidation", + "Role": "DeploymentValidation" + } +} +``` + +
+ +
+ +Bicep format + +```bicep +tags: { + Environment: 'Non-Prod' + Contact: 'test.user@testcompany.com' + PurchaseOrder: '1234' + CostCenter: '7890' + ServiceName: 'DeploymentValidation' + Role: 'DeploymentValidation' +} +``` + +
+

+ +## Outputs + +| Output Name | Type | Description | +| :-- | :-- | :-- | +| `location` | string | The location the resource was deployed into. | +| `name` | string | The name of the deployed database. | +| `resourceGroupName` | string | The resource group of the deployed database. | +| `resourceId` | string | The resource ID of the deployed database. | + +## Cross-referenced modules + +_None_ diff --git a/modules/Microsoft.AnalysisServices/servers/databases/version.json b/modules/Microsoft.AnalysisServices/servers/databases/version.json new file mode 100644 index 0000000000..a086a1818e --- /dev/null +++ b/modules/Microsoft.AnalysisServices/servers/databases/version.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", + "version": "1.0" +} diff --git a/modules/Microsoft.AnalysisServices/servers/firewallRules/deploy.bicep b/modules/Microsoft.AnalysisServices/servers/firewallRules/deploy.bicep new file mode 100644 index 0000000000..2ca51b8545 --- /dev/null +++ b/modules/Microsoft.AnalysisServices/servers/firewallRules/deploy.bicep @@ -0,0 +1,48 @@ +@description('Required. The name of the Server Firewall Rule.') +param name string + +@description('Optional. The end IP address of the firewall rule. Must be IPv4 format. Must be greater than or equal to startIpAddress. Use value \'0.0.0.0\' for all Azure-internal IP addresses.') +param endIpAddress string = '0.0.0.0' + +@description('Optional. The start IP address of the firewall rule. Must be IPv4 format. Use value \'0.0.0.0\' for all Azure-internal IP addresses.') +param startIpAddress string = '0.0.0.0' + +@description('Conditional. The name of the parent SQL Server. Required if the template is used in a standalone deployment.') +param serverName string + +@description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') +param enableDefaultTelemetry bool = true + +resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { + name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name)}' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + resources: [] + } + } +} + +resource server 'Microsoft.Sql/servers@2021-05-01-preview' existing = { + name: serverName +} + +resource firewallRule 'Microsoft.Sql/servers/firewallRules@2021-05-01-preview' = { + name: name + parent: server + properties: { + endIpAddress: endIpAddress + startIpAddress: startIpAddress + } +} + +@description('The name of the deployed firewall rule.') +output name string = firewallRule.name + +@description('The resource ID of the deployed firewall rule.') +output resourceId string = firewallRule.id + +@description('The resource group of the deployed firewall rule.') +output resourceGroupName string = resourceGroup().name diff --git a/modules/Microsoft.AnalysisServices/servers/firewallRules/readme.md b/modules/Microsoft.AnalysisServices/servers/firewallRules/readme.md new file mode 100644 index 0000000000..d6cbe3fac1 --- /dev/null +++ b/modules/Microsoft.AnalysisServices/servers/firewallRules/readme.md @@ -0,0 +1,48 @@ +# SQL Server Firewall rule `[Microsoft.Sql/servers/firewallrules]` + +This module deploys an SQL Server Firewall rule. + +## Navigation + +- [Resource Types](#Resource-Types) +- [Parameters](#Parameters) +- [Outputs](#Outputs) +- [Cross-referenced modules](#Cross-referenced-modules) + +## Resource Types + +| Resource Type | API Version | +| :-- | :-- | +| `Microsoft.Sql/servers/firewallRules` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-05-01-preview/servers/firewallRules) | + +## Parameters + +**Required parameters** +| Parameter Name | Type | Description | +| :-- | :-- | :-- | +| `name` | string | The name of the Server Firewall Rule. | + +**Conditional parameters** +| Parameter Name | Type | Description | +| :-- | :-- | :-- | +| `serverName` | string | The name of the parent SQL Server. Required if the template is used in a standalone deployment. | + +**Optional parameters** +| Parameter Name | Type | Default Value | Description | +| :-- | :-- | :-- | :-- | +| `enableDefaultTelemetry` | bool | `True` | Enable telemetry via the Customer Usage Attribution ID (GUID). | +| `endIpAddress` | string | `'0.0.0.0'` | The end IP address of the firewall rule. Must be IPv4 format. Must be greater than or equal to startIpAddress. Use value '0.0.0.0' for all Azure-internal IP addresses. | +| `startIpAddress` | string | `'0.0.0.0'` | The start IP address of the firewall rule. Must be IPv4 format. Use value '0.0.0.0' for all Azure-internal IP addresses. | + + +## Outputs + +| Output Name | Type | Description | +| :-- | :-- | :-- | +| `name` | string | The name of the deployed firewall rule. | +| `resourceGroupName` | string | The resource group of the deployed firewall rule. | +| `resourceId` | string | The resource ID of the deployed firewall rule. | + +## Cross-referenced modules + +_None_ diff --git a/modules/Microsoft.AnalysisServices/servers/firewallRules/version.json b/modules/Microsoft.AnalysisServices/servers/firewallRules/version.json new file mode 100644 index 0000000000..56f8d9ca40 --- /dev/null +++ b/modules/Microsoft.AnalysisServices/servers/firewallRules/version.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", + "version": "0.4" +} diff --git a/modules/Microsoft.AnalysisServices/servers/readme.md b/modules/Microsoft.AnalysisServices/servers/readme.md index d918a5f2e0..9fcc375ebe 100644 --- a/modules/Microsoft.AnalysisServices/servers/readme.md +++ b/modules/Microsoft.AnalysisServices/servers/readme.md @@ -166,118 +166,31 @@ The following module usage examples are retrieved from the content of the files >**Note**: The name of each example is based on the name of the file from which it is taken. >**Note**: Each example lists all the required parameters first, followed by the rest - each in alphabetical order. -

Example 1: Default

+

Example 1: Max

via Bicep module ```bicep -module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-asdef' +module servers './Microsoft.AnalysisServices/servers/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-servers' params: { // Required parameters - name: '<>azasdef' + name: '<>azasweumax001' // Non-required parameters - diagnosticEventHubAuthorizationRuleId: '' - diagnosticEventHubName: '' - diagnosticLogsRetentionInDays: 7 - diagnosticStorageAccountId: '' - diagnosticWorkspaceId: '' - lock: 'CanNotDelete' - roleAssignments: [ - { - principalIds: [ - '' - ] - roleDefinitionIdOrName: 'Reader' - } - ] - skuName: 'S0' - } -} -``` - -
-

- -

- -via JSON Parameter file - -```json -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - // Required parameters - "name": { - "value": "<>azasdef" - }, - // Non-required parameters - "diagnosticEventHubAuthorizationRuleId": { - "value": "" - }, - "diagnosticEventHubName": { - "value": "" - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "" - }, - "diagnosticWorkspaceId": { - "value": "" - }, - "lock": { - "value": "CanNotDelete" - }, - "roleAssignments": { - "value": [ - { - "principalIds": [ - "" - ], - "roleDefinitionIdOrName": "Reader" - } - ] - }, - "skuName": { - "value": "S0" - } - } -} -``` - -
-

- -

Example 2: Max

- -
- -via Bicep module - -```bicep -module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-asmax' - params: { - // Required parameters - name: '<>azasmax' - // Non-required parameters - diagnosticEventHubAuthorizationRuleId: '' - diagnosticEventHubName: '' + diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' + diagnosticEventHubName: 'adp-<>-az-evh-x-001' diagnosticLogCategoriesToEnable: [ 'Engine' 'Service' ] - diagnosticLogsRetentionInDays: 7 + diagnosticLogsRetentionInDays: 365 diagnosticMetricsToEnable: [ 'AllMetrics' ] - diagnosticStorageAccountId: '' - diagnosticWorkspaceId: '' + diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' + diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' firewallSettings: { enablePowerBIService: true firewallRules: [ @@ -292,7 +205,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { roleAssignments: [ { principalIds: [ - '' + '<>' ] roleDefinitionIdOrName: 'Reader' } @@ -317,14 +230,14 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "<>azasmax" + "value": "<>azasweumax001" }, // Non-required parameters "diagnosticEventHubAuthorizationRuleId": { - "value": "" + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" }, "diagnosticEventHubName": { - "value": "" + "value": "adp-<>-az-evh-x-001" }, "diagnosticLogCategoriesToEnable": { "value": [ @@ -333,7 +246,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { ] }, "diagnosticLogsRetentionInDays": { - "value": 7 + "value": 365 }, "diagnosticMetricsToEnable": { "value": [ @@ -341,10 +254,10 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { ] }, "diagnosticStorageAccountId": { - "value": "" + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" }, "diagnosticWorkspaceId": { - "value": "" + "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" }, "firewallSettings": { "value": { @@ -365,7 +278,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { "value": [ { "principalIds": [ - "" + "<>" ], "roleDefinitionIdOrName": "Reader" } @@ -384,17 +297,17 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = {

-

Example 3: Min

+

Example 2: Min

via Bicep module ```bicep -module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-asmin' +module servers './Microsoft.AnalysisServices/servers/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-servers' params: { - name: '<>azasmin' + name: '<>azasweumin001' } } ``` @@ -412,7 +325,94 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep = { "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "<>azasmin" + "value": "<>azasweumin001" + } + } +} +``` + +
+

+ +

Example 3: Parameters

+ +
+ +via Bicep module + +```bicep +module servers './Microsoft.AnalysisServices/servers/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-servers' + params: { + // Required parameters + name: '<>azasweux001' + // Non-required parameters + diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' + diagnosticEventHubName: 'adp-<>-az-evh-x-001' + diagnosticLogsRetentionInDays: 7 + diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' + diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' + lock: 'CanNotDelete' + roleAssignments: [ + { + principalIds: [ + '<>' + ] + roleDefinitionIdOrName: 'Reader' + } + ] + skuName: 'S0' + } +} +``` + +
+

+ +

+ +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + // Required parameters + "name": { + "value": "<>azasweux001" + }, + // Non-required parameters + "diagnosticEventHubAuthorizationRuleId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" + }, + "diagnosticEventHubName": { + "value": "adp-<>-az-evh-x-001" + }, + "diagnosticLogsRetentionInDays": { + "value": 7 + }, + "diagnosticStorageAccountId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" + }, + "diagnosticWorkspaceId": { + "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" + }, + "lock": { + "value": "CanNotDelete" + }, + "roleAssignments": { + "value": [ + { + "principalIds": [ + "<>" + ], + "roleDefinitionIdOrName": "Reader" + } + ] + }, + "skuName": { + "value": "S0" } } } diff --git a/modules/Microsoft.AnalysisServices/servers/securityAlertPolicies/deploy.bicep b/modules/Microsoft.AnalysisServices/servers/securityAlertPolicies/deploy.bicep new file mode 100644 index 0000000000..7800a6c409 --- /dev/null +++ b/modules/Microsoft.AnalysisServices/servers/securityAlertPolicies/deploy.bicep @@ -0,0 +1,73 @@ +@description('Required. The name of the Security Alert Policy.') +param name string + +@description('Optional. Specifies an array of alerts that are disabled. Allowed values are: Sql_Injection, Sql_Injection_Vulnerability, Access_Anomaly, Data_Exfiltration, Unsafe_Action, Brute_Force.') +param disabledAlerts array = [] + +@description('Optional. Specifies that the alert is sent to the account administrators.') +param emailAccountAdmins bool = false + +@description('Optional. Specifies an array of email addresses to which the alert is sent.') +param emailAddresses array = [] + +@description('Optional. Specifies the number of days to keep in the Threat Detection audit logs.') +param retentionDays int = 0 + +@description('Optional. Specifies the state of the policy, whether it is enabled or disabled or a policy has not been applied yet on the specific database.') +@allowed([ + 'Disabled' + 'Enabled' +]) +param state string = 'Disabled' + +@description('Optional. Specifies the identifier key of the Threat Detection audit storage account..') +@secure() +param storageAccountAccessKey string = '' + +@description('Optional. Specifies the blob storage endpoint. This blob storage will hold all Threat Detection audit logs.') +param storageEndpoint string = '' + +@description('Conditional. The name of the parent SQL Server. Required if the template is used in a standalone deployment.') +param serverName string + +@description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') +param enableDefaultTelemetry bool = true + +resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { + name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name)}' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + resources: [] + } + } +} + +resource server 'Microsoft.Sql/servers@2021-05-01-preview' existing = { + name: serverName +} + +resource securityAlertPolicy 'Microsoft.Sql/servers/securityAlertPolicies@2021-05-01-preview' = { + name: name + parent: server + properties: { + disabledAlerts: disabledAlerts + emailAccountAdmins: emailAccountAdmins + emailAddresses: emailAddresses + retentionDays: retentionDays + state: state + storageAccountAccessKey: empty(storageAccountAccessKey) ? null : storageAccountAccessKey + storageEndpoint: empty(storageEndpoint) ? null : storageEndpoint + } +} + +@description('The name of the deployed security alert policy.') +output name string = securityAlertPolicy.name + +@description('The resource ID of the deployed security alert policy.') +output resourceId string = securityAlertPolicy.id + +@description('The resource group of the deployed security alert policy.') +output resourceGroupName string = resourceGroup().name diff --git a/modules/Microsoft.AnalysisServices/servers/securityAlertPolicies/readme.md b/modules/Microsoft.AnalysisServices/servers/securityAlertPolicies/readme.md new file mode 100644 index 0000000000..e68f3c8d39 --- /dev/null +++ b/modules/Microsoft.AnalysisServices/servers/securityAlertPolicies/readme.md @@ -0,0 +1,53 @@ +# SQL Server Security Alert Policy `[Microsoft.Sql/servers/securityAlertPolicies]` + +This module deploys an SQL Server Security Alert Policy. + +## Navigation + +- [Resource Types](#Resource-Types) +- [Parameters](#Parameters) +- [Outputs](#Outputs) +- [Cross-referenced modules](#Cross-referenced-modules) + +## Resource Types + +| Resource Type | API Version | +| :-- | :-- | +| `Microsoft.Sql/servers/securityAlertPolicies` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-05-01-preview/servers/securityAlertPolicies) | + +## Parameters + +**Required parameters** +| Parameter Name | Type | Description | +| :-- | :-- | :-- | +| `name` | string | The name of the Security Alert Policy. | + +**Conditional parameters** +| Parameter Name | Type | Description | +| :-- | :-- | :-- | +| `serverName` | string | The name of the parent SQL Server. Required if the template is used in a standalone deployment. | + +**Optional parameters** +| Parameter Name | Type | Default Value | Allowed Values | Description | +| :-- | :-- | :-- | :-- | :-- | +| `disabledAlerts` | array | `[]` | | Specifies an array of alerts that are disabled. Allowed values are: Sql_Injection, Sql_Injection_Vulnerability, Access_Anomaly, Data_Exfiltration, Unsafe_Action, Brute_Force. | +| `emailAccountAdmins` | bool | `False` | | Specifies that the alert is sent to the account administrators. | +| `emailAddresses` | array | `[]` | | Specifies an array of email addresses to which the alert is sent. | +| `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | +| `retentionDays` | int | `0` | | Specifies the number of days to keep in the Threat Detection audit logs. | +| `state` | string | `'Disabled'` | `[Disabled, Enabled]` | Specifies the state of the policy, whether it is enabled or disabled or a policy has not been applied yet on the specific database. | +| `storageAccountAccessKey` | secureString | `''` | | Specifies the identifier key of the Threat Detection audit storage account.. | +| `storageEndpoint` | string | `''` | | Specifies the blob storage endpoint. This blob storage will hold all Threat Detection audit logs. | + + +## Outputs + +| Output Name | Type | Description | +| :-- | :-- | :-- | +| `name` | string | The name of the deployed security alert policy. | +| `resourceGroupName` | string | The resource group of the deployed security alert policy. | +| `resourceId` | string | The resource ID of the deployed security alert policy. | + +## Cross-referenced modules + +_None_ diff --git a/modules/Microsoft.AnalysisServices/servers/securityAlertPolicies/version.json b/modules/Microsoft.AnalysisServices/servers/securityAlertPolicies/version.json new file mode 100644 index 0000000000..56f8d9ca40 --- /dev/null +++ b/modules/Microsoft.AnalysisServices/servers/securityAlertPolicies/version.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", + "version": "0.4" +} diff --git a/modules/Microsoft.AnalysisServices/servers/vulnerabilityAssessments/deploy.bicep b/modules/Microsoft.AnalysisServices/servers/vulnerabilityAssessments/deploy.bicep new file mode 100644 index 0000000000..777f905259 --- /dev/null +++ b/modules/Microsoft.AnalysisServices/servers/vulnerabilityAssessments/deploy.bicep @@ -0,0 +1,59 @@ +@description('Required. The name of the vulnerability assessment.') +param name string + +@description('Required. The Name of SQL Server.') +param serverName string + +@description('Optional. Recurring scans state.') +param recurringScansIsEnabled bool = false + +@description('Optional. Specifies that the schedule scan notification will be is sent to the subscription administrators.') +param recurringScansEmailSubscriptionAdmins bool = false + +@description('Optional. Specifies an array of email addresses to which the scan notification is sent.') +param recurringScansEmails array = [] + +@description('Optional. A blob storage to hold the scan results.') +param vulnerabilityAssessmentsStorageAccountId string = '' + +@description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') +param enableDefaultTelemetry bool = true + +resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { + name: 'pid-9319755b-f697-4146-b966-4656e0b46cac-${uniqueString(deployment().name)}' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + resources: [] + } + } +} + +resource server 'Microsoft.Sql/servers@2021-05-01-preview' existing = { + name: serverName +} + +resource vulnerabilityAssessment 'Microsoft.Sql/servers/vulnerabilityAssessments@2021-11-01-preview' = { + name: name + parent: server + properties: { + storageContainerPath: 'https://${last(split(vulnerabilityAssessmentsStorageAccountId, '/'))}.blob.${environment().suffixes.storage}/vulnerability-assessment/' + storageAccountAccessKey: listKeys(vulnerabilityAssessmentsStorageAccountId, '2019-06-01').keys[0].value + recurringScans: { + isEnabled: recurringScansIsEnabled + emailSubscriptionAdmins: recurringScansEmailSubscriptionAdmins + emails: recurringScansEmails + } + } +} + +@description('The name of the deployed vulnerability assessment.') +output name string = vulnerabilityAssessment.name + +@description('The resource ID of the deployed vulnerability assessment.') +output resourceId string = vulnerabilityAssessment.id + +@description('The resource group of the deployed vulnerability assessment.') +output resourceGroupName string = resourceGroup().name diff --git a/modules/Microsoft.AnalysisServices/servers/vulnerabilityAssessments/readme.md b/modules/Microsoft.AnalysisServices/servers/vulnerabilityAssessments/readme.md new file mode 100644 index 0000000000..8b8cf7eed5 --- /dev/null +++ b/modules/Microsoft.AnalysisServices/servers/vulnerabilityAssessments/readme.md @@ -0,0 +1,46 @@ +# SQL Server Vulnerability Assessments `[Microsoft.Sql/servers/vulnerabilityAssessments]` + +This module deploys a vulnerability assessment for a SQL server. + +## Navigation + +- [Resource Types](#Resource-Types) +- [Parameters](#Parameters) +- [Outputs](#Outputs) +- [Cross-referenced modules](#Cross-referenced-modules) + +## Resource Types + +| Resource Type | API Version | +| :-- | :-- | +| `Microsoft.Sql/servers/vulnerabilityAssessments` | [2021-11-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-11-01-preview/servers/vulnerabilityAssessments) | + +## Parameters + +**Required parameters** +| Parameter Name | Type | Description | +| :-- | :-- | :-- | +| `name` | string | The name of the vulnerability assessment. | +| `serverName` | string | The Name of SQL Server. | + +**Optional parameters** +| Parameter Name | Type | Default Value | Description | +| :-- | :-- | :-- | :-- | +| `enableDefaultTelemetry` | bool | `True` | Enable telemetry via the Customer Usage Attribution ID (GUID). | +| `recurringScansEmails` | array | `[]` | Specifies an array of email addresses to which the scan notification is sent. | +| `recurringScansEmailSubscriptionAdmins` | bool | `False` | Specifies that the schedule scan notification will be is sent to the subscription administrators. | +| `recurringScansIsEnabled` | bool | `False` | Recurring scans state. | +| `vulnerabilityAssessmentsStorageAccountId` | string | `''` | A blob storage to hold the scan results. | + + +## Outputs + +| Output Name | Type | Description | +| :-- | :-- | :-- | +| `name` | string | The name of the deployed vulnerability assessment. | +| `resourceGroupName` | string | The resource group of the deployed vulnerability assessment. | +| `resourceId` | string | The resource ID of the deployed vulnerability assessment. | + +## Cross-referenced modules + +_None_ diff --git a/modules/Microsoft.AnalysisServices/servers/vulnerabilityAssessments/version.json b/modules/Microsoft.AnalysisServices/servers/vulnerabilityAssessments/version.json new file mode 100644 index 0000000000..badc0a2285 --- /dev/null +++ b/modules/Microsoft.AnalysisServices/servers/vulnerabilityAssessments/version.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", + "version": "0.5" +} diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/dependencies.bicep deleted file mode 100644 index da11790f18..0000000000 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/dependencies.bicep +++ /dev/null @@ -1,28 +0,0 @@ -@description('Required. The name of the managed identity to create') -param virtualNetworkName string - -@description('Optional. The location to deploy to') -param location string = resourceGroup().location - -resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { - name: virtualNetworkName - location: location - properties: { - addressSpace: { - addressPrefixes: [ - '10.0.0.0/24' - ] - } - subnets: [ - { - name: 'defaultSubnet' - properties: { - addressPrefix: '10.0.0.0/24' - } - } - ] - } -} - -@description('The resource ID of the created Virtual Network Subnet') -output subnetResourceId string = virtualNetwork.properties.subnets[0].id diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/deploy.test.bicep deleted file mode 100644 index aecaa0c5e0..0000000000 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux.atmg/deploy.test.bicep +++ /dev/null @@ -1,82 +0,0 @@ -targetScope = 'subscription' - -// ========== // -// Parameters // -// ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes') -@maxLength(90) -param resourceGroupName string = 'ms.compute.virtualMachines-${serviceShort}-test-rg' - -@description('Optional. The location to deploy resources to') -param location string = deployment().location - -@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'vmlinatmg' - -// =========== // -// Deployments // -// =========== // - -// General resources -// ================= -resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { - name: resourceGroupName - location: location -} - -module resourceGroupResources 'dependencies.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-nestedDependencies' - params: { - virtualNetworkName: 'dep-<>-vnet-${serviceShort}' - } -} - -// ============== // -// Test Execution // -// ============== // - -module testDeployment '../../deploy.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name)}-test-${serviceShort}' - params: { - name: '<>${serviceShort}' - adminUsername: 'localAdminUser' - imageReference: { - offer: 'UbuntuServer' - publisher: 'Canonical' - sku: '18.04-LTS' - version: 'latest' - } - nicConfigurations: [ - { - ipConfigurations: [ - { - name: 'ipconfig01' - pipConfiguration: { - publicIpNameSuffix: '-pip-01' - } - subnetResourceId: resourceGroupResources.outputs.subnetResourceId - } - ] - nicSuffix: '-nic-01' - } - ] - osDisk: { - diskSizeGB: '128' - managedDisk: { - storageAccountType: 'Premium_LRS' - } - } - osType: 'Linux' - vmSize: 'Standard_B12ms' - configurationProfile: '/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction' - disablePasswordAuthentication: true - publicKeys: [ - { - keyData: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure' - path: '/home/localAdminUser/.ssh/authorized_keys' - } - ] - } -} diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux.autmg.parameters.json b/modules/Microsoft.Compute/virtualMachines/.test/linux.autmg.parameters.json new file mode 100644 index 0000000000..f375587dcf --- /dev/null +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux.autmg.parameters.json @@ -0,0 +1,64 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-vm-linux-autmg-01" + }, + "osType": { + "value": "Linux" + }, + "imageReference": { + "value": { + "publisher": "Canonical", + "offer": "UbuntuServer", + "sku": "18.04-LTS", + "version": "latest" + } + }, + "osDisk": { + "value": { + "diskSizeGB": "128", + "managedDisk": { + "storageAccountType": "Premium_LRS" + } + } + }, + "vmSize": { + "value": "Standard_B12ms" + }, + "adminUsername": { + "value": "localAdminUser" + }, + "disablePasswordAuthentication": { + "value": true + }, + "publicKeys": { + "value": [ + { + "path": "/home/localAdminUser/.ssh/authorized_keys", + "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure" + } + ] + }, + "nicConfigurations": { + "value": [ + { + "nicSuffix": "-nic-01", + "ipConfigurations": [ + { + "name": "ipconfig01", + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001", + "pipConfiguration": { + "publicIpNameSuffix": "-pip-01" + } + } + ] + } + ] + }, + "configurationProfile": { + "value": "/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction" + } + } +} diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux.min.parameters.json b/modules/Microsoft.Compute/virtualMachines/.test/linux.min.parameters.json new file mode 100644 index 0000000000..ac54d9aaee --- /dev/null +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux.min.parameters.json @@ -0,0 +1,61 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-vm-linux-min-01" + }, + "osType": { + "value": "Linux" + }, + "imageReference": { + "value": { + "publisher": "Canonical", + "offer": "UbuntuServer", + "sku": "18.04-LTS", + "version": "latest" + } + }, + "osDisk": { + "value": { + "diskSizeGB": "128", + "managedDisk": { + "storageAccountType": "Premium_LRS" + } + } + }, + "vmSize": { + "value": "Standard_B12ms" + }, + "adminUsername": { + "value": "localAdminUser" + }, + "disablePasswordAuthentication": { + "value": true + }, + "publicKeys": { + "value": [ + { + "path": "/home/localAdminUser/.ssh/authorized_keys", + "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure" + } + ] + }, + "nicConfigurations": { + "value": [ + { + "nicSuffix": "-nic-01", + "ipConfigurations": [ + { + "name": "ipconfig01", + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001", + "pipConfiguration": { + "publicIpNameSuffix": "-pip-01" + } + } + ] + } + ] + } + } +} diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux.min/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux.min/dependencies.bicep deleted file mode 100644 index da11790f18..0000000000 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux.min/dependencies.bicep +++ /dev/null @@ -1,28 +0,0 @@ -@description('Required. The name of the managed identity to create') -param virtualNetworkName string - -@description('Optional. The location to deploy to') -param location string = resourceGroup().location - -resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { - name: virtualNetworkName - location: location - properties: { - addressSpace: { - addressPrefixes: [ - '10.0.0.0/24' - ] - } - subnets: [ - { - name: 'defaultSubnet' - properties: { - addressPrefix: '10.0.0.0/24' - } - } - ] - } -} - -@description('The resource ID of the created Virtual Network Subnet') -output subnetResourceId string = virtualNetwork.properties.subnets[0].id diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux.min/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux.min/deploy.test.bicep deleted file mode 100644 index bc6e7805ec..0000000000 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux.min/deploy.test.bicep +++ /dev/null @@ -1,81 +0,0 @@ -targetScope = 'subscription' - -// ========== // -// Parameters // -// ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes') -@maxLength(90) -param resourceGroupName string = 'ms.compute.virtualMachines-${serviceShort}-test-rg' - -@description('Optional. The location to deploy resources to') -param location string = deployment().location - -@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'vmlinmin' - -// =========== // -// Deployments // -// =========== // - -// General resources -// ================= -resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { - name: resourceGroupName - location: location -} - -module resourceGroupResources 'dependencies.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-nestedDependencies' - params: { - virtualNetworkName: 'dep-<>-vnet-${serviceShort}' - } -} - -// ============== // -// Test Execution // -// ============== // - -module testDeployment '../../deploy.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name)}-test-${serviceShort}' - params: { - name: '<>${serviceShort}' - adminUsername: 'localAdminUser' - imageReference: { - offer: 'UbuntuServer' - publisher: 'Canonical' - sku: '18.04-LTS' - version: 'latest' - } - nicConfigurations: [ - { - ipConfigurations: [ - { - name: 'ipconfig01' - pipConfiguration: { - publicIpNameSuffix: '-pip-01' - } - subnetResourceId: resourceGroupResources.outputs.subnetResourceId - } - ] - nicSuffix: '-nic-01' - } - ] - osDisk: { - diskSizeGB: '128' - managedDisk: { - storageAccountType: 'Premium_LRS' - } - } - osType: 'Linux' - vmSize: 'Standard_B12ms' - disablePasswordAuthentication: true - publicKeys: [ - { - keyData: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure' - path: '/home/localAdminUser/.ssh/authorized_keys' - } - ] - } -} diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux.parameters.json b/modules/Microsoft.Compute/virtualMachines/.test/linux.parameters.json new file mode 100644 index 0000000000..05938fb23a --- /dev/null +++ b/modules/Microsoft.Compute/virtualMachines/.test/linux.parameters.json @@ -0,0 +1,218 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-vm-linux-01" + }, + "lock": { + "value": "CanNotDelete" + }, + "systemAssignedIdentity": { + "value": true + }, + "userAssignedIdentities": { + "value": { + "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} + } + }, + "osType": { + "value": "Linux" + }, + "encryptionAtHost": { + "value": false + }, + "availabilityZone": { + "value": 1 + }, + "vmSize": { + "value": "Standard_B12ms" + }, + "imageReference": { + "value": { + "publisher": "Canonical", + "offer": "UbuntuServer", + "sku": "18.04-LTS", + "version": "latest" + } + }, + "osDisk": { + "value": { + "createOption": "fromImage", + "deleteOption": "Delete", + "caching": "ReadOnly", + "diskSizeGB": "128", + "managedDisk": { + "storageAccountType": "Premium_LRS" + } + } + }, + "dataDisks": { + "value": [ + { + "createOption": "Empty", + "deleteOption": "Delete", + "caching": "ReadWrite", + "diskSizeGB": "128", + "managedDisk": { + "storageAccountType": "Premium_LRS" + } + }, + { + "createOption": "Empty", + "deleteOption": "Delete", + "caching": "ReadWrite", + "diskSizeGB": "128", + "managedDisk": { + "storageAccountType": "Premium_LRS" + } + } + ] + }, + "adminUsername": { + "value": "localAdminUser" + }, + "disablePasswordAuthentication": { + "value": true + }, + "publicKeys": { + "value": [ + { + "path": "/home/localAdminUser/.ssh/authorized_keys", + "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure" + } + ] + }, + "nicConfigurations": { + "value": [ + { + "nicSuffix": "-nic-01", + "deleteOption": "Delete", + "ipConfigurations": [ + { + "name": "ipconfig01", + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001", + "pipConfiguration": { + "publicIpNameSuffix": "-pip-01", + "roleAssignments": [ + { + "roleDefinitionIdOrName": "Reader", + "principalIds": [ + "<>" + ] + } + ] + }, + "loadBalancerBackendAddressPools": [ + { + "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/loadBalancers/adp-<>-az-lb-internal-001/backendAddressPools/servers" + } + ], + "applicationSecurityGroups": [ + { + "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationSecurityGroups/adp-<>-az-asg-x-001" + } + ] + } + ], + "roleAssignments": [ + { + "roleDefinitionIdOrName": "Reader", + "principalIds": [ + "<>" + ] + } + ] + } + ] + }, + "backupVaultName": { + "value": "adp-<>-az-rsv-x-001" + }, + "backupVaultResourceGroup": { + "value": "validation-rg" + }, + "backupPolicyName": { + "value": "VMpolicy" + }, + "roleAssignments": { + "value": [ + { + "roleDefinitionIdOrName": "Reader", + "principalIds": [ + "<>" + ] + } + ] + }, + "diagnosticLogsRetentionInDays": { + "value": 7 + }, + "diagnosticStorageAccountId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" + }, + "diagnosticWorkspaceId": { + "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" + }, + "diagnosticEventHubAuthorizationRuleId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" + }, + "diagnosticEventHubName": { + "value": "adp-<>-az-evh-x-001" + }, + "extensionMonitoringAgentConfig": { + "value": { + "enabled": true + } + }, + "monitoringWorkspaceId": { + "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" + }, + "extensionDependencyAgentConfig": { + "value": { + "enabled": true + } + }, + "extensionNetworkWatcherAgentConfig": { + "value": { + "enabled": true + } + }, + "extensionDiskEncryptionConfig": { + "value": { + "enabled": true, + "settings": { + "EncryptionOperation": "EnableEncryption", + "KeyVaultURL": "https://adp-<>-az-kv-x-001.vault.azure.net/", + "KeyVaultResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", + "KeyEncryptionKeyURL": "https://adp-<>-az-kv-x-001.vault.azure.net/keys/keyEncryptionKey/bc3bb46d95c64367975d722f473eeae5", // ID must be updated for new keys + "KekVaultResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", + "KeyEncryptionAlgorithm": "RSA-OAEP", + "VolumeType": "All", + "ResizeOSDisk": "false" + } + } + }, + "extensionDSCConfig": { + "value": { + "enabled": false + } + }, + "extensionCustomScriptConfig": { + "value": { + "enabled": true, + "fileData": [ + { + "uri": "https://adp<>azsax001.blob.core.windows.net/scripts/scriptExtensionMasterInstaller.ps1", + "storageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" + } + ] + } + }, + "extensionCustomScriptProtectedSetting": { + "value": { + "commandToExecute": "sudo apt-get update" + } + } + } +} diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep deleted file mode 100644 index 6c2b3615e7..0000000000 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/dependencies.bicep +++ /dev/null @@ -1,308 +0,0 @@ -@description('Required. The name of the Virtual Network to create.') -param virtualNetworkName string - -@description('Required. The name of the Application Security Group to create.') -param applicationSecurityGroupName string - -@description('Required. The name of the Managed Identity to create.') -param managedIdentityName string - -@description('Required. The name of the Load Balancer to create.') -param loadBalancerName string - -@description('Required. The name of the Recovery Services Vault to create.') -param recoveryServicesVaultName string - -@description('Required. The name of the Key Vault to create.') -param keyVaultName string - -@description('Required. The name of the Storage Account to create.') -param storageAccountName string - -@description('Required. The name of the Deployment Script used to upload data to the Storage Account.') -param storageUploadDeploymentScriptName string - -@description('Optional. The location to deploy to.') -param location string = resourceGroup().location - -var storageContainerName = 'scripts' -var storageAccountCSEFileName = 'scriptExtensionMasterInstaller.ps1' -var backupPolicyName = 'backupPolicy' - -resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { - name: virtualNetworkName - location: location - properties: { - addressSpace: { - addressPrefixes: [ - '10.0.0.0/24' - ] - } - subnets: [ - { - name: 'defaultSubnet' - properties: { - addressPrefix: '10.0.0.0/24' - } - } - ] - } -} - -resource applicationSecurityGroup 'Microsoft.Network/applicationSecurityGroups@2022-01-01' = { - name: applicationSecurityGroupName - location: location -} - -resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { - name: managedIdentityName - location: location -} - -resource msiRoleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = { - name: guid('msi-${managedIdentityName}-Subscription-Contributor-RoleAssignment') - properties: { - principalId: managedIdentity.properties.principalId - roleDefinitionId: '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' // Contributor - principalType: 'ServicePrincipal' - } -} - -resource loadBalancer 'Microsoft.Network/loadBalancers@2022-01-01' = { - name: loadBalancerName - location: location - sku: { - name: 'Standard' - } - properties: { - frontendIPConfigurations: [ - { - name: 'privateIPConfig1' - properties: { - subnet: virtualNetwork.properties.subnets[0] - } - } - ] - backendAddressPools: [ - { - name: 'servers' - } - ] - } -} - -resource recoveryServicesVault 'Microsoft.RecoveryServices/vaults@2022-04-01' = { - name: recoveryServicesVaultName - location: location - sku: { - name: 'RS0' - tier: 'Standard' - } - properties: { - } - - resource backupPolicy 'backupPolicies@2022-03-01' = { - name: backupPolicyName - properties: { - backupManagementType: 'AzureIaasVM' - instantRPDetails: {} - schedulePolicy: { - schedulePolicyType: 'SimpleSchedulePolicy' - scheduleRunFrequency: 'Daily' - scheduleRunTimes: [ - '2019-11-07T07:00:00Z' - ] - scheduleWeeklyFrequency: 0 - } - retentionPolicy: { - retentionPolicyType: 'LongTermRetentionPolicy' - dailySchedule: { - retentionTimes: [ - '2019-11-07T07:00:00Z' - ] - retentionDuration: { - count: 180 - durationType: 'Days' - } - } - weeklySchedule: { - daysOfTheWeek: [ - 'Sunday' - ] - retentionTimes: [ - '2019-11-07T07:00:00Z' - ] - retentionDuration: { - count: 12 - durationType: 'Weeks' - } - } - monthlySchedule: { - retentionScheduleFormatType: 'Weekly' - retentionScheduleWeekly: { - daysOfTheWeek: [ - 'Sunday' - ] - weeksOfTheMonth: [ - 'First' - ] - } - retentionTimes: [ - '2019-11-07T07:00:00Z' - ] - retentionDuration: { - count: 60 - durationType: 'Months' - } - } - yearlySchedule: { - retentionScheduleFormatType: 'Weekly' - monthsOfYear: [ - 'January' - ] - retentionScheduleWeekly: { - daysOfTheWeek: [ - 'Sunday' - ] - weeksOfTheMonth: [ - 'First' - ] - } - retentionTimes: [ - '2019-11-07T07:00:00Z' - ] - retentionDuration: { - count: 10 - durationType: 'Years' - } - } - } - instantRpRetentionRangeInDays: 2 - timeZone: 'UTC' - protectedItemsCount: 0 - } - } -} - -resource keyVault 'Microsoft.KeyVault/vaults@2022-07-01' = { - name: keyVaultName - location: location - properties: { - sku: { - family: 'A' - name: 'standard' - } - tenantId: tenant().tenantId - enablePurgeProtection: null - enabledForTemplateDeployment: true - enabledForDiskEncryption: true - enabledForDeployment: true - enableRbacAuthorization: true - accessPolicies: [] - } - - resource key 'keys@2022-07-01' = { - name: 'encryptionKey' - properties: { - kty: 'EC' - } - } -} - -resource keyPermissions 'Microsoft.Authorization/roleAssignments@2022-04-01' = { - name: guid('msi-${managedIdentityName}-KeyVault-Key-Read-RoleAssignment') - scope: keyVault::key - properties: { - principalId: managedIdentity.properties.principalId - // Key Vault Crypto User - roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '12338af0-0e69-4776-bea7-57ae8d297424') - principalType: 'ServicePrincipal' - } -} - -resource storageAccount 'Microsoft.Storage/storageAccounts@2021-09-01' = { - name: storageAccountName - location: location - sku: { - name: 'Standard_LRS' - } - kind: 'StorageV2' - - resource blobService 'blobServices@2021-09-01' = { - name: 'default' - - resource container 'containers@2021-09-01' = { - name: storageContainerName - } - } -} - -resource storageUpload 'Microsoft.Resources/deploymentScripts@2020-10-01' = { - name: storageUploadDeploymentScriptName - location: location - kind: 'AzurePowerShell' - identity: { - type: 'UserAssigned' - userAssignedIdentities: { - '${managedIdentity.id}': {} - } - } - properties: { - azPowerShellVersion: '3.0' - retentionInterval: 'P1D' - arguments: ' -StorageAccountName "${storageAccount.name}" -ResourceGroupName "${resourceGroup().name}" -ContainerName "${storageAccount::blobService::container.name}" -FileName "${storageAccountCSEFileName}"' - scriptContent: ''' - param( - [string] $StorageAccountName, - [string] $ResourceGroupName, - [string] $ContainerName, - [string] $FileName - ) - Write-Verbose "Create file [$FileName]" -Verbose - $file = New-Item -Value "Write-Host 'I am content'" -Path $FileName -Force - Write-Verbose "Getting storage account [$StorageAccountName|$ResourceGroupName] context." -Verbose - $storageAccount = Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -StorageAccountName $StorageAccountName -ErrorAction 'Stop' - Write-Verbose 'Uploading file [$fileName]' -Verbose - Set-AzStorageBlobContent -File $file.FullName -Container $ContainerName -Context $storageAccount.Context -Force -ErrorAction 'Stop' | Out-Null - ''' - } - dependsOn: [ - msiRoleAssignment - ] -} - -@description('The resource ID of the created Virtual Network Subnet.') -output subnetResourceId string = virtualNetwork.properties.subnets[0].id - -@description('The resource ID of the created Application Security Group.') -output applicationSecurityGroupResourceId string = applicationSecurityGroup.id - -@description('The principal ID of the created Managed Identity.') -output managedIdentityPrincipalId string = managedIdentity.properties.principalId - -@description('The resource ID of the created Managed Identity.') -output managedIdentityResourceId string = managedIdentity.id - -@description('The resource ID of the created Load Balancer Backend Pool.') -output loadBalancerBackendPoolResourceId string = loadBalancer.properties.backendAddressPools[0].id - -@description('The resource ID of the created Recovery Services Vault.') -output recoveryServicesVaultResourceId string = recoveryServicesVault.id - -@description('The name of the Backup Policy created in the Backup Recovery Vault.') -output recoveryServicesVaultBackupPolicyName string = backupPolicyName - -@description('The resource ID of the created Key Vault.') -output keyVaultResourceId string = keyVault.id - -@description('The URL of the created Key Vault.') -output keyVaultUrl string = keyVault.properties.vaultUri - -@description('The URL of the created Key Vault Encryption Key.') -output keyVaultEncryptionKeyUrl string = keyVault::key.properties.keyUriWithVersion - -@description('The resource ID of the created Storage Account.') -output storageAccountResourceId string = storageAccount.id - -@description('The URL of the Custom Script Extension in the created Storage Account') -output storageAccountCSEFileUrl string = '${storageAccount.properties.primaryEndpoints.blob}${storageContainerName}/${storageAccountCSEFileName}' diff --git a/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep deleted file mode 100644 index 6b94940be1..0000000000 --- a/modules/Microsoft.Compute/virtualMachines/.test/linux/deploy.test.bicep +++ /dev/null @@ -1,213 +0,0 @@ -targetScope = 'subscription' - -// ========== // -// Parameters // -// ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes') -@maxLength(90) -param resourceGroupName string = 'ms.compute.virtualMachines-${serviceShort}-test-rg' - -@description('Optional. The location to deploy resources to') -param location string = deployment().location - -@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'vmlindef' - -// =========== // -// Deployments // -// =========== // - -// General resources -// ================= -resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { - name: resourceGroupName - location: location -} - -module resourceGroupResources 'dependencies.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-nestedDependencies' - params: { - virtualNetworkName: 'dep-<>-vnet-${serviceShort}' - applicationSecurityGroupName: 'adp-<>-asg-${serviceShort}' - managedIdentityName: 'dep-<>-msi-${serviceShort}' - keyVaultName: 'dep-<>-kv-${serviceShort}' - loadBalancerName: 'dep-<>-lb-${serviceShort}' - recoveryServicesVaultName: 'dep-<>-rsv-${serviceShort}' - storageAccountName: 'dep<>sa${serviceShort}01' - storageUploadDeploymentScriptName: 'dep-<>-sads-${serviceShort}' - } -} - -// Diagnostics -// =========== -module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-diagnosticDependencies' - params: { - storageAccountName: 'dep<>diasa${serviceShort}01' - logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}' - eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}' - eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}' - location: location - } -} - -// ============== // -// Test Execution // -// ============== // - -module testDeployment '../../deploy.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name)}-test-${serviceShort}' - params: { - name: '<>${serviceShort}' - adminUsername: 'localAdminUser' - imageReference: { - offer: 'UbuntuServer' - publisher: 'Canonical' - sku: '18.04-LTS' - version: 'latest' - } - nicConfigurations: [ - { - deleteOption: 'Delete' - ipConfigurations: [ - { - applicationSecurityGroups: [ - { - id: resourceGroupResources.outputs.applicationSecurityGroupResourceId - } - ] - loadBalancerBackendAddressPools: [ - { - id: resourceGroupResources.outputs.loadBalancerBackendPoolResourceId - } - ] - name: 'ipconfig01' - pipConfiguration: { - publicIpNameSuffix: '-pip-01' - roleAssignments: [ - { - principalIds: [ - resourceGroupResources.outputs.managedIdentityPrincipalId - ] - roleDefinitionIdOrName: 'Reader' - } - ] - } - subnetResourceId: resourceGroupResources.outputs.subnetResourceId - } - ] - nicSuffix: '-nic-01' - roleAssignments: [ - { - principalIds: [ - resourceGroupResources.outputs.managedIdentityPrincipalId - ] - roleDefinitionIdOrName: 'Reader' - } - ] - } - ] - osDisk: { - caching: 'ReadOnly' - createOption: 'fromImage' - deleteOption: 'Delete' - diskSizeGB: '128' - managedDisk: { - storageAccountType: 'Premium_LRS' - } - } - osType: 'Linux' - vmSize: 'Standard_B12ms' - availabilityZone: 1 - backupPolicyName: resourceGroupResources.outputs.recoveryServicesVaultBackupPolicyName - backupVaultName: last(split(resourceGroupResources.outputs.recoveryServicesVaultResourceId, '/')) - backupVaultResourceGroup: (split(resourceGroupResources.outputs.recoveryServicesVaultResourceId, '/'))[4] - dataDisks: [ - { - caching: 'ReadWrite' - createOption: 'Empty' - deleteOption: 'Delete' - diskSizeGB: '128' - managedDisk: { - storageAccountType: 'Premium_LRS' - } - } - { - caching: 'ReadWrite' - createOption: 'Empty' - deleteOption: 'Delete' - diskSizeGB: '128' - managedDisk: { - storageAccountType: 'Premium_LRS' - } - } - ] - diagnosticStorageAccountId: diagnosticDependencies.outputs.storageAccountResourceId - diagnosticWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId - diagnosticEventHubAuthorizationRuleId: diagnosticDependencies.outputs.eventHubAuthorizationRuleId - diagnosticEventHubName: diagnosticDependencies.outputs.eventHubNamespaceEventHubName - diagnosticLogsRetentionInDays: 7 - disablePasswordAuthentication: true - encryptionAtHost: false - extensionCustomScriptConfig: { - enabled: true - fileData: [ - { - storageAccountId: resourceGroupResources.outputs.storageAccountResourceId - uri: resourceGroupResources.outputs.storageAccountCSEFileUrl - } - ] - } - extensionCustomScriptProtectedSetting: { - commandToExecute: 'powershell -ExecutionPolicy Unrestricted -Command "& ./${last(split(resourceGroupResources.outputs.storageAccountCSEFileUrl, '/'))}"' - } - extensionDependencyAgentConfig: { - enabled: true - } - extensionDiskEncryptionConfig: { - enabled: true - settings: { - EncryptionOperation: 'EnableEncryption' - KekVaultResourceId: resourceGroupResources.outputs.keyVaultResourceId - KeyEncryptionAlgorithm: 'RSA-OAEP' - KeyEncryptionKeyURL: resourceGroupResources.outputs.keyVaultEncryptionKeyUrl - KeyVaultResourceId: resourceGroupResources.outputs.keyVaultResourceId - KeyVaultURL: resourceGroupResources.outputs.keyVaultUrl - ResizeOSDisk: 'false' - VolumeType: 'All' - } - } - extensionDSCConfig: { - enabled: false - } - extensionMonitoringAgentConfig: { - enabled: true - } - extensionNetworkWatcherAgentConfig: { - enabled: true - } - lock: 'CanNotDelete' - monitoringWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId - publicKeys: [ - { - keyData: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure' - path: '/home/localAdminUser/.ssh/authorized_keys' - } - ] - roleAssignments: [ - { - principalIds: [ - resourceGroupResources.outputs.managedIdentityPrincipalId - ] - roleDefinitionIdOrName: 'Reader' - } - ] - systemAssignedIdentity: true - userAssignedIdentities: { - '${resourceGroupResources.outputs.managedIdentityResourceId}': {} - } - } -} diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/dependencies.bicep deleted file mode 100644 index da11790f18..0000000000 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/dependencies.bicep +++ /dev/null @@ -1,28 +0,0 @@ -@description('Required. The name of the managed identity to create') -param virtualNetworkName string - -@description('Optional. The location to deploy to') -param location string = resourceGroup().location - -resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { - name: virtualNetworkName - location: location - properties: { - addressSpace: { - addressPrefixes: [ - '10.0.0.0/24' - ] - } - subnets: [ - { - name: 'defaultSubnet' - properties: { - addressPrefix: '10.0.0.0/24' - } - } - ] - } -} - -@description('The resource ID of the created Virtual Network Subnet') -output subnetResourceId string = virtualNetwork.properties.subnets[0].id diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/deploy.test.bicep deleted file mode 100644 index 57d213370c..0000000000 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows.atmg/deploy.test.bicep +++ /dev/null @@ -1,77 +0,0 @@ -targetScope = 'subscription' - -// ========== // -// Parameters // -// ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes') -@maxLength(90) -param resourceGroupName string = 'ms.compute.virtualMachines-${serviceShort}-test-rg' - -@description('Optional. The location to deploy resources to') -param location string = deployment().location - -@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'vmwinautmg' - -@description('Optional. The password to leverage for the login.') -@secure() -param password string = newGuid() - -// =========== // -// Deployments // -// =========== // - -// General resources -// ================= -resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { - name: resourceGroupName - location: location -} - -module resourceGroupResources 'dependencies.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-nestedDependencies' - params: { - virtualNetworkName: 'dep-<>-vnet-${serviceShort}' - } -} - -// ============== // -// Test Execution // -// ============== // - -module testDeployment '../../deploy.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name)}-test-${serviceShort}' - params: { - name: '<>${serviceShort}' - adminUsername: 'localAdminUser' - imageReference: { - offer: 'WindowsServer' - publisher: 'MicrosoftWindowsServer' - sku: '2019-Datacenter' - version: 'latest' - } - nicConfigurations: [ - { - ipConfigurations: [ - { - name: 'ipconfig01' - subnetResourceId: resourceGroupResources.outputs.subnetResourceId - } - ] - nicSuffix: '-nic-01' - } - ] - osDisk: { - diskSizeGB: '128' - managedDisk: { - storageAccountType: 'Premium_LRS' - } - } - osType: 'Windows' - vmSize: 'Standard_B12ms' - adminPassword: password - configurationProfile: '/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction' - } -} diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.autmg.parameters.json b/modules/Microsoft.Compute/virtualMachines/.test/windows.autmg.parameters.json new file mode 100644 index 0000000000..cc63de20a4 --- /dev/null +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows.autmg.parameters.json @@ -0,0 +1,58 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-vm-win-03" + }, + "imageReference": { + "value": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2019-Datacenter", + "version": "latest" + } + }, + "osType": { + "value": "Windows" + }, + "vmSize": { + "value": "Standard_B12ms" + }, + "osDisk": { + "value": { + "diskSizeGB": "128", + "managedDisk": { + "storageAccountType": "Premium_LRS" + } + } + }, + "adminUsername": { + "value": "localAdminUser" + }, + "adminPassword": { + "reference": { + "keyVault": { + "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" + }, + "secretName": "adminPassword" + } + }, + "nicConfigurations": { + "value": [ + { + "nicSuffix": "-nic-01", + "ipConfigurations": [ + { + "name": "ipconfig01", + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001" + } + ] + } + ] + }, + "configurationProfile": { + "value": "/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction" + } + } +} diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.min.parameters.json b/modules/Microsoft.Compute/virtualMachines/.test/windows.min.parameters.json new file mode 100644 index 0000000000..8537deaacf --- /dev/null +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows.min.parameters.json @@ -0,0 +1,55 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-vm-win-02" + }, + "imageReference": { + "value": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2022-datacenter-azure-edition", + "version": "latest" + } + }, + "osType": { + "value": "Windows" + }, + "vmSize": { + "value": "Standard_B12ms" + }, + "osDisk": { + "value": { + "diskSizeGB": "128", + "managedDisk": { + "storageAccountType": "Premium_LRS" + } + } + }, + "adminUsername": { + "value": "localAdminUser" + }, + "adminPassword": { + "reference": { + "keyVault": { + "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" + }, + "secretName": "adminPassword" + } + }, + "nicConfigurations": { + "value": [ + { + "nicSuffix": "-nic-01", + "ipConfigurations": [ + { + "name": "ipconfig01", + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001" + } + ] + } + ] + } + } +} diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.min/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows.min/dependencies.bicep deleted file mode 100644 index 6245a4784c..0000000000 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows.min/dependencies.bicep +++ /dev/null @@ -1,28 +0,0 @@ -@description('Required. The name of the managed identity to create') -param virtualNetworkName string - -@description('Optional. The location to deploy to.') -param location string = resourceGroup().location - -resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { - name: virtualNetworkName - location: location - properties: { - addressSpace: { - addressPrefixes: [ - '10.0.0.0/24' - ] - } - subnets: [ - { - name: 'defaultSubnet' - properties: { - addressPrefix: '10.0.0.0/24' - } - } - ] - } -} - -@description('The resource ID of the created Virtual Network Subnet.') -output subnetResourceId string = virtualNetwork.properties.subnets[0].id diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep deleted file mode 100644 index e7e8ad8a46..0000000000 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows.min/deploy.test.bicep +++ /dev/null @@ -1,75 +0,0 @@ -targetScope = 'subscription' - -// ========== // -// Parameters // -// ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes') -@maxLength(90) -param resourceGroupName string = 'ms.compute.virtualMachines-${serviceShort}-test-rg' - -@description('Optional. The location to deploy resources to') -param location string = deployment().location - -@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'vmwinmin' - -@description('Optional. The password to leverage for the login.') -@secure() -param password string = newGuid() - -// =========== // -// Deployments // -// =========== // - -// General resources -// ================= -resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { - name: resourceGroupName - location: location -} - -module resourceGroupResources 'dependencies.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-nestedDependencies' - params: { - virtualNetworkName: 'dep-<>-vnet-${serviceShort}' - } -} - -// ============== // -// Test Execution // -// ============== // -module testDeployment '../../deploy.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name)}-test-${serviceShort}' - params: { - name: '<>${serviceShort}' - adminUsername: 'localAdminUser' - imageReference: { - offer: 'WindowsServer' - publisher: 'MicrosoftWindowsServer' - sku: '2022-datacenter-azure-edition' - version: 'latest' - } - nicConfigurations: [ - { - ipConfigurations: [ - { - name: 'ipconfig01' - subnetResourceId: resourceGroupResources.outputs.subnetResourceId - } - ] - nicSuffix: '-nic-01' - } - ] - osDisk: { - diskSizeGB: '128' - managedDisk: { - storageAccountType: 'Premium_LRS' - } - } - osType: 'Windows' - vmSize: 'Standard_B12ms' - adminPassword: password - } -} diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows.parameters.json b/modules/Microsoft.Compute/virtualMachines/.test/windows.parameters.json new file mode 100644 index 0000000000..eea472aa0f --- /dev/null +++ b/modules/Microsoft.Compute/virtualMachines/.test/windows.parameters.json @@ -0,0 +1,238 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-vm-win-01" + }, + "lock": { + "value": "CanNotDelete" + }, + "encryptionAtHost": { + "value": false + }, + "imageReference": { + "value": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2019-Datacenter", + "version": "latest" + } + }, + "osType": { + "value": "Windows" + }, + "vmSize": { + "value": "Standard_B12ms" + }, + "osDisk": { + "value": { + "createOption": "fromImage", + "deleteOption": "Delete", + "caching": "None", + "diskSizeGB": "128", + "managedDisk": { + "storageAccountType": "Premium_LRS" + } + } + }, + "dataDisks": { + "value": [ + { + "createOption": "Empty", + "deleteOption": "Delete", + "caching": "None", + "diskSizeGB": "128", + "managedDisk": { + "storageAccountType": "Premium_LRS" + } + }, + { + "createOption": "Empty", + "deleteOption": "Delete", + "caching": "None", + "diskSizeGB": "128", + "managedDisk": { + "storageAccountType": "Premium_LRS" + } + } + ] + }, + "availabilityZone": { + "value": 2 + }, + "adminUsername": { + "value": "localAdminUser" + }, + "adminPassword": { + "reference": { + "keyVault": { + "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" + }, + "secretName": "adminPassword" + } + }, + "nicConfigurations": { + "value": [ + { + "nicSuffix": "-nic-01", + "deleteOption": "Delete", + "ipConfigurations": [ + { + "name": "ipconfig01", + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001", + "pipConfiguration": { + "publicIpNameSuffix": "-pip-01", + "roleAssignments": [ + { + "roleDefinitionIdOrName": "Reader", + "principalIds": [ + "<>" + ] + } + ] + }, + "loadBalancerBackendAddressPools": [ + { + "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/loadBalancers/adp-<>-az-lb-internal-001/backendAddressPools/servers" + } + ], + "applicationSecurityGroups": [ + { + "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationSecurityGroups/adp-<>-az-asg-x-001" + } + ] + } + ], + "roleAssignments": [ + { + "roleDefinitionIdOrName": "Reader", + "principalIds": [ + "<>" + ] + } + ] + } + ] + }, + "backupVaultName": { + "value": "adp-<>-az-rsv-x-001" + }, + "backupVaultResourceGroup": { + "value": "validation-rg" + }, + "backupPolicyName": { + "value": "VMpolicy" + }, + "roleAssignments": { + "value": [ + { + "roleDefinitionIdOrName": "Reader", + "principalIds": [ + "<>" + ] + } + ] + }, + "diagnosticLogsRetentionInDays": { + "value": 7 + }, + "diagnosticStorageAccountId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" + }, + "diagnosticWorkspaceId": { + "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" + }, + "diagnosticEventHubAuthorizationRuleId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" + }, + "diagnosticEventHubName": { + "value": "adp-<>-az-evh-x-001" + }, + "proximityPlacementGroupResourceId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Compute/proximityPlacementGroups/adp-<>-az-ppg-vm-001" + }, + "systemAssignedIdentity": { + "value": true + }, + "userAssignedIdentities": { + "value": { + "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} + } + }, + "extensionAntiMalwareConfig": { + "value": { + "enabled": true, + "settings": { + "AntimalwareEnabled": "true", + "Exclusions": { + "Extensions": ".ext1;.ext2", + "Paths": "c:\\excluded-path-1;c:\\excluded-path-2", + "Processes": "excludedproc1.exe;excludedproc2.exe" + }, + "RealtimeProtectionEnabled": "true", + "ScheduledScanSettings": { + "isEnabled": "true", + "scanType": "Quick", + "day": "7", + "time": "120" + } + } + } + }, + "extensionMonitoringAgentConfig": { + "value": { + "enabled": true + } + }, + "monitoringWorkspaceId": { + "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" + }, + "extensionDependencyAgentConfig": { + "value": { + "enabled": true + } + }, + "extensionNetworkWatcherAgentConfig": { + "value": { + "enabled": true + } + }, + "extensionDiskEncryptionConfig": { + "value": { + "enabled": true, + "settings": { + "EncryptionOperation": "EnableEncryption", + "KeyVaultURL": "https://adp-<>-az-kv-x-001.vault.azure.net/", + "KeyVaultResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", + "KeyEncryptionKeyURL": "https://adp-<>-az-kv-x-001.vault.azure.net/keys/keyEncryptionKey/bc3bb46d95c64367975d722f473eeae5", // ID must be updated for new keys + "KekVaultResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", + "KeyEncryptionAlgorithm": "RSA-OAEP", + "VolumeType": "All", + "ResizeOSDisk": "false" + } + } + }, + "extensionDSCConfig": { + "value": { + "enabled": true + } + }, + "extensionCustomScriptConfig": { + "value": { + "enabled": true, + "fileData": [ + { + "uri": "https://adp<>azsax001.blob.core.windows.net/scripts/scriptExtensionMasterInstaller.ps1", + "storageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" + } + ] + } + }, + "extensionCustomScriptProtectedSetting": { + "value": { + "commandToExecute": "powershell -ExecutionPolicy Unrestricted -Command \"& .\\scriptExtensionMasterInstaller.ps1\"" + } + } + } +} diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep deleted file mode 100644 index 308f7987b4..0000000000 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/dependencies.bicep +++ /dev/null @@ -1,319 +0,0 @@ -@description('Required. The name of the managed identity to create') -param virtualNetworkName string - -@description('Required. The name of the Application Security Group to create.') -param applicationSecurityGroupName string - -@description('Required. The name of the Managed Identity to create.') -param managedIdentityName string - -@description('Required. The name of the Load Balancer to create.') -param loadBalancerName string - -@description('Required. The name of the Recovery Services Vault to create.') -param recoveryServicesVaultName string - -@description('Required. The name of the Key Vault to create.') -param keyVaultName string - -@description('Required. The name of the Storage Account to create.') -param storageAccountName string - -@description('Required. The name of the Deployment Script used to upload data to the Storage Account.') -param storageUploadDeploymentScriptName string - -@description('Required. The name of the Proximity Placement Group to create.') -param proximityPlacementGroupName string - -@description('Optional. The location to deploy to') -param location string = resourceGroup().location - -var storageContainerName = 'scripts' -var storageAccountCSEFileName = 'scriptExtensionMasterInstaller.ps1' -var backupPolicyName = 'backupPolicy' - -resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { - name: virtualNetworkName - location: location - properties: { - addressSpace: { - addressPrefixes: [ - '10.0.0.0/24' - ] - } - subnets: [ - { - name: 'defaultSubnet' - properties: { - addressPrefix: '10.0.0.0/24' - } - } - ] - } -} - -resource applicationSecurityGroup 'Microsoft.Network/applicationSecurityGroups@2022-01-01' = { - name: applicationSecurityGroupName - location: location -} - -resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { - name: managedIdentityName - location: location -} - -resource msiRoleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = { - name: guid('msi-${managedIdentityName}-Subscription-Contributor-RoleAssignment') - properties: { - principalId: managedIdentity.properties.principalId - roleDefinitionId: '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' // Contributor - principalType: 'ServicePrincipal' - } -} - -resource loadBalancer 'Microsoft.Network/loadBalancers@2022-01-01' = { - name: loadBalancerName - location: location - sku: { - name: 'Standard' - } - properties: { - frontendIPConfigurations: [ - { - name: 'privateIPConfig1' - properties: { - subnet: virtualNetwork.properties.subnets[0] - } - } - ] - backendAddressPools: [ - { - name: 'servers' - } - ] - } -} - -resource recoveryServicesVault 'Microsoft.RecoveryServices/vaults@2022-04-01' = { - name: recoveryServicesVaultName - location: location - sku: { - name: 'RS0' - tier: 'Standard' - } - properties: { - } - - resource backupPolicy 'backupPolicies@2022-03-01' = { - name: backupPolicyName - properties: { - backupManagementType: 'AzureIaasVM' - instantRPDetails: {} - schedulePolicy: { - schedulePolicyType: 'SimpleSchedulePolicy' - scheduleRunFrequency: 'Daily' - scheduleRunTimes: [ - '2019-11-07T07:00:00Z' - ] - scheduleWeeklyFrequency: 0 - } - retentionPolicy: { - retentionPolicyType: 'LongTermRetentionPolicy' - dailySchedule: { - retentionTimes: [ - '2019-11-07T07:00:00Z' - ] - retentionDuration: { - count: 180 - durationType: 'Days' - } - } - weeklySchedule: { - daysOfTheWeek: [ - 'Sunday' - ] - retentionTimes: [ - '2019-11-07T07:00:00Z' - ] - retentionDuration: { - count: 12 - durationType: 'Weeks' - } - } - monthlySchedule: { - retentionScheduleFormatType: 'Weekly' - retentionScheduleWeekly: { - daysOfTheWeek: [ - 'Sunday' - ] - weeksOfTheMonth: [ - 'First' - ] - } - retentionTimes: [ - '2019-11-07T07:00:00Z' - ] - retentionDuration: { - count: 60 - durationType: 'Months' - } - } - yearlySchedule: { - retentionScheduleFormatType: 'Weekly' - monthsOfYear: [ - 'January' - ] - retentionScheduleWeekly: { - daysOfTheWeek: [ - 'Sunday' - ] - weeksOfTheMonth: [ - 'First' - ] - } - retentionTimes: [ - '2019-11-07T07:00:00Z' - ] - retentionDuration: { - count: 10 - durationType: 'Years' - } - } - } - instantRpRetentionRangeInDays: 2 - timeZone: 'UTC' - protectedItemsCount: 0 - } - } -} - -resource keyVault 'Microsoft.KeyVault/vaults@2022-07-01' = { - name: keyVaultName - location: location - properties: { - sku: { - family: 'A' - name: 'standard' - } - tenantId: tenant().tenantId - enablePurgeProtection: null - enabledForTemplateDeployment: true - enabledForDiskEncryption: true - enabledForDeployment: true - enableRbacAuthorization: true - accessPolicies: [] - } - - resource key 'keys@2022-07-01' = { - name: 'encryptionKey' - properties: { - kty: 'EC' - } - } -} - -resource keyPermissions 'Microsoft.Authorization/roleAssignments@2022-04-01' = { - name: guid('msi-${managedIdentityName}-KeyVault-Key-Read-RoleAssignment') - scope: keyVault::key - properties: { - principalId: managedIdentity.properties.principalId - // Key Vault Crypto User - roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '12338af0-0e69-4776-bea7-57ae8d297424') - principalType: 'ServicePrincipal' - } -} - -resource storageAccount 'Microsoft.Storage/storageAccounts@2021-09-01' = { - name: storageAccountName - location: location - sku: { - name: 'Standard_LRS' - } - kind: 'StorageV2' - - resource blobService 'blobServices@2021-09-01' = { - name: 'default' - - resource container 'containers@2021-09-01' = { - name: storageContainerName - } - } -} - -resource storageUpload 'Microsoft.Resources/deploymentScripts@2020-10-01' = { - name: storageUploadDeploymentScriptName - location: location - kind: 'AzurePowerShell' - identity: { - type: 'UserAssigned' - userAssignedIdentities: { - '${managedIdentity.id}': {} - } - } - properties: { - azPowerShellVersion: '3.0' - retentionInterval: 'P1D' - arguments: ' -StorageAccountName "${storageAccount.name}" -ResourceGroupName "${resourceGroup().name}" -ContainerName "${storageAccount::blobService::container.name}" -FileName "${storageAccountCSEFileName}"' - scriptContent: ''' - param( - [string] $StorageAccountName, - [string] $ResourceGroupName, - [string] $ContainerName, - [string] $FileName - ) - Write-Verbose "Create file [$FileName]" -Verbose - $file = New-Item -Value "Write-Host 'I am content'" -Path $FileName -Force - Write-Verbose "Getting storage account [$StorageAccountName|$ResourceGroupName] context." -Verbose - $storageAccount = Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -StorageAccountName $StorageAccountName -ErrorAction 'Stop' - Write-Verbose 'Uploading file [$fileName]' -Verbose - Set-AzStorageBlobContent -File $file.FullName -Container $ContainerName -Context $storageAccount.Context -Force -ErrorAction 'Stop' | Out-Null - ''' - } - dependsOn: [ - msiRoleAssignment - ] -} - -resource proximityPlacementGroup 'Microsoft.Compute/proximityPlacementGroups@2022-03-01' = { - name: proximityPlacementGroupName - location: location -} - -@description('The resource ID of the created Virtual Network Subnet.') -output subnetResourceId string = virtualNetwork.properties.subnets[0].id - -@description('The resource ID of the created Application Security Group.') -output applicationSecurityGroupResourceId string = applicationSecurityGroup.id - -@description('The principal ID of the created Managed Identity.') -output managedIdentityPrincipalId string = managedIdentity.properties.principalId - -@description('The resource ID of the created Managed Identity.') -output managedIdentityResourceId string = managedIdentity.id - -@description('The resource ID of the created Load Balancer Backend Pool.') -output loadBalancerBackendPoolResourceId string = loadBalancer.properties.backendAddressPools[0].id - -@description('The resource ID of the created Recovery Services Vault.') -output recoveryServicesVaultResourceId string = recoveryServicesVault.id - -@description('The name of the Backup Policy created in the Backup Recovery Vault.') -output recoveryServicesVaultBackupPolicyName string = backupPolicyName - -@description('The resource ID of the created Key Vault.') -output keyVaultResourceId string = keyVault.id - -@description('The URL of the created Key Vault.') -output keyVaultUrl string = keyVault.properties.vaultUri - -@description('The URL of the created Key Vault Encryption Key.') -output keyVaultEncryptionKeyUrl string = keyVault::key.properties.keyUriWithVersion - -@description('The resource ID of the created Storage Account.') -output storageAccountResourceId string = storageAccount.id - -@description('The URL of the Custom Script Extension in the created Storage Account') -output storageAccountCSEFileUrl string = '${storageAccount.properties.primaryEndpoints.blob}${storageContainerName}/${storageAccountCSEFileName}' - -@description('The resource ID of the created Proximity Placement Group.') -output proximityPlacementGroupResourceId string = proximityPlacementGroup.id diff --git a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep b/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep deleted file mode 100644 index f18c7191a2..0000000000 --- a/modules/Microsoft.Compute/virtualMachines/.test/windows/deploy.test.bicep +++ /dev/null @@ -1,231 +0,0 @@ -targetScope = 'subscription' - -// ========== // -// Parameters // -// ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes') -@maxLength(90) -param resourceGroupName string = 'ms.compute.virtualMachines-${serviceShort}-test-rg' - -@description('Optional. The location to deploy resources to') -param location string = deployment().location - -@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'vmwindef' - -@description('Optional. The password to leverage for the login.') -@secure() -param password string = newGuid() - -// =========== // -// Deployments // -// =========== // - -// General resources -// ================= -resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { - name: resourceGroupName - location: location -} - -module resourceGroupResources 'dependencies.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-nestedDependencies' - params: { - virtualNetworkName: 'dep-<>-vnet-${serviceShort}' - applicationSecurityGroupName: 'adp-<>-asg-${serviceShort}' - managedIdentityName: 'dep-<>-msi-${serviceShort}' - keyVaultName: 'dep-<>-kv-${serviceShort}' - loadBalancerName: 'dep-<>-lb-${serviceShort}' - recoveryServicesVaultName: 'dep-<>-rsv-${serviceShort}' - storageAccountName: 'dep<>sa${serviceShort}01' - storageUploadDeploymentScriptName: 'dep-<>-sads-${serviceShort}' - proximityPlacementGroupName: 'dep-<>-ppg-${serviceShort}' - } -} - -// Diagnostics -// =========== -module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-diagnosticDependencies' - params: { - storageAccountName: 'dep<>diasa${serviceShort}01' - logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}' - eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}' - eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}' - location: location - } -} - -// ============== // -// Test Execution // -// ============== // - -module testDeployment '../../deploy.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name)}-test-${serviceShort}' - params: { - name: '<>${serviceShort}' - adminUsername: 'localAdminUser' - imageReference: { - offer: 'WindowsServer' - publisher: 'MicrosoftWindowsServer' - sku: '2019-Datacenter' - version: 'latest' - } - nicConfigurations: [ - { - deleteOption: 'Delete' - ipConfigurations: [ - { - applicationSecurityGroups: [ - { - id: resourceGroupResources.outputs.applicationSecurityGroupResourceId - } - ] - loadBalancerBackendAddressPools: [ - { - id: resourceGroupResources.outputs.loadBalancerBackendPoolResourceId - } - ] - name: 'ipconfig01' - pipConfiguration: { - publicIpNameSuffix: '-pip-01' - roleAssignments: [ - { - principalIds: [ - resourceGroupResources.outputs.managedIdentityPrincipalId - ] - roleDefinitionIdOrName: 'Reader' - } - ] - } - subnetResourceId: resourceGroupResources.outputs.subnetResourceId - } - ] - nicSuffix: '-nic-01' - roleAssignments: [ - { - principalIds: [ - resourceGroupResources.outputs.managedIdentityPrincipalId - ] - roleDefinitionIdOrName: 'Reader' - } - ] - } - ] - osDisk: { - caching: 'None' - createOption: 'fromImage' - deleteOption: 'Delete' - diskSizeGB: '128' - managedDisk: { - storageAccountType: 'Premium_LRS' - } - } - osType: 'Windows' - vmSize: 'Standard_B12ms' - adminPassword: password - availabilityZone: 2 - backupPolicyName: resourceGroupResources.outputs.recoveryServicesVaultBackupPolicyName - backupVaultName: last(split(resourceGroupResources.outputs.recoveryServicesVaultResourceId, '/')) - backupVaultResourceGroup: (split(resourceGroupResources.outputs.recoveryServicesVaultResourceId, '/'))[4] - dataDisks: [ - { - caching: 'None' - createOption: 'Empty' - deleteOption: 'Delete' - diskSizeGB: '128' - managedDisk: { - storageAccountType: 'Premium_LRS' - } - } - { - caching: 'None' - createOption: 'Empty' - deleteOption: 'Delete' - diskSizeGB: '128' - managedDisk: { - storageAccountType: 'Premium_LRS' - } - } - ] - diagnosticStorageAccountId: diagnosticDependencies.outputs.storageAccountResourceId - diagnosticWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId - diagnosticEventHubAuthorizationRuleId: diagnosticDependencies.outputs.eventHubAuthorizationRuleId - diagnosticEventHubName: diagnosticDependencies.outputs.eventHubNamespaceEventHubName - diagnosticLogsRetentionInDays: 7 - encryptionAtHost: false - extensionAntiMalwareConfig: { - enabled: true - settings: { - AntimalwareEnabled: 'true' - Exclusions: { - Extensions: '.ext1;.ext2' - Paths: 'c:\\excluded-path-1;c:\\excluded-path-2' - Processes: 'excludedproc1.exe;excludedproc2.exe' - } - RealtimeProtectionEnabled: 'true' - ScheduledScanSettings: { - day: '7' - isEnabled: 'true' - scanType: 'Quick' - time: '120' - } - } - } - extensionCustomScriptConfig: { - enabled: true - fileData: [ - { - storageAccountId: resourceGroupResources.outputs.storageAccountResourceId - uri: resourceGroupResources.outputs.storageAccountCSEFileUrl - } - ] - } - extensionCustomScriptProtectedSetting: { - commandToExecute: 'powershell -ExecutionPolicy Unrestricted -Command "& ./${last(split(resourceGroupResources.outputs.storageAccountCSEFileUrl, '/'))}"' - } - extensionDependencyAgentConfig: { - enabled: true - } - extensionDiskEncryptionConfig: { - enabled: true - settings: { - EncryptionOperation: 'EnableEncryption' - KekVaultResourceId: resourceGroupResources.outputs.keyVaultResourceId - KeyEncryptionAlgorithm: 'RSA-OAEP' - KeyEncryptionKeyURL: resourceGroupResources.outputs.keyVaultEncryptionKeyUrl - KeyVaultResourceId: resourceGroupResources.outputs.keyVaultResourceId - KeyVaultURL: resourceGroupResources.outputs.keyVaultUrl - ResizeOSDisk: 'false' - VolumeType: 'All' - } - } - extensionDSCConfig: { - enabled: true - } - extensionMonitoringAgentConfig: { - enabled: true - } - extensionNetworkWatcherAgentConfig: { - enabled: true - } - lock: 'CanNotDelete' - monitoringWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId - proximityPlacementGroupResourceId: resourceGroupResources.outputs.proximityPlacementGroupResourceId - roleAssignments: [ - { - principalIds: [ - resourceGroupResources.outputs.managedIdentityPrincipalId - ] - roleDefinitionIdOrName: 'Reader' - } - ] - systemAssignedIdentity: true - userAssignedIdentities: { - '${resourceGroupResources.outputs.managedIdentityResourceId}': {} - } - } -} diff --git a/modules/Microsoft.Compute/virtualMachines/readme.md b/modules/Microsoft.Compute/virtualMachines/readme.md index 5ffc3b02a5..58ae78c88c 100644 --- a/modules/Microsoft.Compute/virtualMachines/readme.md +++ b/modules/Microsoft.Compute/virtualMachines/readme.md @@ -1015,15 +1015,277 @@ The following module usage examples are retrieved from the content of the files >**Note**: The name of each example is based on the name of the file from which it is taken. >**Note**: Each example lists all the required parameters first, followed by the rest - each in alphabetical order. -

Example 1: Linux

+

Example 1: Linux Autmg

via Bicep module ```bicep -module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-vmlindef' +module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-virtualMachines' + params: { + // Required parameters + adminUsername: 'localAdminUser' + imageReference: { + offer: 'UbuntuServer' + publisher: 'Canonical' + sku: '18.04-LTS' + version: 'latest' + } + nicConfigurations: [ + { + ipConfigurations: [ + { + name: 'ipconfig01' + pipConfiguration: { + publicIpNameSuffix: '-pip-01' + } + subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001' + } + ] + nicSuffix: '-nic-01' + } + ] + osDisk: { + diskSizeGB: '128' + managedDisk: { + storageAccountType: 'Premium_LRS' + } + } + osType: 'Linux' + vmSize: 'Standard_B12ms' + // Non-required parameters + configurationProfile: '/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction' + disablePasswordAuthentication: true + name: '<>-vm-linux-autmg-01' + publicKeys: [ + { + keyData: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure' + path: '/home/localAdminUser/.ssh/authorized_keys' + } + ] + } +} +``` + +
+

+ +

+ +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + // Required parameters + "adminUsername": { + "value": "localAdminUser" + }, + "imageReference": { + "value": { + "offer": "UbuntuServer", + "publisher": "Canonical", + "sku": "18.04-LTS", + "version": "latest" + } + }, + "nicConfigurations": { + "value": [ + { + "ipConfigurations": [ + { + "name": "ipconfig01", + "pipConfiguration": { + "publicIpNameSuffix": "-pip-01" + }, + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001" + } + ], + "nicSuffix": "-nic-01" + } + ] + }, + "osDisk": { + "value": { + "diskSizeGB": "128", + "managedDisk": { + "storageAccountType": "Premium_LRS" + } + } + }, + "osType": { + "value": "Linux" + }, + "vmSize": { + "value": "Standard_B12ms" + }, + // Non-required parameters + "configurationProfile": { + "value": "/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction" + }, + "disablePasswordAuthentication": { + "value": true + }, + "name": { + "value": "<>-vm-linux-autmg-01" + }, + "publicKeys": { + "value": [ + { + "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure", + "path": "/home/localAdminUser/.ssh/authorized_keys" + } + ] + } + } +} +``` + +
+

+ +

Example 2: Linux Min

+ +
+ +via Bicep module + +```bicep +module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-virtualMachines' + params: { + // Required parameters + adminUsername: 'localAdminUser' + imageReference: { + offer: 'UbuntuServer' + publisher: 'Canonical' + sku: '18.04-LTS' + version: 'latest' + } + nicConfigurations: [ + { + ipConfigurations: [ + { + name: 'ipconfig01' + pipConfiguration: { + publicIpNameSuffix: '-pip-01' + } + subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001' + } + ] + nicSuffix: '-nic-01' + } + ] + osDisk: { + diskSizeGB: '128' + managedDisk: { + storageAccountType: 'Premium_LRS' + } + } + osType: 'Linux' + vmSize: 'Standard_B12ms' + // Non-required parameters + disablePasswordAuthentication: true + name: '<>-vm-linux-min-01' + publicKeys: [ + { + keyData: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure' + path: '/home/localAdminUser/.ssh/authorized_keys' + } + ] + } +} +``` + +
+

+ +

+ +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + // Required parameters + "adminUsername": { + "value": "localAdminUser" + }, + "imageReference": { + "value": { + "offer": "UbuntuServer", + "publisher": "Canonical", + "sku": "18.04-LTS", + "version": "latest" + } + }, + "nicConfigurations": { + "value": [ + { + "ipConfigurations": [ + { + "name": "ipconfig01", + "pipConfiguration": { + "publicIpNameSuffix": "-pip-01" + }, + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001" + } + ], + "nicSuffix": "-nic-01" + } + ] + }, + "osDisk": { + "value": { + "diskSizeGB": "128", + "managedDisk": { + "storageAccountType": "Premium_LRS" + } + } + }, + "osType": { + "value": "Linux" + }, + "vmSize": { + "value": "Standard_B12ms" + }, + // Non-required parameters + "disablePasswordAuthentication": { + "value": true + }, + "name": { + "value": "<>-vm-linux-min-01" + }, + "publicKeys": { + "value": [ + { + "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure", + "path": "/home/localAdminUser/.ssh/authorized_keys" + } + ] + } + } +} +``` + +
+

+ +

Example 3: Linux

+ +
+ +via Bicep module + +```bicep +module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-virtualMachines' params: { // Required parameters adminUsername: 'localAdminUser' @@ -1040,12 +1302,12 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { { applicationSecurityGroups: [ { - id: '' + id: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationSecurityGroups/adp-<>-az-asg-x-001' } ] loadBalancerBackendAddressPools: [ { - id: '' + id: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/loadBalancers/adp-<>-az-lb-internal-001/backendAddressPools/servers' } ] name: 'ipconfig01' @@ -1054,20 +1316,20 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { roleAssignments: [ { principalIds: [ - '' + '<>' ] roleDefinitionIdOrName: 'Reader' } ] } - subnetResourceId: '' + subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001' } ] nicSuffix: '-nic-01' roleAssignments: [ { principalIds: [ - '' + '<>' ] roleDefinitionIdOrName: 'Reader' } @@ -1087,9 +1349,9 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { vmSize: 'Standard_B12ms' // Non-required parameters availabilityZone: 1 - backupPolicyName: '' - backupVaultName: '' - backupVaultResourceGroup: '' + backupPolicyName: 'VMpolicy' + backupVaultName: 'adp-<>-az-rsv-x-001' + backupVaultResourceGroup: 'validation-rg' dataDisks: [ { caching: 'ReadWrite' @@ -1110,19 +1372,19 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { } } ] - diagnosticEventHubAuthorizationRuleId: '' - diagnosticEventHubName: '' + diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' + diagnosticEventHubName: 'adp-<>-az-evh-x-001' diagnosticLogsRetentionInDays: 7 - diagnosticStorageAccountId: '' - diagnosticWorkspaceId: '' + diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' + diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' disablePasswordAuthentication: true encryptionAtHost: false extensionCustomScriptConfig: { enabled: true fileData: [ { - storageAccountId: '' - uri: '' + storageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' + uri: 'https://adp<>azsax001.blob.core.windows.net/scripts/scriptExtensionMasterInstaller.ps1' } ] } @@ -1136,11 +1398,11 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { enabled: true settings: { EncryptionOperation: 'EnableEncryption' - KekVaultResourceId: '' + KekVaultResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001' KeyEncryptionAlgorithm: 'RSA-OAEP' - KeyEncryptionKeyURL: '' - KeyVaultResourceId: '' - KeyVaultURL: '' + KeyEncryptionKeyURL: 'https://adp-<>-az-kv-x-001.vault.azure.net/keys/keyEncryptionKey/bc3bb46d95c64367975d722f473eeae5' + KeyVaultResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001' + KeyVaultURL: 'https://adp-<>-az-kv-x-001.vault.azure.net/' ResizeOSDisk: 'false' VolumeType: 'All' } @@ -1155,8 +1417,8 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { enabled: true } lock: 'CanNotDelete' - monitoringWorkspaceId: '' - name: '<>vmlindef' + monitoringWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' + name: '<>-vm-linux-01' publicKeys: [ { keyData: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure' @@ -1166,14 +1428,14 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { roleAssignments: [ { principalIds: [ - '' + '<>' ] roleDefinitionIdOrName: 'Reader' } ] systemAssignedIdentity: true userAssignedIdentities: { - '${resourceGroupResources.outputs.managedIdentityResourceId}': {} + '/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} } } } @@ -1211,12 +1473,12 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { { "applicationSecurityGroups": [ { - "id": "" + "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationSecurityGroups/adp-<>-az-asg-x-001" } ], "loadBalancerBackendAddressPools": [ { - "id": "" + "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/loadBalancers/adp-<>-az-lb-internal-001/backendAddressPools/servers" } ], "name": "ipconfig01", @@ -1225,20 +1487,20 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "roleAssignments": [ { "principalIds": [ - "" + "<>" ], "roleDefinitionIdOrName": "Reader" } ] }, - "subnetResourceId": "" + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001" } ], "nicSuffix": "-nic-01", "roleAssignments": [ { "principalIds": [ - "" + "<>" ], "roleDefinitionIdOrName": "Reader" } @@ -1268,13 +1530,13 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "value": 1 }, "backupPolicyName": { - "value": "" + "value": "VMpolicy" }, "backupVaultName": { - "value": "" + "value": "adp-<>-az-rsv-x-001" }, "backupVaultResourceGroup": { - "value": "" + "value": "validation-rg" }, "dataDisks": { "value": [ @@ -1299,19 +1561,19 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { ] }, "diagnosticEventHubAuthorizationRuleId": { - "value": "" + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" }, "diagnosticEventHubName": { - "value": "" + "value": "adp-<>-az-evh-x-001" }, "diagnosticLogsRetentionInDays": { "value": 7 }, "diagnosticStorageAccountId": { - "value": "" + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" }, "diagnosticWorkspaceId": { - "value": "" + "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" }, "disablePasswordAuthentication": { "value": true @@ -1324,8 +1586,8 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "enabled": true, "fileData": [ { - "storageAccountId": "", - "uri": "" + "storageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", + "uri": "https://adp<>azsax001.blob.core.windows.net/scripts/scriptExtensionMasterInstaller.ps1" } ] } @@ -1345,11 +1607,11 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "enabled": true, "settings": { "EncryptionOperation": "EnableEncryption", - "KekVaultResourceId": "", + "KekVaultResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", "KeyEncryptionAlgorithm": "RSA-OAEP", - "KeyEncryptionKeyURL": "", - "KeyVaultResourceId": "", - "KeyVaultURL": "", + "KeyEncryptionKeyURL": "https://adp-<>-az-kv-x-001.vault.azure.net/keys/keyEncryptionKey/bc3bb46d95c64367975d722f473eeae5", + "KeyVaultResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", + "KeyVaultURL": "https://adp-<>-az-kv-x-001.vault.azure.net/", "ResizeOSDisk": "false", "VolumeType": "All" } @@ -1374,10 +1636,10 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "value": "CanNotDelete" }, "monitoringWorkspaceId": { - "value": "" + "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" }, "name": { - "value": "<>vmlindef" + "value": "<>-vm-linux-01" }, "publicKeys": { "value": [ @@ -1391,7 +1653,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "value": [ { "principalIds": [ - "" + "<>" ], "roleDefinitionIdOrName": "Reader" } @@ -1402,7 +1664,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { }, "userAssignedIdentities": { "value": { - "${resourceGroupResources.outputs.managedIdentityResourceId}": {} + "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} } } } @@ -1412,22 +1674,27 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = {

-

Example 2: Linux.Atmg

+

Example 4: Windows Autmg

via Bicep module ```bicep -module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-vmlinatmg' +resource kv1 'Microsoft.KeyVault/vaults@2019-09-01' existing = { + name: 'adp-<>-az-kv-x-001' + scope: resourceGroup('<>','validation-rg') +} + +module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-virtualMachines' params: { // Required parameters adminUsername: 'localAdminUser' imageReference: { - offer: 'UbuntuServer' - publisher: 'Canonical' - sku: '18.04-LTS' + offer: 'WindowsServer' + publisher: 'MicrosoftWindowsServer' + sku: '2019-Datacenter' version: 'latest' } nicConfigurations: [ @@ -1435,10 +1702,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { ipConfigurations: [ { name: 'ipconfig01' - pipConfiguration: { - publicIpNameSuffix: '-pip-01' - } - subnetResourceId: '' + subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001' } ] nicSuffix: '-nic-01' @@ -1450,18 +1714,12 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { storageAccountType: 'Premium_LRS' } } - osType: 'Linux' + osType: 'Windows' vmSize: 'Standard_B12ms' // Non-required parameters + adminPassword: kv1.getSecret('adminPassword') configurationProfile: '/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction' - disablePasswordAuthentication: true - name: '<>vmlinatmg' - publicKeys: [ - { - keyData: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure' - path: '/home/localAdminUser/.ssh/authorized_keys' - } - ] + name: '<>-vm-win-03' } } ``` @@ -1484,9 +1742,9 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { }, "imageReference": { "value": { - "offer": "UbuntuServer", - "publisher": "Canonical", - "sku": "18.04-LTS", + "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", + "sku": "2019-Datacenter", "version": "latest" } }, @@ -1496,10 +1754,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "ipConfigurations": [ { "name": "ipconfig01", - "pipConfiguration": { - "publicIpNameSuffix": "-pip-01" - }, - "subnetResourceId": "" + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001" } ], "nicSuffix": "-nic-01" @@ -1515,28 +1770,25 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { } }, "osType": { - "value": "Linux" + "value": "Windows" }, "vmSize": { "value": "Standard_B12ms" }, // Non-required parameters + "adminPassword": { + "reference": { + "keyVault": { + "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" + }, + "secretName": "adminPassword" + } + }, "configurationProfile": { "value": "/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction" }, - "disablePasswordAuthentication": { - "value": true - }, "name": { - "value": "<>vmlinatmg" - }, - "publicKeys": { - "value": [ - { - "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure", - "path": "/home/localAdminUser/.ssh/authorized_keys" - } - ] + "value": "<>-vm-win-03" } } } @@ -1545,22 +1797,27 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = {

-

Example 3: Linux.Min

+

Example 5: Windows Min

via Bicep module -```bicep -module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-vmlinmin' +```bicep +resource kv1 'Microsoft.KeyVault/vaults@2019-09-01' existing = { + name: 'adp-<>-az-kv-x-001' + scope: resourceGroup('<>','validation-rg') +} + +module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-virtualMachines' params: { // Required parameters adminUsername: 'localAdminUser' imageReference: { - offer: 'UbuntuServer' - publisher: 'Canonical' - sku: '18.04-LTS' + offer: 'WindowsServer' + publisher: 'MicrosoftWindowsServer' + sku: '2022-datacenter-azure-edition' version: 'latest' } nicConfigurations: [ @@ -1568,10 +1825,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { ipConfigurations: [ { name: 'ipconfig01' - pipConfiguration: { - publicIpNameSuffix: '-pip-01' - } - subnetResourceId: '' + subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001' } ] nicSuffix: '-nic-01' @@ -1583,17 +1837,11 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { storageAccountType: 'Premium_LRS' } } - osType: 'Linux' + osType: 'Windows' vmSize: 'Standard_B12ms' // Non-required parameters - disablePasswordAuthentication: true - name: '<>vmlinmin' - publicKeys: [ - { - keyData: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure' - path: '/home/localAdminUser/.ssh/authorized_keys' - } - ] + adminPassword: kv1.getSecret('adminPassword') + name: '<>-vm-win-02' } } ``` @@ -1616,9 +1864,9 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { }, "imageReference": { "value": { - "offer": "UbuntuServer", - "publisher": "Canonical", - "sku": "18.04-LTS", + "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", + "sku": "2022-datacenter-azure-edition", "version": "latest" } }, @@ -1628,10 +1876,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "ipConfigurations": [ { "name": "ipconfig01", - "pipConfiguration": { - "publicIpNameSuffix": "-pip-01" - }, - "subnetResourceId": "" + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001" } ], "nicSuffix": "-nic-01" @@ -1647,25 +1892,22 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { } }, "osType": { - "value": "Linux" + "value": "Windows" }, "vmSize": { "value": "Standard_B12ms" }, // Non-required parameters - "disablePasswordAuthentication": { - "value": true + "adminPassword": { + "reference": { + "keyVault": { + "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" + }, + "secretName": "adminPassword" + } }, "name": { - "value": "<>vmlinmin" - }, - "publicKeys": { - "value": [ - { - "keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdOir5eO28EBwxU0Dyra7g9h0HUXDyMNFp2z8PhaTUQgHjrimkMxjYRwEOG/lxnYL7+TqZk+HcPTfbZOunHBw0Wx2CITzILt6531vmIYZGfq5YyYXbxZa5MON7L/PVivoRlPj5Z/t4RhqMhyfR7EPcZ516LJ8lXPTo8dE/bkOCS+kFBEYHvPEEKAyLs19sRcK37SeHjpX04zdg62nqtuRr00Tp7oeiTXA1xn5K5mxeAswotmd8CU0lWUcJuPBWQedo649b+L2cm52kTncOBI6YChAeyEc1PDF0Tn9FmpdOWKtI9efh+S3f8qkcVEtSTXoTeroBd31nzjAunMrZeM8Ut6dre+XeQQIjT7I8oEm+ZkIuIyq0x2fls8JXP2YJDWDqu8v1+yLGTQ3Z9XVt2lMti/7bIgYxS0JvwOr5n5L4IzKvhb4fm13LLDGFa3o7Nsfe3fPb882APE0bLFCmfyIeiPh7go70WqZHakpgIr6LCWTyePez9CsI/rfWDb6eAM8= generated-by-azure", - "path": "/home/localAdminUser/.ssh/authorized_keys" - } - ] + "value": "<>-vm-win-02" } } } @@ -1674,15 +1916,20 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = {

-

Example 4: Windows

+

Example 6: Windows

via Bicep module ```bicep -module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-vmwindef' +resource kv1 'Microsoft.KeyVault/vaults@2019-09-01' existing = { + name: 'adp-<>-az-kv-x-001' + scope: resourceGroup('<>','validation-rg') +} + +module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-virtualMachines' params: { // Required parameters adminUsername: 'localAdminUser' @@ -1699,12 +1946,12 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { { applicationSecurityGroups: [ { - id: '' + id: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationSecurityGroups/adp-<>-az-asg-x-001' } ] loadBalancerBackendAddressPools: [ { - id: '' + id: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/loadBalancers/adp-<>-az-lb-internal-001/backendAddressPools/servers' } ] name: 'ipconfig01' @@ -1713,20 +1960,20 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { roleAssignments: [ { principalIds: [ - '' + '<>' ] roleDefinitionIdOrName: 'Reader' } ] } - subnetResourceId: '' + subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001' } ] nicSuffix: '-nic-01' roleAssignments: [ { principalIds: [ - '' + '<>' ] roleDefinitionIdOrName: 'Reader' } @@ -1745,11 +1992,11 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { osType: 'Windows' vmSize: 'Standard_B12ms' // Non-required parameters - adminPassword: '' + adminPassword: kv1.getSecret('adminPassword') availabilityZone: 2 - backupPolicyName: '' - backupVaultName: '' - backupVaultResourceGroup: '' + backupPolicyName: 'VMpolicy' + backupVaultName: 'adp-<>-az-rsv-x-001' + backupVaultResourceGroup: 'validation-rg' dataDisks: [ { caching: 'None' @@ -1770,11 +2017,11 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { } } ] - diagnosticEventHubAuthorizationRuleId: '' - diagnosticEventHubName: '' + diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' + diagnosticEventHubName: 'adp-<>-az-evh-x-001' diagnosticLogsRetentionInDays: 7 - diagnosticStorageAccountId: '' - diagnosticWorkspaceId: '' + diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' + diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' encryptionAtHost: false extensionAntiMalwareConfig: { enabled: true @@ -1798,13 +2045,13 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { enabled: true fileData: [ { - storageAccountId: '' - uri: '' + storageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' + uri: 'https://adp<>azsax001.blob.core.windows.net/scripts/scriptExtensionMasterInstaller.ps1' } ] } extensionCustomScriptProtectedSetting: { - commandToExecute: '' + commandToExecute: 'powershell -ExecutionPolicy Unrestricted -Command \'& .\\scriptExtensionMasterInstaller.ps1\'' } extensionDependencyAgentConfig: { enabled: true @@ -1813,11 +2060,11 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { enabled: true settings: { EncryptionOperation: 'EnableEncryption' - KekVaultResourceId: '' + KekVaultResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001' KeyEncryptionAlgorithm: 'RSA-OAEP' - KeyEncryptionKeyURL: '' - KeyVaultResourceId: '' - KeyVaultURL: '' + KeyEncryptionKeyURL: 'https://adp-<>-az-kv-x-001.vault.azure.net/keys/keyEncryptionKey/bc3bb46d95c64367975d722f473eeae5' + KeyVaultResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001' + KeyVaultURL: 'https://adp-<>-az-kv-x-001.vault.azure.net/' ResizeOSDisk: 'false' VolumeType: 'All' } @@ -1832,20 +2079,20 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { enabled: true } lock: 'CanNotDelete' - monitoringWorkspaceId: '' - name: '<>vmwindef' - proximityPlacementGroupResourceId: '' + monitoringWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' + name: '<>-vm-win-01' + proximityPlacementGroupResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Compute/proximityPlacementGroups/adp-<>-az-ppg-vm-001' roleAssignments: [ { principalIds: [ - '' + '<>' ] roleDefinitionIdOrName: 'Reader' } ] systemAssignedIdentity: true userAssignedIdentities: { - '${resourceGroupResources.outputs.managedIdentityResourceId}': {} + '/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} } } } @@ -1883,12 +2130,12 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { { "applicationSecurityGroups": [ { - "id": "" + "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/applicationSecurityGroups/adp-<>-az-asg-x-001" } ], "loadBalancerBackendAddressPools": [ { - "id": "" + "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/loadBalancers/adp-<>-az-lb-internal-001/backendAddressPools/servers" } ], "name": "ipconfig01", @@ -1897,20 +2144,20 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "roleAssignments": [ { "principalIds": [ - "" + "<>" ], "roleDefinitionIdOrName": "Reader" } ] }, - "subnetResourceId": "" + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001" } ], "nicSuffix": "-nic-01", "roleAssignments": [ { "principalIds": [ - "" + "<>" ], "roleDefinitionIdOrName": "Reader" } @@ -1937,19 +2184,24 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { }, // Non-required parameters "adminPassword": { - "value": "" + "reference": { + "keyVault": { + "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" + }, + "secretName": "adminPassword" + } }, "availabilityZone": { "value": 2 }, "backupPolicyName": { - "value": "" + "value": "VMpolicy" }, "backupVaultName": { - "value": "" + "value": "adp-<>-az-rsv-x-001" }, "backupVaultResourceGroup": { - "value": "" + "value": "validation-rg" }, "dataDisks": { "value": [ @@ -1974,19 +2226,19 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { ] }, "diagnosticEventHubAuthorizationRuleId": { - "value": "" + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" }, "diagnosticEventHubName": { - "value": "" + "value": "adp-<>-az-evh-x-001" }, "diagnosticLogsRetentionInDays": { "value": 7 }, "diagnosticStorageAccountId": { - "value": "" + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" }, "diagnosticWorkspaceId": { - "value": "" + "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" }, "encryptionAtHost": { "value": false @@ -2016,15 +2268,15 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "enabled": true, "fileData": [ { - "storageAccountId": "", - "uri": "" + "storageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", + "uri": "https://adp<>azsax001.blob.core.windows.net/scripts/scriptExtensionMasterInstaller.ps1" } ] } }, "extensionCustomScriptProtectedSetting": { "value": { - "commandToExecute": "" + "commandToExecute": "powershell -ExecutionPolicy Unrestricted -Command \"& .\\scriptExtensionMasterInstaller.ps1\"" } }, "extensionDependencyAgentConfig": { @@ -2037,11 +2289,11 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "enabled": true, "settings": { "EncryptionOperation": "EnableEncryption", - "KekVaultResourceId": "", + "KekVaultResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", "KeyEncryptionAlgorithm": "RSA-OAEP", - "KeyEncryptionKeyURL": "", - "KeyVaultResourceId": "", - "KeyVaultURL": "", + "KeyEncryptionKeyURL": "https://adp-<>-az-kv-x-001.vault.azure.net/keys/keyEncryptionKey/bc3bb46d95c64367975d722f473eeae5", + "KeyVaultResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001", + "KeyVaultURL": "https://adp-<>-az-kv-x-001.vault.azure.net/", "ResizeOSDisk": "false", "VolumeType": "All" } @@ -2066,19 +2318,19 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { "value": "CanNotDelete" }, "monitoringWorkspaceId": { - "value": "" + "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" }, "name": { - "value": "<>vmwindef" + "value": "<>-vm-win-01" }, "proximityPlacementGroupResourceId": { - "value": "" + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Compute/proximityPlacementGroups/adp-<>-az-ppg-vm-001" }, "roleAssignments": { "value": [ { "principalIds": [ - "" + "<>" ], "roleDefinitionIdOrName": "Reader" } @@ -2089,230 +2341,8 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { }, "userAssignedIdentities": { "value": { - "${resourceGroupResources.outputs.managedIdentityResourceId}": {} - } - } - } -} -``` - -
-

- -

Example 5: Windows.Atmg

- -
- -via Bicep module - -```bicep -module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-vmwinautmg' - params: { - // Required parameters - adminUsername: 'localAdminUser' - imageReference: { - offer: 'WindowsServer' - publisher: 'MicrosoftWindowsServer' - sku: '2019-Datacenter' - version: 'latest' - } - nicConfigurations: [ - { - ipConfigurations: [ - { - name: 'ipconfig01' - subnetResourceId: '' - } - ] - nicSuffix: '-nic-01' - } - ] - osDisk: { - diskSizeGB: '128' - managedDisk: { - storageAccountType: 'Premium_LRS' - } - } - osType: 'Windows' - vmSize: 'Standard_B12ms' - // Non-required parameters - adminPassword: '' - configurationProfile: '/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction' - name: '<>vmwinautmg' - } -} -``` - -
-

- -

- -via JSON Parameter file - -```json -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - // Required parameters - "adminUsername": { - "value": "localAdminUser" - }, - "imageReference": { - "value": { - "offer": "WindowsServer", - "publisher": "MicrosoftWindowsServer", - "sku": "2019-Datacenter", - "version": "latest" - } - }, - "nicConfigurations": { - "value": [ - { - "ipConfigurations": [ - { - "name": "ipconfig01", - "subnetResourceId": "" - } - ], - "nicSuffix": "-nic-01" - } - ] - }, - "osDisk": { - "value": { - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } - } - }, - "osType": { - "value": "Windows" - }, - "vmSize": { - "value": "Standard_B12ms" - }, - // Non-required parameters - "adminPassword": { - "value": "" - }, - "configurationProfile": { - "value": "/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction" - }, - "name": { - "value": "<>vmwinautmg" - } - } -} -``` - -
-

- -

Example 6: Windows.Min

- -
- -via Bicep module - -```bicep -module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-vmwinmin' - params: { - // Required parameters - adminUsername: 'localAdminUser' - imageReference: { - offer: 'WindowsServer' - publisher: 'MicrosoftWindowsServer' - sku: '2022-datacenter-azure-edition' - version: 'latest' - } - nicConfigurations: [ - { - ipConfigurations: [ - { - name: 'ipconfig01' - subnetResourceId: '' - } - ] - nicSuffix: '-nic-01' - } - ] - osDisk: { - diskSizeGB: '128' - managedDisk: { - storageAccountType: 'Premium_LRS' - } - } - osType: 'Windows' - vmSize: 'Standard_B12ms' - // Non-required parameters - adminPassword: '' - name: '<>vmwinmin' - } -} -``` - -
-

- -

- -via JSON Parameter file - -```json -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - // Required parameters - "adminUsername": { - "value": "localAdminUser" - }, - "imageReference": { - "value": { - "offer": "WindowsServer", - "publisher": "MicrosoftWindowsServer", - "sku": "2022-datacenter-azure-edition", - "version": "latest" - } - }, - "nicConfigurations": { - "value": [ - { - "ipConfigurations": [ - { - "name": "ipconfig01", - "subnetResourceId": "" - } - ], - "nicSuffix": "-nic-01" - } - ] - }, - "osDisk": { - "value": { - "diskSizeGB": "128", - "managedDisk": { - "storageAccountType": "Premium_LRS" - } + "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} } - }, - "osType": { - "value": "Windows" - }, - "vmSize": { - "value": "Standard_B12ms" - }, - // Non-required parameters - "adminPassword": { - "value": "" - }, - "name": { - "value": "<>vmwinmin" } } } diff --git a/modules/Microsoft.KeyVault/vaults/.test/min.parameters.json b/modules/Microsoft.KeyVault/vaults/.test/min.parameters.json index 6aef9589c0..1b3f85781f 100644 --- a/modules/Microsoft.KeyVault/vaults/.test/min.parameters.json +++ b/modules/Microsoft.KeyVault/vaults/.test/min.parameters.json @@ -3,7 +3,7 @@ "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "<>-az-kv-min-002" + "value": "<>-az-kv-min-001" } } } diff --git a/modules/Microsoft.KeyVault/vaults/.test/parameters.json b/modules/Microsoft.KeyVault/vaults/.test/parameters.json index 6e61cadf54..464cb829e7 100644 --- a/modules/Microsoft.KeyVault/vaults/.test/parameters.json +++ b/modules/Microsoft.KeyVault/vaults/.test/parameters.json @@ -3,7 +3,7 @@ "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "<>-az-kv-x-002" + "value": "<>-az-kv-x-001" }, "lock": { "value": "CanNotDelete" diff --git a/modules/Microsoft.KeyVault/vaults/readme.md b/modules/Microsoft.KeyVault/vaults/readme.md index af18671abf..3a6853a9ca 100644 --- a/modules/Microsoft.KeyVault/vaults/readme.md +++ b/modules/Microsoft.KeyVault/vaults/readme.md @@ -402,7 +402,7 @@ The following module usage examples are retrieved from the content of the files module vaults './Microsoft.KeyVault/vaults/deploy.bicep' = { name: '${uniqueString(deployment().name)}-vaults' params: { - name: '<>-az-kv-min-002' + name: '<>-az-kv-min-001' } } ``` @@ -420,7 +420,7 @@ module vaults './Microsoft.KeyVault/vaults/deploy.bicep' = { "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "<>-az-kv-min-002" + "value": "<>-az-kv-min-001" } } } @@ -439,7 +439,7 @@ module vaults './Microsoft.KeyVault/vaults/deploy.bicep' = { module vaults './Microsoft.KeyVault/vaults/deploy.bicep' = { name: '${uniqueString(deployment().name)}-vaults' params: { - name: '<>-az-kv-x-002' + name: '<>-az-kv-x-001' accessPolicies: [ { objectId: '<>' @@ -558,7 +558,7 @@ module vaults './Microsoft.KeyVault/vaults/deploy.bicep' = { "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "<>-az-kv-x-002" + "value": "<>-az-kv-x-001" }, "accessPolicies": { "value": [ diff --git a/modules/Microsoft.Network/virtualHubs/.test/default/dependencies.bicep b/modules/Microsoft.Network/virtualHubs/.test/default/dependencies.bicep deleted file mode 100644 index 8fab63beca..0000000000 --- a/modules/Microsoft.Network/virtualHubs/.test/default/dependencies.bicep +++ /dev/null @@ -1,40 +0,0 @@ -@description('Required. The name of the Virtual WAN to create') -param virtualWANName string - -@description('Required. The name of the Virtual Network to create') -param virtualNetworkName string - -@description('Optional. The location to deploy to') -param location string = resourceGroup().location - -resource virtualWan 'Microsoft.Network/virtualWans@2021-05-01' = { - name: virtualWANName - location: location -} - -resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { - name: virtualNetworkName - location: location - properties: { - addressSpace: { - addressPrefixes: [ - '10.0.0.0/16' - ] - } - subnets: [ - { - name: 'sxx-subnet-01' - properties: { - - addressPrefix: '10.0.0.0/24' - } - } - ] - } -} - -@description('The resource ID of the created Virtual WAN') -output virtualWWANResourceId string = virtualWan.id - -@description('The resource ID of the created Virtual Network') -output virtualNetworkResourceId string = virtualNetwork.id diff --git a/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep b/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep deleted file mode 100644 index c4b13626ef..0000000000 --- a/modules/Microsoft.Network/virtualHubs/.test/default/deploy.test.bicep +++ /dev/null @@ -1,75 +0,0 @@ -targetScope = 'subscription' - -// ========== // -// Parameters // -// ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes') -@maxLength(90) -param resourceGroupName string = 'ms.network.virtualHub-${serviceShort}-test-rg' - -@description('Optional. The location to deploy resources to') -param location string = deployment().location - -@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'vhdef' - -// =========== // -// Deployments // -// =========== // - -// General resources -// ================= -resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { - name: resourceGroupName - location: location -} - -module resourceGroupResources 'dependencies.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-nestedDependencies' - params: { - virtualWANName: 'dep-<>-vw-${serviceShort}' - virtualNetworkName: 'dep-<>-vnet-${serviceShort}' - } -} - -// ============== // -// Test Execution // -// ============== // - -module testDeployment '../../deploy.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name)}-test-${serviceShort}' - params: { - name: '<>-${serviceShort}' - lock: 'CanNotDelete' - addressPrefix: '10.1.0.0/16' - virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId - hubRouteTables: [ - { - name: 'routeTable1' - } - ] - hubVirtualNetworkConnections: [ - { - name: 'connection1' - remoteVirtualNetworkId: resourceGroupResources.outputs.virtualNetworkResourceId - routingConfiguration: { - associatedRouteTable: { - id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-${serviceShort}/hubRouteTables/routeTable1' - } - propagatedRouteTables: { - ids: [ - { - id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-${serviceShort}/hubRouteTables/routeTable1' - } - ] - labels: [ - 'none' - ] - } - } - } - ] - } -} diff --git a/modules/Microsoft.Network/virtualHubs/.test/min.parameters.json b/modules/Microsoft.Network/virtualHubs/.test/min.parameters.json new file mode 100644 index 0000000000..dbe2fa650a --- /dev/null +++ b/modules/Microsoft.Network/virtualHubs/.test/min.parameters.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-az-vhub-min-001" + }, + "addressPrefix": { + "value": "10.0.0.0/16" + }, + "virtualWanId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/adp-<>-az-vw-x-001" + } + } +} diff --git a/modules/Microsoft.Network/virtualHubs/.test/min/dependencies.bicep b/modules/Microsoft.Network/virtualHubs/.test/min/dependencies.bicep deleted file mode 100644 index 32823c80bd..0000000000 --- a/modules/Microsoft.Network/virtualHubs/.test/min/dependencies.bicep +++ /dev/null @@ -1,13 +0,0 @@ -@description('Required. The name of the virtual WAN to create') -param virtualWANName string - -@description('Optional. The location to deploy to') -param location string = resourceGroup().location - -resource virtualWan 'Microsoft.Network/virtualWans@2021-05-01' = { - name: virtualWANName - location: location -} - -@description('The resource ID of the created Virtual WAN') -output virtualWWANResourceId string = virtualWan.id diff --git a/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep b/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep deleted file mode 100644 index b848baa666..0000000000 --- a/modules/Microsoft.Network/virtualHubs/.test/min/deploy.test.bicep +++ /dev/null @@ -1,47 +0,0 @@ -targetScope = 'subscription' - -// ========== // -// Parameters // -// ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes') -@maxLength(90) -param resourceGroupName string = 'ms.network.virtualHub-${serviceShort}-test-rg' - -@description('Optional. The location to deploy resources to') -param location string = deployment().location - -@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'vhmin' - -// =========== // -// Deployments // -// =========== // - -// General resources -// ================= -resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { - name: resourceGroupName - location: location -} - -module resourceGroupResources 'dependencies.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-nestedDependencies' - params: { - virtualWANName: 'dep-<>-vw-${serviceShort}' - } -} - -// ============== // -// Test Execution // -// ============== // - -module testDeployment '../../deploy.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name)}-test-${serviceShort}' - params: { - name: '<>-${serviceShort}' - addressPrefix: '10.0.0.0/16' - virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId - } -} diff --git a/modules/Microsoft.Network/virtualHubs/.test/parameters.json b/modules/Microsoft.Network/virtualHubs/.test/parameters.json new file mode 100644 index 0000000000..2660f1be93 --- /dev/null +++ b/modules/Microsoft.Network/virtualHubs/.test/parameters.json @@ -0,0 +1,48 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-az-vhub-x-001" + }, + "lock": { + "value": "CanNotDelete" + }, + "addressPrefix": { + "value": "10.1.0.0/16" + }, + "virtualWanId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/adp-<>-az-vw-x-001" + }, + "hubRouteTables": { + "value": [ + { + "name": "routeTable1" + } + ] + }, + "hubVirtualNetworkConnections": { + "value": [ + { + "name": "connection1", + "remoteVirtualNetworkId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-vhub", + "routingConfiguration": { + "associatedRouteTable": { + "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vHub-x-001/hubRouteTables/routeTable1" + }, + "propagatedRouteTables": { + "ids": [ + { + "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vHub-x-001/hubRouteTables/routeTable1" + } + ], + "labels": [ + "none" + ] + } + } + } + ] + } + } +} diff --git a/modules/Microsoft.Network/virtualHubs/readme.md b/modules/Microsoft.Network/virtualHubs/readme.md index 0fddbbd283..5bf6c803ae 100644 --- a/modules/Microsoft.Network/virtualHubs/readme.md +++ b/modules/Microsoft.Network/virtualHubs/readme.md @@ -112,20 +112,67 @@ The following module usage examples are retrieved from the content of the files >**Note**: The name of each example is based on the name of the file from which it is taken. >**Note**: Each example lists all the required parameters first, followed by the rest - each in alphabetical order. -

Example 1: Default

+

Example 1: Min

via Bicep module ```bicep -module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-vhdef' +module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-virtualHubs' + params: { + // Required parameters + addressPrefix: '10.0.0.0/16' + name: '<>-az-vhub-min-001' + virtualWanId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/adp-<>-az-vw-x-001' + } +} +``` + +
+

+ +

+ +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + // Required parameters + "addressPrefix": { + "value": "10.0.0.0/16" + }, + "name": { + "value": "<>-az-vhub-min-001" + }, + "virtualWanId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/adp-<>-az-vw-x-001" + } + } +} +``` + +
+

+ +

Example 2: Parameters

+ +
+ +via Bicep module + +```bicep +module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-virtualHubs' params: { // Required parameters addressPrefix: '10.1.0.0/16' - name: '<>-vhdef' - virtualWanId: '' + name: '<>-az-vhub-x-001' + virtualWanId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/adp-<>-az-vw-x-001' // Non-required parameters hubRouteTables: [ { @@ -135,15 +182,15 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { hubVirtualNetworkConnections: [ { name: 'connection1' - remoteVirtualNetworkId: '' + remoteVirtualNetworkId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-vhub' routingConfiguration: { associatedRouteTable: { - id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-vhpar/hubRouteTables/routeTable1' + id: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vHub-x-001/hubRouteTables/routeTable1' } propagatedRouteTables: { ids: [ { - id: '${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-vhpar/hubRouteTables/routeTable1' + id: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vHub-x-001/hubRouteTables/routeTable1' } ] labels: [ @@ -175,10 +222,10 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { "value": "10.1.0.0/16" }, "name": { - "value": "<>-vhpar" + "value": "<>-az-vhub-x-001" }, "virtualWanId": { - "value": "" + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/adp-<>-az-vw-x-001" }, // Non-required parameters "hubRouteTables": { @@ -192,15 +239,15 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { "value": [ { "name": "connection1", - "remoteVirtualNetworkId": "", + "remoteVirtualNetworkId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-vhub", "routingConfiguration": { "associatedRouteTable": { - "id": "${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-vhpar/hubRouteTables/routeTable1" + "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vHub-x-001/hubRouteTables/routeTable1" }, "propagatedRouteTables": { "ids": [ { - "id": "${resourceGroup.id}/providers/Microsoft.Network/virtualHubs/<>-vhpar/hubRouteTables/routeTable1" + "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vHub-x-001/hubRouteTables/routeTable1" } ], "labels": [ @@ -220,50 +267,3 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = {

- -

Example 2: Min

- -
- -via Bicep module - -```bicep -module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-vhmin' - params: { - // Required parameters - addressPrefix: '10.0.0.0/16' - name: '<>-vhmin' - virtualWanId: '' - } -} -``` - -
-

- -

- -via JSON Parameter file - -```json -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - // Required parameters - "addressPrefix": { - "value": "10.0.0.0/16" - }, - "name": { - "value": "<>-vhmin" - }, - "virtualWanId": { - "value": "" - } - } -} -``` - -
-

diff --git a/modules/Microsoft.Network/vpnSites/.test/default/dependencies.bicep b/modules/Microsoft.Network/vpnSites/.test/default/dependencies.bicep deleted file mode 100644 index 8fe419a3b7..0000000000 --- a/modules/Microsoft.Network/vpnSites/.test/default/dependencies.bicep +++ /dev/null @@ -1,24 +0,0 @@ -@description('Required. The name of the managed identity to create') -param managedIdentityName string - -@description('Required. The name of the virtual WAN to create') -param virtualWANName string - -@description('Optional. The location to deploy to') -param location string = resourceGroup().location - -resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { - name: managedIdentityName - location: location -} - -resource virtualWan 'Microsoft.Network/virtualWans@2021-05-01' = { - name: virtualWANName - location: location -} - -@description('The principal ID of the created managed identity') -output managedIdentityPrincipalId string = managedIdentity.properties.principalId - -@description('The resource ID of the created Virtual WAN') -output virtualWWANResourceId string = virtualWan.id diff --git a/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep b/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep deleted file mode 100644 index 316d629104..0000000000 --- a/modules/Microsoft.Network/vpnSites/.test/default/deploy.test.bicep +++ /dev/null @@ -1,100 +0,0 @@ -targetScope = 'subscription' - -// ========== // -// Parameters // -// ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes') -@maxLength(90) -param resourceGroupName string = 'ms.network.vpnSites-${serviceShort}-test-rg' - -@description('Optional. The location to deploy resources to') -param location string = deployment().location - -@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'vsidef' - -// =========== // -// Deployments // -// =========== // - -// General resources -// ================= -resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { - name: resourceGroupName - location: location -} - -module resourceGroupResources 'dependencies.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-nestedDependencies' - params: { - managedIdentityName: 'dep-<>-msi-${serviceShort}' - virtualWANName: 'dep-<>-vw-${serviceShort}' - } -} - -// ============== // -// Test Execution // -// ============== // - -module testDeployment '../../deploy.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name)}-test-${serviceShort}' - params: { - name: '<>-${serviceShort}' - virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId - lock: 'CanNotDelete' - tags: { - tagA: 'valueA' - tagB: 'valueB' - } - deviceProperties: { - linkSpeedInMbps: 0 - } - vpnSiteLinks: [ - { - name: '<>-vSite-${serviceShort}' - properties: { - bgpProperties: { - asn: 65010 - bgpPeeringAddress: '1.1.1.1' - } - ipAddress: '1.2.3.4' - linkProperties: { - linkProviderName: 'contoso' - linkSpeedInMbps: 5 - } - } - } - { - name: 'Link1' - properties: { - bgpProperties: { - asn: 65020 - bgpPeeringAddress: '192.168.1.0' - } - ipAddress: '2.2.2.2' - linkProperties: { - linkProviderName: 'contoso' - linkSpeedInMbps: 5 - } - } - } - ] - o365Policy: { - breakOutCategories: { - optimize: true - allow: true - default: true - } - } - roleAssignments: [ - { - roleDefinitionIdOrName: 'Reader' - principalIds: [ - resourceGroupResources.outputs.managedIdentityPrincipalId - ] - } - ] - } -} diff --git a/modules/Microsoft.Network/vpnSites/.test/min.parameters.json b/modules/Microsoft.Network/vpnSites/.test/min.parameters.json new file mode 100644 index 0000000000..24791e0339 --- /dev/null +++ b/modules/Microsoft.Network/vpnSites/.test/min.parameters.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-az-vSite-min-001" + }, + "addressPrefixes": { + "value": [ + "10.0.0.0/16" + ] + }, + "ipAddress": { + "value": "1.2.3.4" + }, + "virtualWanId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/apd-<>-az-vw-x-001" + } + } +} diff --git a/modules/Microsoft.Network/vpnSites/.test/min/dependencies.bicep b/modules/Microsoft.Network/vpnSites/.test/min/dependencies.bicep deleted file mode 100644 index 32823c80bd..0000000000 --- a/modules/Microsoft.Network/vpnSites/.test/min/dependencies.bicep +++ /dev/null @@ -1,13 +0,0 @@ -@description('Required. The name of the virtual WAN to create') -param virtualWANName string - -@description('Optional. The location to deploy to') -param location string = resourceGroup().location - -resource virtualWan 'Microsoft.Network/virtualWans@2021-05-01' = { - name: virtualWANName - location: location -} - -@description('The resource ID of the created Virtual WAN') -output virtualWWANResourceId string = virtualWan.id diff --git a/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep b/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep deleted file mode 100644 index e5db725949..0000000000 --- a/modules/Microsoft.Network/vpnSites/.test/min/deploy.test.bicep +++ /dev/null @@ -1,50 +0,0 @@ -targetScope = 'subscription' - -// ========== // -// Parameters // -// ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes') -@maxLength(90) -param resourceGroupName string = 'ms.network.vpnSites-${serviceShort}-test-rg' - -@description('Optional. The location to deploy resources to') -param location string = deployment().location - -@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'vsimin' - -// =========== // -// Deployments // -// =========== // - -// General resources -// ================= -resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { - name: resourceGroupName - location: location -} - -module resourceGroupResources 'dependencies.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-nestedDependencies' - params: { - virtualWANName: 'dep-<>-vw-${serviceShort}' - } -} - -// ============== // -// Test Execution // -// ============== // - -module testDeployment '../../deploy.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name)}-test-${serviceShort}' - params: { - name: '<>-${serviceShort}' - virtualWanId: resourceGroupResources.outputs.virtualWWANResourceId - addressPrefixes: [ - '10.0.0.0/16' - ] - ipAddress: '1.2.3.4' - } -} diff --git a/modules/Microsoft.Network/vpnSites/.test/parameters.json b/modules/Microsoft.Network/vpnSites/.test/parameters.json new file mode 100644 index 0000000000..94c534c5e4 --- /dev/null +++ b/modules/Microsoft.Network/vpnSites/.test/parameters.json @@ -0,0 +1,77 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-az-vSite-x-001" + }, + "lock": { + "value": "CanNotDelete" + }, + "tags": { + "value": { + "tagA": "valueA", + "tagB": "valueB" + } + }, + "deviceProperties": { + "value": { + "linkSpeedInMbps": 0 + } + }, + "virtualWanId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/apd-<>-az-vw-x-001" + }, + "vpnSiteLinks": { + "value": [ + { + "name": "<>-az-vSite-x-001", + "properties": { + "bgpProperties": { + "asn": 65010, + "bgpPeeringAddress": "1.1.1.1" + }, + "ipAddress": "1.2.3.4", + "linkProperties": { + "linkProviderName": "contoso", + "linkSpeedInMbps": 5 + } + } + }, + { + "name": "Link1", + "properties": { + "bgpProperties": { + "asn": 65020, + "bgpPeeringAddress": "192.168.1.0" + }, + "ipAddress": "2.2.2.2", + "linkProperties": { + "linkProviderName": "contoso", + "linkSpeedInMbps": 5 + } + } + } + ] + }, + "o365Policy": { + "value": { + "breakOutCategories": { + "optimize": true, + "allow": true, + "default": true + } + } + }, + "roleAssignments": { + "value": [ + { + "roleDefinitionIdOrName": "Reader", + "principalIds": [ + "<>" + ] + } + ] + } + } +} diff --git a/modules/Microsoft.Network/vpnSites/deploy.bicep b/modules/Microsoft.Network/vpnSites/deploy.bicep index 356cdedb15..980ad072d4 100644 --- a/modules/Microsoft.Network/vpnSites/deploy.bicep +++ b/modules/Microsoft.Network/vpnSites/deploy.bicep @@ -10,10 +10,10 @@ param location string = resourceGroup().location @description('Optional. Tags of the resource.') param tags object = {} -@description('Conditional. An array of IP address ranges that can be used by subnets of the virtual network. Required if no bgpProperties or VPNSiteLinks are configured.') +@description('Optional. An array of IP address ranges that can be used by subnets of the virtual network. Must be provided if no bgpProperties or VPNSiteLinks are configured.') param addressPrefixes array = [] -@description('Conditional. BGP settings details. Note: This is a deprecated property, please use the corresponding VpnSiteLinks property instead. Required if no addressPrefixes or VPNSiteLinks are configured.') +@description('Optional. BGP settings details. Must be provided if no addressPrefixes or VPNSiteLinks are configured. Note: This is a deprecated property, please use the corresponding VpnSiteLinks property instead.') param bgpProperties object = {} @description('Optional. List of properties of the device.') diff --git a/modules/Microsoft.Network/vpnSites/readme.md b/modules/Microsoft.Network/vpnSites/readme.md index 4e3ed32f6e..4adbe8a0be 100644 --- a/modules/Microsoft.Network/vpnSites/readme.md +++ b/modules/Microsoft.Network/vpnSites/readme.md @@ -26,15 +26,11 @@ This module deploys a VPN Site. | `name` | string | Name of the VPN Site. | | `virtualWanId` | string | Resource ID of the virtual WAN to link to. | -**Conditional parameters** -| Parameter Name | Type | Description | -| :-- | :-- | :-- | -| `addressPrefixes` | array | An array of IP address ranges that can be used by subnets of the virtual network. Required if no bgpProperties or VPNSiteLinks are configured. | -| `bgpProperties` | object | BGP settings details. Note: This is a deprecated property, please use the corresponding VpnSiteLinks property instead. Required if no addressPrefixes or VPNSiteLinks are configured. | - **Optional parameters** | Parameter Name | Type | Default Value | Allowed Values | Description | | :-- | :-- | :-- | :-- | :-- | +| `addressPrefixes` | array | `[]` | | An array of IP address ranges that can be used by subnets of the virtual network. Must be provided if no bgpProperties or VPNSiteLinks are configured. | +| `bgpProperties` | object | `{object}` | | BGP settings details. Must be provided if no addressPrefixes or VPNSiteLinks are configured. Note: This is a deprecated property, please use the corresponding VpnSiteLinks property instead. | | `deviceProperties` | object | `{object}` | | List of properties of the device. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `ipAddress` | string | `''` | | The IP-address for the VPN-site. Note: This is a deprecated property, please use the corresponding VpnSiteLinks property instead. | @@ -331,19 +327,76 @@ The following module usage examples are retrieved from the content of the files >**Note**: The name of each example is based on the name of the file from which it is taken. >**Note**: Each example lists all the required parameters first, followed by the rest - each in alphabetical order. -

Example 1: Default

+

Example 1: Min

+ +
+ +via Bicep module + +```bicep +module vpnSites './Microsoft.Network/vpnSites/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-vpnSites' + params: { + // Required parameters + name: '<>-az-vSite-min-001' + virtualWanId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/apd-<>-az-vw-x-001' + // Non-required parameters + addressPrefixes: [ + '10.0.0.0/16' + ] + ipAddress: '1.2.3.4' + } +} +``` + +
+

+ +

+ +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + // Required parameters + "name": { + "value": "<>-az-vSite-min-001" + }, + "virtualWanId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/apd-<>-az-vw-x-001" + }, + // Non-required parameters + "addressPrefixes": { + "value": [ + "10.0.0.0/16" + ] + }, + "ipAddress": { + "value": "1.2.3.4" + } + } +} +``` + +
+

+ +

Example 2: Parameters

via Bicep module ```bicep -module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-vsidef' +module vpnSites './Microsoft.Network/vpnSites/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-vpnSites' params: { // Required parameters - name: '<>-vsidef' - virtualWanId: '' + name: '<>-az-vSite-x-001' + virtualWanId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/apd-<>-az-vw-x-001' // Non-required parameters deviceProperties: { linkSpeedInMbps: 0 @@ -359,7 +412,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { roleAssignments: [ { principalIds: [ - '' + '<>' ] roleDefinitionIdOrName: 'Reader' } @@ -370,7 +423,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { } vpnSiteLinks: [ { - name: '<>-vSite-vsidef' + name: '<>-az-vSite-x-001' properties: { bgpProperties: { asn: 65010 @@ -416,10 +469,10 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "<>-vsidef" + "value": "<>-az-vSite-x-001" }, "virtualWanId": { - "value": "" + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/apd-<>-az-vw-x-001" }, // Non-required parameters "deviceProperties": { @@ -443,7 +496,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { "value": [ { "principalIds": [ - "" + "<>" ], "roleDefinitionIdOrName": "Reader" } @@ -458,7 +511,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { "vpnSiteLinks": { "value": [ { - "name": "<>-vSite-vsidef", + "name": "<>-az-vSite-x-001", "properties": { "bgpProperties": { "asn": 65010, @@ -493,60 +546,3 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = {

- -

Example 2: Min

- -
- -via Bicep module - -```bicep -module vpnSites './Microsoft.Network/vpnSites/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-vsimin' - params: { - // Required parameters - name: '<>-vsimin' - virtualWanId: '' - // Non-required parameters - addressPrefixes: [ - '10.0.0.0/16' - ] - ipAddress: '1.2.3.4' - } -} -``` - -
-

- -

- -via JSON Parameter file - -```json -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - // Required parameters - "name": { - "value": "<>-vsimin" - }, - "virtualWanId": { - "value": "" - }, - // Non-required parameters - "addressPrefixes": { - "value": [ - "10.0.0.0/16" - ] - }, - "ipAddress": { - "value": "1.2.3.4" - } - } -} -``` - -
-

diff --git a/modules/Microsoft.Sql/servers/.test/admin.parameters.json b/modules/Microsoft.Sql/servers/.test/admin.parameters.json new file mode 100644 index 0000000000..eadb38deec --- /dev/null +++ b/modules/Microsoft.Sql/servers/.test/admin.parameters.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-az-sqlsrv-admin-001" + }, + "administrators": { + "value": { + "azureADOnlyAuthentication": true, + "login": "myspn", + "sid": "<>", + "principalType": "Application", + "tenantId": "<>" + } + } + } +} diff --git a/modules/Microsoft.Sql/servers/.test/admin/dependencies.bicep b/modules/Microsoft.Sql/servers/.test/admin/dependencies.bicep deleted file mode 100644 index b3a1b11a15..0000000000 --- a/modules/Microsoft.Sql/servers/.test/admin/dependencies.bicep +++ /dev/null @@ -1,13 +0,0 @@ -@description('Required. The name of the managed identity to create') -param managedIdentityName string - -@description('Optional. The location to deploy to') -param location string = resourceGroup().location - -resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { - name: managedIdentityName - location: location -} - -@description('The principal ID of the created managed identity') -output managedIdentityPrincipalId string = managedIdentity.properties.principalId diff --git a/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep b/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep deleted file mode 100644 index c5422612f0..0000000000 --- a/modules/Microsoft.Sql/servers/.test/admin/deploy.test.bicep +++ /dev/null @@ -1,52 +0,0 @@ -targetScope = 'subscription' - -// ========== // -// Parameters // -// ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes') -@maxLength(90) -param resourceGroupName string = 'ms.sql.servers-${serviceShort}-test-rg' - -@description('Optional. The location to deploy resources to') -param location string = deployment().location - -@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'sqladmin' - -// =========== // -// Deployments // -// =========== // - -// General resources -// ================= -resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { - name: resourceGroupName - location: location -} - -module resourceGroupResources 'dependencies.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-nestedDependencies' - params: { - managedIdentityName: 'dep-<>-msi-${serviceShort}' - } -} - -// ============== // -// Test Execution // -// ============== // - -module testDeployment '../../deploy.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name)}-test-${serviceShort}' - params: { - name: '<>-${serviceShort}' - administrators: { - azureADOnlyAuthentication: true - login: 'myspn' - sid: resourceGroupResources.outputs.managedIdentityPrincipalId - principalType: 'Application' - tenantId: tenant().tenantId - } - } -} diff --git a/modules/Microsoft.Sql/servers/.test/default/dependencies.bicep b/modules/Microsoft.Sql/servers/.test/default/dependencies.bicep deleted file mode 100644 index f90f984573..0000000000 --- a/modules/Microsoft.Sql/servers/.test/default/dependencies.bicep +++ /dev/null @@ -1,111 +0,0 @@ -@description('Required. The name of the Managed Identity to create.') -param managedIdentityName string - -@description('Required. The name of the Virtual Network to create.') -param virtualNetworkName string - -@description('Required. The name of the Key Vault to create.') -param keyVaultName string - -@description('Required. The name of the Deployment Script used to create secrets in the deployed Key Vault.') -param deploymentScriptName string - -@description('Required. The name of the secret to create in the Key Vault.') -param passwordSecretName string - -@description('Optional. The location to deploy to') -param location string = resourceGroup().location - -resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { - name: managedIdentityName - location: location -} - -resource vnet 'Microsoft.Network/virtualNetworks@2022-01-01' = { - name: virtualNetworkName - location: location - properties: { - addressSpace: { - addressPrefixes: [ - '10.0.0.0/16' - ] - } - subnets: [ - { - name: 'sxx-subnet-pe-01' - properties: { - - addressPrefix: '10.0.0.0/24' - } - } - ] - } -} - -resource keyVault 'Microsoft.KeyVault/vaults@2021-10-01' = { - name: keyVaultName - location: location - properties: { - sku: { - family: 'A' - name: 'standard' - } - tenantId: tenant().tenantId - enableRbacAuthorization: true - enabledForTemplateDeployment: true - } -} - -resource kvRoleAssignment 'Microsoft.Authorization/roleAssignments@2020-10-01-preview' = { - name: guid(keyVault.id, 'msi', 'Key Vault Secrets Officer') - properties: { - description: 'Secrets access for MSI' - roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b86a8fe4-44ce-4948-aee5-eccb2c155cd7') - principalId: managedIdentity.properties.principalId - principalType: 'ServicePrincipal' - } - scope: keyVault -} - -resource keyVaultdeploymentScript 'Microsoft.Resources/deploymentScripts@2020-10-01' = { - name: deploymentScriptName - location: location - kind: 'AzurePowerShell' - identity: { - type: 'UserAssigned' - userAssignedIdentities: { - '${managedIdentity.id}': {} - } - } - properties: { - azPowerShellVersion: '3.0' - retentionInterval: 'P1D' - arguments: ' -KeyVaultName "${keyVault.name}" -PasswordSecretName "${passwordSecretName}"' - cleanupPreference: 'OnSuccess' - scriptContent: ''' - param( - [string] $KeyVaultName, - [string] $PasswordSecretName - ) - $passwordString = (New-Guid).Guid.SubString(0,19) - $password = ConvertTo-SecureString -String $passwordString -AsPlainText -Force - - Set-AzKeyVaultSecret -VaultName $keyVaultName -Name $PasswordSecretName -SecretValue $password - ''' - } - dependsOn: [ - kvRoleAssignment - ] -} - -@description('The principal ID of the created managed identity') -output managedIdentityPrincipalId string = managedIdentity.properties.principalId - -@description('The resource ID of the created managed identity') -output managedIdentitResourceId string = managedIdentity.id - -@description('The resource ID of the created virtual network subnet') -output privateEndpointSubnetResourceId string = vnet.properties.subnets[0].id - -@description('The name of the password secret.') -output secretName string = passwordSecretName diff --git a/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep b/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep deleted file mode 100644 index f444ebc739..0000000000 --- a/modules/Microsoft.Sql/servers/.test/default/deploy.test.bicep +++ /dev/null @@ -1,133 +0,0 @@ -targetScope = 'subscription' - -// ========== // -// Parameters // -// ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes') -@maxLength(90) -param resourceGroupName string = 'ms.sql.servers-${serviceShort}-test-rg' - -@description('Optional. The location to deploy resources to') -param location string = deployment().location - -@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'sqldef' - -// =========== // -// Deployments // -// =========== // - -// General resources -// ================= -resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { - name: resourceGroupName - location: location -} - -module resourceGroupResources 'dependencies.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-nestedDependencies' - params: { - managedIdentityName: 'dep-<>-msi-${serviceShort}' - virtualNetworkName: 'adp-<>-vnet-${serviceShort}' - deploymentScriptName: 'adp-<>-ds-kv-${serviceShort}' - keyVaultName: 'adp-<>-kv-${serviceShort}' - passwordSecretName: 'adminPassword' - location: location - } -} - -resource keyVaultReference 'Microsoft.KeyVault/vaults@2021-10-01' existing = { - name: 'adp-<>-kv-${serviceShort}' - scope: resourceGroup -} - -// Diagnostics -// =========== -module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-diagnosticDependencies' - params: { - storageAccountName: 'dep<>azsa${serviceShort}01' - logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}' - eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}' - eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}' - location: location - } -} - -// ============== // -// Test Execution // -// ============== // - -module testDeployment '../../deploy.bicep' = { - scope: resourceGroup - name: '${uniqueString(deployment().name)}-test-${serviceShort}' - params: { - name: '<>-${serviceShort}' - lock: 'CanNotDelete' - administratorLogin: 'adminUserName' - administratorLoginPassword: keyVaultReference.getSecret(resourceGroupResources.outputs.secretName) - location: location - minimalTlsVersion: '1.2' - roleAssignments: [ - { - roleDefinitionIdOrName: 'Reader' - principalIds: [ - resourceGroupResources.outputs.managedIdentityPrincipalId - ] - } - ] - vulnerabilityAssessmentsObj: { - name: 'default' - emailSubscriptionAdmins: true - recurringScansIsEnabled: true - recurringScansEmails: [ - 'test1@contoso.com' - 'test2@contoso.com' - ] - vulnerabilityAssessmentsStorageAccountId: diagnosticDependencies.outputs.storageAccountResourceId - } - databases: [ - { - name: '<>-${serviceShort}db-001' - collation: 'SQL_Latin1_General_CP1_CI_AS' - skuTier: 'BusinessCritical' - skuName: 'BC_Gen5' - skuCapacity: 12 - skuFamily: 'Gen5' - maxSizeBytes: 34359738368 - licenseType: 'LicenseIncluded' - diagnosticLogsRetentionInDays: 7 - diagnosticStorageAccountId: diagnosticDependencies.outputs.storageAccountResourceId - diagnosticWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId - diagnosticEventHubAuthorizationRuleId: diagnosticDependencies.outputs.eventHubAuthorizationRuleId - diagnosticEventHubName: diagnosticDependencies.outputs.eventHubNamespaceEventHubName - } - ] - firewallRules: [ - { - name: 'AllowAllWindowsAzureIps' - endIpAddress: '0.0.0.0' - startIpAddress: '0.0.0.0' - } - ] - securityAlertPolicies: [ - { - name: 'Default' - state: 'Enabled' - emailAccountAdmins: true - } - ] - systemAssignedIdentity: true - userAssignedIdentities: { - '${resourceGroupResources.outputs.managedIdentitResourceId}': {} - } - privateEndpoints: [ - { - subnetResourceId: resourceGroupResources.outputs.privateEndpointSubnetResourceId - service: 'sqlServer' - } - ] - } -} diff --git a/modules/Microsoft.Sql/servers/.test/parameters.json b/modules/Microsoft.Sql/servers/.test/parameters.json new file mode 100644 index 0000000000..77c3d9b4f1 --- /dev/null +++ b/modules/Microsoft.Sql/servers/.test/parameters.json @@ -0,0 +1,104 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-az-sqlsrv-x-001" + }, + "lock": { + "value": "CanNotDelete" + }, + "administratorLogin": { + "value": "adminUserName" + }, + "administratorLoginPassword": { + "reference": { + "keyVault": { + "id": "/subscriptions/<>/resourceGroups/<>/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" + }, + "secretName": "administratorLoginPassword" + } + }, + "location": { + "value": "westeurope" + }, + "minimalTlsVersion": { + "value": "1.2" + }, + "roleAssignments": { + "value": [ + { + "roleDefinitionIdOrName": "Reader", + "principalIds": [ + "<>" + ] + } + ] + }, + "vulnerabilityAssessmentsObj": { + "value": { + "name": "default", + "emailSubscriptionAdmins": true, + "recurringScansIsEnabled": true, + "recurringScansEmails": [ + "test1@contoso.com", + "test2@contoso.com" + ], + "vulnerabilityAssessmentsStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" + } + }, + "databases": { + "value": [ + { + "name": "<>-az-sqldb-x-001", + "collation": "SQL_Latin1_General_CP1_CI_AS", + "skuTier": "BusinessCritical", + "skuName": "BC_Gen5", + "skuCapacity": 12, + "skuFamily": "Gen5", + "maxSizeBytes": 34359738368, + "licenseType": "LicenseIncluded", + "diagnosticLogsRetentionInDays": 7, + "diagnosticStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", + "diagnosticWorkspaceId": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001", + "diagnosticEventHubAuthorizationRuleId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", + "diagnosticEventHubName": "adp-<>-az-evh-x-001" + } + ] + }, + "firewallRules": { + "value": [ + { + "name": "AllowAllWindowsAzureIps", + "endIpAddress": "0.0.0.0", + "startIpAddress": "0.0.0.0" + } + ] + }, + "securityAlertPolicies": { + "value": [ + { + "name": "Default", + "state": "Enabled", + "emailAccountAdmins": true + } + ] + }, + "systemAssignedIdentity": { + "value": true + }, + "userAssignedIdentities": { + "value": { + "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} + } + }, + "privateEndpoints": { + "value": [ + { + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", + "service": "sqlServer" + } + ] + } + } +} diff --git a/modules/Microsoft.Sql/servers/databases/deploy.bicep b/modules/Microsoft.Sql/servers/databases/deploy.bicep index ea106dd350..917978fd6c 100644 --- a/modules/Microsoft.Sql/servers/databases/deploy.bicep +++ b/modules/Microsoft.Sql/servers/databases/deploy.bicep @@ -178,11 +178,11 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } } -resource server 'Microsoft.Sql/servers@2022-02-01-preview' existing = { +resource server 'Microsoft.Sql/servers@2021-05-01-preview' existing = { name: serverName } -resource database 'Microsoft.Sql/servers/databases@2022-02-01-preview' = { +resource database 'Microsoft.Sql/servers/databases@2021-02-01-preview' = { name: name parent: server location: location diff --git a/modules/Microsoft.Sql/servers/databases/readme.md b/modules/Microsoft.Sql/servers/databases/readme.md index a5de6b7b7b..c67ee77e6a 100644 --- a/modules/Microsoft.Sql/servers/databases/readme.md +++ b/modules/Microsoft.Sql/servers/databases/readme.md @@ -14,7 +14,7 @@ This module deploys an Azure SQL Server. | Resource Type | API Version | | :-- | :-- | | `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | -| `Microsoft.Sql/servers/databases` | [2022-02-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2022-02-01-preview/servers/databases) | +| `Microsoft.Sql/servers/databases` | [2021-02-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-02-01-preview/servers/databases) | ## Parameters diff --git a/modules/Microsoft.Sql/servers/deploy.bicep b/modules/Microsoft.Sql/servers/deploy.bicep index 5ac081f141..cc0a4b8a4e 100644 --- a/modules/Microsoft.Sql/servers/deploy.bicep +++ b/modules/Microsoft.Sql/servers/deploy.bicep @@ -81,7 +81,7 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } } -resource server 'Microsoft.Sql/servers@2022-02-01-preview' = { +resource server 'Microsoft.Sql/servers@2021-05-01-preview' = { location: location name: name tags: tags diff --git a/modules/Microsoft.Sql/servers/firewallRules/deploy.bicep b/modules/Microsoft.Sql/servers/firewallRules/deploy.bicep index 89ae71203a..2ca51b8545 100644 --- a/modules/Microsoft.Sql/servers/firewallRules/deploy.bicep +++ b/modules/Microsoft.Sql/servers/firewallRules/deploy.bicep @@ -25,11 +25,11 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } } -resource server 'Microsoft.Sql/servers@2022-02-01-preview' existing = { +resource server 'Microsoft.Sql/servers@2021-05-01-preview' existing = { name: serverName } -resource firewallRule 'Microsoft.Sql/servers/firewallRules@2022-02-01-preview' = { +resource firewallRule 'Microsoft.Sql/servers/firewallRules@2021-05-01-preview' = { name: name parent: server properties: { diff --git a/modules/Microsoft.Sql/servers/firewallRules/readme.md b/modules/Microsoft.Sql/servers/firewallRules/readme.md index d5564bac88..d6cbe3fac1 100644 --- a/modules/Microsoft.Sql/servers/firewallRules/readme.md +++ b/modules/Microsoft.Sql/servers/firewallRules/readme.md @@ -13,7 +13,7 @@ This module deploys an SQL Server Firewall rule. | Resource Type | API Version | | :-- | :-- | -| `Microsoft.Sql/servers/firewallRules` | [2022-02-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2022-02-01-preview/servers/firewallRules) | +| `Microsoft.Sql/servers/firewallRules` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-05-01-preview/servers/firewallRules) | ## Parameters diff --git a/modules/Microsoft.Sql/servers/readme.md b/modules/Microsoft.Sql/servers/readme.md index c7e00f7970..fe785d192f 100644 --- a/modules/Microsoft.Sql/servers/readme.md +++ b/modules/Microsoft.Sql/servers/readme.md @@ -19,11 +19,11 @@ This module deploys a SQL server. | `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | | `Microsoft.Network/privateEndpoints` | [2021-08-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-08-01/privateEndpoints) | | `Microsoft.Network/privateEndpoints/privateDnsZoneGroups` | [2021-08-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-08-01/privateEndpoints/privateDnsZoneGroups) | -| `Microsoft.Sql/servers` | [2022-02-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2022-02-01-preview/servers) | -| `Microsoft.Sql/servers/databases` | [2022-02-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2022-02-01-preview/servers/databases) | -| `Microsoft.Sql/servers/firewallRules` | [2022-02-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2022-02-01-preview/servers/firewallRules) | -| `Microsoft.Sql/servers/securityAlertPolicies` | [2022-02-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2022-02-01-preview/servers/securityAlertPolicies) | -| `Microsoft.Sql/servers/vulnerabilityAssessments` | [2022-02-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2022-02-01-preview/servers/vulnerabilityAssessments) | +| `Microsoft.Sql/servers` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-05-01-preview/servers) | +| `Microsoft.Sql/servers/databases` | [2021-02-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-02-01-preview/servers/databases) | +| `Microsoft.Sql/servers/firewallRules` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-05-01-preview/servers/firewallRules) | +| `Microsoft.Sql/servers/securityAlertPolicies` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-05-01-preview/servers/securityAlertPolicies) | +| `Microsoft.Sql/servers/vulnerabilityAssessments` | [2021-11-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-11-01-preview/servers/vulnerabilityAssessments) | ## Parameters @@ -338,18 +338,18 @@ The following module usage examples are retrieved from the content of the files

via Bicep module ```bicep -module servers './Microsoft.Sql/servers/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-sqladmin' +module servers './Microsoft.Sql/servers/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-servers' params: { // Required parameters - name: '<>-sqladmin' + name: '<>-az-sqlsrv-admin-001' // Non-required parameters administrators: { azureADOnlyAuthentication: true login: 'myspn' principalType: 'Application' - sid: '' - tenantId: '' + sid: '<>' + tenantId: '<>' } } } @@ -369,7 +369,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "<>-sqladmin" + "value": "<>-az-sqlsrv-admin-001" }, // Non-required parameters "administrators": { @@ -377,8 +377,8 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { "azureADOnlyAuthentication": true, "login": "myspn", "principalType": "Application", - "sid": "", - "tenantId": "" + "sid": "<>", + "tenantId": "<>" } } } @@ -388,32 +388,37 @@ module servers './Microsoft.Sql/servers/deploy.bicep = {

-

Example 2: Default

+

Example 2: Parameters

via Bicep module ```bicep -module servers './Microsoft.Sql/servers/deploy.bicep = { - name: '${uniqueString(deployment().name)}-test-sqldef' +resource kv1 'Microsoft.KeyVault/vaults@2019-09-01' existing = { + name: 'adp-<>-az-kv-x-001' + scope: resourceGroup('<>','<>') +} + +module servers './Microsoft.Sql/servers/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-servers' params: { // Required parameters - name: '<>-sqldef' + name: '<>-az-sqlsrv-x-001' // Non-required parameters administratorLogin: 'adminUserName' - administratorLoginPassword: '' + administratorLoginPassword: kv1.getSecret('administratorLoginPassword') databases: [ { collation: 'SQL_Latin1_General_CP1_CI_AS' - diagnosticEventHubAuthorizationRuleId: '' - diagnosticEventHubName: '' + diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' + diagnosticEventHubName: 'adp-<>-az-evh-x-001' diagnosticLogsRetentionInDays: 7 - diagnosticStorageAccountId: '' - diagnosticWorkspaceId: '' + diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' + diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' licenseType: 'LicenseIncluded' maxSizeBytes: 34359738368 - name: '<>-sqldefdb-001' + name: '<>-az-sqldb-x-001' skuCapacity: 12 skuFamily: 'Gen5' skuName: 'BC_Gen5' @@ -427,19 +432,19 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { startIpAddress: '0.0.0.0' } ] - location: '' + location: 'westeurope' lock: 'CanNotDelete' minimalTlsVersion: '1.2' privateEndpoints: [ { service: 'sqlServer' - subnetResourceId: '' + subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints' } ] roleAssignments: [ { principalIds: [ - '' + '<>' ] roleDefinitionIdOrName: 'Reader' } @@ -453,7 +458,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { ] systemAssignedIdentity: true userAssignedIdentities: { - '${resourceGroupResources.outputs.managedIdentitResourceId}': {} + '/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} } vulnerabilityAssessmentsObj: { emailSubscriptionAdmins: true @@ -463,7 +468,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { 'test2@contoso.com' ] recurringScansIsEnabled: true - vulnerabilityAssessmentsStorageAccountId: '' + vulnerabilityAssessmentsStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' } } } @@ -483,27 +488,32 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { "parameters": { // Required parameters "name": { - "value": "<>-sqldef" + "value": "<>-az-sqlsrv-x-001" }, // Non-required parameters "administratorLogin": { "value": "adminUserName" }, "administratorLoginPassword": { - "value": "" + "reference": { + "keyVault": { + "id": "/subscriptions/<>/resourceGroups/<>/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001" + }, + "secretName": "administratorLoginPassword" + } }, "databases": { "value": [ { "collation": "SQL_Latin1_General_CP1_CI_AS", - "diagnosticEventHubAuthorizationRuleId": "", - "diagnosticEventHubName": "", + "diagnosticEventHubAuthorizationRuleId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", + "diagnosticEventHubName": "adp-<>-az-evh-x-001", "diagnosticLogsRetentionInDays": 7, - "diagnosticStorageAccountId": "", - "diagnosticWorkspaceId": "", + "diagnosticStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", + "diagnosticWorkspaceId": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001", "licenseType": "LicenseIncluded", "maxSizeBytes": 34359738368, - "name": "<>-sqldefdb-001", + "name": "<>-az-sqldb-x-001", "skuCapacity": 12, "skuFamily": "Gen5", "skuName": "BC_Gen5", @@ -521,7 +531,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { ] }, "location": { - "value": "" + "value": "westeurope" }, "lock": { "value": "CanNotDelete" @@ -533,7 +543,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { "value": [ { "service": "sqlServer", - "subnetResourceId": "" + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints" } ] }, @@ -541,7 +551,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { "value": [ { "principalIds": [ - "" + "<>" ], "roleDefinitionIdOrName": "Reader" } @@ -561,7 +571,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { }, "userAssignedIdentities": { "value": { - "${resourceGroupResources.outputs.managedIdentitResourceId}": {} + "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} } }, "vulnerabilityAssessmentsObj": { @@ -573,7 +583,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep = { "test2@contoso.com" ], "recurringScansIsEnabled": true, - "vulnerabilityAssessmentsStorageAccountId": "" + "vulnerabilityAssessmentsStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" } } } diff --git a/modules/Microsoft.Sql/servers/securityAlertPolicies/deploy.bicep b/modules/Microsoft.Sql/servers/securityAlertPolicies/deploy.bicep index 3115a9751e..7800a6c409 100644 --- a/modules/Microsoft.Sql/servers/securityAlertPolicies/deploy.bicep +++ b/modules/Microsoft.Sql/servers/securityAlertPolicies/deploy.bicep @@ -45,11 +45,11 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } } -resource server 'Microsoft.Sql/servers@2022-02-01-preview' existing = { +resource server 'Microsoft.Sql/servers@2021-05-01-preview' existing = { name: serverName } -resource securityAlertPolicy 'Microsoft.Sql/servers/securityAlertPolicies@2022-02-01-preview' = { +resource securityAlertPolicy 'Microsoft.Sql/servers/securityAlertPolicies@2021-05-01-preview' = { name: name parent: server properties: { diff --git a/modules/Microsoft.Sql/servers/securityAlertPolicies/readme.md b/modules/Microsoft.Sql/servers/securityAlertPolicies/readme.md index 60cb233bc8..e68f3c8d39 100644 --- a/modules/Microsoft.Sql/servers/securityAlertPolicies/readme.md +++ b/modules/Microsoft.Sql/servers/securityAlertPolicies/readme.md @@ -13,7 +13,7 @@ This module deploys an SQL Server Security Alert Policy. | Resource Type | API Version | | :-- | :-- | -| `Microsoft.Sql/servers/securityAlertPolicies` | [2022-02-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2022-02-01-preview/servers/securityAlertPolicies) | +| `Microsoft.Sql/servers/securityAlertPolicies` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-05-01-preview/servers/securityAlertPolicies) | ## Parameters diff --git a/modules/Microsoft.Sql/servers/vulnerabilityAssessments/deploy.bicep b/modules/Microsoft.Sql/servers/vulnerabilityAssessments/deploy.bicep index 89a0f5ffba..777f905259 100644 --- a/modules/Microsoft.Sql/servers/vulnerabilityAssessments/deploy.bicep +++ b/modules/Microsoft.Sql/servers/vulnerabilityAssessments/deploy.bicep @@ -31,11 +31,11 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } } -resource server 'Microsoft.Sql/servers@2022-02-01-preview' existing = { +resource server 'Microsoft.Sql/servers@2021-05-01-preview' existing = { name: serverName } -resource vulnerabilityAssessment 'Microsoft.Sql/servers/vulnerabilityAssessments@2022-02-01-preview' = { +resource vulnerabilityAssessment 'Microsoft.Sql/servers/vulnerabilityAssessments@2021-11-01-preview' = { name: name parent: server properties: { diff --git a/modules/Microsoft.Sql/servers/vulnerabilityAssessments/readme.md b/modules/Microsoft.Sql/servers/vulnerabilityAssessments/readme.md index f48d00123c..8b8cf7eed5 100644 --- a/modules/Microsoft.Sql/servers/vulnerabilityAssessments/readme.md +++ b/modules/Microsoft.Sql/servers/vulnerabilityAssessments/readme.md @@ -13,7 +13,7 @@ This module deploys a vulnerability assessment for a SQL server. | Resource Type | API Version | | :-- | :-- | -| `Microsoft.Sql/servers/vulnerabilityAssessments` | [2022-02-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2022-02-01-preview/servers/vulnerabilityAssessments) | +| `Microsoft.Sql/servers/vulnerabilityAssessments` | [2021-11-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-11-01-preview/servers/vulnerabilityAssessments) | ## Parameters From d6b1a663f3c81928664c4ce591784587e8889fa2 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Tue, 16 Aug 2022 15:44:34 +0200 Subject: [PATCH 246/274] Update to latest --- ...ed - Scenario 2 Onboard module library and CI environment.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md b/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md index 193e301a32..02be9ae6bc 100644 --- a/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md +++ b/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md @@ -393,6 +393,8 @@ For this reason, make sure to update the references in the following modules onc | File | Parameter | Notes | | - | - | - | +| `modules\Microsoft.Compute\virtualMachines\.test\linux.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | +| `modules\Microsoft.Compute\virtualMachines\.test\windows.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | | `modules\Microsoft.Compute\virtualMachineScaleSets\.test\linux.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | | `modules\Microsoft.Compute\virtualMachineScaleSets\.test\windows.parameters.json` | `extensionDiskEncryptionConfig.value.settings.KeyEncryptionKeyURL` | | | `modules\Microsoft.Sql\managedInstances\.test\parameters.json` | `keys.value.uri` | | From 7305775390050248bfd0ffa7957b2acabddf2307 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Tue, 16 Aug 2022 15:47:21 +0200 Subject: [PATCH 247/274] Update to latest --- modules/Microsoft.KeyVault/vaults/.test/parameters.json | 2 +- modules/Microsoft.KeyVault/vaults/readme.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/Microsoft.KeyVault/vaults/.test/parameters.json b/modules/Microsoft.KeyVault/vaults/.test/parameters.json index 464cb829e7..6e61cadf54 100644 --- a/modules/Microsoft.KeyVault/vaults/.test/parameters.json +++ b/modules/Microsoft.KeyVault/vaults/.test/parameters.json @@ -3,7 +3,7 @@ "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "<>-az-kv-x-001" + "value": "<>-az-kv-x-002" }, "lock": { "value": "CanNotDelete" diff --git a/modules/Microsoft.KeyVault/vaults/readme.md b/modules/Microsoft.KeyVault/vaults/readme.md index 3a6853a9ca..a60a78c14a 100644 --- a/modules/Microsoft.KeyVault/vaults/readme.md +++ b/modules/Microsoft.KeyVault/vaults/readme.md @@ -439,7 +439,7 @@ module vaults './Microsoft.KeyVault/vaults/deploy.bicep' = { module vaults './Microsoft.KeyVault/vaults/deploy.bicep' = { name: '${uniqueString(deployment().name)}-vaults' params: { - name: '<>-az-kv-x-001' + name: '<>-az-kv-x-002' accessPolicies: [ { objectId: '<>' @@ -558,7 +558,7 @@ module vaults './Microsoft.KeyVault/vaults/deploy.bicep' = { "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "<>-az-kv-x-001" + "value": "<>-az-kv-x-002" }, "accessPolicies": { "value": [ From 690ab392aab2e18b9f39795d7d180c5b279cfcd1 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Tue, 16 Aug 2022 15:48:33 +0200 Subject: [PATCH 248/274] Update to latest --- .../servers/.test/admin.parameters.json | 18 -- .../servers/databases/deploy.bicep | 230 ------------------ .../servers/databases/readme.md | 116 --------- .../servers/databases/version.json | 4 - .../servers/firewallRules/deploy.bicep | 48 ---- .../servers/firewallRules/readme.md | 48 ---- .../servers/firewallRules/version.json | 4 - .../securityAlertPolicies/deploy.bicep | 73 ------ .../servers/securityAlertPolicies/readme.md | 53 ---- .../securityAlertPolicies/version.json | 4 - .../vulnerabilityAssessments/deploy.bicep | 59 ----- .../vulnerabilityAssessments/readme.md | 46 ---- .../vulnerabilityAssessments/version.json | 4 - 13 files changed, 707 deletions(-) delete mode 100644 modules/Microsoft.AnalysisServices/servers/.test/admin.parameters.json delete mode 100644 modules/Microsoft.AnalysisServices/servers/databases/deploy.bicep delete mode 100644 modules/Microsoft.AnalysisServices/servers/databases/readme.md delete mode 100644 modules/Microsoft.AnalysisServices/servers/databases/version.json delete mode 100644 modules/Microsoft.AnalysisServices/servers/firewallRules/deploy.bicep delete mode 100644 modules/Microsoft.AnalysisServices/servers/firewallRules/readme.md delete mode 100644 modules/Microsoft.AnalysisServices/servers/firewallRules/version.json delete mode 100644 modules/Microsoft.AnalysisServices/servers/securityAlertPolicies/deploy.bicep delete mode 100644 modules/Microsoft.AnalysisServices/servers/securityAlertPolicies/readme.md delete mode 100644 modules/Microsoft.AnalysisServices/servers/securityAlertPolicies/version.json delete mode 100644 modules/Microsoft.AnalysisServices/servers/vulnerabilityAssessments/deploy.bicep delete mode 100644 modules/Microsoft.AnalysisServices/servers/vulnerabilityAssessments/readme.md delete mode 100644 modules/Microsoft.AnalysisServices/servers/vulnerabilityAssessments/version.json diff --git a/modules/Microsoft.AnalysisServices/servers/.test/admin.parameters.json b/modules/Microsoft.AnalysisServices/servers/.test/admin.parameters.json deleted file mode 100644 index eadb38deec..0000000000 --- a/modules/Microsoft.AnalysisServices/servers/.test/admin.parameters.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-sqlsrv-admin-001" - }, - "administrators": { - "value": { - "azureADOnlyAuthentication": true, - "login": "myspn", - "sid": "<>", - "principalType": "Application", - "tenantId": "<>" - } - } - } -} diff --git a/modules/Microsoft.AnalysisServices/servers/databases/deploy.bicep b/modules/Microsoft.AnalysisServices/servers/databases/deploy.bicep deleted file mode 100644 index 917978fd6c..0000000000 --- a/modules/Microsoft.AnalysisServices/servers/databases/deploy.bicep +++ /dev/null @@ -1,230 +0,0 @@ -@description('Required. The name of the database.') -param name string - -@description('Conditional. The name of the parent SQL Server. Required if the template is used in a standalone deployment.') -param serverName string - -@description('Optional. The collation of the database.') -param collation string = 'SQL_Latin1_General_CP1_CI_AS' - -@description('Optional. The skuTier or edition of the particular SKU.') -param skuTier string = 'GeneralPurpose' - -@description('Optional. The name of the SKU.') -param skuName string = 'GP_Gen5_2' - -@description('Optional. Capacity of the particular SKU.') -param skuCapacity int = -1 - -@description('Optional. If the service has different generations of hardware, for the same SKU, then that can be captured here.') -param skuFamily string = '' - -@description('Optional. Size of the particular SKU.') -param skuSize string = '' - -@description('Optional. The max size of the database expressed in bytes.') -param maxSizeBytes int = 34359738368 - -@description('Optional. The name of the sample schema to apply when creating this database.') -param sampleName string = '' - -@description('Optional. Whether or not this database is zone redundant.') -param zoneRedundant bool = false - -@description('Optional. The license type to apply for this database.') -param licenseType string = '' - -@description('Optional. The state of read-only routing.') -@allowed([ - 'Enabled' - 'Disabled' -]) -param readScale string = 'Disabled' - -@description('Optional. The number of readonly secondary replicas associated with the database.') -param highAvailabilityReplicaCount int = 0 - -@description('Optional. Minimal capacity that database will always have allocated.') -param minCapacity string = '' - -@description('Optional. Time in minutes after which database is automatically paused.') -param autoPauseDelay string = '' - -@description('Optional. Tags of the resource.') -param tags object = {} - -@description('Optional. Location for all resources.') -param location string = resourceGroup().location - -@description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') -param enableDefaultTelemetry bool = true - -@description('Optional. Specifies the number of days that logs will be kept for; a value of 0 will retain data indefinitely.') -@minValue(0) -@maxValue(365) -param diagnosticLogsRetentionInDays int = 365 - -@description('Optional. Resource ID of the diagnostic storage account.') -param diagnosticStorageAccountId string = '' - -@description('Optional. Resource ID of the diagnostic log analytics workspace.') -param diagnosticWorkspaceId string = '' - -@description('Optional. Resource ID of the diagnostic event hub authorization rule for the Event Hubs namespace in which the event hub should be created or streamed to.') -param diagnosticEventHubAuthorizationRuleId string = '' - -@description('Optional. Name of the diagnostic event hub within the namespace to which logs are streamed. Without this, an event hub is created for each log category.') -param diagnosticEventHubName string = '' - -@description('Optional. The name of logs that will be streamed.') -@allowed([ - 'SQLInsights' - 'AutomaticTuning' - 'QueryStoreRuntimeStatistics' - 'QueryStoreWaitStatistics' - 'Errors' - 'DatabaseWaitStatistics' - 'Timeouts' - 'Blocks' - 'Deadlocks' - 'DevOpsOperationsAudit' - 'SQLSecurityAuditEvents' -]) -param diagnosticLogCategoriesToEnable array = [ - 'SQLInsights' - 'AutomaticTuning' - 'QueryStoreRuntimeStatistics' - 'QueryStoreWaitStatistics' - 'Errors' - 'DatabaseWaitStatistics' - 'Timeouts' - 'Blocks' - 'Deadlocks' - 'DevOpsOperationsAudit' - 'SQLSecurityAuditEvents' -] - -@description('Optional. The name of metrics that will be streamed.') -@allowed([ - 'Basic' - 'InstanceAndAppAdvanced' - 'WorkloadManagement' -]) -param diagnosticMetricsToEnable array = [ - 'Basic' - 'InstanceAndAppAdvanced' - 'WorkloadManagement' -] - -@description('Optional. The name of the diagnostic setting, if deployed.') -param diagnosticSettingsName string = '${name}-diagnosticSettings' - -var diagnosticsLogs = [for category in diagnosticLogCategoriesToEnable: { - category: category - enabled: true - retentionPolicy: { - enabled: true - days: diagnosticLogsRetentionInDays - } -}] - -var diagnosticsMetrics = [for metric in diagnosticMetricsToEnable: { - category: metric - timeGrain: null - enabled: true - retentionPolicy: { - enabled: true - days: diagnosticLogsRetentionInDays - } -}] - -@description('Optional. The storage account type to be used to store backups for this database.') -@allowed([ - 'Geo' - 'Local' - 'Zone' - '' -]) -param requestedBackupStorageRedundancy string = '' - -@description('Optional. Whether or not this database is a ledger database, which means all tables in the database are ledger tables. Note: the value of this property cannot be changed after the database has been created.') -param isLedgerOn bool = false - -@description('Optional. Maintenance configuration ID assigned to the database. This configuration defines the period when the maintenance updates will occur.') -param maintenanceConfigurationId string = '' - -// The SKU object must be built in a variable -// The alternative, 'null' as default values, leads to non-terminating deployments -var skuVar = union({ - name: skuName - tier: skuTier - }, (skuCapacity != -1) ? { - capacity: skuCapacity - } : !empty(skuFamily) ? { - family: skuFamily - } : !empty(skuSize) ? { - size: skuSize - } : {}) - -resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { - name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' - properties: { - mode: 'Incremental' - template: { - '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' - contentVersion: '1.0.0.0' - resources: [] - } - } -} - -resource server 'Microsoft.Sql/servers@2021-05-01-preview' existing = { - name: serverName -} - -resource database 'Microsoft.Sql/servers/databases@2021-02-01-preview' = { - name: name - parent: server - location: location - tags: tags - properties: { - collation: collation - maxSizeBytes: maxSizeBytes - sampleName: sampleName - zoneRedundant: zoneRedundant - licenseType: licenseType - readScale: readScale - minCapacity: !empty(minCapacity) ? json(minCapacity) : 0 - autoPauseDelay: !empty(autoPauseDelay) ? json(autoPauseDelay) : 0 - highAvailabilityReplicaCount: highAvailabilityReplicaCount - requestedBackupStorageRedundancy: any(requestedBackupStorageRedundancy) - isLedgerOn: isLedgerOn - maintenanceConfigurationId: !empty(maintenanceConfigurationId) ? maintenanceConfigurationId : null - } - sku: skuVar -} - -resource database_diagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if ((!empty(diagnosticStorageAccountId)) || (!empty(diagnosticWorkspaceId)) || (!empty(diagnosticEventHubAuthorizationRuleId)) || (!empty(diagnosticEventHubName))) { - name: diagnosticSettingsName - properties: { - storageAccountId: !empty(diagnosticStorageAccountId) ? diagnosticStorageAccountId : null - workspaceId: !empty(diagnosticWorkspaceId) ? diagnosticWorkspaceId : null - eventHubAuthorizationRuleId: !empty(diagnosticEventHubAuthorizationRuleId) ? diagnosticEventHubAuthorizationRuleId : null - eventHubName: !empty(diagnosticEventHubName) ? diagnosticEventHubName : null - metrics: diagnosticsMetrics - logs: diagnosticsLogs - } - scope: database -} - -@description('The name of the deployed database.') -output name string = database.name - -@description('The resource ID of the deployed database.') -output resourceId string = database.id - -@description('The resource group of the deployed database.') -output resourceGroupName string = resourceGroup().name - -@description('The location the resource was deployed into.') -output location string = database.location diff --git a/modules/Microsoft.AnalysisServices/servers/databases/readme.md b/modules/Microsoft.AnalysisServices/servers/databases/readme.md deleted file mode 100644 index c67ee77e6a..0000000000 --- a/modules/Microsoft.AnalysisServices/servers/databases/readme.md +++ /dev/null @@ -1,116 +0,0 @@ -# SQL Server Database `[Microsoft.Sql/servers/databases]` - -This module deploys an Azure SQL Server. - -## Navigation - -- [Resource types](#Resource-types) -- [Parameters](#Parameters) -- [Outputs](#Outputs) -- [Cross-referenced modules](#Cross-referenced-modules) - -## Resource types - -| Resource Type | API Version | -| :-- | :-- | -| `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | -| `Microsoft.Sql/servers/databases` | [2021-02-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-02-01-preview/servers/databases) | - -## Parameters - -**Required parameters** -| Parameter Name | Type | Description | -| :-- | :-- | :-- | -| `name` | string | The name of the database. | - -**Conditional parameters** -| Parameter Name | Type | Description | -| :-- | :-- | :-- | -| `serverName` | string | The name of the parent SQL Server. Required if the template is used in a standalone deployment. | - -**Optional parameters** -| Parameter Name | Type | Default Value | Allowed Values | Description | -| :-- | :-- | :-- | :-- | :-- | -| `autoPauseDelay` | string | `''` | | Time in minutes after which database is automatically paused. | -| `collation` | string | `'SQL_Latin1_General_CP1_CI_AS'` | | The collation of the database. | -| `diagnosticEventHubAuthorizationRuleId` | string | `''` | | Resource ID of the diagnostic event hub authorization rule for the Event Hubs namespace in which the event hub should be created or streamed to. | -| `diagnosticEventHubName` | string | `''` | | Name of the diagnostic event hub within the namespace to which logs are streamed. Without this, an event hub is created for each log category. | -| `diagnosticLogCategoriesToEnable` | array | `[AutomaticTuning, Blocks, DatabaseWaitStatistics, Deadlocks, DevOpsOperationsAudit, Errors, QueryStoreRuntimeStatistics, QueryStoreWaitStatistics, SQLInsights, SQLSecurityAuditEvents, Timeouts]` | `[AutomaticTuning, Blocks, DatabaseWaitStatistics, Deadlocks, DevOpsOperationsAudit, Errors, QueryStoreRuntimeStatistics, QueryStoreWaitStatistics, SQLInsights, SQLSecurityAuditEvents, Timeouts]` | The name of logs that will be streamed. | -| `diagnosticLogsRetentionInDays` | int | `365` | | Specifies the number of days that logs will be kept for; a value of 0 will retain data indefinitely. | -| `diagnosticMetricsToEnable` | array | `[Basic, InstanceAndAppAdvanced, WorkloadManagement]` | `[Basic, InstanceAndAppAdvanced, WorkloadManagement]` | The name of metrics that will be streamed. | -| `diagnosticSettingsName` | string | `[format('{0}-diagnosticSettings', parameters('name'))]` | | The name of the diagnostic setting, if deployed. | -| `diagnosticStorageAccountId` | string | `''` | | Resource ID of the diagnostic storage account. | -| `diagnosticWorkspaceId` | string | `''` | | Resource ID of the diagnostic log analytics workspace. | -| `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | -| `highAvailabilityReplicaCount` | int | `0` | | The number of readonly secondary replicas associated with the database. | -| `isLedgerOn` | bool | `False` | | Whether or not this database is a ledger database, which means all tables in the database are ledger tables. Note: the value of this property cannot be changed after the database has been created. | -| `licenseType` | string | `''` | | The license type to apply for this database. | -| `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `maintenanceConfigurationId` | string | `''` | | Maintenance configuration ID assigned to the database. This configuration defines the period when the maintenance updates will occur. | -| `maxSizeBytes` | int | `34359738368` | | The max size of the database expressed in bytes. | -| `minCapacity` | string | `''` | | Minimal capacity that database will always have allocated. | -| `readScale` | string | `'Disabled'` | `[Disabled, Enabled]` | The state of read-only routing. | -| `requestedBackupStorageRedundancy` | string | `''` | `['', Geo, Local, Zone]` | The storage account type to be used to store backups for this database. | -| `sampleName` | string | `''` | | The name of the sample schema to apply when creating this database. | -| `skuCapacity` | int | `-1` | | Capacity of the particular SKU. | -| `skuFamily` | string | `''` | | If the service has different generations of hardware, for the same SKU, then that can be captured here. | -| `skuName` | string | `'GP_Gen5_2'` | | The name of the SKU. | -| `skuSize` | string | `''` | | Size of the particular SKU. | -| `skuTier` | string | `'GeneralPurpose'` | | The skuTier or edition of the particular SKU. | -| `tags` | object | `{object}` | | Tags of the resource. | -| `zoneRedundant` | bool | `False` | | Whether or not this database is zone redundant. | - - -### Parameter Usage: `tags` - -Tag names and tag values can be provided as needed. A tag can be left without a value. - -
- -Parameter JSON format - -```json -"tags": { - "value": { - "Environment": "Non-Prod", - "Contact": "test.user@testcompany.com", - "PurchaseOrder": "1234", - "CostCenter": "7890", - "ServiceName": "DeploymentValidation", - "Role": "DeploymentValidation" - } -} -``` - -
- -
- -Bicep format - -```bicep -tags: { - Environment: 'Non-Prod' - Contact: 'test.user@testcompany.com' - PurchaseOrder: '1234' - CostCenter: '7890' - ServiceName: 'DeploymentValidation' - Role: 'DeploymentValidation' -} -``` - -
-

- -## Outputs - -| Output Name | Type | Description | -| :-- | :-- | :-- | -| `location` | string | The location the resource was deployed into. | -| `name` | string | The name of the deployed database. | -| `resourceGroupName` | string | The resource group of the deployed database. | -| `resourceId` | string | The resource ID of the deployed database. | - -## Cross-referenced modules - -_None_ diff --git a/modules/Microsoft.AnalysisServices/servers/databases/version.json b/modules/Microsoft.AnalysisServices/servers/databases/version.json deleted file mode 100644 index a086a1818e..0000000000 --- a/modules/Microsoft.AnalysisServices/servers/databases/version.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", - "version": "1.0" -} diff --git a/modules/Microsoft.AnalysisServices/servers/firewallRules/deploy.bicep b/modules/Microsoft.AnalysisServices/servers/firewallRules/deploy.bicep deleted file mode 100644 index 2ca51b8545..0000000000 --- a/modules/Microsoft.AnalysisServices/servers/firewallRules/deploy.bicep +++ /dev/null @@ -1,48 +0,0 @@ -@description('Required. The name of the Server Firewall Rule.') -param name string - -@description('Optional. The end IP address of the firewall rule. Must be IPv4 format. Must be greater than or equal to startIpAddress. Use value \'0.0.0.0\' for all Azure-internal IP addresses.') -param endIpAddress string = '0.0.0.0' - -@description('Optional. The start IP address of the firewall rule. Must be IPv4 format. Use value \'0.0.0.0\' for all Azure-internal IP addresses.') -param startIpAddress string = '0.0.0.0' - -@description('Conditional. The name of the parent SQL Server. Required if the template is used in a standalone deployment.') -param serverName string - -@description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') -param enableDefaultTelemetry bool = true - -resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { - name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name)}' - properties: { - mode: 'Incremental' - template: { - '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' - contentVersion: '1.0.0.0' - resources: [] - } - } -} - -resource server 'Microsoft.Sql/servers@2021-05-01-preview' existing = { - name: serverName -} - -resource firewallRule 'Microsoft.Sql/servers/firewallRules@2021-05-01-preview' = { - name: name - parent: server - properties: { - endIpAddress: endIpAddress - startIpAddress: startIpAddress - } -} - -@description('The name of the deployed firewall rule.') -output name string = firewallRule.name - -@description('The resource ID of the deployed firewall rule.') -output resourceId string = firewallRule.id - -@description('The resource group of the deployed firewall rule.') -output resourceGroupName string = resourceGroup().name diff --git a/modules/Microsoft.AnalysisServices/servers/firewallRules/readme.md b/modules/Microsoft.AnalysisServices/servers/firewallRules/readme.md deleted file mode 100644 index d6cbe3fac1..0000000000 --- a/modules/Microsoft.AnalysisServices/servers/firewallRules/readme.md +++ /dev/null @@ -1,48 +0,0 @@ -# SQL Server Firewall rule `[Microsoft.Sql/servers/firewallrules]` - -This module deploys an SQL Server Firewall rule. - -## Navigation - -- [Resource Types](#Resource-Types) -- [Parameters](#Parameters) -- [Outputs](#Outputs) -- [Cross-referenced modules](#Cross-referenced-modules) - -## Resource Types - -| Resource Type | API Version | -| :-- | :-- | -| `Microsoft.Sql/servers/firewallRules` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-05-01-preview/servers/firewallRules) | - -## Parameters - -**Required parameters** -| Parameter Name | Type | Description | -| :-- | :-- | :-- | -| `name` | string | The name of the Server Firewall Rule. | - -**Conditional parameters** -| Parameter Name | Type | Description | -| :-- | :-- | :-- | -| `serverName` | string | The name of the parent SQL Server. Required if the template is used in a standalone deployment. | - -**Optional parameters** -| Parameter Name | Type | Default Value | Description | -| :-- | :-- | :-- | :-- | -| `enableDefaultTelemetry` | bool | `True` | Enable telemetry via the Customer Usage Attribution ID (GUID). | -| `endIpAddress` | string | `'0.0.0.0'` | The end IP address of the firewall rule. Must be IPv4 format. Must be greater than or equal to startIpAddress. Use value '0.0.0.0' for all Azure-internal IP addresses. | -| `startIpAddress` | string | `'0.0.0.0'` | The start IP address of the firewall rule. Must be IPv4 format. Use value '0.0.0.0' for all Azure-internal IP addresses. | - - -## Outputs - -| Output Name | Type | Description | -| :-- | :-- | :-- | -| `name` | string | The name of the deployed firewall rule. | -| `resourceGroupName` | string | The resource group of the deployed firewall rule. | -| `resourceId` | string | The resource ID of the deployed firewall rule. | - -## Cross-referenced modules - -_None_ diff --git a/modules/Microsoft.AnalysisServices/servers/firewallRules/version.json b/modules/Microsoft.AnalysisServices/servers/firewallRules/version.json deleted file mode 100644 index 56f8d9ca40..0000000000 --- a/modules/Microsoft.AnalysisServices/servers/firewallRules/version.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", - "version": "0.4" -} diff --git a/modules/Microsoft.AnalysisServices/servers/securityAlertPolicies/deploy.bicep b/modules/Microsoft.AnalysisServices/servers/securityAlertPolicies/deploy.bicep deleted file mode 100644 index 7800a6c409..0000000000 --- a/modules/Microsoft.AnalysisServices/servers/securityAlertPolicies/deploy.bicep +++ /dev/null @@ -1,73 +0,0 @@ -@description('Required. The name of the Security Alert Policy.') -param name string - -@description('Optional. Specifies an array of alerts that are disabled. Allowed values are: Sql_Injection, Sql_Injection_Vulnerability, Access_Anomaly, Data_Exfiltration, Unsafe_Action, Brute_Force.') -param disabledAlerts array = [] - -@description('Optional. Specifies that the alert is sent to the account administrators.') -param emailAccountAdmins bool = false - -@description('Optional. Specifies an array of email addresses to which the alert is sent.') -param emailAddresses array = [] - -@description('Optional. Specifies the number of days to keep in the Threat Detection audit logs.') -param retentionDays int = 0 - -@description('Optional. Specifies the state of the policy, whether it is enabled or disabled or a policy has not been applied yet on the specific database.') -@allowed([ - 'Disabled' - 'Enabled' -]) -param state string = 'Disabled' - -@description('Optional. Specifies the identifier key of the Threat Detection audit storage account..') -@secure() -param storageAccountAccessKey string = '' - -@description('Optional. Specifies the blob storage endpoint. This blob storage will hold all Threat Detection audit logs.') -param storageEndpoint string = '' - -@description('Conditional. The name of the parent SQL Server. Required if the template is used in a standalone deployment.') -param serverName string - -@description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') -param enableDefaultTelemetry bool = true - -resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { - name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name)}' - properties: { - mode: 'Incremental' - template: { - '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' - contentVersion: '1.0.0.0' - resources: [] - } - } -} - -resource server 'Microsoft.Sql/servers@2021-05-01-preview' existing = { - name: serverName -} - -resource securityAlertPolicy 'Microsoft.Sql/servers/securityAlertPolicies@2021-05-01-preview' = { - name: name - parent: server - properties: { - disabledAlerts: disabledAlerts - emailAccountAdmins: emailAccountAdmins - emailAddresses: emailAddresses - retentionDays: retentionDays - state: state - storageAccountAccessKey: empty(storageAccountAccessKey) ? null : storageAccountAccessKey - storageEndpoint: empty(storageEndpoint) ? null : storageEndpoint - } -} - -@description('The name of the deployed security alert policy.') -output name string = securityAlertPolicy.name - -@description('The resource ID of the deployed security alert policy.') -output resourceId string = securityAlertPolicy.id - -@description('The resource group of the deployed security alert policy.') -output resourceGroupName string = resourceGroup().name diff --git a/modules/Microsoft.AnalysisServices/servers/securityAlertPolicies/readme.md b/modules/Microsoft.AnalysisServices/servers/securityAlertPolicies/readme.md deleted file mode 100644 index e68f3c8d39..0000000000 --- a/modules/Microsoft.AnalysisServices/servers/securityAlertPolicies/readme.md +++ /dev/null @@ -1,53 +0,0 @@ -# SQL Server Security Alert Policy `[Microsoft.Sql/servers/securityAlertPolicies]` - -This module deploys an SQL Server Security Alert Policy. - -## Navigation - -- [Resource Types](#Resource-Types) -- [Parameters](#Parameters) -- [Outputs](#Outputs) -- [Cross-referenced modules](#Cross-referenced-modules) - -## Resource Types - -| Resource Type | API Version | -| :-- | :-- | -| `Microsoft.Sql/servers/securityAlertPolicies` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-05-01-preview/servers/securityAlertPolicies) | - -## Parameters - -**Required parameters** -| Parameter Name | Type | Description | -| :-- | :-- | :-- | -| `name` | string | The name of the Security Alert Policy. | - -**Conditional parameters** -| Parameter Name | Type | Description | -| :-- | :-- | :-- | -| `serverName` | string | The name of the parent SQL Server. Required if the template is used in a standalone deployment. | - -**Optional parameters** -| Parameter Name | Type | Default Value | Allowed Values | Description | -| :-- | :-- | :-- | :-- | :-- | -| `disabledAlerts` | array | `[]` | | Specifies an array of alerts that are disabled. Allowed values are: Sql_Injection, Sql_Injection_Vulnerability, Access_Anomaly, Data_Exfiltration, Unsafe_Action, Brute_Force. | -| `emailAccountAdmins` | bool | `False` | | Specifies that the alert is sent to the account administrators. | -| `emailAddresses` | array | `[]` | | Specifies an array of email addresses to which the alert is sent. | -| `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | -| `retentionDays` | int | `0` | | Specifies the number of days to keep in the Threat Detection audit logs. | -| `state` | string | `'Disabled'` | `[Disabled, Enabled]` | Specifies the state of the policy, whether it is enabled or disabled or a policy has not been applied yet on the specific database. | -| `storageAccountAccessKey` | secureString | `''` | | Specifies the identifier key of the Threat Detection audit storage account.. | -| `storageEndpoint` | string | `''` | | Specifies the blob storage endpoint. This blob storage will hold all Threat Detection audit logs. | - - -## Outputs - -| Output Name | Type | Description | -| :-- | :-- | :-- | -| `name` | string | The name of the deployed security alert policy. | -| `resourceGroupName` | string | The resource group of the deployed security alert policy. | -| `resourceId` | string | The resource ID of the deployed security alert policy. | - -## Cross-referenced modules - -_None_ diff --git a/modules/Microsoft.AnalysisServices/servers/securityAlertPolicies/version.json b/modules/Microsoft.AnalysisServices/servers/securityAlertPolicies/version.json deleted file mode 100644 index 56f8d9ca40..0000000000 --- a/modules/Microsoft.AnalysisServices/servers/securityAlertPolicies/version.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", - "version": "0.4" -} diff --git a/modules/Microsoft.AnalysisServices/servers/vulnerabilityAssessments/deploy.bicep b/modules/Microsoft.AnalysisServices/servers/vulnerabilityAssessments/deploy.bicep deleted file mode 100644 index 777f905259..0000000000 --- a/modules/Microsoft.AnalysisServices/servers/vulnerabilityAssessments/deploy.bicep +++ /dev/null @@ -1,59 +0,0 @@ -@description('Required. The name of the vulnerability assessment.') -param name string - -@description('Required. The Name of SQL Server.') -param serverName string - -@description('Optional. Recurring scans state.') -param recurringScansIsEnabled bool = false - -@description('Optional. Specifies that the schedule scan notification will be is sent to the subscription administrators.') -param recurringScansEmailSubscriptionAdmins bool = false - -@description('Optional. Specifies an array of email addresses to which the scan notification is sent.') -param recurringScansEmails array = [] - -@description('Optional. A blob storage to hold the scan results.') -param vulnerabilityAssessmentsStorageAccountId string = '' - -@description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') -param enableDefaultTelemetry bool = true - -resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { - name: 'pid-9319755b-f697-4146-b966-4656e0b46cac-${uniqueString(deployment().name)}' - properties: { - mode: 'Incremental' - template: { - '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' - contentVersion: '1.0.0.0' - resources: [] - } - } -} - -resource server 'Microsoft.Sql/servers@2021-05-01-preview' existing = { - name: serverName -} - -resource vulnerabilityAssessment 'Microsoft.Sql/servers/vulnerabilityAssessments@2021-11-01-preview' = { - name: name - parent: server - properties: { - storageContainerPath: 'https://${last(split(vulnerabilityAssessmentsStorageAccountId, '/'))}.blob.${environment().suffixes.storage}/vulnerability-assessment/' - storageAccountAccessKey: listKeys(vulnerabilityAssessmentsStorageAccountId, '2019-06-01').keys[0].value - recurringScans: { - isEnabled: recurringScansIsEnabled - emailSubscriptionAdmins: recurringScansEmailSubscriptionAdmins - emails: recurringScansEmails - } - } -} - -@description('The name of the deployed vulnerability assessment.') -output name string = vulnerabilityAssessment.name - -@description('The resource ID of the deployed vulnerability assessment.') -output resourceId string = vulnerabilityAssessment.id - -@description('The resource group of the deployed vulnerability assessment.') -output resourceGroupName string = resourceGroup().name diff --git a/modules/Microsoft.AnalysisServices/servers/vulnerabilityAssessments/readme.md b/modules/Microsoft.AnalysisServices/servers/vulnerabilityAssessments/readme.md deleted file mode 100644 index 8b8cf7eed5..0000000000 --- a/modules/Microsoft.AnalysisServices/servers/vulnerabilityAssessments/readme.md +++ /dev/null @@ -1,46 +0,0 @@ -# SQL Server Vulnerability Assessments `[Microsoft.Sql/servers/vulnerabilityAssessments]` - -This module deploys a vulnerability assessment for a SQL server. - -## Navigation - -- [Resource Types](#Resource-Types) -- [Parameters](#Parameters) -- [Outputs](#Outputs) -- [Cross-referenced modules](#Cross-referenced-modules) - -## Resource Types - -| Resource Type | API Version | -| :-- | :-- | -| `Microsoft.Sql/servers/vulnerabilityAssessments` | [2021-11-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Sql/2021-11-01-preview/servers/vulnerabilityAssessments) | - -## Parameters - -**Required parameters** -| Parameter Name | Type | Description | -| :-- | :-- | :-- | -| `name` | string | The name of the vulnerability assessment. | -| `serverName` | string | The Name of SQL Server. | - -**Optional parameters** -| Parameter Name | Type | Default Value | Description | -| :-- | :-- | :-- | :-- | -| `enableDefaultTelemetry` | bool | `True` | Enable telemetry via the Customer Usage Attribution ID (GUID). | -| `recurringScansEmails` | array | `[]` | Specifies an array of email addresses to which the scan notification is sent. | -| `recurringScansEmailSubscriptionAdmins` | bool | `False` | Specifies that the schedule scan notification will be is sent to the subscription administrators. | -| `recurringScansIsEnabled` | bool | `False` | Recurring scans state. | -| `vulnerabilityAssessmentsStorageAccountId` | string | `''` | A blob storage to hold the scan results. | - - -## Outputs - -| Output Name | Type | Description | -| :-- | :-- | :-- | -| `name` | string | The name of the deployed vulnerability assessment. | -| `resourceGroupName` | string | The resource group of the deployed vulnerability assessment. | -| `resourceId` | string | The resource ID of the deployed vulnerability assessment. | - -## Cross-referenced modules - -_None_ diff --git a/modules/Microsoft.AnalysisServices/servers/vulnerabilityAssessments/version.json b/modules/Microsoft.AnalysisServices/servers/vulnerabilityAssessments/version.json deleted file mode 100644 index badc0a2285..0000000000 --- a/modules/Microsoft.AnalysisServices/servers/vulnerabilityAssessments/version.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", - "version": "0.5" -} From 8b24f84dfb173cbed9e2bc1e5a58b1674c2774ae Mon Sep 17 00:00:00 2001 From: MrMCake Date: Thu, 18 Aug 2022 11:22:37 +0200 Subject: [PATCH 249/274] Small readmeGen fix + improved readability --- utilities/tools/Set-ModuleReadMe.ps1 | 43 +++++++++++++++++++--------- 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index 66df2ed4ce..eb804f2168 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -661,26 +661,43 @@ function ConvertTo-FormattedJSONParameterObject { for ($index = 0; $index -lt $paramInJSONFormatArray.Count; $index++) { - $lineValue = $paramInJSONFormatArray[$index] + $line = $paramInJSONFormatArray[$index] # [2.4] Syntax: Everything left of a leftest ':' should be wrapped in quotes (as a parameter name is always a string) [regex]$pattern = '\:{0}([0-9a-zA-Z]+):' - $lineValue = $pattern.replace($lineValue, '"$1":', 1) + $line = $pattern.replace($line, '"$1":', 1) # [2.5] Syntax: Replace Bicep resource ID references - if ($lineValue -like '*:*' -and $lineValue -notmatch '^.+:\s*{\s*}\s*$' -and ($lineValue -split ':')[1].Trim() -notmatch '".+"' -and $lineValue -like '*.*') { + $mayHaveValue = $line -like '*:*' + if ($mayHaveValue) { + + # Individual checks + $lineValue = ($line -split ':')[1].Trim() + $isLineWithEmptyObjectValue = $line -match '^.+:\s*{\s*}\s*$' # e.g. test: {} + $isLineWithStringValue = $lineValue -match '".+"' # e.g. "value" + $isLineWithObjectPropertyReferenceValue = $line -like '*.*' # e.g. resourceGroupResources.outputs.virtualWWANResourceId` + $isLineWithFunction = $lineValue -match '[a-zA-Z]+\(.+\)' # e.g. (split(resourceGroupResources.outputs.recoveryServicesVaultResourceId, "/"))[4] + $isLineWithPlainValue = $lineValue -match '^\w+$' # e.g. adminPassword: password + $isLineWithPrimitiveValue = $lineValue -match '^\s*true|false|[0-9]+$' # e.g. isSecure: true + + # Combined checks # In case of an output reference like '"virtualWanId": resourceGroupResources.outputs.virtualWWANResourceId' we'll only show "" (but NOT e.g. 'reference': {}) - $paramInJSONFormatArray[$index] = '{0}: "<{1}>"' -f ($lineValue -split ':')[0], ([regex]::Match(($lineValue -split ':')[0], '"(.+)"')).Captures.Groups[1].Value - } elseif ($lineValue -like '*:*' -and ($lineValue -split ':')[1].Trim() -match '[a-zA-Z]+\(.+\)') { - # In case of a any contained function like '"backupVaultResourceGroup": (split(resourceGroupResources.outputs.recoveryServicesVaultResourceId, "/"))[4]' we'll only show "" - $paramInJSONFormatArray[$index] = '{0}: "<{1}>"' -f ($lineValue -split ':')[0], ([regex]::Match(($lineValue -split ':')[0], '"(.+)"')).Captures.Groups[1].Value - } elseif ($lineValue -like '*:*' -and ($lineValue -split ':')[1].Trim() -match '^\w+$' -and ($lineValue -split ':')[1].Trim() -notmatch '^\s*true|false|[0-9]+$') { + $isLineWithObjectPropertyReference = -not $isLineWithEmptyObjectValue -and -not $isLineWithStringValue -and $isLineWithObjectPropertyReferenceValue # In case of a parameter/variable reference like 'adminPassword: password' we'll only show "" (but NOT e.g. enableMe: true) - $paramInJSONFormatArray[$index] = '{0}: "<{1}>"' -f ($lineValue -split ':')[0], ([regex]::Match(($lineValue -split ':')[0], '"(.+)"')).Captures.Groups[1].Value - } elseif ($lineValue -notlike '*:*' -and $lineValue -notlike '*"*"*' -and $lineValue -like '*.*') { - # In case of a array value like '[ \n -> resourceGroupResources.outputs.managedIdentityPrincipalId <- \n ]' we'll only show """ - $paramInJSONFormatArray[$index] = '"<{0}>"' -f $lineValue.Split('.')[-1].Trim() + $isLineWithParameterOrVariableReferenceValue = $isLineWithPlainValue -and -not $isLineWithPrimitiveValue + # In case of a any contained function like '"backupVaultResourceGroup": (split(resourceGroupResources.outputs.recoveryServicesVaultResourceId, "/"))[4]' we'll only show "" + + if ($isLineWithObjectPropertyReference -or $isLineWithFunction -or $isLineWithParameterOrVariableReferenceValue) { + $line = '{0}: "<{1}>"' -f ($line -split ':')[0], ([regex]::Match(($line -split ':')[0], '"(.+)"')).Captures.Groups[1].Value + } + } else { + if ($line -notlike '*"*"*' -and $line -like '*.*') { + # In case of a array value like '[ \n -> resourceGroupResources.outputs.managedIdentityPrincipalId <- \n ]' we'll only show """ + $line = '"<{0}>"' -f $line.Split('.')[-1].Trim() + } } + + $paramInJSONFormatArray[$index] = $line } # [2.6] Syntax: Add comma everywhere unless: @@ -688,7 +705,7 @@ function ConvertTo-FormattedJSONParameterObject { # - the line after the current line has a closing 'object: {' or 'array: [' character # - it's the last closing bracket for ($index = 0; $index -lt $paramInJSONFormatArray.Count; $index++) { - if (($paramInJSONFormatArray[$index] -match '[\{|\[]') -or (($index -lt $paramInJSONFormatArray.Count - 1) -and $paramInJSONFormatArray[$index + 1] -match '[\]|\}]') -or ($index -eq $paramInJSONFormatArray.Count - 1)) { + if (($paramInJSONFormatArray[$index] -match '[\{|\[]\s*$') -or (($index -lt $paramInJSONFormatArray.Count - 1) -and $paramInJSONFormatArray[$index + 1] -match '^\s*[\]|\}]\s*$') -or ($index -eq $paramInJSONFormatArray.Count - 1)) { continue } $paramInJSONFormatArray[$index] = '{0},' -f $paramInJSONFormatArray[$index].Trim() From 2ffcd56cd7ea19917c23a737c94e8a636085cc2b Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 19 Aug 2022 08:59:29 +0200 Subject: [PATCH 250/274] Updated AutomationAccount --- utilities/tools/Set-ModuleReadMe.ps1 | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index eb804f2168..cece59152b 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -672,10 +672,12 @@ function ConvertTo-FormattedJSONParameterObject { if ($mayHaveValue) { # Individual checks - $lineValue = ($line -split ':')[1].Trim() $isLineWithEmptyObjectValue = $line -match '^.+:\s*{\s*}\s*$' # e.g. test: {} + $isLineWithObjectPropertyReferenceValue = ($line -split ':')[1].Trim() -like '*.*' # e.g. resourceGroupResources.outputs.virtualWWANResourceId` + $isLineWithReferenceInLineKey = ($line -split ':')[0].Trim() -like '*.*' + + $lineValue = ($line -split ':')[1].Trim() $isLineWithStringValue = $lineValue -match '".+"' # e.g. "value" - $isLineWithObjectPropertyReferenceValue = $line -like '*.*' # e.g. resourceGroupResources.outputs.virtualWWANResourceId` $isLineWithFunction = $lineValue -match '[a-zA-Z]+\(.+\)' # e.g. (split(resourceGroupResources.outputs.recoveryServicesVaultResourceId, "/"))[4] $isLineWithPlainValue = $lineValue -match '^\w+$' # e.g. adminPassword: password $isLineWithPrimitiveValue = $lineValue -match '^\s*true|false|[0-9]+$' # e.g. isSecure: true @@ -685,10 +687,14 @@ function ConvertTo-FormattedJSONParameterObject { $isLineWithObjectPropertyReference = -not $isLineWithEmptyObjectValue -and -not $isLineWithStringValue -and $isLineWithObjectPropertyReferenceValue # In case of a parameter/variable reference like 'adminPassword: password' we'll only show "" (but NOT e.g. enableMe: true) $isLineWithParameterOrVariableReferenceValue = $isLineWithPlainValue -and -not $isLineWithPrimitiveValue - # In case of a any contained function like '"backupVaultResourceGroup": (split(resourceGroupResources.outputs.recoveryServicesVaultResourceId, "/"))[4]' we'll only show "" + # In case of any contained line like ''${resourceGroupResources.outputs.managedIdentityResourceId}': {}' we'll only show "managedIdentityResourceId: {}" + $isLineWithObjectReferenceKeyAndEmptyObjectValue = $isLineWithEmptyObjectValue -and $isLineWithReferenceInLineKey + # In case of any contained function like '"backupVaultResourceGroup": (split(resourceGroupResources.outputs.recoveryServicesVaultResourceId, "/"))[4]' we'll only show "" if ($isLineWithObjectPropertyReference -or $isLineWithFunction -or $isLineWithParameterOrVariableReferenceValue) { $line = '{0}: "<{1}>"' -f ($line -split ':')[0], ([regex]::Match(($line -split ':')[0], '"(.+)"')).Captures.Groups[1].Value + } elseif ($isLineWithObjectReferenceKeyAndEmptyObjectValue) { + $line = '"<{0}>": {1}' -f (($line -split ':')[0] -split '\.')[-1].TrimEnd('}"'), ($line -split ':')[1].Trim() } } else { if ($line -notlike '*"*"*' -and $line -like '*.*') { @@ -697,6 +703,7 @@ function ConvertTo-FormattedJSONParameterObject { } } + $paramInJSONFormatArray[$index] = $line } From dddf98b45aef3b3281a4bf515a4e310c9a2dd2d4 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 19 Aug 2022 11:26:12 +0200 Subject: [PATCH 251/274] Small update --- utilities/tools/Set-ModuleReadMe.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index cece59152b..2527fb881f 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -920,7 +920,7 @@ function Set-DeploymentExamplesSection { # ------------------------- # # [1/6] Search for the relevant parameter start & end index - $bicepTestStartIndex = $rawContentArray.IndexOf("module testDeployment '../../deploy.bicep' = {") + $bicepTestStartIndex = ($rawContentArray | Select-String ("^module testDeployment '..\/.*deploy.bicep' = {$") | ForEach-Object { $_.LineNumber - 1 })[0] $bicepTestEndIndex = $bicepTestStartIndex do { From 0f258766402c1255f38e052acfd99d1f9086bcb3 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 19 Aug 2022 12:24:29 +0200 Subject: [PATCH 252/274] Update to latest --- utilities/pipelines/staticValidation/module.tests.ps1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/utilities/pipelines/staticValidation/module.tests.ps1 b/utilities/pipelines/staticValidation/module.tests.ps1 index 2774b77b03..bb5672d58c 100644 --- a/utilities/pipelines/staticValidation/module.tests.ps1 +++ b/utilities/pipelines/staticValidation/module.tests.ps1 @@ -562,15 +562,15 @@ Describe 'Parameter file tests' -Tag 'Parameter' { } } - It "[] Bicep test deployment files should invoke test like [module testDeployment '../../deploy.bicep' = {]" -TestCases ($deploymentTestFileTestCases | Where-Object { (Split-Path $_.testFilePath -Extension) -eq '.bicep' }) { + It "[] Bicep test deployment files should invoke test like [module testDeployment '../.*deploy.bicep' = {]" -TestCases ($deploymentTestFileTestCases | Where-Object { (Split-Path $_.testFilePath -Extension) -eq '.bicep' }) { param( [object[]] $testFileContent ) - $expectedTestFormat = ($testFileContent | Out-String) -match "\s*module testDeployment '../../deploy.bicep' = {\s*" + $testIndex = ($testFileContent | Select-String ("^module testDeployment '..\/.*deploy.bicep' = {$") | ForEach-Object { $_.LineNumber - 1 })[0] - $expectedTestFormat | Should -Be $true -Because 'the module test invocation should be in the expected format to allow identification.' + $testIndex -ne -1 | Should -Be $true -Because 'the module test invocation should be in the expected format to allow identification.' } It '[] Bicep test deployment name should contain [-test-]' -TestCases ($deploymentTestFileTestCases | Where-Object { (Split-Path $_.testFilePath -Extension) -eq '.bicep' }) { From 67ade81ea0dbf95ad15505a113cfc0fdd033a445 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 20 Aug 2022 11:04:30 +0200 Subject: [PATCH 253/274] Update to latest --- utilities/tools/Set-ModuleReadMe.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index 2527fb881f..fc2758887f 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -664,7 +664,7 @@ function ConvertTo-FormattedJSONParameterObject { $line = $paramInJSONFormatArray[$index] # [2.4] Syntax: Everything left of a leftest ':' should be wrapped in quotes (as a parameter name is always a string) - [regex]$pattern = '\:{0}([0-9a-zA-Z]+):' + [regex]$pattern = '([0-9a-zA-Z]+):' $line = $pattern.replace($line, '"$1":', 1) # [2.5] Syntax: Replace Bicep resource ID references From a700c88240330252e6ecfca13ddb6d640ad652b3 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 20 Aug 2022 11:17:22 +0200 Subject: [PATCH 254/274] Small regex update --- utilities/tools/Set-ModuleReadMe.ps1 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index fc2758887f..37d65e591a 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -663,8 +663,10 @@ function ConvertTo-FormattedJSONParameterObject { $line = $paramInJSONFormatArray[$index] - # [2.4] Syntax: Everything left of a leftest ':' should be wrapped in quotes (as a parameter name is always a string) - [regex]$pattern = '([0-9a-zA-Z]+):' + # [2.4] Syntax: + # - Everything left of a leftest ':' should be wrapped in quotes (as a parameter name is always a string) + # - However, we don't want to accidently catch something like "CriticalAddonsOnly=true:NoSchedule" + [regex]$pattern = '^\s*\"{0}([0-9a-zA-Z]+):' $line = $pattern.replace($line, '"$1":', 1) # [2.5] Syntax: Replace Bicep resource ID references From 159d2103a1037507459548bfc5f18c1aa19e9fe9 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Tue, 23 Aug 2022 11:58:12 +0200 Subject: [PATCH 255/274] typoe --- utilities/tools/Set-ModuleReadMe.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index 37d65e591a..2dafed948c 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -1024,7 +1024,7 @@ function Set-DeploymentExamplesSection { $isParameterFile = $rawContentHashtable.'$schema' -like '*deploymentParameters*' if (-not $isParameterFile) { # Case 1: Uses deployment test file (instead of parameter file). - # [1/3] Need to extract parameters. The taarget is to get an object which 1:1 represents a classic JSON-Parameter file (aside from KeyVault references) + # [1/3] Need to extract parameters. The target is to get an object which 1:1 represents a classic JSON-Parameter file (aside from KeyVault references) $testResource = $rawContentHashtable.resources | Where-Object { $_.name -like '*-test-*' } # [2/3] Build the full ARM-JSON parameter file From bef0039bca5c8851a4cc870ce4936b92876962a3 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Tue, 23 Aug 2022 12:28:58 +0200 Subject: [PATCH 256/274] Added missing quote --- utilities/tools/Set-ModuleReadMe.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index 2dafed948c..2494c8ed96 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -906,7 +906,7 @@ function Set-DeploymentExamplesSection { } else { $exampleTitle = ((Split-Path $testFilePath -LeafBase) -replace '\.', ' ') -replace ' parameters', '' } - $TextInfo = (Get-Culture).TextInfo + $TextInfo = (Get-Culture -Name 'en-US').TextInfo $exampleTitle = $TextInfo.ToTitleCase($exampleTitle) $SectionContent += @( '

Example {0}: {1}

' -f $pathIndex, $exampleTitle @@ -941,7 +941,7 @@ function Set-DeploymentExamplesSection { # [3/6] Format header, remove scope property & any empty line $rawBicepExample = $rawBicepExampleString -split '\n' - $rawBicepExample[0] = "module $resourceType './$resourceTypeIdentifier/deploy.bicep = {" + $rawBicepExample[0] = "module $resourceType './$resourceTypeIdentifier/deploy.bicep' = {" $rawBicepExample = $rawBicepExample | Where-Object { $_ -notmatch 'scope: *' } | Where-Object { -not [String]::IsNullOrEmpty($_) } # [4/6] Extract param block From eee9a275ec4f95feae09e1111ed388d9c48f79d7 Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Sun, 28 Aug 2022 12:57:16 +0200 Subject: [PATCH 257/274] Update Initialize-DeploymentRemoval.ps1 Ensured that key vault is removed before resource group to ensure purge --- .../pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1 | 1 + 1 file changed, 1 insertion(+) diff --git a/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1 b/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1 index cdc76a3710..ff6e202dc7 100644 --- a/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1 +++ b/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1 @@ -72,6 +72,7 @@ function Initialize-DeploymentRemoval { 'Microsoft.OperationsManagement/solutions', 'Microsoft.OperationalInsights/workspaces/linkedServices', 'Microsoft.OperationalInsights/workspaces', + 'Microsoft.KeyVault/vaults', 'Microsoft.Resources/resourceGroups', 'Microsoft.Compute/virtualMachines' ) From 906cf05748da3bc24b2bb95550b079f89cc2313e Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Sun, 28 Aug 2022 12:58:36 +0200 Subject: [PATCH 258/274] Update Invoke-ResourcePostRemoval.ps1 Added KeyVault purge for purge protected key vaults --- .../helper/Invoke-ResourcePostRemoval.ps1 | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/utilities/pipelines/resourceRemoval/helper/Invoke-ResourcePostRemoval.ps1 b/utilities/pipelines/resourceRemoval/helper/Invoke-ResourcePostRemoval.ps1 index 5bb4eddc0d..54a48513f7 100644 --- a/utilities/pipelines/resourceRemoval/helper/Invoke-ResourcePostRemoval.ps1 +++ b/utilities/pipelines/resourceRemoval/helper/Invoke-ResourcePostRemoval.ps1 @@ -63,7 +63,15 @@ function Invoke-ResourcePostRemoval { if ($matchingKeyVault -and -not $matchingKeyVault.EnablePurgeProtection) { Write-Verbose ("Purging key vault [$resourceName]") -Verbose if ($PSCmdlet.ShouldProcess(('Key Vault with ID [{0}]' -f $matchingKeyVault.Id), 'Purge')) { - $null = Remove-AzKeyVault -ResourceId $matchingKeyVault.Id -InRemovedState -Force -Location $matchingKeyVault.Location + try { + $null = Remove-AzKeyVault -ResourceId $matchingKeyVault.Id -InRemovedState -Force -Location $matchingKeyVault.Location -ErrorAction 'Stop' + } catch { + if ($_.Exception.Message -like '*DeletedVaultPurge*') { + Write-Warning ('Purge protection for key vault [{0}] enabled. Skipping. Scheduled purge date is [{1}]' -f $resourceName, $matchingKeyVault.ScheduledPurgeDate) + } else { + throw $_ + } + } } } break From d8dac1e70a72a6f5a608d1d7600a16684e4b3fe9 Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Sun, 28 Aug 2022 16:18:50 +0200 Subject: [PATCH 259/274] Update .azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml Co-authored-by: Marius Storhaug --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 7917461bd1..41fb7ef026 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -241,7 +241,7 @@ jobs: # Handle template file if ($moduleTestFilePath -like '*parameters.json') { - # Original paramter file + # Original parameter file $functionInput['parameterFilePath'] = $moduleTestFilePath } From 0e0fd3e017d3fea382cba37eb7eb36e6ce7b8a47 Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Sun, 28 Aug 2022 16:19:02 +0200 Subject: [PATCH 260/274] Update .azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml Co-authored-by: Marius Storhaug --- .../jobs.validateModuleDeployment.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index 41fb7ef026..b51bfd71f0 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -232,11 +232,11 @@ jobs: # Building input object $functionInput = @{ TemplateFilePath = ($moduleTestFilePath -like '*parameters.json') ? $moduleTemplateFilePath : $moduleTestFilePath - location = $location - resourceGroupName = $resourceGroupName - subscriptionId = $subscriptionId - managementGroupId = $managementGroupId - additionalParameters = @{} + Location = $location + ResourceGroupName = $resourceGroupName + SubscriptionId = $subscriptionId + ManagementGroupId = $managementGroupId + AdditionalParameters = @{} } # Handle template file From eb4e1f6a6fc67f7467c4d764fab2400985249498 Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Sun, 28 Aug 2022 16:19:09 +0200 Subject: [PATCH 261/274] Update .azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml Co-authored-by: Marius Storhaug --- .../pipelineTemplates/jobs.validateModuleDeployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml index b51bfd71f0..7297d60866 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml @@ -369,7 +369,7 @@ jobs: (Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.templateFilePath }}') : (Join-Path '$(System.DefaultWorkingDirectory)' '$(modulePath)' '$(moduleTestFilePath)') ResourceGroupName = '${{ parameters.resourceGroupName }}' - subscriptionId = '${{ parameters.subscriptionId }}' + SubscriptionId = '${{ parameters.subscriptionId }}' ManagementGroupId = '${{ parameters.managementGroupId }}' deploymentName = '$(deploymentName)' Verbose = $true From 33432beb34831edea3ba374ce6d850562c8ece39 Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Sun, 28 Aug 2022 16:19:15 +0200 Subject: [PATCH 262/274] Update .github/actions/templates/validateModuleDeployment/action.yml Co-authored-by: Marius Storhaug --- .../templates/validateModuleDeployment/action.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 24c42ea55f..ba255bd943 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -243,11 +243,11 @@ runs: # ----------------- # $functionInput = @{ TemplateFilePath = ($moduleTestFilePath -like '*parameters.json') ? $moduleTemplateFilePath : $moduleTestFilePath - location = $location - resourceGroupName = $resourceGroupName - subscriptionId = $subscriptionId - managementGroupId = $managementGroupId - additionalParameters = @{} + Location = $location + ResourceGroupName = $resourceGroupName + SubscriptionId = $subscriptionId + ManagementGroupId = $managementGroupId + AdditionalParameters = @{} } # Handle template file From 8f9ba648dec7cc1057b3bdcc32d680716805452c Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Sun, 28 Aug 2022 16:19:41 +0200 Subject: [PATCH 263/274] Update .github/actions/templates/validateModuleDeployment/action.yml Co-authored-by: Marius Storhaug --- .../templates/validateModuleDeployment/action.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index ba255bd943..6d5e975869 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -311,12 +311,12 @@ runs: # ----------------- # $functionInput = @{ TemplateFilePath = ($moduleTestFilePath -like '*parameters.json') ? $moduleTemplateFilePath : $moduleTestFilePath - location = $location - resourceGroupName = $resourceGroupName - subscriptionId = $subscriptionId - managementGroupId = $managementGroupId - doNotThrow = $true - additionalParameters = @{} + Location = $location + ResourceGroupName = $resourceGroupName + SubscriptionId = $subscriptionId + ManagementGroupId = $managementGroupId + DoNotThrow = $true + AdditionalParameters = @{} } # Handle template file From cd421d47ad4d926ff2d58448ea20ab14096f6570 Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Sun, 28 Aug 2022 16:19:56 +0200 Subject: [PATCH 264/274] Update modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep Co-authored-by: Marius Storhaug --- .../.shared/dependencyConstructs/diagnostic.dependencies.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep b/modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep index 3fbaaaf2d2..ec61b48b2f 100644 --- a/modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep +++ b/modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep @@ -2,7 +2,7 @@ // Parameters // // ========== // -@description('Required. The name of the storage account to create') +@description('Required. The name of the storage account to create.') param storageAccountName string @description('Required. The name of the log analytics workspace to create') From 7b8c441a8fb62c61499d4ad73d3c9b075bdcbca2 Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Sun, 28 Aug 2022 16:20:04 +0200 Subject: [PATCH 265/274] Update modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep Co-authored-by: Marius Storhaug --- .../.shared/dependencyConstructs/diagnostic.dependencies.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep b/modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep index ec61b48b2f..37e3af6ff3 100644 --- a/modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep +++ b/modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep @@ -5,7 +5,7 @@ @description('Required. The name of the storage account to create.') param storageAccountName string -@description('Required. The name of the log analytics workspace to create') +@description('Required. The name of the log analytics workspace to create.') param logAnalyticsWorkspaceName string @description('Required. The name of the event hub namespace to be created') From 0a06581922ff3231620bb361774a6c654769b7b2 Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Sun, 28 Aug 2022 16:20:42 +0200 Subject: [PATCH 266/274] Update modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep Co-authored-by: Marius Storhaug --- .../.shared/dependencyConstructs/diagnostic.dependencies.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep b/modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep index 37e3af6ff3..4570c7b3b8 100644 --- a/modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep +++ b/modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep @@ -11,7 +11,7 @@ param logAnalyticsWorkspaceName string @description('Required. The name of the event hub namespace to be created') param eventHubNamespaceName string -@description('Required. The name of the event hub to be created inside the event hub namespace') +@description('Required. The name of the event hub to create inside the event hub namespace.') param eventHubNamespaceEventHubName string @description('Optional. The location to deploy to') From 8e8e6f6efa4ba28c62f1bcabac9627faacf63845 Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Sun, 28 Aug 2022 16:20:47 +0200 Subject: [PATCH 267/274] Update modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep Co-authored-by: Marius Storhaug --- .../.shared/dependencyConstructs/diagnostic.dependencies.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep b/modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep index 4570c7b3b8..96d94788a2 100644 --- a/modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep +++ b/modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep @@ -8,7 +8,7 @@ param storageAccountName string @description('Required. The name of the log analytics workspace to create.') param logAnalyticsWorkspaceName string -@description('Required. The name of the event hub namespace to be created') +@description('Required. The name of the event hub namespace to create.') param eventHubNamespaceName string @description('Required. The name of the event hub to create inside the event hub namespace.') From fea76a83c332fb642162b095ee534f1ce8d98eed Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Sun, 28 Aug 2022 16:22:30 +0200 Subject: [PATCH 268/274] Update modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep Co-authored-by: Marius Storhaug --- .../.shared/dependencyConstructs/diagnostic.dependencies.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep b/modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep index 96d94788a2..db688cf95a 100644 --- a/modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep +++ b/modules/.shared/dependencyConstructs/diagnostic.dependencies.bicep @@ -14,7 +14,7 @@ param eventHubNamespaceName string @description('Required. The name of the event hub to create inside the event hub namespace.') param eventHubNamespaceEventHubName string -@description('Optional. The location to deploy to') +@description('Optional. The location to deploy resources to.') param location string = resourceGroup().location // =========== // From 2b6732e403d5fe578e5ac9aab9e591bbaa9ffb7d Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Sun, 28 Aug 2022 16:23:44 +0200 Subject: [PATCH 269/274] Update docs/wiki/The CI environment - Static validation.md Co-authored-by: Marius Storhaug --- docs/wiki/The CI environment - Static validation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/wiki/The CI environment - Static validation.md b/docs/wiki/The CI environment - Static validation.md index 65cd457e32..3c97c59a88 100644 --- a/docs/wiki/The CI environment - Static validation.md +++ b/docs/wiki/The CI environment - Static validation.md @@ -33,7 +33,7 @@ The following activities are performed by the [`utilities/pipelines/staticValida - **Module Test Files**, e.g.: - at least one `*parameters.json`/`deploy.test.bicep` exists - files should (optionally) be valid JSON - - should contains all required parameters + - must contain all required parameters - (if tokens are used) Tests that no token values (e.g., `11111111-1111-1111-1111-11111111111`) from the specified token list (i.e., `deploymentSpId`, `subscriptionId`, `managementGroupId`, `tenantId`) are used in the module test files. Instead, the token itself should be referenced. ## Output example From d37aa9521b0f7ea6346ed10d5050b28d020c58c6 Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Sun, 28 Aug 2022 16:24:05 +0200 Subject: [PATCH 270/274] Update docs/wiki/The library - Module design.md Co-authored-by: Marius Storhaug --- docs/wiki/The library - Module design.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/wiki/The library - Module design.md b/docs/wiki/The library - Module design.md index 58f1d16b0d..b1ad1d72a0 100644 --- a/docs/wiki/The library - Module design.md +++ b/docs/wiki/The library - Module design.md @@ -534,7 +534,7 @@ As parameters are usually specific to their corresponding template, we only have - A module should have as many module test files as it needs to evaluate all parts of the module's functionality. - Sensitive data should not be stored inside the module test file but rather be injected by the use of tokens, as described in the [Token replacement](./The%20CI%20environment%20-%20Token%20replacement) section, or via a [Key Vault reference](https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/key-vault-parameter?tabs=azure-cli#reference-secrets-with-static-id). -- JSON Parameter File specific +- JSON Parameter file specific - Parameter file names should ideally relate to the content they deploy. For example, a parameter file `min.parameters.json` should be chosen for a parameter file that contains only the minimum set of parameters to deploy the module. - Likewise, the `name` parameter we have in most modules should give some indication of the file it was deployed with. For example, a `min.parameters.json` parameter file for the virtual network module may have a `name` property with the value `sxx-az-vnet-min-001` where `min` relates to the prefix of the parameter file itself. - Bicep File specific From b09c5e733a9f0e43c5721970e234aac7348eae28 Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Sun, 28 Aug 2022 16:24:18 +0200 Subject: [PATCH 271/274] Update docs/wiki/The library - Module design.md Co-authored-by: Marius Storhaug --- docs/wiki/The library - Module design.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/wiki/The library - Module design.md b/docs/wiki/The library - Module design.md index b1ad1d72a0..a304c3a86b 100644 --- a/docs/wiki/The library - Module design.md +++ b/docs/wiki/The library - Module design.md @@ -537,7 +537,7 @@ As parameters are usually specific to their corresponding template, we only have - JSON Parameter file specific - Parameter file names should ideally relate to the content they deploy. For example, a parameter file `min.parameters.json` should be chosen for a parameter file that contains only the minimum set of parameters to deploy the module. - Likewise, the `name` parameter we have in most modules should give some indication of the file it was deployed with. For example, a `min.parameters.json` parameter file for the virtual network module may have a `name` property with the value `sxx-az-vnet-min-001` where `min` relates to the prefix of the parameter file itself. -- Bicep File specific +- Bicep file specific - Each scenario should be setup in its own sub-folder (e.g. `.test/linux`) - Each folder should contain at least a file `deploy.test.bicep` and optionally an additional `dependencies.bicep` file. The `deploy.test.bicep` file should deploy any immediate dependencies (e.g. a resource group, if required) and invoke the module's main template while providing all parameters for a given test scenario. The `dependencies.bicep` should optionally be used if any additional dependencies must be deployed into a nested scope (e.g. into a deployed resource group). - Parameters From f220f28b0207dd7906e6186d2a5364cfda8f6617 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 29 Aug 2022 20:01:48 +0200 Subject: [PATCH 272/274] Update to latest --- docs/wiki/The library - Module design.md | 53 ++++++++++++++++++------ 1 file changed, 41 insertions(+), 12 deletions(-) diff --git a/docs/wiki/The library - Module design.md b/docs/wiki/The library - Module design.md index 58f1d16b0d..b6ba6c8898 100644 --- a/docs/wiki/The library - Module design.md +++ b/docs/wiki/The library - Module design.md @@ -66,6 +66,7 @@ A **CARML module** consists of A module usually represents a single resource or a set of closely related resources. For example, a storage account and the associated lock or virtual machine and network interfaces. Modules are located in the `modules` folder. Also, each module should be implemented with all capabilities it and its children support. This includes + - `Locks` - `Role assignments (RBAC)` - `Diagnostic Settings` @@ -104,7 +105,7 @@ Use the following naming standard for module files and folders: - Module folders are in camelCase and their name reflects the main resource type of the Bicep module they are hosting (e.g., `storageAccounts`, `virtualMachines`). - Extension resource modules are placed in the `.bicep` subfolder and named `nested_.bicep` - ``` txt + ```txt Microsoft. └─ ├─ .bicep @@ -115,17 +116,18 @@ Use the following naming standard for module files and folders: └─ readme.md ``` - >**Example**: `nested_roleAssignments.bicep` in the `Microsoft.Web\sites\.bicep` folder contains the `site` resource RBAC implementation. - >``` txt - >Microsoft.Web - >└─ sites + > **Example**: `nested_roleAssignments.bicep` in the `Microsoft.Web\sites\.bicep` folder contains the `site` resource RBAC implementation. + > + > ```txt + > Microsoft.Web + > └─ sites > ├─ .bicep > | └─ nested_roleAssignments.bicep > ├─ .test > | └─ ... > ├─ deploy.bicep > └─ readme.md - >``` + > ``` ## Patterns @@ -158,6 +160,7 @@ resource _lock 'Microsoft.Authorization/locks@2017-04-01' = if (!e ``` > **Note:** How locks are passed to other resource templates depends on the type of module relationship: +> > - Child and extension resources > - Locks are not automatically passed down, as they are inherited by default in Azure > - The reference of the child/extension template should look similar to: `lock: contains(, 'lock') ? .lock : ''` @@ -181,6 +184,7 @@ The RBAC deployment has 2 elements. A module that contains the implementation, a Details #### 1st Element in main resource + ```bicep @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -200,7 +204,8 @@ module _roleAssignments '.bicep/nested_roleAssignments.bicep' = [f Here, you specify the platform roles available for the main resource. The `builtInRoleNames` variable contains the list of applicable roles for the specific resource which the `nested_roleAssignments.bicep` template applies. ->**Note**: You use the helper script [Get-FormattedRBACRoles.ps1](./Contribution%20guide%20-%20Get%20formatted%20RBAC%20roles) to extract a formatted list of RBAC roles used in the CARML modules based on the RBAC lists in Azure. + +> **Note**: You use the helper script [Get-FormattedRBACRoles.ps1](./Contribution%20guide%20-%20Get%20formatted%20RBAC%20roles) to extract a formatted list of RBAC roles used in the CARML modules based on the RBAC lists in Azure. The element requires you to provide both the `principalIds` & `roleDefinitionOrIdName` to assign to the principal IDs. Also, the `resourceId` is target resource's resource ID that allows us to reference it as an `existing` resource. Note, the implementation of the `split` in the resource reference becomes longer the deeper you go in the child resource hierarchy. @@ -318,11 +323,13 @@ resource _diagnosticSettings 'Microsoft.Insights/diagnosticsetting scope: } ``` +

### Private Endpoints + The Private Endpoint deployment has 2 elements. A module that contains the implementation, and a module reference in the parent resource. The first one loops through the endpoints we want to create, the second one processes them.

@@ -390,9 +397,12 @@ Within a bicep file, use the following conventions: - `resource storageAccount 'Microsoft.Storage/storageAccounts@2019-06-01'` - `resource virtualMachine 'Microsoft.Compute/virtualMachines@2020-06-01'` - Parent reference + - If working on a child resource, refrain from string concatenation and instead, use the parent reference via the `existing` keyword. - The way this is implemented differs slightly the lower you go in the hierarchy. Note the following examples: + - 1st level child resource (example _storageAccount/blobService_) + ```bicep resource storageAccount 'Microsoft.Storage/storageAccounts@2021-06-01' existing = { name: storageAccountName @@ -404,7 +414,9 @@ Within a bicep file, use the following conventions: properties: {...} } ``` + - 2nd level child resource (example _storageAccount/blobService/container_) + ```bicep resource storageAccount 'Microsoft.Storage/storageAccounts@2021-06-01' existing = { name: storageAccountName @@ -420,7 +432,9 @@ Within a bicep file, use the following conventions: properties: {...} } ``` + - 3rd level child resource (example _storageAccount/blobService/container/immutabilityPolicies_) + ```bicep resource storageAccount 'Microsoft.Storage/storageAccounts@2021-06-01' existing = { name: storageAccountName @@ -440,11 +454,12 @@ Within a bicep file, use the following conventions: properties: {...} } ``` + ## Modules - - Module symbolic names are in camel_Snake_Case, following the schema `_` e.g., `storageAccount_fileServices`, `virtualMachine_nic`, `resourceGroup_roleAssignments`. - - Modules enable you to reuse code from a Bicep file in other Bicep files. As such, they're normally leveraged for deploying child resources (e.g., file services in a storage account), cross referenced resources (e.g., network interface in a virtual machine) or extension resources (e.g., role assignment in a resource group). - - When a module requires to deploy a resource whose resource type is outside of the main module's provider namespace, the module of this additional resource is referenced locally. For example, when extending the Key Vault module with Private Endpoints, instead of including in the Key Vault module an ad hoc implementation of a Private Endpoint, the Key Vault directly references the Private Endpoint module (i.e., `module privateEndpoint 'https://github.com/Azure/ResourceModules/blob/main/Microsoft.Network/privateEndpoints/deploy.bicep'`). Major benefits of this implementation are less code duplication, more consistency throughout the module library and allowing the consumer to leverage the full interface provided by the referenced module. +- Module symbolic names are in camel*Snake_Case, following the schema `*`e.g.,`storageAccount_fileServices`, `virtualMachine_nic`, `resourceGroup_roleAssignments`. +- Modules enable you to reuse code from a Bicep file in other Bicep files. As such, they're normally leveraged for deploying child resources (e.g., file services in a storage account), cross referenced resources (e.g., network interface in a virtual machine) or extension resources (e.g., role assignment in a resource group). +- When a module requires to deploy a resource whose resource type is outside of the main module's provider namespace, the module of this additional resource is referenced locally. For example, when extending the Key Vault module with Private Endpoints, instead of including in the Key Vault module an ad hoc implementation of a Private Endpoint, the Key Vault directly references the Private Endpoint module (i.e., `module privateEndpoint 'https://github.com/Azure/ResourceModules/blob/main/Microsoft.Network/privateEndpoints/deploy.bicep'`). Major benefits of this implementation are less code duplication, more consistency throughout the module library and allowing the consumer to leverage the full interface provided by the referenced module. > **Note**: Cross-referencing modules from the local repository creates a dependency for the modules applying this technique on the referenced modules being part of the local repository. Reusing the example from above, the Key Vault module has a dependency on the referenced Private Endpoint module, meaning that the repository from which the Key Vault module is deployed also requires the Private Endpoint module to be present. For this reason, we provide a utility to check for any local module references in a given path. This can be useful to determine which module folders you'd need if you don't want to keep the entire library. For further information on how to use the tool, please refer to the tool-specific [documentation](./Getting%20started%20-%20Get%20module%20cross-references). ### Deployment names @@ -469,7 +484,9 @@ While exceptions might be needed, the following guidance should be followed as m ... }] ``` + > **Example**: for the `roleAssignment` deployment in the Key Vault `secrets` template + > > ``` > module secret_roleAssignments '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { > name: '${deployment().name}-Rbac-${index}' @@ -480,7 +497,9 @@ While exceptions might be needed, the following guidance should be followed as m ``` '${uniqueString(deployment().name, location)}--' ``` + > **Example**: for the `tableServices` deployment inside the `storageAccount` template + > > ``` > name: '${uniqueString(deployment().name, location)}-Storage-TableServices' > ``` @@ -490,7 +509,9 @@ While exceptions might be needed, the following guidance should be followed as m ``` '${deployment().name}-[-${index}]' ``` + > **Example**: for the `tables` deployment in the `tableServices` template + > > ``` > name: '${deployment().name}-Table-${index}' > ``` @@ -512,6 +533,7 @@ While exceptions might be needed, the following guidance should be followed as m Each module must come with a ReadMe Markdown file that outlines what the module contains and 'how' it can be used. Its primary components are in order: + - A title with a reference to the primary resource in Start Case followed by the primary resource namespace e.g., Key Vaults `[Microsoft.KeyVault/vaults]`. - A short description - A **Resource types** section with a table that outlines all resources that can be deployed as part of the module. @@ -521,16 +543,19 @@ Its primary components are in order: - A **Template references** section listing relevant resources [Azure resource reference](https://docs.microsoft.com/en-us/azure/templates). Note the following recommendations: + - Refer to [Generate module Readme](./Contribution%20guide%20-%20Generate%20module%20Readme) for creating from scratch or updating the module ReadMe Markdown file. - It is not recommended to describe how to use child resources in the parent readme file (for example, 'How to define a \[container] entry for the \[storage account]'). Instead, it is recommended to reference the child resource's ReadMe (for example, 'container/readme.md'). # Module test files Module test files in CARML are implemented in + - a classic way leveraging the common `deploymentParameters.json` schema for ARM deployments or - using comprehensive `.bicep` test files that not only test the module's template in a certain scenario, but also deploy any required dependency for it. All classic test files will be migrated to this module following the issue [1583](https://github.com/Azure/ResourceModules/issues/1583). -As parameters are usually specific to their corresponding template, we only have a few general recommendations: +In either case, we follow the following, general guidelines: + - A module should have as many module test files as it needs to evaluate all parts of the module's functionality. - Sensitive data should not be stored inside the module test file but rather be injected by the use of tokens, as described in the [Token replacement](./The%20CI%20environment%20-%20Token%20replacement) section, or via a [Key Vault reference](https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/key-vault-parameter?tabs=azure-cli#reference-secrets-with-static-id). @@ -538,6 +563,7 @@ As parameters are usually specific to their corresponding template, we only have - Parameter file names should ideally relate to the content they deploy. For example, a parameter file `min.parameters.json` should be chosen for a parameter file that contains only the minimum set of parameters to deploy the module. - Likewise, the `name` parameter we have in most modules should give some indication of the file it was deployed with. For example, a `min.parameters.json` parameter file for the virtual network module may have a `name` property with the value `sxx-az-vnet-min-001` where `min` relates to the prefix of the parameter file itself. - Bicep File specific + - Each scenario should be setup in its own sub-folder (e.g. `.test/linux`) - Each folder should contain at least a file `deploy.test.bicep` and optionally an additional `dependencies.bicep` file. The `deploy.test.bicep` file should deploy any immediate dependencies (e.g. a resource group, if required) and invoke the module's main template while providing all parameters for a given test scenario. The `dependencies.bicep` should optionally be used if any additional dependencies must be deployed into a nested scope (e.g. into a deployed resource group). - Parameters @@ -627,13 +653,15 @@ As parameters are usually specific to their corresponding template, we only have } } ``` +
# Telemetry -Each module in CARML contains a `defaultTelemetry` deployment `'pid--${uniqueString(deployment().name)}'`, resulting in deployments such as `'pid--nx2c3rnlt2wru'`. +Each module in CARML contains a `defaultTelemetry` deployment `'pid--${uniqueString(deployment().name)}'`, resulting in deployments such as `'pid--nx2c3rnlt2wru'`. > **Note:** Though implemented at each level in a module hierarchy (e.g., storage account & blobServices), the deployment will only happen for the top-level module in a deployment, but not for its children. To illustrate this better, see the following examples: +> > - Deployment of the KeyVault module and 2 Secrets: Results in 1 `PID` deployment for the KeyVault (and none for the secrets) > - Deployment of the Secret module: Results in 1 `PID` deployment for the Secret @@ -642,6 +670,7 @@ This resource enables the CARML product team to query the number of deployments When using CARML's CI environment you can enable/disable this deployment by switching the `enableDefaultTelemetry` setting in the `settings.yml` file in the repository's root. This value is automatically injected into each individual deployment that is performed as part of the environment's pipeline. When consuming the modules outside of CARML's pipelines you can either + - Set the parameter to a default value of `'false'` - Set the parameter to false when deploying a module From e54f97631ed8146068e48ff380c07919628b3e10 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 29 Aug 2022 20:04:01 +0200 Subject: [PATCH 273/274] Update to latest --- docs/wiki/The library - Module design.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/wiki/The library - Module design.md b/docs/wiki/The library - Module design.md index b6ba6c8898..03c757a969 100644 --- a/docs/wiki/The library - Module design.md +++ b/docs/wiki/The library - Module design.md @@ -559,6 +559,8 @@ In either case, we follow the following, general guidelines: - A module should have as many module test files as it needs to evaluate all parts of the module's functionality. - Sensitive data should not be stored inside the module test file but rather be injected by the use of tokens, as described in the [Token replacement](./The%20CI%20environment%20-%20Token%20replacement) section, or via a [Key Vault reference](https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/key-vault-parameter?tabs=azure-cli#reference-secrets-with-static-id). +In addition, we follow the following, file-type-specific guidelines: + - JSON Parameter File specific - Parameter file names should ideally relate to the content they deploy. For example, a parameter file `min.parameters.json` should be chosen for a parameter file that contains only the minimum set of parameters to deploy the module. - Likewise, the `name` parameter we have in most modules should give some indication of the file it was deployed with. For example, a `min.parameters.json` parameter file for the virtual network module may have a `name` property with the value `sxx-az-vnet-min-001` where `min` relates to the prefix of the parameter file itself. From 696bd96e0f15de22cdc06c506d26a7f941712153 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Mon, 29 Aug 2022 21:11:55 +0200 Subject: [PATCH 274/274] Update to latest --- docs/wiki/The library - Module design.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/wiki/The library - Module design.md b/docs/wiki/The library - Module design.md index e88884056f..a2bbe007e0 100644 --- a/docs/wiki/The library - Module design.md +++ b/docs/wiki/The library - Module design.md @@ -457,7 +457,7 @@ Within a bicep file, use the following conventions: ## Modules -- Module symbolic names are in camel*Snake_Case, following the schema `*`e.g.,`storageAccount_fileServices`, `virtualMachine_nic`, `resourceGroup_roleAssignments`. +- Module symbolic names are in camel_Snake_Case, following the schema `_` e.g., `storageAccount_fileServices`, `virtualMachine_nic`, `resourceGroup_roleAssignments`. - Modules enable you to reuse code from a Bicep file in other Bicep files. As such, they're normally leveraged for deploying child resources (e.g., file services in a storage account), cross referenced resources (e.g., network interface in a virtual machine) or extension resources (e.g., role assignment in a resource group). - When a module requires to deploy a resource whose resource type is outside of the main module's provider namespace, the module of this additional resource is referenced locally. For example, when extending the Key Vault module with Private Endpoints, instead of including in the Key Vault module an ad hoc implementation of a Private Endpoint, the Key Vault directly references the Private Endpoint module (i.e., `module privateEndpoint 'https://github.com/Azure/ResourceModules/blob/main/Microsoft.Network/privateEndpoints/deploy.bicep'`). Major benefits of this implementation are less code duplication, more consistency throughout the module library and allowing the consumer to leverage the full interface provided by the referenced module. > **Note**: Cross-referencing modules from the local repository creates a dependency for the modules applying this technique on the referenced modules being part of the local repository. Reusing the example from above, the Key Vault module has a dependency on the referenced Private Endpoint module, meaning that the repository from which the Key Vault module is deployed also requires the Private Endpoint module to be present. For this reason, we provide a utility to check for any local module references in a given path. This can be useful to determine which module folders you'd need if you don't want to keep the entire library. For further information on how to use the tool, please refer to the tool-specific [documentation](./Getting%20started%20-%20Get%20module%20cross-references).