diff --git a/.azuredevops/modulePipelines/ms.healthcareapis.workspaces.yml b/.azuredevops/modulePipelines/ms.healthcareapis.workspaces.yml new file mode 100644 index 0000000000..73650852cd --- /dev/null +++ b/.azuredevops/modulePipelines/ms.healthcareapis.workspaces.yml @@ -0,0 +1,40 @@ +name: 'HealthcareApis - Workspaces' + +parameters: + - name: removeDeployment + displayName: Remove deployed module + type: boolean + default: true + - name: prerelease + displayName: Publish prerelease module + type: boolean + default: false + +pr: none + +trigger: + batch: true + branches: + include: + - main + paths: + include: + - '/.azuredevops/modulePipelines/ms.healthcareapis.workspaces.yml' + - '/.azuredevops/pipelineTemplates/*.yml' + - '/modules/Microsoft.HealthcareApis/workspaces/*' + - '/utilities/pipelines/*' + exclude: + - '/utilities/pipelines/deploymentRemoval/*' + - '/**/*.md' + +variables: + - template: '../../settings.yml' + - group: 'PLATFORM_VARIABLES' + - name: modulePath + value: '/modules/Microsoft.HealthcareApis/workspaces' + +stages: + - template: /.azuredevops/pipelineTemplates/stages.module.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + prerelease: '${{ parameters.prerelease }}' diff --git a/.github/workflows/ms.healthcareapis.workspaces.yml b/.github/workflows/ms.healthcareapis.workspaces.yml new file mode 100644 index 0000000000..1a7373b933 --- /dev/null +++ b/.github/workflows/ms.healthcareapis.workspaces.yml @@ -0,0 +1,144 @@ +name: 'HealthcareApis: Workspaces' + +on: + workflow_dispatch: + inputs: + removeDeployment: + type: boolean + description: 'Remove deployed module' + required: false + default: true + prerelease: + type: boolean + description: 'Publish prerelease module' + required: false + default: false + push: + branches: + - main + paths: + - '.github/actions/templates/**' + - '.github/workflows/ms.healthcareapis.workspaces.yml' + - 'modules/Microsoft.HealthcareApis/workspaces/**' + - 'utilities/pipelines/**' + - '!utilities/pipelines/deploymentRemoval/**' + - '!*/**/readme.md' + +env: + variablesPath: 'settings.yml' + modulePath: 'modules/Microsoft.HealthcareApis/workspaces' + workflowPath: '.github/workflows/ms.healthcareapis.workspaces.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 }}' + TOKEN_NAMEPREFIX: '${{ secrets.TOKEN_NAMEPREFIX }}' + +jobs: + ########################### + # Initialize pipeline # + ########################### + job_initialize_pipeline: + runs-on: ubuntu-20.04 + name: 'Initialize pipeline' + steps: + - name: 'Checkout' + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - 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' + id: get-module-test-file-paths + uses: ./.github/actions/templates/getModuleTestFiles + with: + modulePath: '${{ env.modulePath }}' + outputs: + workflowInput: ${{ steps.get-workflow-param.outputs.workflowInput }} + moduleTestFilePaths: ${{ steps.get-module-test-file-paths.outputs.moduleTestFilePaths }} + + ######################### + # Static validation # + ######################### + job_module_pester_validation: + runs-on: ubuntu-20.04 + name: 'Static validation' + steps: + - name: 'Checkout' + uses: actions/checkout@v3 + 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 # + ############################# + job_module_deploy_validation: + runs-on: ubuntu-20.04 + name: 'Deployment validation' + needs: + - job_initialize_pipeline + - job_module_pester_validation + strategy: + fail-fast: false + matrix: + moduleTestFilePaths: ${{ fromJson(needs.job_initialize_pipeline.outputs.moduleTestFilePaths) }} + steps: + - name: 'Checkout' + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Set environment variables + uses: ./.github/actions/templates/setEnvironmentVariables + with: + variablesPath: ${{ env.variablesPath }} + - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' + uses: ./.github/actions/templates/validateModuleDeployment + with: + templateFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' + location: '${{ env.location }}' + subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' + managementGroupId: '${{ secrets.ARM_MGMTGROUP_ID }}' + removeDeployment: '${{ (fromJson(needs.job_initialize_pipeline.outputs.workflowInput)).removeDeployment }}' + + ################## + # Publishing # + ################## + job_publish_module: + 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' + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Set environment variables + uses: ./.github/actions/templates/setEnvironmentVariables + with: + variablesPath: ${{ env.variablesPath }} + - 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 }}' diff --git a/README.md b/README.md index ac20196658..9d3aeb690a 100644 --- a/README.md +++ b/README.md @@ -18,143 +18,144 @@ 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/modules/Microsoft.Insights/actionGroups) | [](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) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.insights.activitylogalerts.yml) | -| [Activity Logs](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/diagnosticSettings) | [](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) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.analysisservices.servers.yml) | -| [API Connections](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Web/connections) | [](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) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.apimanagement.service.yml) | -| [App Configuration](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.AppConfiguration/configurationStores) | [](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) | [](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) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.web.serverfarms.yml) | -| [Application Gateway WebApp Firewall Policies](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.applicationgatewaywebapplicationfirewallpolicies.yml) | -| [Application Insights](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/components) | [](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) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.applicationsecuritygroups.yml) | -| [Authorization Locks](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/locks) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.authorization.locks.yml) | -| [Automation Accounts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Automation/automationAccounts) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.automation.automationaccounts.yml) | -| [Availability Sets](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/availabilitySets) | [](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) | [](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) | [](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) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.desktopvirtualization.scalingplans.yml) | -| [AVD Workspaces](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/workspaces) | [](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) | [](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) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.compute.galleries.yml) | -| [Azure Databricks](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Databricks/workspaces) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.databricks.workspaces.yml) | -| [Azure Firewalls](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/azureFirewalls) | [](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) | [](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) | [](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) | [](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) | [](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) | [](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) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.synapse.privatelinkhubs.yml) | -| [Bastion Hosts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/bastionHosts) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.bastionhosts.yml) | -| [Batch Accounts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Batch/batchAccounts) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.batch.batchaccounts.yml) | -| [Budgets](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Consumption/budgets) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.consumption.budgets.yml) | -| [Cache Redis](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Cache/redis) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.cache.redis.yml) | -| [CDN Profiles](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.CDN/profiles) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.cdn.profiles.yml) | -| [Cognitive Services](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.CognitiveServices/accounts) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.cognitiveservices.accounts.yml) | -| [Compute Disks](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/disks) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.compute.disks.yml) | -| [Container Instances](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ContainerInstance/containerGroups) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.containerinstance.containergroups.yml) | -| [Container Registries](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ContainerRegistry/registries) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.containerregistry.registries.yml) | -| [Data Factories](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DataFactory/factories) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.datafactory.factories.yml) | -| [DataCollectionEndpoints](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/dataCollectionEndpoints) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.insights.datacollectionendpoints.yml) | -| [DataCollectionRules](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/dataCollectionRules) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.insights.datacollectionrules.yml) | -| [DataProtection BackupVaults](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DataProtection/backupVaults) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.dataprotection.backupvaults.yml) | -| [DBforPostgreSQL FlexibleServers](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DBforPostgreSQL/flexibleServers) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.dbforpostgresql.flexibleservers.yml) | -| [DDoS Protection Plans](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/ddosProtectionPlans) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.ddosprotectionplans.yml) | -| [Deployment Scripts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Resources/deploymentScripts) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.resources.deploymentscripts.yml) | -| [DevTestLab Labs](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DevTestLab/labs) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.devtestlab.labs.yml) | -| [Disk Encryption Sets](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/diskEncryptionSets) | [](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) | [](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) | [](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) | [](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) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.eventhub.namespaces.yml) | -| [EventGrid Domains](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.EventGrid/domains) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.eventgrid.domains.yml) | -| [EventGrid EventSubscriptions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.EventGrid/eventSubscriptions) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.eventgrid.eventsubscriptions.yml) | -| [ExpressRoute Circuits](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/expressRouteCircuits) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.expressroutecircuits.yml) | -| [Firewall Policies](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/firewallPolicies) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.firewallpolicies.yml) | -| [Front Doors](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/frontDoors) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.frontdoors.yml) | -| [Image Templates](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.VirtualMachineImages/imageTemplates) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.virtualmachineimages.imagetemplates.yml) | -| [Images](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/images) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.compute.images.yml) | -| [IP Groups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/ipGroups) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.ipgroups.yml) | -| [Key Vaults](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.KeyVault/vaults) | [](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) | [](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) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.kubernetesconfiguration.fluxconfigurations.yml) | -| [Load Balancers](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/loadBalancers) | [](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) | [](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) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.operationalinsights.workspaces.yml) | -| [Logic Apps](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Logic/workflows) | [](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) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.machinelearningservices.workspaces.yml) | -| [Maintenance Configurations](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Maintenance/maintenanceConfigurations) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.maintenance.maintenanceconfigurations.yml) | -| [Management Groups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Management/managementGroups) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.management.managementgroups.yml) | -| [Metric Alerts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/metricAlerts) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.insights.metricalerts.yml) | -| [NAT Gateways](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/natGateways) | [](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) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.applicationgateways.yml) | -| [Network DnsResolvers](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/dnsResolvers) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.dnsresolvers.yml) | -| [Network Interface](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/networkInterfaces) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.networkinterfaces.yml) | -| [Network NetworkManagers](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/networkManagers) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.networkmanagers.yml) | -| [Network PrivateLinkServices](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/privateLinkServices) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.privatelinkservices.yml) | -| [Network Security Groups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/networkSecurityGroups) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.networksecuritygroups.yml) | -| [Network Watchers](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/networkWatchers) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.networkwatchers.yml) | -| [OperationsManagement Solutions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.OperationsManagement/solutions) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.operationsmanagement.solutions.yml) | -| [Policy Assignments](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/policyAssignments) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.authorization.policyassignments.yml) | -| [Policy Definitions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/policyDefinitions) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.authorization.policydefinitions.yml) | -| [Policy Exemptions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/policyExemptions) | [](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) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.authorization.policysetdefinitions.yml) | -| [PolicyInsights Remediations](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.PolicyInsights/remediations) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.policyinsights.remediations.yml) | -| [PowerBIDedicated Capacities](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.PowerBIDedicated/capacities) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.powerbidedicated.capacities.yml) | -| [Private DNS Zones](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/privateDnsZones) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.privatednszones.yml) | -| [Private Endpoints](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/privateEndpoints) | [](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) | [](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) | [](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) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.publicipprefixes.yml) | -| [Purview Accounts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Purview/accounts) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.purview.accounts.yml) | -| [Recovery Services Vaults](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.RecoveryServices/vaults) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.recoveryservices.vaults.yml) | -| [Registration Definitions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.ManagedServices/registrationDefinitions) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.managedservices.registrationdefinitions.yml) | -| [Resource Groups](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Resources/resourceGroups) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.resources.resourcegroups.yml) | -| [Resources Tags](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Resources/tags) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.resources.tags.yml) | -| [Role Assignments](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/roleAssignments) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.authorization.roleassignments.yml) | -| [Role Definitions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Authorization/roleDefinitions) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.authorization.roledefinitions.yml) | -| [Route Tables](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/routeTables) | [](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) | [](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) | [](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) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.servicefabric.clusters.yml) | -| [SignalRService SignalR](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.SignalRService/signalR) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.signalrservice.signalr.yml) | -| [SQL Managed Instances](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Sql/managedInstances) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.sql.managedinstances.yml) | -| [SQL Servers](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Sql/servers) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.sql.servers.yml) | -| [Static Web Apps](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Web/staticSites) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.web.staticsites.yml) | -| [Storage Accounts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Storage/storageAccounts) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.storage.storageaccounts.yml) | -| [Synapse Workspaces](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Synapse/workspaces) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.synapse.workspaces.yml) | -| [Traffic Manager Profiles](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/trafficmanagerprofiles) | [](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) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.managedidentity.userassignedidentities.yml) | -| [Virtual Hubs](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/virtualHubs) | [](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) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.compute.virtualmachinescalesets.yml) | -| [Virtual Machines](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Compute/virtualMachines) | [](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) | [](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) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.virtualnetworkgateways.yml) | -| [Virtual Networks](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/virtualNetworks) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.virtualnetworks.yml) | -| [Virtual WANs](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/virtualWans) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.virtualwans.yml) | -| [VPN Gateways](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/vpnGateways) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.vpngateways.yml) | -| [VPN Sites](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/vpnSites) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.vpnsites.yml) | -| [Web PubSub Services](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.SignalRService/webPubSub) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.signalrservice.webpubsub.yml) | -| [Web/Function Apps](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Web/sites) | [](https://github.com/Azure/ResourceModules/actions/workflows/ms.web.sites.yml) | +| [Action Groups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/actionGroups) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.insights.actiongroups.yml) | +| [Activity Log Alerts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/activityLogAlerts) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.insights.activitylogalerts.yml) | +| [Activity Logs](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/diagnosticSettings) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.insights.diagnosticsettings.yml) | +| [Analysis Services Servers](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.AnalysisServices/servers) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.analysisservices.servers.yml) | +| [API Connections](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Web/connections) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.web.connections.yml) | +| [API Management Services](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.ApiManagement/service) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.apimanagement.service.yml) | +| [App Configuration](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.AppConfiguration/configurationStores) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.appconfiguration.configurationstores.yml) | +| [App Service Environments](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Web/hostingEnvironments) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.web.hostingenvironments.yml) | +| [App Service Plans](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Web/serverfarms) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.web.serverfarms.yml) | +| [Application Gateway WebApp Firewall Policies](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.applicationgatewaywebapplicationfirewallpolicies.yml) | +| [Application Insights](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/components) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.insights.components.yml) | +| [Application Security Groups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/applicationSecurityGroups) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.applicationsecuritygroups.yml) | +| [Authorization Locks](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Authorization/locks) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.authorization.locks.yml) | +| [Automation Accounts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Automation/automationAccounts) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.automation.automationaccounts.yml) | +| [Availability Sets](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Compute/availabilitySets) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.compute.availabilitysets.yml) | +| [AVD Application Groups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/applicationgroups) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.desktopvirtualization.applicationgroups.yml) | +| [AVD Host Pools](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/hostpools) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.desktopvirtualization.hostpools.yml) | +| [AVD Scaling Plans](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/scalingplans) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.desktopvirtualization.scalingplans.yml) | +| [AVD Workspaces](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/workspaces) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.desktopvirtualization.workspaces.yml) | +| [Azure Active Directory Domain Services](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.AAD/DomainServices) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.aad.domainservices.yml) | +| [Azure Compute Galleries](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Compute/galleries) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.compute.galleries.yml) | +| [Azure Databricks](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Databricks/workspaces) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.databricks.workspaces.yml) | +| [Azure Firewalls](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/azureFirewalls) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.azurefirewalls.yml) | +| [Azure Health Bots](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.HealthBot/healthBots) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.healthbot.healthbots.yml) | +| [Azure Kubernetes Services](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.ContainerService/managedClusters) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.containerservice.managedclusters.yml) | +| [Azure Monitor Private Link Scopes](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/privateLinkScopes) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.insights.privatelinkscopes.yml) | +| [Azure NetApp Files](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.NetApp/netAppAccounts) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.netapp.netappaccounts.yml) | +| [Azure Security Center](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Security/azureSecurityCenter) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.security.azuresecuritycenter.yml) | +| [Azure Synapse Analytics](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Synapse/privateLinkHubs) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.synapse.privatelinkhubs.yml) | +| [Bastion Hosts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/bastionHosts) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.bastionhosts.yml) | +| [Batch Accounts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Batch/batchAccounts) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.batch.batchaccounts.yml) | +| [Budgets](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Consumption/budgets) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.consumption.budgets.yml) | +| [Cache Redis](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Cache/redis) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.cache.redis.yml) | +| [CDN Profiles](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.CDN/profiles) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.cdn.profiles.yml) | +| [Cognitive Services](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.CognitiveServices/accounts) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.cognitiveservices.accounts.yml) | +| [Compute Disks](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Compute/disks) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.compute.disks.yml) | +| [Container Instances](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.ContainerInstance/containerGroups) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.containerinstance.containergroups.yml) | +| [Container Registries](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.ContainerRegistry/registries) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.containerregistry.registries.yml) | +| [Data Factories](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DataFactory/factories) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.datafactory.factories.yml) | +| [DataCollectionEndpoints](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/dataCollectionEndpoints) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.insights.datacollectionendpoints.yml) | +| [DataCollectionRules](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/dataCollectionRules) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.insights.datacollectionrules.yml) | +| [DataProtection BackupVaults](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DataProtection/backupVaults) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.dataprotection.backupvaults.yml) | +| [DBforPostgreSQL FlexibleServers](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DBforPostgreSQL/flexibleServers) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.dbforpostgresql.flexibleservers.yml) | +| [DDoS Protection Plans](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/ddosProtectionPlans) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.ddosprotectionplans.yml) | +| [Deployment Scripts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Resources/deploymentScripts) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.resources.deploymentscripts.yml) | +| [DevTestLab Labs](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DevTestLab/labs) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.devtestlab.labs.yml) | +| [Disk Encryption Sets](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Compute/diskEncryptionSets) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.compute.diskencryptionsets.yml) | +| [DocumentDB Database Accounts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DocumentDB/databaseAccounts) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.documentdb.databaseaccounts.yml) | +| [Event Grid System Topics](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.EventGrid/systemTopics) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.eventgrid.systemtopics.yml) | +| [Event Grid Topics](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.EventGrid/topics) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.eventgrid.topics.yml) | +| [Event Hub Namespaces](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.EventHub/namespaces) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.eventhub.namespaces.yml) | +| [EventGrid Domains](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.EventGrid/domains) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.eventgrid.domains.yml) | +| [EventGrid EventSubscriptions](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.EventGrid/eventSubscriptions) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.eventgrid.eventsubscriptions.yml) | +| [ExpressRoute Circuits](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/expressRouteCircuits) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.expressroutecircuits.yml) | +| [Firewall Policies](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/firewallPolicies) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.firewallpolicies.yml) | +| [Front Doors](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/frontDoors) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.frontdoors.yml) | +| [HealthcareApis Workspaces](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.HealthcareApis/workspaces) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.healthcareapis.workspaces.yml) | +| [Image Templates](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.VirtualMachineImages/imageTemplates) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.virtualmachineimages.imagetemplates.yml) | +| [Images](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Compute/images) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.compute.images.yml) | +| [IP Groups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/ipGroups) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.ipgroups.yml) | +| [Key Vaults](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.KeyVault/vaults) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.keyvault.vaults.yml) | +| [Kubernetes Configuration Extensions](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.KubernetesConfiguration/extensions) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.kubernetesconfiguration.extensions.yml) | +| [Kubernetes Configuration Flux Configurations](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.KubernetesConfiguration/fluxConfigurations) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.kubernetesconfiguration.fluxconfigurations.yml) | +| [Load Balancers](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/loadBalancers) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.loadbalancers.yml) | +| [Local Network Gateways](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/localNetworkGateways) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.localnetworkgateways.yml) | +| [Log Analytics Workspaces](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.OperationalInsights/workspaces) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.operationalinsights.workspaces.yml) | +| [Logic Apps](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Logic/workflows) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.logic.workflows.yml) | +| [Machine Learning Workspaces](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.MachineLearningServices/workspaces) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.machinelearningservices.workspaces.yml) | +| [Maintenance Configurations](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Maintenance/maintenanceConfigurations) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.maintenance.maintenanceconfigurations.yml) | +| [Management Groups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Management/managementGroups) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.management.managementgroups.yml) | +| [Metric Alerts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/metricAlerts) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.insights.metricalerts.yml) | +| [NAT Gateways](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/natGateways) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.natgateways.yml) | +| [Network Application Gateways](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/applicationGateways) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.applicationgateways.yml) | +| [Network DnsResolvers](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/dnsResolvers) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.dnsresolvers.yml) | +| [Network Interface](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/networkInterfaces) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.networkinterfaces.yml) | +| [Network NetworkManagers](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/networkManagers) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.networkmanagers.yml) | +| [Network PrivateLinkServices](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/privateLinkServices) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.privatelinkservices.yml) | +| [Network Security Groups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/networkSecurityGroups) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.networksecuritygroups.yml) | +| [Network Watchers](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/networkWatchers) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.networkwatchers.yml) | +| [OperationsManagement Solutions](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.OperationsManagement/solutions) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.operationsmanagement.solutions.yml) | +| [Policy Assignments](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Authorization/policyAssignments) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.authorization.policyassignments.yml) | +| [Policy Definitions](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Authorization/policyDefinitions) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.authorization.policydefinitions.yml) | +| [Policy Exemptions](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Authorization/policyExemptions) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.authorization.policyexemptions.yml) | +| [Policy Set Definitions](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Authorization/policySetDefinitions) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.authorization.policysetdefinitions.yml) | +| [PolicyInsights Remediations](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.PolicyInsights/remediations) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.policyinsights.remediations.yml) | +| [PowerBIDedicated Capacities](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.PowerBIDedicated/capacities) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.powerbidedicated.capacities.yml) | +| [Private DNS Zones](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/privateDnsZones) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.privatednszones.yml) | +| [Private Endpoints](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/privateEndpoints) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.privateendpoints.yml) | +| [Proximity Placement Groups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Compute/proximityPlacementGroups) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.compute.proximityplacementgroups.yml) | +| [Public IP Addresses](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/publicIPAddresses) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.publicipaddresses.yml) | +| [Public IP Prefixes](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/publicIPPrefixes) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.publicipprefixes.yml) | +| [Purview Accounts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Purview/accounts) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.purview.accounts.yml) | +| [Recovery Services Vaults](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.RecoveryServices/vaults) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.recoveryservices.vaults.yml) | +| [Registration Definitions](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.ManagedServices/registrationDefinitions) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.managedservices.registrationdefinitions.yml) | +| [Resource Groups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Resources/resourceGroups) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.resources.resourcegroups.yml) | +| [Resources Tags](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Resources/tags) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.resources.tags.yml) | +| [Role Assignments](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Authorization/roleAssignments) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.authorization.roleassignments.yml) | +| [Role Definitions](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Authorization/roleDefinitions) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.authorization.roledefinitions.yml) | +| [Route Tables](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/routeTables) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.routetables.yml) | +| [Scheduled Query Rules](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/scheduledQueryRules) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.insights.scheduledqueryrules.yml) | +| [Service Bus Namespaces](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.ServiceBus/namespaces) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.servicebus.namespaces.yml) | +| [Service Fabric Clusters](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.ServiceFabric/clusters) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.servicefabric.clusters.yml) | +| [SignalRService SignalR](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.SignalRService/signalR) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.signalrservice.signalr.yml) | +| [SQL Managed Instances](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Sql/managedInstances) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.sql.managedinstances.yml) | +| [SQL Servers](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Sql/servers) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.sql.servers.yml) | +| [Static Web Apps](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Web/staticSites) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.web.staticsites.yml) | +| [Storage Accounts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Storage/storageAccounts) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.storage.storageaccounts.yml) | +| [Synapse Workspaces](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Synapse/workspaces) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.synapse.workspaces.yml) | +| [Traffic Manager Profiles](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/trafficmanagerprofiles) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.trafficmanagerprofiles.yml) | +| [User Assigned Identities](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.ManagedIdentity/userAssignedIdentities) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.managedidentity.userassignedidentities.yml) | +| [Virtual Hubs](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/virtualHubs) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.virtualhubs.yml) | +| [Virtual Machine Scale Sets](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Compute/virtualMachineScaleSets) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.compute.virtualmachinescalesets.yml) | +| [Virtual Machines](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Compute/virtualMachines) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.compute.virtualmachines.yml) | +| [Virtual Network Gateway Connections](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/connections) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.connections.yml) | +| [Virtual Network Gateways](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/virtualNetworkGateways) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.virtualnetworkgateways.yml) | +| [Virtual Networks](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/virtualNetworks) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.virtualnetworks.yml) | +| [Virtual WANs](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/virtualWans) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.virtualwans.yml) | +| [VPN Gateways](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/vpnGateways) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.vpngateways.yml) | +| [VPN Sites](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/vpnSites) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.network.vpnsites.yml) | +| [Web PubSub Services](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.SignalRService/webPubSub) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.signalrservice.webpubsub.yml) | +| [Web/Function Apps](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Web/sites) | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/ms.web.sites.yml) | ## Platform | Name | Status | | - | - | -| Update API Specs file | [](https://github.com/Azure/ResourceModules/actions/workflows/platform.apiSpecs.yml) | -| Assign Issue to Project | [](https://github.com/Azure/ResourceModules/actions/workflows/platform.assignIssueToProject.yml) | -| Assign Pull Request to Author | [](https://github.com/Azure/ResourceModules/actions/workflows/platform.assignPrToAuthor.yml) | -| Test - ConvertTo-ARMTemplate.ps1 | [](https://github.com/Azure/ResourceModules/actions/workflows/platform.convertToArmTemplate.tests.yml) | -| Clean up deployment history | [](https://github.com/Azure/ResourceModules/actions/workflows/platform.deployment.history.cleanup.yml) | -| Library PSRule pre-flight validation | [](https://github.com/Azure/ResourceModules/actions/workflows/platform.librarycheck.psrule.yml) | -| Broken Links Check | [](https://github.com/Azure/ResourceModules/actions/workflows/platform.linkcheck.yml) | -| Linter | [](https://github.com/Azure/ResourceModules/actions/workflows/platform.linter.yml) | -| Manage issues for failing pipelines | [](https://github.com/Azure/ResourceModules/actions/workflows/platform.ManageIssueForFailingPipelines.yml) | -| Update ReadMe status Tables | [](https://github.com/Azure/ResourceModules/actions/workflows/platform.updateReadMe.yml) | -| Update Static Test Documentation | [](https://github.com/Azure/ResourceModules/actions/workflows/platform.updateStaticTestDocs.yml) | -| Sync Docs/Wiki | [](https://github.com/Azure/ResourceModules/actions/workflows/platform.wiki-sync.yml) | +| Update API Specs file | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/platform.apiSpecs.yml) | +| Assign Issue to Project | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/platform.assignIssueToProject.yml) | +| Assign Pull Request to Author | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/platform.assignPrToAuthor.yml) | +| Test - ConvertTo-ARMTemplate.ps1 | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/platform.convertToArmTemplate.tests.yml) | +| Clean up deployment history | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/platform.deployment.history.cleanup.yml) | +| Library PSRule pre-flight validation | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/platform.librarycheck.psrule.yml) | +| Broken Links Check | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/platform.linkcheck.yml) | +| Linter | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/platform.linter.yml) | +| Manage issues for failing pipelines | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/platform.ManageIssueForFailingPipelines.yml) | +| Update ReadMe status Tables | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/platform.updateReadMe.yml) | +| Update Static Test Documentation | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/platform.updateStaticTestDocs.yml) | +| Sync Docs/Wiki | [](https://github.com/lapellaniz/ResourceModules/actions/workflows/platform.wiki-sync.yml) | ## Contributing diff --git a/docs/wiki/The library - Module overview.md b/docs/wiki/The library - Module overview.md index 10fc73f7cb..476f6eae3f 100644 --- a/docs/wiki/The library - Module overview.md +++ b/docs/wiki/The library - Module overview.md @@ -57,83 +57,84 @@ This section provides an overview of the library's feature set. | 42 | MS.EventGrid
topics | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | 169 | | 43 | MS.EventHub
namespaces | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | [L1:4, L2:2] | 285 | | 44 | MS.HealthBot
healthBots | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 68 | -| 45 | MS.Insights
actionGroups | :white_check_mark: | | :white_check_mark: | | | | | 85 | -| 46 | MS.Insights
activityLogAlerts | :white_check_mark: | | :white_check_mark: | | | | | 74 | -| 47 | MS.Insights
components | :white_check_mark: | | :white_check_mark: | | | | | 99 | -| 48 | MS.Insights
dataCollectionEndpoints | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 89 | -| 49 | MS.Insights
dataCollectionRules | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 98 | -| 50 | MS.Insights
diagnosticSettings | | | | :white_check_mark: | | | | 83 | -| 51 | MS.Insights
metricAlerts | :white_check_mark: | | :white_check_mark: | | | | | 122 | -| 52 | MS.Insights
privateLinkScopes | :white_check_mark: | :white_check_mark: | :white_check_mark: | | :white_check_mark: | | [L1:1] | 100 | -| 53 | MS.Insights
scheduledQueryRules | :white_check_mark: | | :white_check_mark: | | | | | 106 | -| 54 | MS.KeyVault
vaults | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | [L1:3] | 279 | -| 55 | MS.KubernetesConfiguration
extensions | | | | | | | | 63 | -| 56 | MS.KubernetesConfiguration
fluxConfigurations | | | | | | | | 67 | -| 57 | MS.Logic
workflows | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | 207 | -| 58 | MS.MachineLearningServices
workspaces | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | [L1:1] | 284 | -| 59 | MS.Maintenance
maintenanceConfigurations | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 101 | -| 60 | MS.ManagedIdentity
userAssignedIdentities | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 64 | -| 61 | MS.ManagedServices
registrationDefinitions | | | | | | | | 60 | -| 62 | MS.Management
managementGroups | | | | | | | | 44 | -| 63 | MS.NetApp
netAppAccounts | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | [L1:1, L2:1] | 106 | -| 64 | MS.Network
applicationGateways | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | 318 | -| 65 | MS.Network
applicationGatewayWebApplicationFirewallPolicies | | | :white_check_mark: | | | | | 44 | -| 66 | MS.Network
applicationSecurityGroups | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 63 | -| 67 | MS.Network
azureFirewalls | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | :white_check_mark: | | 285 | -| 68 | MS.Network
bastionHosts | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | :white_check_mark: | | 216 | -| 69 | MS.Network
connections | | :white_check_mark: | :white_check_mark: | | | | | 107 | -| 70 | MS.Network
ddosProtectionPlans | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 64 | -| 71 | MS.Network
dnsResolvers | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 100 | -| 72 | MS.Network
expressRouteCircuits | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | 195 | -| 73 | MS.Network
firewallPolicies | | | :white_check_mark: | | | | [L1:1] | 153 | -| 74 | MS.Network
frontDoors | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | 161 | -| 75 | MS.Network
ipGroups | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 68 | -| 76 | MS.Network
loadBalancers | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | [L1:2] | 238 | -| 77 | MS.Network
localNetworkGateways | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 88 | -| 78 | MS.Network
natGateways | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | 151 | -| 79 | MS.Network
networkInterfaces | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | 144 | -| 80 | MS.Network
networkManagers | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | [L1:4, L2:2, L3:1] | 133 | -| 81 | MS.Network
networkSecurityGroups | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | [L1:1] | 162 | -| 82 | MS.Network
networkWatchers | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | [L1:2] | 97 | -| 83 | MS.Network
privateDnsZones | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | [L1:9] | 189 | -| 84 | MS.Network
privateEndpoints | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | [L1:1] | 108 | -| 85 | MS.Network
privateLinkServices | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 85 | -| 86 | MS.Network
publicIPAddresses | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | 187 | -| 87 | MS.Network
publicIPPrefixes | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 74 | -| 88 | MS.Network
routeTables | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 70 | -| 89 | MS.Network
trafficmanagerprofiles | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | 175 | -| 90 | MS.Network
virtualHubs | | :white_check_mark: | :white_check_mark: | | | | [L1:2] | 143 | -| 91 | MS.Network
virtualNetworkGateways | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | 359 | -| 92 | MS.Network
virtualNetworks | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | [L1:2] | 243 | -| 93 | MS.Network
virtualWans | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 80 | -| 94 | MS.Network
vpnGateways | | :white_check_mark: | :white_check_mark: | | | | [L1:2] | 104 | -| 95 | MS.Network
vpnSites | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 88 | -| 96 | MS.OperationalInsights
workspaces | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | [L1:5] | 271 | -| 97 | MS.OperationsManagement
solutions | | | | | | | | 50 | -| 98 | MS.PolicyInsights
remediations | | | | | | | [L1:3] | 103 | -| 99 | MS.PowerBIDedicated
capacities | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 96 | -| 100 | MS.Purview
accounts | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | 290 | -| 101 | MS.RecoveryServices
vaults | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | [L1:7, L2:2, L3:1] | 299 | -| 102 | MS.Resources
deploymentScripts | | :white_check_mark: | :white_check_mark: | | | | | 111 | -| 103 | MS.Resources
resourceGroups | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 67 | -| 104 | MS.Resources
tags | | | :white_check_mark: | | | | [L1:2] | 51 | -| 105 | MS.Security
azureSecurityCenter | | | | | | | | 217 | -| 106 | MS.ServiceBus
namespaces | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | [L1:6, L2:2] | 340 | -| 107 | MS.ServiceFabric
clusters | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | [L1:1] | 281 | -| 108 | MS.SignalRService
signalR | :white_check_mark: | :white_check_mark: | :white_check_mark: | | :white_check_mark: | | | 186 | -| 109 | MS.SignalRService
webPubSub | :white_check_mark: | :white_check_mark: | :white_check_mark: | | :white_check_mark: | | | 156 | -| 110 | MS.Sql
managedInstances | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | [L1:6, L2:2] | 348 | -| 111 | MS.Sql
servers | :white_check_mark: | :white_check_mark: | :white_check_mark: | | :white_check_mark: | | [L1:7] | 272 | -| 112 | MS.Storage
storageAccounts | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | [L1:6, L2:4, L3:1] | 413 | -| 113 | MS.Synapse
privateLinkHubs | :white_check_mark: | :white_check_mark: | :white_check_mark: | | :white_check_mark: | | | 90 | -| 114 | MS.Synapse
workspaces | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | [L1:1] | 273 | -| 115 | MS.VirtualMachineImages
imageTemplates | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 197 | -| 116 | MS.Web
connections | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 89 | -| 117 | MS.Web
hostingEnvironments | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | 175 | -| 118 | MS.Web
serverfarms | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | 159 | -| 119 | MS.Web
sites | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | [L1:3, L2:2] | 380 | -| 120 | MS.Web
staticSites | :white_check_mark: | :white_check_mark: | :white_check_mark: | | :white_check_mark: | | [L1:3] | 193 | -| Sum | | 94 | 92 | 103 | 51 | 23 | 2 | 175 | 20807 | +| 45 | MS.HealthcareApis
workspaces | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | [L1:3, L2:1] | 175 | +| 46 | MS.Insights
actionGroups | :white_check_mark: | | :white_check_mark: | | | | | 85 | +| 47 | MS.Insights
activityLogAlerts | :white_check_mark: | | :white_check_mark: | | | | | 74 | +| 48 | MS.Insights
components | :white_check_mark: | | :white_check_mark: | | | | | 99 | +| 49 | MS.Insights
dataCollectionEndpoints | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 89 | +| 50 | MS.Insights
dataCollectionRules | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 98 | +| 51 | MS.Insights
diagnosticSettings | | | | :white_check_mark: | | | | 83 | +| 52 | MS.Insights
metricAlerts | :white_check_mark: | | :white_check_mark: | | | | | 122 | +| 53 | MS.Insights
privateLinkScopes | :white_check_mark: | :white_check_mark: | :white_check_mark: | | :white_check_mark: | | [L1:1] | 100 | +| 54 | MS.Insights
scheduledQueryRules | :white_check_mark: | | :white_check_mark: | | | | | 106 | +| 55 | MS.KeyVault
vaults | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | [L1:3] | 279 | +| 56 | MS.KubernetesConfiguration
extensions | | | | | | | | 63 | +| 57 | MS.KubernetesConfiguration
fluxConfigurations | | | | | | | | 67 | +| 58 | MS.Logic
workflows | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | 207 | +| 59 | MS.MachineLearningServices
workspaces | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | [L1:1] | 284 | +| 60 | MS.Maintenance
maintenanceConfigurations | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 101 | +| 61 | MS.ManagedIdentity
userAssignedIdentities | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 64 | +| 62 | MS.ManagedServices
registrationDefinitions | | | | | | | | 60 | +| 63 | MS.Management
managementGroups | | | | | | | | 44 | +| 64 | MS.NetApp
netAppAccounts | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | [L1:1, L2:1] | 106 | +| 65 | MS.Network
applicationGateways | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | 318 | +| 66 | MS.Network
applicationGatewayWebApplicationFirewallPolicies | | | :white_check_mark: | | | | | 44 | +| 67 | MS.Network
applicationSecurityGroups | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 63 | +| 68 | MS.Network
azureFirewalls | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | :white_check_mark: | | 285 | +| 69 | MS.Network
bastionHosts | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | :white_check_mark: | | 216 | +| 70 | MS.Network
connections | | :white_check_mark: | :white_check_mark: | | | | | 107 | +| 71 | MS.Network
ddosProtectionPlans | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 64 | +| 72 | MS.Network
dnsResolvers | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 100 | +| 73 | MS.Network
expressRouteCircuits | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | 195 | +| 74 | MS.Network
firewallPolicies | | | :white_check_mark: | | | | [L1:1] | 153 | +| 75 | MS.Network
frontDoors | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | 161 | +| 76 | MS.Network
ipGroups | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 68 | +| 77 | MS.Network
loadBalancers | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | [L1:2] | 238 | +| 78 | MS.Network
localNetworkGateways | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 88 | +| 79 | MS.Network
natGateways | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | 151 | +| 80 | MS.Network
networkInterfaces | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | 144 | +| 81 | MS.Network
networkManagers | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | [L1:4, L2:2, L3:1] | 133 | +| 82 | MS.Network
networkSecurityGroups | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | [L1:1] | 162 | +| 83 | MS.Network
networkWatchers | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | [L1:2] | 97 | +| 84 | MS.Network
privateDnsZones | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | [L1:9] | 189 | +| 85 | MS.Network
privateEndpoints | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | [L1:1] | 108 | +| 86 | MS.Network
privateLinkServices | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 85 | +| 87 | MS.Network
publicIPAddresses | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | 187 | +| 88 | MS.Network
publicIPPrefixes | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 74 | +| 89 | MS.Network
routeTables | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 70 | +| 90 | MS.Network
trafficmanagerprofiles | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | 175 | +| 91 | MS.Network
virtualHubs | | :white_check_mark: | :white_check_mark: | | | | [L1:2] | 143 | +| 92 | MS.Network
virtualNetworkGateways | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | 359 | +| 93 | MS.Network
virtualNetworks | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | [L1:2] | 243 | +| 94 | MS.Network
virtualWans | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 80 | +| 95 | MS.Network
vpnGateways | | :white_check_mark: | :white_check_mark: | | | | [L1:2] | 104 | +| 96 | MS.Network
vpnSites | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 88 | +| 97 | MS.OperationalInsights
workspaces | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | [L1:5] | 271 | +| 98 | MS.OperationsManagement
solutions | | | | | | | | 50 | +| 99 | MS.PolicyInsights
remediations | | | | | | | [L1:3] | 103 | +| 100 | MS.PowerBIDedicated
capacities | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 96 | +| 101 | MS.Purview
accounts | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | 290 | +| 102 | MS.RecoveryServices
vaults | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | [L1:7, L2:2, L3:1] | 299 | +| 103 | MS.Resources
deploymentScripts | | :white_check_mark: | :white_check_mark: | | | | | 111 | +| 104 | MS.Resources
resourceGroups | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 67 | +| 105 | MS.Resources
tags | | | :white_check_mark: | | | | [L1:2] | 51 | +| 106 | MS.Security
azureSecurityCenter | | | | | | | | 217 | +| 107 | MS.ServiceBus
namespaces | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | [L1:6, L2:2] | 340 | +| 108 | MS.ServiceFabric
clusters | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | [L1:1] | 281 | +| 109 | MS.SignalRService
signalR | :white_check_mark: | :white_check_mark: | :white_check_mark: | | :white_check_mark: | | | 186 | +| 110 | MS.SignalRService
webPubSub | :white_check_mark: | :white_check_mark: | :white_check_mark: | | :white_check_mark: | | | 156 | +| 111 | MS.Sql
managedInstances | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | [L1:6, L2:2] | 348 | +| 112 | MS.Sql
servers | :white_check_mark: | :white_check_mark: | :white_check_mark: | | :white_check_mark: | | [L1:7] | 272 | +| 113 | MS.Storage
storageAccounts | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | [L1:6, L2:4, L3:1] | 413 | +| 114 | MS.Synapse
privateLinkHubs | :white_check_mark: | :white_check_mark: | :white_check_mark: | | :white_check_mark: | | | 90 | +| 115 | MS.Synapse
workspaces | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | [L1:1] | 273 | +| 116 | MS.VirtualMachineImages
imageTemplates | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 197 | +| 117 | MS.Web
connections | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | | 89 | +| 118 | MS.Web
hostingEnvironments | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | 175 | +| 119 | MS.Web
serverfarms | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | | 159 | +| 120 | MS.Web
sites | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | [L1:3, L2:2] | 380 | +| 121 | MS.Web
staticSites | :white_check_mark: | :white_check_mark: | :white_check_mark: | | :white_check_mark: | | [L1:3] | 193 |
+| Sum | | 95 | 93 | 104 | 51 | 23 | 2 | 179 | 20982 |
## Legend
diff --git a/modules/Microsoft.HealthcareApis/workspaces/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.HealthcareApis/workspaces/.bicep/nested_roleAssignments.bicep
new file mode 100644
index 0000000000..7652376ede
--- /dev/null
+++ b/modules/Microsoft.HealthcareApis/workspaces/.bicep/nested_roleAssignments.bicep
@@ -0,0 +1,76 @@
+@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 = ''
+
+@sys.description('Optional. The conditions on the role assignment. This limits the resources it can be assigned to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName] StringEqualsIgnoreCase "foo_storage_container"')
+param condition string = ''
+
+@sys.description('Optional. Version of the condition.')
+@allowed([
+ '2.0'
+])
+param conditionVersion string = '2.0'
+
+@sys.description('Optional. Id of the delegated managed identity resource.')
+param delegatedManagedIdentityResourceId string = ''
+
+var builtInRoleNames = {
+ 'DICOM Data Owner': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '58a3b984-7adf-4c20-983a-32417c86fbc8')
+ 'DICOM Data Reader': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'e89c7a3c-2f64-4fa1-a847-3e4c9ba4283a')
+ 'FHIR Data Contributor': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '5a1fc7df-4bf1-4951-a576-89034ee01acd')
+ 'FHIR Data Converter': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'a1705bd2-3a8f-45a5-8683-466fcfd5cc24')
+ 'FHIR Data Exporter': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '3db33094-8700-4567-8da5-1501d4e7e843')
+ 'FHIR Data Importer': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '4465e953-8ced-4406-a58e-0f6e3f3b530b')
+ 'FHIR Data Reader': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '4c8d0bbc-75d3-4935-991f-5f3c56d81508')
+ 'FHIR Data Writer': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '3f88fce4-5892-4214-ae73-ba5294559913')
+ 'FHIR SMART User': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '4ba50f17-9666-485c-a643-ff00808643f0')
+ 'Log Analytics Contributor': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '92aaf0da-9dab-42b6-94a3-d43ce8d16293')
+ 'Log Analytics Reader': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '73c42c96-874c-492b-b04d-ab87d138a893')
+ 'Managed Application Contributor Role': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '641177b8-a67a-45b9-a033-47bc880bb21e')
+ 'Managed Application Operator Role': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'c7393b34-138c-406f-901b-d8cf2b17e6ae')
+ 'Managed Applications Reader': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b9331d33-8a36-4f8c-b097-4f54124fdb44')
+ 'Monitoring Contributor': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '749f88d5-cbae-40b8-bcfc-e573ddc772fa')
+ 'Monitoring Reader': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '43d0d8ad-25c7-4714-9337-8ba259a9fe05')
+ Owner: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '8e3af657-a8ff-443c-a75c-2fe8c4bcb635')
+ Reader: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'acdd72a7-3385-48ef-bd42-f606fba81ae7')
+ 'Resource Policy Contributor': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '36243c78-bf99-498c-9df9-86d9f8d28608')
+ 'Role Based Access Control Administrator (Preview)': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'f58310d9-a9f6-439a-9e8d-f62e7b41a168')
+ 'User Access Administrator': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '18d7d88d-d35e-4fb5-a5c3-7773c20a72d9')
+}
+
+resource workspace 'Microsoft.HealthcareApis/workspaces@2022-06-01' existing = {
+ name: last(split(resourceId, '/'))
+}
+
+resource roleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = [for principalId in principalIds: {
+ name: guid(workspace.id, principalId, roleDefinitionIdOrName)
+ properties: {
+ description: description
+ roleDefinitionId: contains(builtInRoleNames, roleDefinitionIdOrName) ? builtInRoleNames[roleDefinitionIdOrName] : roleDefinitionIdOrName
+ principalId: principalId
+ principalType: !empty(principalType) ? any(principalType) : null
+ condition: !empty(condition) ? condition : null
+ conditionVersion: !empty(conditionVersion) && !empty(condition) ? conditionVersion : null
+ delegatedManagedIdentityResourceId: !empty(delegatedManagedIdentityResourceId) ? delegatedManagedIdentityResourceId : null
+ }
+ scope: workspace
+}]
diff --git a/modules/Microsoft.HealthcareApis/workspaces/.test/common/dependencies.bicep b/modules/Microsoft.HealthcareApis/workspaces/.test/common/dependencies.bicep
new file mode 100644
index 0000000000..3bfef43fdf
--- /dev/null
+++ b/modules/Microsoft.HealthcareApis/workspaces/.test/common/dependencies.bicep
@@ -0,0 +1,75 @@
+@description('Optional. The location to deploy to.')
+param location string = resourceGroup().location
+
+@description('Required. The name of the Managed Identity to create.')
+param managedIdentityName string
+
+@description('Required. The name of the Event Hub Namespace to create.')
+param eventHubNamespaceName string
+
+@description('Required. The name of the Event Hub consumer group to create.')
+param eventHubConsumerGroupName string
+
+@description('Required. The name of the Storage Account to create.')
+param storageAccountName string
+
+resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = {
+ name: managedIdentityName
+ location: location
+}
+
+resource storageAccount 'Microsoft.Storage/storageAccounts@2022-05-01' = {
+ name: storageAccountName
+ location: location
+ sku: {
+ name: 'Standard_LRS'
+ }
+ kind: 'StorageV2'
+}
+
+resource ehns 'Microsoft.EventHub/namespaces@2022-01-01-preview' = {
+ name: eventHubNamespaceName
+ location: location
+ sku: {
+ name: 'Standard'
+ tier: 'Standard'
+ capacity: 1
+ }
+ properties: {
+ zoneRedundant: false
+ isAutoInflateEnabled: false
+ }
+
+ resource eventhub 'eventhubs@2022-01-01-preview' = {
+ name: '${eventHubNamespaceName}-hub'
+ properties: {
+ messageRetentionInDays: 1
+ partitionCount: 1
+ }
+
+ resource consumergroup 'consumergroups@2022-01-01-preview' = {
+ name: eventHubConsumerGroupName
+ }
+ }
+}
+
+@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 Storage Account.')
+output storageAccountResourceId string = storageAccount.id
+
+@description('The resource ID of the created Event Hub Namespace.')
+output eventHubNamespaceResourceId string = ehns.id
+
+@description('The name of the created Event Hub Namespace.')
+output eventHubNamespaceName string = ehns.name
+
+@description('The resource ID of the created Event Hub.')
+output eventHubResourceId string = ehns::eventhub.id
+
+@description('The name of the created Event Hub.')
+output eventHubName string = ehns::eventhub.name
diff --git a/modules/Microsoft.HealthcareApis/workspaces/.test/common/deploy.test.bicep b/modules/Microsoft.HealthcareApis/workspaces/.test/common/deploy.test.bicep
new file mode 100644
index 0000000000..1f890480cd
--- /dev/null
+++ b/modules/Microsoft.HealthcareApis/workspaces/.test/common/deploy.test.bicep
@@ -0,0 +1,129 @@
+targetScope = 'subscription'
+
+// ========== //
+// Parameters //
+// ========== //
+@description('Optional. The name of the resource group to deploy for testing purposes.')
+@maxLength(90)
+param resourceGroupName string = 'ms.healthcareapis.workspaces-${serviceShort}-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 = 'hawcom'
+
+@description('Optional. Enable telemetry via a Globally Unique Identifier (GUID).')
+param enableDefaultTelemetry bool = true
+
+// =========== //
+// 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: {
+ eventHubConsumerGroupName: '<
+
+### Parameter Usage: `userAssignedIdentities`
+
+You can specify multiple user assigned identities to a resource by providing additional resource IDs using the following format:
+
+
+
+## Outputs
+
+| Output Name | Type | Description |
+| :-- | :-- | :-- |
+| `location` | string | The location the resource was deployed into. |
+| `name` | string | The name of the dicom service. |
+| `resourceGroupName` | string | The resource group where the namespace is deployed. |
+| `resourceId` | string | The resource ID of the dicom service. |
+| `systemAssignedPrincipalId` | string | The principal ID of the system assigned identity. |
+
+## Cross-referenced modules
+
+_None_
diff --git a/modules/Microsoft.HealthcareApis/workspaces/dicomservices/version.json b/modules/Microsoft.HealthcareApis/workspaces/dicomservices/version.json
new file mode 100644
index 0000000000..41f66cc990
--- /dev/null
+++ b/modules/Microsoft.HealthcareApis/workspaces/dicomservices/version.json
@@ -0,0 +1,4 @@
+{
+ "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json",
+ "version": "0.1"
+}
diff --git a/modules/Microsoft.HealthcareApis/workspaces/fhirservices/.bicep/nested_roleAssignments.bicep b/modules/Microsoft.HealthcareApis/workspaces/fhirservices/.bicep/nested_roleAssignments.bicep
new file mode 100644
index 0000000000..8973527791
--- /dev/null
+++ b/modules/Microsoft.HealthcareApis/workspaces/fhirservices/.bicep/nested_roleAssignments.bicep
@@ -0,0 +1,81 @@
+@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 = ''
+
+@sys.description('Optional. The conditions on the role assignment. This limits the resources it can be assigned to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName] StringEqualsIgnoreCase "foo_storage_container"')
+param condition string = ''
+
+@sys.description('Optional. Version of the condition.')
+@allowed([
+ '2.0'
+])
+param conditionVersion string = '2.0'
+
+@sys.description('Optional. Id of the delegated managed identity resource.')
+param delegatedManagedIdentityResourceId string = ''
+
+var builtInRoleNames = {
+ Contributor: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b24988ac-6180-42a0-ab88-20f7382dd24c')
+ 'DICOM Data Owner': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '58a3b984-7adf-4c20-983a-32417c86fbc8')
+ 'DICOM Data Reader': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'e89c7a3c-2f64-4fa1-a847-3e4c9ba4283a')
+ 'FHIR Data Contributor': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '5a1fc7df-4bf1-4951-a576-89034ee01acd')
+ 'FHIR Data Converter': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'a1705bd2-3a8f-45a5-8683-466fcfd5cc24')
+ 'FHIR Data Exporter': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '3db33094-8700-4567-8da5-1501d4e7e843')
+ 'FHIR Data Importer': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '4465e953-8ced-4406-a58e-0f6e3f3b530b')
+ 'FHIR Data Reader': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '4c8d0bbc-75d3-4935-991f-5f3c56d81508')
+ 'FHIR Data Writer': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '3f88fce4-5892-4214-ae73-ba5294559913')
+ 'FHIR SMART User': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '4ba50f17-9666-485c-a643-ff00808643f0')
+ 'Log Analytics Contributor': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '92aaf0da-9dab-42b6-94a3-d43ce8d16293')
+ 'Log Analytics Reader': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '73c42c96-874c-492b-b04d-ab87d138a893')
+ 'Managed Application Contributor Role': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '641177b8-a67a-45b9-a033-47bc880bb21e')
+ 'Managed Application Operator Role': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'c7393b34-138c-406f-901b-d8cf2b17e6ae')
+ 'Managed Applications Reader': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b9331d33-8a36-4f8c-b097-4f54124fdb44')
+ 'Monitoring Contributor': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '749f88d5-cbae-40b8-bcfc-e573ddc772fa')
+ 'Monitoring Reader': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '43d0d8ad-25c7-4714-9337-8ba259a9fe05')
+ Owner: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '8e3af657-a8ff-443c-a75c-2fe8c4bcb635')
+ Reader: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'acdd72a7-3385-48ef-bd42-f606fba81ae7')
+ 'Resource Policy Contributor': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '36243c78-bf99-498c-9df9-86d9f8d28608')
+ 'Role Based Access Control Administrator (Preview)': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'f58310d9-a9f6-439a-9e8d-f62e7b41a168')
+ 'User Access Administrator': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '18d7d88d-d35e-4fb5-a5c3-7773c20a72d9')
+}
+
+resource workspace 'Microsoft.HealthcareApis/workspaces@2022-06-01' existing = {
+ name: split(resourceId, '/')[8]
+
+ resource fhir 'fhirservices@2022-06-01' existing = {
+ name: split(resourceId, '/')[10]
+ }
+}
+
+resource roleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = [for principalId in principalIds: {
+ name: guid(workspace::fhir.id, principalId, roleDefinitionIdOrName)
+ properties: {
+ description: description
+ roleDefinitionId: contains(builtInRoleNames, roleDefinitionIdOrName) ? builtInRoleNames[roleDefinitionIdOrName] : roleDefinitionIdOrName
+ principalId: principalId
+ principalType: !empty(principalType) ? any(principalType) : null
+ condition: !empty(condition) ? condition : null
+ conditionVersion: !empty(conditionVersion) && !empty(condition) ? conditionVersion : null
+ delegatedManagedIdentityResourceId: !empty(delegatedManagedIdentityResourceId) ? delegatedManagedIdentityResourceId : null
+ }
+ scope: workspace::fhir
+}]
diff --git a/modules/Microsoft.HealthcareApis/workspaces/fhirservices/deploy.bicep b/modules/Microsoft.HealthcareApis/workspaces/fhirservices/deploy.bicep
new file mode 100644
index 0000000000..947f5648f2
--- /dev/null
+++ b/modules/Microsoft.HealthcareApis/workspaces/fhirservices/deploy.bicep
@@ -0,0 +1,291 @@
+@maxLength(50)
+@description('Required. The name of the FHIR service.')
+param name string
+
+@allowed([
+ 'fhir-R4'
+ 'fhir-Stu3'
+])
+@description('Optional. The kind of the service. Defaults to R4.')
+param kind string = 'fhir-R4'
+
+@description('Conditional. The name of the parent health data services workspace. Required if the template is used in a standalone deployment.')
+param workspaceName string
+
+@description('Optional. List of Azure AD object IDs (User or Apps) that is allowed access to the FHIR service.')
+param accessPolicyObjectIds array = []
+
+@description('Optional. The list of the Azure container registry login servers.')
+param acrLoginServers array = []
+
+@description('Optional. The list of Open Container Initiative (OCI) artifacts.')
+param acrOciArtifacts array = []
+
+@description('Optional. The authority url for the service.')
+param authenticationAuthority string = uri(environment().authentication.loginEndpoint, subscription().tenantId)
+
+@description('Optional. The audience url for the service.')
+param authenticationAudience string = 'https://${workspaceName}-${name}.fhir.azurehealthcareapis.com'
+
+@description('Optional. Specify URLs of origin sites that can access this API, or use "*" to allow access from any site.')
+param corsOrigins array = []
+
+@description('Optional. Specify HTTP headers which can be used during the request. Use "*" for any header.')
+param corsHeaders array = []
+
+@allowed([
+ 'DELETE'
+ 'GET'
+ 'OPTIONS'
+ 'PATCH'
+ 'POST'
+ 'PUT'
+])
+@description('Optional. Specify the allowed HTTP methods.')
+param corsMethods array = []
+
+@description('Optional. Specify how long a result from a request can be cached in seconds. Example: 600 means 10 minutes.')
+param corsMaxAge int = -1
+
+@description('Optional. Use this setting to indicate that cookies should be included in CORS requests.')
+param corsAllowCredentials bool = false
+
+@description('Optional. Location for all resources.')
+param location string = resourceGroup().location
+
+@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 the default export storage account.')
+param exportStorageAccountName string = ''
+
+@description('Optional. The name of the default integration storage account.')
+param importStorageAccountName string = ''
+
+@description('Optional. If the import operation is enabled.')
+param importEnabled bool = false
+
+@description('Optional. If the FHIR service is in InitialImportMode.')
+param initialImportMode bool = false
+
+@allowed([
+ ''
+ 'CanNotDelete'
+ 'ReadOnly'
+])
+@description('Optional. Specify the type of lock.')
+param lock string = ''
+
+@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 = []
+
+@allowed([
+ 'Disabled'
+ 'Enabled'
+])
+@description('Optional. Control permission for data plane traffic coming from public networks while private endpoint is enabled.')
+param publicNetworkAccess string = 'Disabled'
+
+@allowed([
+ 'no-version'
+ 'versioned'
+ 'versioned-update'
+])
+@description('Optional. The default value for tracking history across all resources.')
+param resourceVersionPolicy string = 'versioned'
+
+@description('Optional. A list of FHIR Resources and their version policy overrides.')
+param resourceVersionOverrides object = {}
+
+@description('Optional. If the SMART on FHIR proxy is enabled.')
+param smartProxyEnabled bool = false
+
+@description('Optional. Enables system assigned managed identity on the resource.')
+param systemAssignedIdentity bool = false
+
+@description('Optional. The ID(s) to assign to the resource.')
+param userAssignedIdentities object = {}
+
+@description('Optional. Tags of the resource.')
+param tags object = {}
+
+@description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).')
+param enableDefaultTelemetry bool = true
+
+@allowed([
+ 'AuditLogs'
+])
+@description('Optional. The name of logs that will be streamed.')
+param diagnosticLogCategoriesToEnable array = [
+ 'AuditLogs'
+]
+
+@allowed([
+ 'AllMetrics'
+])
+@description('Optional. The name of metrics that will be streamed.')
+param diagnosticMetricsToEnable array = [
+ 'AllMetrics'
+]
+
+@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
+ }
+}]
+
+var identityType = systemAssignedIdentity ? (!empty(userAssignedIdentities) ? 'SystemAssigned,UserAssigned' : 'SystemAssigned') : (!empty(userAssignedIdentities) ? 'UserAssigned' : 'None')
+
+var identity = identityType != 'None' ? {
+ type: identityType
+ userAssignedIdentities: !empty(userAssignedIdentities) ? userAssignedIdentities : null
+} : null
+
+var accessPolicies = [for id in accessPolicyObjectIds: {
+ objectId: id
+}]
+
+var exportConfiguration = {
+ storageAccountName: exportStorageAccountName
+}
+
+// =========== //
+// Deployments //
+// =========== //
+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 workspace 'Microsoft.HealthcareApis/workspaces@2022-06-01' existing = {
+ name: workspaceName
+}
+
+resource fhir 'Microsoft.HealthcareApis/workspaces/fhirservices@2022-06-01' = {
+ name: name
+ parent: workspace
+ location: location
+ kind: kind
+ tags: tags
+ identity: identity
+ properties: {
+ accessPolicies: accessPolicies
+ authenticationConfiguration: {
+ authority: authenticationAuthority
+ audience: authenticationAudience
+ smartProxyEnabled: smartProxyEnabled
+ }
+ corsConfiguration: {
+ allowCredentials: corsAllowCredentials
+ headers: corsHeaders
+ maxAge: corsMaxAge == -1 ? null : corsMaxAge
+ methods: corsMethods
+ origins: corsOrigins
+ }
+ publicNetworkAccess: publicNetworkAccess
+ exportConfiguration: exportStorageAccountName == '' ? {} : exportConfiguration
+ importConfiguration: {
+ enabled: importEnabled
+ initialImportMode: initialImportMode
+ integrationDataStore: importStorageAccountName == '' ? null : importStorageAccountName
+ }
+ resourceVersionPolicyConfiguration: {
+ default: resourceVersionPolicy
+ resourceTypeOverrides: empty(resourceVersionOverrides) ? null : resourceVersionOverrides
+ }
+ acrConfiguration: {
+ loginServers: acrLoginServers
+ ociArtifacts: empty(acrOciArtifacts) ? null : acrOciArtifacts
+ }
+ }
+}
+
+resource fhir_lock 'Microsoft.Authorization/locks@2020-05-01' = if (!empty(lock)) {
+ name: '${fhir.name}-${lock}-lock'
+ properties: {
+ level: any(lock)
+ notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.'
+ }
+ scope: fhir
+}
+
+resource fhir_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: fhir
+}
+
+module fhir_roleAssignments '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: {
+ name: '${deployment().name}-Rbac-${index}'
+ params: {
+ description: contains(roleAssignment, 'description') ? roleAssignment.description : ''
+ principalIds: roleAssignment.principalIds
+ principalType: contains(roleAssignment, 'principalType') ? roleAssignment.principalType : ''
+ roleDefinitionIdOrName: roleAssignment.roleDefinitionIdOrName
+ condition: contains(roleAssignment, 'condition') ? roleAssignment.condition : ''
+ delegatedManagedIdentityResourceId: contains(roleAssignment, 'delegatedManagedIdentityResourceId') ? roleAssignment.delegatedManagedIdentityResourceId : ''
+ resourceId: fhir.id
+ }
+}]
+
+@description('The name of the fhir service.')
+output name string = fhir.name
+
+@description('The resource ID of the fhir service.')
+output resourceId string = fhir.id
+
+@description('The resource group where the namespace is deployed.')
+output resourceGroupName string = resourceGroup().name
+
+@description('The principal ID of the system assigned identity.')
+output systemAssignedPrincipalId string = systemAssignedIdentity && contains(fhir.identity, 'principalId') ? fhir.identity.principalId : ''
+
+@description('The location the resource was deployed into.')
+output location string = fhir.location
+
+@description('The name of the fhir workspace.')
+output workspaceName string = workspace.name
diff --git a/modules/Microsoft.HealthcareApis/workspaces/fhirservices/readme.md b/modules/Microsoft.HealthcareApis/workspaces/fhirservices/readme.md
new file mode 100644
index 0000000000..55df16402c
--- /dev/null
+++ b/modules/Microsoft.HealthcareApis/workspaces/fhirservices/readme.md
@@ -0,0 +1,294 @@
+# HealthcareApis Workspaces Fhirservices `[Microsoft.HealthcareApis/workspaces/fhirservices]`
+
+This module deploys HealthcareApis Workspaces FHIR Service.
+
+## Navigation
+
+- [Resource Types](#Resource-Types)
+- [Parameters](#Parameters)
+- [Outputs](#Outputs)
+- [Cross-referenced modules](#Cross-referenced-modules)
+
+## Resource Types
+
+| Resource Type | API Version |
+| :-- | :-- |
+| `Microsoft.Authorization/locks` | [2020-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-05-01/locks) |
+| `Microsoft.Authorization/roleAssignments` | [2022-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2022-04-01/roleAssignments) |
+| `Microsoft.HealthcareApis/workspaces/fhirservices` | [2022-06-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.HealthcareApis/2022-06-01/workspaces/fhirservices) |
+| `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) |
+
+## Parameters
+
+**Required parameters**
+
+| Parameter Name | Type | Description |
+| :-- | :-- | :-- |
+| `name` | string | The name of the FHIR service. |
+
+**Conditional parameters**
+
+| Parameter Name | Type | Description |
+| :-- | :-- | :-- |
+| `workspaceName` | string | The name of the parent health data services workspace. Required if the template is used in a standalone deployment. |
+
+**Optional parameters**
+
+| Parameter Name | Type | Default Value | Allowed Values | Description |
+| :-- | :-- | :-- | :-- | :-- |
+| `accessPolicyObjectIds` | array | `[]` | | List of Azure AD object IDs (User or Apps) that is allowed access to the FHIR service. |
+| `acrLoginServers` | array | `[]` | | The list of the Azure container registry login servers. |
+| `acrOciArtifacts` | array | `[]` | | The list of Open Container Initiative (OCI) artifacts. |
+| `authenticationAudience` | string | `[format('https://{0}-{1}.fhir.azurehealthcareapis.com', parameters('workspaceName'), parameters('name'))]` | | The audience url for the service. |
+| `authenticationAuthority` | string | `[uri(environment().authentication.loginEndpoint, subscription().tenantId)]` | | The authority url for the service. |
+| `corsAllowCredentials` | bool | `False` | | Use this setting to indicate that cookies should be included in CORS requests. |
+| `corsHeaders` | array | `[]` | | Specify HTTP headers which can be used during the request. Use "*" for any header. |
+| `corsMaxAge` | int | `-1` | | Specify how long a result from a request can be cached in seconds. Example: 600 means 10 minutes. |
+| `corsMethods` | array | `[]` | `[DELETE, GET, OPTIONS, PATCH, POST, PUT]` | Specify the allowed HTTP methods. |
+| `corsOrigins` | array | `[]` | | Specify URLs of origin sites that can access this API, or use "*" to allow access from any site. |
+| `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 | `[AuditLogs]` | `[AuditLogs]` | 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 | `[AllMetrics]` | `[AllMetrics]` | 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). |
+| `exportStorageAccountName` | string | `''` | | The name of the default export storage account. |
+| `importEnabled` | bool | `False` | | If the import operation is enabled. |
+| `importStorageAccountName` | string | `''` | | The name of the default integration storage account. |
+| `initialImportMode` | bool | `False` | | If the FHIR service is in InitialImportMode. |
+| `kind` | string | `'fhir-R4'` | `[fhir-R4, fhir-Stu3]` | The kind of the service. Defaults to R4. |
+| `location` | string | `[resourceGroup().location]` | | Location for all resources. |
+| `lock` | string | `''` | `['', CanNotDelete, ReadOnly]` | Specify the type of lock. |
+| `publicNetworkAccess` | string | `'Disabled'` | `[Disabled, Enabled]` | Control permission for data plane traffic coming from public networks while private endpoint is enabled. |
+| `resourceVersionOverrides` | object | `{object}` | | A list of FHIR Resources and their version policy overrides. |
+| `resourceVersionPolicy` | string | `'versioned'` | `[no-version, versioned, versioned-update]` | The default value for tracking history across all resources. |
+| `roleAssignments` | array | `[]` | | 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'. |
+| `smartProxyEnabled` | bool | `False` | | If the SMART on FHIR proxy is enabled. |
+| `systemAssignedIdentity` | bool | `False` | | Enables system assigned managed identity on the resource. |
+| `tags` | object | `{object}` | | Tags of the resource. |
+| `userAssignedIdentities` | object | `{object}` | | The ID(s) to assign to the resource. |
+
+
+### Parameter Usage: `acrOciArtifacts`
+
+You can specify multiple Azure Container OCI artifacts using the following format:
+
+
+
+### Parameter Usage: `userAssignedIdentities`
+
+You can specify multiple user assigned identities to a resource by providing additional resource IDs using the following format:
+
+
+
+### Parameter Usage: `roleAssignments`
+
+Create a role assignment for the given resource. If you want to assign a service principal / managed identity that is created in the same deployment, make sure to also specify the `'principalType'` parameter and set it to `'ServicePrincipal'`. This will ensure the role assignment waits for the principal's propagation in Azure.
+
+
+
+### Parameter Usage: `tags`
+
+Tag names and tag values can be provided as needed. A tag can be left without a value.
+
+
+
+### Parameter Usage: `userAssignedIdentities`
+
+You can specify multiple user assigned identities to a resource by providing additional resource IDs using the following format:
+
+
+
+## Outputs
+
+| Output Name | Type | Description |
+| :-- | :-- | :-- |
+| `location` | string | The location the resource was deployed into. |
+| `name` | string | The name of the fhir service. |
+| `resourceGroupName` | string | The resource group where the namespace is deployed. |
+| `resourceId` | string | The resource ID of the fhir service. |
+| `systemAssignedPrincipalId` | string | The principal ID of the system assigned identity. |
+| `workspaceName` | string | The name of the fhir workspace. |
+
+## Cross-referenced modules
+
+_None_
diff --git a/modules/Microsoft.HealthcareApis/workspaces/fhirservices/version.json b/modules/Microsoft.HealthcareApis/workspaces/fhirservices/version.json
new file mode 100644
index 0000000000..41f66cc990
--- /dev/null
+++ b/modules/Microsoft.HealthcareApis/workspaces/fhirservices/version.json
@@ -0,0 +1,4 @@
+{
+ "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json",
+ "version": "0.1"
+}
diff --git a/modules/Microsoft.HealthcareApis/workspaces/iotconnectors/deploy.bicep b/modules/Microsoft.HealthcareApis/workspaces/iotconnectors/deploy.bicep
new file mode 100644
index 0000000000..b0cd58d2af
--- /dev/null
+++ b/modules/Microsoft.HealthcareApis/workspaces/iotconnectors/deploy.bicep
@@ -0,0 +1,205 @@
+@description('Required. The name of the MedTech service.')
+@maxLength(50)
+param name string
+
+@description('Conditional. The name of the parent health data services workspace. Required if the template is used in a standalone deployment.')
+param workspaceName string
+
+@description('Required. Event Hub name to connect to.')
+param eventHubName string
+
+@description('Optional. Consumer group of the event hub to connected to.')
+param consumerGroup string = name
+
+@description('Required. Namespace of the Event Hub to connect to.')
+param eventHubNamespaceName string
+
+@description('Required. The mapping JSON that determines how incoming device data is normalized.')
+param deviceMapping object = {
+ templateType: 'CollectionContent'
+ template: []
+}
+
+@description('Optional. FHIR Destination.')
+param fhirdestination object = {}
+
+@description('Optional. Location for all resources.')
+param location string = resourceGroup().location
+
+@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 = ''
+
+@allowed([
+ ''
+ 'CanNotDelete'
+ 'ReadOnly'
+])
+@description('Optional. Specify the type of lock.')
+param lock string = ''
+
+@description('Optional. Enables system assigned managed identity on the resource.')
+param systemAssignedIdentity bool = false
+
+@description('Optional. The ID(s) to assign to the resource.')
+param userAssignedIdentities object = {}
+
+@description('Optional. Tags of the resource.')
+param tags object = {}
+
+@description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).')
+param enableDefaultTelemetry bool = true
+
+@description('Optional. The name of logs that will be streamed.')
+@allowed([
+ 'DiagnosticLogs'
+])
+param diagnosticLogCategoriesToEnable array = [
+ 'DiagnosticLogs'
+]
+
+@description('Optional. The name of metrics that will be streamed.')
+@allowed([
+ 'AllMetrics'
+])
+param diagnosticMetricsToEnable array = [
+ 'AllMetrics'
+]
+
+@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
+ }
+}]
+
+var identityType = systemAssignedIdentity ? (!empty(userAssignedIdentities) ? 'SystemAssigned,UserAssigned' : 'SystemAssigned') : (!empty(userAssignedIdentities) ? 'UserAssigned' : 'None')
+
+var identity = identityType != 'None' ? {
+ type: identityType
+ userAssignedIdentities: !empty(userAssignedIdentities) ? userAssignedIdentities : null
+} : null
+
+var enableReferencedModulesTelemetry = false
+
+// =========== //
+// Deployments //
+// =========== //
+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 workspace 'Microsoft.HealthcareApis/workspaces@2022-06-01' existing = {
+ name: workspaceName
+}
+
+resource iotConnector 'Microsoft.HealthcareApis/workspaces/iotconnectors@2022-06-01' = {
+ name: name
+ parent: workspace
+ location: location
+ tags: tags
+ identity: identity
+ properties: {
+ ingestionEndpointConfiguration: {
+ eventHubName: eventHubName
+ consumerGroup: consumerGroup
+ fullyQualifiedEventHubNamespace: '${eventHubNamespaceName}.servicebus.windows.net'
+ }
+ deviceMapping: {
+ content: deviceMapping
+ }
+ }
+}
+
+resource iotConnector_lock 'Microsoft.Authorization/locks@2020-05-01' = if (!empty(lock)) {
+ name: '${iotConnector.name}-${lock}-lock'
+ properties: {
+ level: any(lock)
+ notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.'
+ }
+ scope: iotConnector
+}
+
+resource iotConnector_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: iotConnector
+}
+
+module fhir_destination 'fhirdestinations/deploy.bicep' = if (!empty(fhirdestination)) {
+ name: '${deployment().name}-FhirDestination'
+ params: {
+ name: '${uniqueString(workspaceName, iotConnector.name)}-map'
+ iotConnectorName: iotConnector.name
+ resourceIdentityResolutionType: contains(fhirdestination, 'resourceIdentityResolutionType') ? fhirdestination.resourceIdentityResolutionType : 'Lookup'
+ fhirServiceResourceId: fhirdestination.fhirServiceResourceId
+ destinationMapping: contains(fhirdestination, 'destinationMapping') ? fhirdestination.destinationMapping : {
+ templateType: 'CollectionFhir'
+ template: []
+ }
+ enableDefaultTelemetry: enableReferencedModulesTelemetry
+ location: location
+ workspaceName: workspaceName
+ }
+}
+
+@description('The name of the medtech service.')
+output name string = iotConnector.name
+
+@description('The resource ID of the medtech service.')
+output resourceId string = iotConnector.id
+
+@description('The resource group where the namespace is deployed.')
+output resourceGroupName string = resourceGroup().name
+
+@description('The principal ID of the system assigned identity.')
+output systemAssignedPrincipalId string = systemAssignedIdentity && contains(iotConnector.identity, 'principalId') ? iotConnector.identity.principalId : ''
+
+@description('The location the resource was deployed into.')
+output location string = iotConnector.location
+
+@description('The name of the medtech workspace.')
+output workspaceName string = workspace.name
diff --git a/modules/Microsoft.HealthcareApis/workspaces/iotconnectors/fhirdestinations/deploy.bicep b/modules/Microsoft.HealthcareApis/workspaces/iotconnectors/fhirdestinations/deploy.bicep
new file mode 100644
index 0000000000..f87502a117
--- /dev/null
+++ b/modules/Microsoft.HealthcareApis/workspaces/iotconnectors/fhirdestinations/deploy.bicep
@@ -0,0 +1,82 @@
+@description('Required. The name of the FHIR destination.')
+@maxLength(24)
+param name string
+
+@description('Required. The mapping JSON that determines how normalized data is converted to FHIR Observations.')
+param destinationMapping object = {
+ templateType: 'CollectionFhir'
+ template: []
+}
+
+@description('Conditional. The name of the MedTech service to add this destination to. Required if the template is used in a standalone deployment.')
+param iotConnectorName string
+
+@description('Conditional. The name of the parent health data services workspace. Required if the template is used in a standalone deployment.')
+param workspaceName string
+
+@description('Required. The resource identifier of the FHIR Service to connect to.')
+param fhirServiceResourceId string
+
+@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
+
+@allowed([
+ 'Create'
+ 'Lookup'
+])
+@description('Optional. Determines how resource identity is resolved on the destination.')
+param resourceIdentityResolutionType string = 'Lookup'
+
+// =========== //
+// Deployments //
+// =========== //
+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 workspace 'Microsoft.HealthcareApis/workspaces@2022-06-01' existing = {
+ name: workspaceName
+
+ resource iotConnector 'iotconnectors@2022-06-01' existing = {
+ name: iotConnectorName
+ }
+}
+
+resource fhirDestination 'Microsoft.HealthcareApis/workspaces/iotconnectors/fhirdestinations@2022-06-01' = {
+ name: name
+ parent: workspace::iotConnector
+ location: location
+ properties: {
+ resourceIdentityResolutionType: resourceIdentityResolutionType
+ fhirServiceResourceId: fhirServiceResourceId
+ fhirMapping: {
+ content: destinationMapping
+ }
+ }
+}
+
+@description('The name of the FHIR destination.')
+output name string = fhirDestination.name
+
+@description('The resource ID of the FHIR destination.')
+output resourceId string = fhirDestination.id
+
+@description('The resource group where the namespace is deployed.')
+output resourceGroupName string = resourceGroup().name
+
+@description('The location the resource was deployed into.')
+output location string = fhirDestination.location
+
+@description('The name of the medtech service.')
+output iotConnectorName string = workspace::iotConnector.name
diff --git a/modules/Microsoft.HealthcareApis/workspaces/iotconnectors/fhirdestinations/readme.md b/modules/Microsoft.HealthcareApis/workspaces/iotconnectors/fhirdestinations/readme.md
new file mode 100644
index 0000000000..cffca6b278
--- /dev/null
+++ b/modules/Microsoft.HealthcareApis/workspaces/iotconnectors/fhirdestinations/readme.md
@@ -0,0 +1,122 @@
+# HealthcareApis Workspaces Iotconnectors Fhirdestinations `[Microsoft.HealthcareApis/workspaces/iotconnectors/fhirdestinations]`
+
+This module deploys HealthcareApis MedTech FHIR Destination.
+
+## Navigation
+
+- [Resource Types](#Resource-Types)
+- [Parameters](#Parameters)
+- [Outputs](#Outputs)
+- [Cross-referenced modules](#Cross-referenced-modules)
+
+## Resource Types
+
+| Resource Type | API Version |
+| :-- | :-- |
+| `Microsoft.HealthcareApis/workspaces/iotconnectors/fhirdestinations` | [2022-06-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.HealthcareApis/2022-06-01/workspaces/iotconnectors/fhirdestinations) |
+
+## Parameters
+
+**Required parameters**
+
+| Parameter Name | Type | Default Value | Description |
+| :-- | :-- | :-- | :-- |
+| `destinationMapping` | object | `{object}` | The mapping JSON that determines how normalized data is converted to FHIR Observations. |
+| `fhirServiceResourceId` | string | | The resource identifier of the FHIR Service to connect to. |
+| `name` | string | | The name of the FHIR destination. |
+
+**Conditional parameters**
+
+| Parameter Name | Type | Description |
+| :-- | :-- | :-- |
+| `iotConnectorName` | string | The name of the MedTech service to add this destination to. Required if the template is used in a standalone deployment. |
+| `workspaceName` | string | The name of the parent health data services workspace. Required if the template is used in a standalone deployment. |
+
+**Optional parameters**
+
+| Parameter Name | Type | Default Value | Allowed Values | Description |
+| :-- | :-- | :-- | :-- | :-- |
+| `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). |
+| `location` | string | `[resourceGroup().location]` | | Location for all resources. |
+| `resourceIdentityResolutionType` | string | `'Lookup'` | `[Create, Lookup]` | Determines how resource identity is resolved on the destination. |
+
+
+### Parameter Usage: `destinationMapping`
+
+You can specify a collection of destination mapping using the following format:
+
+> NOTE: More detailed information on destination mappings can be found [here](https://learn.microsoft.com/en-us/azure/healthcare-apis/iot/how-to-use-fhir-mappings).
+
+
+
+### Parameter Usage: `destinationMapping`
+
+You can specify a collection of destination mapping using the following format:
+
+> NOTE: More detailed information on destination mappings can be found [here](https://learn.microsoft.com/en-us/azure/healthcare-apis/iot/how-to-use-fhir-mappings).
+
+
+
+### Parameter Usage: `tags`
+
+Tag names and tag values can be provided as needed. A tag can be left without a value.
+
+
+
+### Parameter Usage: `userAssignedIdentities`
+
+You can specify multiple user assigned identities to a resource by providing additional resource IDs using the following format:
+
+
+
+## Outputs
+
+| Output Name | Type | Description |
+| :-- | :-- | :-- |
+| `location` | string | The location the resource was deployed into. |
+| `name` | string | The name of the medtech service. |
+| `resourceGroupName` | string | The resource group where the namespace is deployed. |
+| `resourceId` | string | The resource ID of the medtech service. |
+| `systemAssignedPrincipalId` | string | The principal ID of the system assigned identity. |
+| `workspaceName` | string | The name of the medtech workspace. |
+
+## Cross-referenced modules
+
+_None_
diff --git a/modules/Microsoft.HealthcareApis/workspaces/iotconnectors/version.json b/modules/Microsoft.HealthcareApis/workspaces/iotconnectors/version.json
new file mode 100644
index 0000000000..41f66cc990
--- /dev/null
+++ b/modules/Microsoft.HealthcareApis/workspaces/iotconnectors/version.json
@@ -0,0 +1,4 @@
+{
+ "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json",
+ "version": "0.1"
+}
diff --git a/modules/Microsoft.HealthcareApis/workspaces/readme.md b/modules/Microsoft.HealthcareApis/workspaces/readme.md
new file mode 100644
index 0000000000..a826bdd0cc
--- /dev/null
+++ b/modules/Microsoft.HealthcareApis/workspaces/readme.md
@@ -0,0 +1,678 @@
+# HealthcareApis Workspaces `[Microsoft.HealthcareApis/workspaces]`
+
+This module deploys Healthcare Data Services workspace.
+
+## Navigation
+
+- [Resource Types](#Resource-Types)
+- [Parameters](#Parameters)
+- [Outputs](#Outputs)
+- [Cross-referenced modules](#Cross-referenced-modules)
+- [Deployment examples](#Deployment-examples)
+
+## Resource Types
+
+| Resource Type | API Version |
+| :-- | :-- |
+| `Microsoft.Authorization/locks` | [2020-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-05-01/locks) |
+| `Microsoft.Authorization/roleAssignments` | [2022-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2022-04-01/roleAssignments) |
+| `Microsoft.HealthcareApis/workspaces` | [2022-06-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.HealthcareApis/2022-06-01/workspaces) |
+| `Microsoft.HealthcareApis/workspaces/dicomservices` | [2022-06-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.HealthcareApis/2022-06-01/workspaces/dicomservices) |
+| `Microsoft.HealthcareApis/workspaces/fhirservices` | [2022-06-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.HealthcareApis/2022-06-01/workspaces/fhirservices) |
+| `Microsoft.HealthcareApis/workspaces/iotconnectors` | [2022-06-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.HealthcareApis/2022-06-01/workspaces/iotconnectors) |
+| `Microsoft.HealthcareApis/workspaces/iotconnectors/fhirdestinations` | [2022-06-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.HealthcareApis/2022-06-01/workspaces/iotconnectors/fhirdestinations) |
+| `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) |
+
+## Parameters
+
+**Required parameters**
+
+| Parameter Name | Type | Description |
+| :-- | :-- | :-- |
+| `name` | string | The name of the Health Data Services Workspace service. |
+
+**Optional parameters**
+
+| Parameter Name | Type | Default Value | Allowed Values | Description |
+| :-- | :-- | :-- | :-- | :-- |
+| `dicomServices` | _[dicomservices](dicomservices/readme.md)_ array | `[]` | | Deploy DICOM services. |
+| `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). |
+| `fhirServices` | _[fhirservices](fhirservices/readme.md)_ array | `[]` | | Deploy FHIR services. |
+| `iotConnectors` | _[iotconnectors](iotconnectors/readme.md)_ array | `[]` | | Deploy IOT connectors. |
+| `location` | string | `[resourceGroup().location]` | | Location for all resources. |
+| `lock` | string | `''` | `['', CanNotDelete, ReadOnly]` | Specify the type of lock. |
+| `publicNetworkAccess` | string | `'Disabled'` | `[Disabled, Enabled]` | Control permission for data plane traffic coming from public networks while private endpoint is enabled. |
+| `roleAssignments` | array | `[]` | | 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'. |
+| `tags` | object | `{object}` | | Tags of the resource. |
+
+
+### Parameter Usage: `fhirServices`
+
+Create a FHIR service with the workspace.
+
+
+
+### Parameter Usage: `dicomServices`
+
+Create a DICOM service with the workspace.
+
+
+
+### Parameter Usage: `iotConnectors`
+
+Create an IOT Connector (MedTech) service with the workspace.
+
+
+
+### Parameter Usage: `roleAssignments`
+
+Create a role assignment for the given resource. If you want to assign a service principal / managed identity that is created in the same deployment, make sure to also specify the `'principalType'` parameter and set it to `'ServicePrincipal'`. This will ensure the role assignment waits for the principal's propagation in Azure.
+
+
+
+### Parameter Usage: `tags`
+
+Tag names and tag values can be provided as needed. A tag can be left without a value.
+
+
+
+## Outputs
+
+| Output Name | Type | Description |
+| :-- | :-- | :-- |
+| `location` | string | The location the resource was deployed into. |
+| `name` | string | The name of the health data services workspace. |
+| `resourceGroupName` | string | The resource group where the workspace is deployed. |
+| `resourceId` | string | The resource ID of the health data services workspace. |
+
+## Cross-referenced modules
+
+_None_
+
+## 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.HealthcareApis/workspaces/version.json b/modules/Microsoft.HealthcareApis/workspaces/version.json
new file mode 100644
index 0000000000..41f66cc990
--- /dev/null
+++ b/modules/Microsoft.HealthcareApis/workspaces/version.json
@@ -0,0 +1,4 @@
+{
+ "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json",
+ "version": "0.1"
+}
diff --git a/modules/README.md b/modules/README.md
index 48d1ae3810..e698410af0 100644
--- a/modules/README.md
+++ b/modules/README.md
@@ -4,123 +4,124 @@ In this section you can find useful information regarding the Modules that are c
| 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) |
-| [Cache Redis](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Cache/redis) | `MS.Cache` | [redis](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Cache/redis) |
-| [CDN Profiles](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.CDN/profiles) | `MS.CDN` | [profiles](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.CDN/profiles) |
-| [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) |
-| [DBforPostgreSQL FlexibleServers](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DBforPostgreSQL/flexibleServers) | `MS.DBforPostgreSQL` | [flexibleServers](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DBforPostgreSQL/flexibleServers) |
-| [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) |
-| [DevTestLab Labs](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DevTestLab/labs) | `MS.DevTestLab` | [labs](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.DevTestLab/labs) |
-| [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) |
-| [EventGrid Domains](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.EventGrid/domains) | `MS.EventGrid` | [domains](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.EventGrid/domains) |
-| [EventGrid EventSubscriptions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.EventGrid/eventSubscriptions) | | [eventSubscriptions](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.EventGrid/eventSubscriptions) |
-| [Event Grid System Topics](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.EventGrid/systemTopics) | | [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) |
-| [DataCollectionEndpoints](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/dataCollectionEndpoints) | | [dataCollectionEndpoints](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/dataCollectionEndpoints) |
-| [DataCollectionRules](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/dataCollectionRules) | | [dataCollectionRules](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Insights/dataCollectionRules) |
-| [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) |
-| [Maintenance Configurations](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Maintenance/maintenanceConfigurations) | `MS.aintenance` | [maintenanceConfigurations](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Maintenance/maintenanceConfigurations) |
-| [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 Gateway WebApp Firewall Policies](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies) | | [applicationGatewayWebApplicationFirewallPolicies](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies) |
-| [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) |
-| [Network DnsResolvers](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/dnsResolvers) | | [dnsResolvers](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/dnsResolvers) |
-| [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 NetworkManagers](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/networkManagers) | | [networkManagers](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/networkManagers) |
-| [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) |
-| [Network PrivateLinkServices](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/privateLinkServices) | | [privateLinkServices](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Network/privateLinkServices) |
-| [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) |
-| [PolicyInsights Remediations](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.PolicyInsights/remediations) | `MS.PolicyInsights` | [remediations](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.PolicyInsights/remediations) |
-| [PowerBIDedicated Capacities](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.PowerBIDedicated/capacities) | `MS.PowerBIDedicated` | [capacities](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.PowerBIDedicated/capacities) |
-| [Purview Accounts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Purview/accounts) | `MS.Purview` | [accounts](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Purview/accounts) |
-| [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) |
-| [SignalRService SignalR](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.SignalRService/signalR) | `MS.SignalRService` | [signalR](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.SignalRService/signalR) |
-| [Web PubSub Services](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.SignalRService/webPubSub) | | [webPubSub](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.SignalRService/webPubSub) |
-| [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) |
-| [Synapse Workspaces](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Synapse/workspaces) | | [workspaces](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Synapse/workspaces) |
-| [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 Apps](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Web/staticSites) | | [staticSites](https://github.com/Azure/ResourceModules/tree/main/modules/Microsoft.Web/staticSites) |
+| [Azure Active Directory Domain Services](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.AAD/DomainServices) | `MS.AAD` | [DomainServices](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.AAD/DomainServices) |
+| [Analysis Services Servers](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.AnalysisServices/servers) | `MS.AnalysisServices` | [servers](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.AnalysisServices/servers) |
+| [API Management Services](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.ApiManagement/service) | `MS.ApiManagement` | [service](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.ApiManagement/service) |
+| [App Configuration](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.AppConfiguration/configurationStores) | `MS.AppConfiguration` | [configurationStores](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.AppConfiguration/configurationStores) |
+| [Authorization Locks](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Authorization/locks) | `MS.Authorization` | [locks](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Authorization/locks) |
+| [Policy Assignments](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Authorization/policyAssignments) | | [policyAssignments](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Authorization/policyAssignments) |
+| [Policy Definitions](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Authorization/policyDefinitions) | | [policyDefinitions](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Authorization/policyDefinitions) |
+| [Policy Exemptions](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Authorization/policyExemptions) | | [policyExemptions](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Authorization/policyExemptions) |
+| [Policy Set Definitions](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Authorization/policySetDefinitions) | | [policySetDefinitions](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Authorization/policySetDefinitions) |
+| [Role Assignments](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Authorization/roleAssignments) | | [roleAssignments](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Authorization/roleAssignments) |
+| [Role Definitions](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Authorization/roleDefinitions) | | [roleDefinitions](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Authorization/roleDefinitions) |
+| [Automation Accounts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Automation/automationAccounts) | `MS.Automation` | [automationAccounts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Automation/automationAccounts) |
+| [Batch Accounts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Batch/batchAccounts) | `MS.Batch` | [batchAccounts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Batch/batchAccounts) |
+| [Cache Redis](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Cache/redis) | `MS.Cache` | [redis](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Cache/redis) |
+| [CDN Profiles](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.CDN/profiles) | `MS.CDN` | [profiles](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.CDN/profiles) |
+| [Cognitive Services](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.CognitiveServices/accounts) | `MS.CognitiveServices` | [accounts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.CognitiveServices/accounts) |
+| [Availability Sets](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Compute/availabilitySets) | `MS.Compute` | [availabilitySets](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Compute/availabilitySets) |
+| [Disk Encryption Sets](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Compute/diskEncryptionSets) | | [diskEncryptionSets](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Compute/diskEncryptionSets) |
+| [Compute Disks](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Compute/disks) | | [disks](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Compute/disks) |
+| [Azure Compute Galleries](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Compute/galleries) | | [galleries](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Compute/galleries) |
+| [Images](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Compute/images) | | [images](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Compute/images) |
+| [Proximity Placement Groups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Compute/proximityPlacementGroups) | | [proximityPlacementGroups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Compute/proximityPlacementGroups) |
+| [Virtual Machines](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Compute/virtualMachines) | | [virtualMachines](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Compute/virtualMachines) |
+| [Virtual Machine Scale Sets](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Compute/virtualMachineScaleSets) | | [virtualMachineScaleSets](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Compute/virtualMachineScaleSets) |
+| [Budgets](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Consumption/budgets) | `MS.Consumption` | [budgets](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Consumption/budgets) |
+| [Container Instances](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.ContainerInstance/containerGroups) | `MS.ContainerInstance` | [containerGroups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.ContainerInstance/containerGroups) |
+| [Container Registries](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.ContainerRegistry/registries) | `MS.ContainerRegistry` | [registries](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.ContainerRegistry/registries) |
+| [Azure Kubernetes Services](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.ContainerService/managedClusters) | `MS.ContainerService` | [managedClusters](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.ContainerService/managedClusters) |
+| [Azure Databricks](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Databricks/workspaces) | `MS.Databricks` | [workspaces](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Databricks/workspaces) |
+| [Data Factories](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DataFactory/factories) | `MS.DataFactory` | [factories](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DataFactory/factories) |
+| [DataProtection BackupVaults](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DataProtection/backupVaults) | `MS.DataProtection` | [backupVaults](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DataProtection/backupVaults) |
+| [DBforPostgreSQL FlexibleServers](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DBforPostgreSQL/flexibleServers) | `MS.DBforPostgreSQL` | [flexibleServers](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DBforPostgreSQL/flexibleServers) |
+| [AVD Application Groups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/applicationgroups) | `MS.DesktopVirtualization` | [applicationgroups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/applicationgroups) |
+| [AVD Host Pools](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/hostpools) | | [hostpools](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/hostpools) |
+| [AVD Scaling Plans](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/scalingplans) | | [scalingplans](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/scalingplans) |
+| [AVD Workspaces](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/workspaces) | | [workspaces](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DesktopVirtualization/workspaces) |
+| [DevTestLab Labs](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DevTestLab/labs) | `MS.DevTestLab` | [labs](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DevTestLab/labs) |
+| [DocumentDB Database Accounts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DocumentDB/databaseAccounts) | `MS.DocumentDB` | [databaseAccounts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.DocumentDB/databaseAccounts) |
+| [EventGrid Domains](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.EventGrid/domains) | `MS.EventGrid` | [domains](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.EventGrid/domains) |
+| [EventGrid EventSubscriptions](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.EventGrid/eventSubscriptions) | | [eventSubscriptions](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.EventGrid/eventSubscriptions) |
+| [Event Grid System Topics](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.EventGrid/systemTopics) | | [systemTopics](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.EventGrid/systemTopics) |
+| [Event Grid Topics](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.EventGrid/topics) | | [topics](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.EventGrid/topics) |
+| [Event Hub Namespaces](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.EventHub/namespaces) | `MS.EventHub` | [namespaces](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.EventHub/namespaces) |
+| [Azure Health Bots](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.HealthBot/healthBots) | `MS.HealthBot` | [healthBots](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.HealthBot/healthBots) |
+| [HealthcareApis Workspaces](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.HealthcareApis/workspaces) | `MS.HealthcareApis` | [workspaces](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.HealthcareApis/workspaces) |
+| [Action Groups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/actionGroups) | `MS.Insights` | [actionGroups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/actionGroups) |
+| [Activity Log Alerts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/activityLogAlerts) | | [activityLogAlerts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/activityLogAlerts) |
+| [Application Insights](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/components) | | [components](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/components) |
+| [DataCollectionEndpoints](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/dataCollectionEndpoints) | | [dataCollectionEndpoints](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/dataCollectionEndpoints) |
+| [DataCollectionRules](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/dataCollectionRules) | | [dataCollectionRules](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/dataCollectionRules) |
+| [Activity Logs](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/diagnosticSettings) | | [diagnosticSettings](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/diagnosticSettings) |
+| [Metric Alerts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/metricAlerts) | | [metricAlerts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/metricAlerts) |
+| [Azure Monitor Private Link Scopes](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/privateLinkScopes) | | [privateLinkScopes](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/privateLinkScopes) |
+| [Scheduled Query Rules](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/scheduledQueryRules) | | [scheduledQueryRules](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Insights/scheduledQueryRules) |
+| [Key Vaults](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.KeyVault/vaults) | `MS.KeyVault` | [vaults](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.KeyVault/vaults) |
+| [Kubernetes Configuration Extensions](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.KubernetesConfiguration/extensions) | `MS.KubernetesConfiguration` | [extensions](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.KubernetesConfiguration/extensions) |
+| [Kubernetes Configuration Flux Configurations](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.KubernetesConfiguration/fluxConfigurations) | | [fluxConfigurations](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.KubernetesConfiguration/fluxConfigurations) |
+| [Logic Apps](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Logic/workflows) | `MS.Logic` | [workflows](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Logic/workflows) |
+| [Machine Learning Workspaces](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.MachineLearningServices/workspaces) | `MS.achineLearningServices` | [workspaces](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.MachineLearningServices/workspaces) |
+| [Maintenance Configurations](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Maintenance/maintenanceConfigurations) | `MS.aintenance` | [maintenanceConfigurations](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Maintenance/maintenanceConfigurations) |
+| [User Assigned Identities](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.ManagedIdentity/userAssignedIdentities) | `MS.anagedIdentity` | [userAssignedIdentities](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.ManagedIdentity/userAssignedIdentities) |
+| [Registration Definitions](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.ManagedServices/registrationDefinitions) | `MS.anagedServices` | [registrationDefinitions](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.ManagedServices/registrationDefinitions) |
+| [Management Groups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Management/managementGroups) | `MS.anagement` | [managementGroups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Management/managementGroups) |
+| [Azure NetApp Files](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.NetApp/netAppAccounts) | `MS.NetApp` | [netAppAccounts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.NetApp/netAppAccounts) |
+| [Network Application Gateways](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/applicationGateways) | `MS.Network` | [applicationGateways](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/applicationGateways) |
+| [Application Gateway WebApp Firewall Policies](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies) | | [applicationGatewayWebApplicationFirewallPolicies](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies) |
+| [Application Security Groups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/applicationSecurityGroups) | | [applicationSecurityGroups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/applicationSecurityGroups) |
+| [Azure Firewalls](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/azureFirewalls) | | [azureFirewalls](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/azureFirewalls) |
+| [Bastion Hosts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/bastionHosts) | | [bastionHosts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/bastionHosts) |
+| [Virtual Network Gateway Connections](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/connections) | | [connections](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/connections) |
+| [DDoS Protection Plans](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/ddosProtectionPlans) | | [ddosProtectionPlans](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/ddosProtectionPlans) |
+| [Network DnsResolvers](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/dnsResolvers) | | [dnsResolvers](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/dnsResolvers) |
+| [ExpressRoute Circuits](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/expressRouteCircuits) | | [expressRouteCircuits](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/expressRouteCircuits) |
+| [Firewall Policies](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/firewallPolicies) | | [firewallPolicies](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/firewallPolicies) |
+| [Front Doors](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/frontDoors) | | [frontDoors](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/frontDoors) |
+| [IP Groups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/ipGroups) | | [ipGroups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/ipGroups) |
+| [Load Balancers](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/loadBalancers) | | [loadBalancers](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/loadBalancers) |
+| [Local Network Gateways](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/localNetworkGateways) | | [localNetworkGateways](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/localNetworkGateways) |
+| [NAT Gateways](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/natGateways) | | [natGateways](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/natGateways) |
+| [Network Interface](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/networkInterfaces) | | [networkInterfaces](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/networkInterfaces) |
+| [Network NetworkManagers](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/networkManagers) | | [networkManagers](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/networkManagers) |
+| [Network Security Groups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/networkSecurityGroups) | | [networkSecurityGroups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/networkSecurityGroups) |
+| [Network Watchers](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/networkWatchers) | | [networkWatchers](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/networkWatchers) |
+| [Private DNS Zones](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/privateDnsZones) | | [privateDnsZones](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/privateDnsZones) |
+| [Private Endpoints](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/privateEndpoints) | | [privateEndpoints](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/privateEndpoints) |
+| [Network PrivateLinkServices](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/privateLinkServices) | | [privateLinkServices](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/privateLinkServices) |
+| [Public IP Addresses](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/publicIPAddresses) | | [publicIPAddresses](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/publicIPAddresses) |
+| [Public IP Prefixes](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/publicIPPrefixes) | | [publicIPPrefixes](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/publicIPPrefixes) |
+| [Route Tables](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/routeTables) | | [routeTables](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/routeTables) |
+| [Traffic Manager Profiles](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/trafficmanagerprofiles) | | [trafficmanagerprofiles](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/trafficmanagerprofiles) |
+| [Virtual Hubs](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/virtualHubs) | | [virtualHubs](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/virtualHubs) |
+| [Virtual Network Gateways](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/virtualNetworkGateways) | | [virtualNetworkGateways](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/virtualNetworkGateways) |
+| [Virtual Networks](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/virtualNetworks) | | [virtualNetworks](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/virtualNetworks) |
+| [Virtual WANs](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/virtualWans) | | [virtualWans](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/virtualWans) |
+| [VPN Gateways](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/vpnGateways) | | [vpnGateways](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/vpnGateways) |
+| [VPN Sites](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/vpnSites) | | [vpnSites](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Network/vpnSites) |
+| [Log Analytics Workspaces](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.OperationalInsights/workspaces) | `MS.OperationalInsights` | [workspaces](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.OperationalInsights/workspaces) |
+| [OperationsManagement Solutions](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.OperationsManagement/solutions) | `MS.OperationsManagement` | [solutions](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.OperationsManagement/solutions) |
+| [PolicyInsights Remediations](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.PolicyInsights/remediations) | `MS.PolicyInsights` | [remediations](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.PolicyInsights/remediations) |
+| [PowerBIDedicated Capacities](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.PowerBIDedicated/capacities) | `MS.PowerBIDedicated` | [capacities](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.PowerBIDedicated/capacities) |
+| [Purview Accounts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Purview/accounts) | `MS.Purview` | [accounts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Purview/accounts) |
+| [Recovery Services Vaults](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.RecoveryServices/vaults) | `MS.RecoveryServices` | [vaults](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.RecoveryServices/vaults) |
+| [Deployment Scripts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Resources/deploymentScripts) | `MS.Resources` | [deploymentScripts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Resources/deploymentScripts) |
+| [Resource Groups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Resources/resourceGroups) | | [resourceGroups](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Resources/resourceGroups) |
+| [Resources Tags](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Resources/tags) | | [tags](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Resources/tags) |
+| [Azure Security Center](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Security/azureSecurityCenter) | `MS.Security` | [azureSecurityCenter](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Security/azureSecurityCenter) |
+| [Service Bus Namespaces](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.ServiceBus/namespaces) | `MS.ServiceBus` | [namespaces](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.ServiceBus/namespaces) |
+| [Service Fabric Clusters](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.ServiceFabric/clusters) | `MS.ServiceFabric` | [clusters](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.ServiceFabric/clusters) |
+| [SignalRService SignalR](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.SignalRService/signalR) | `MS.SignalRService` | [signalR](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.SignalRService/signalR) |
+| [Web PubSub Services](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.SignalRService/webPubSub) | | [webPubSub](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.SignalRService/webPubSub) |
+| [SQL Managed Instances](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Sql/managedInstances) | `MS.Sql` | [managedInstances](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Sql/managedInstances) |
+| [SQL Servers](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Sql/servers) | | [servers](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Sql/servers) |
+| [Storage Accounts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Storage/storageAccounts) | `MS.Storage` | [storageAccounts](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Storage/storageAccounts) |
+| [Azure Synapse Analytics](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Synapse/privateLinkHubs) | `MS.Synapse` | [privateLinkHubs](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Synapse/privateLinkHubs) |
+| [Synapse Workspaces](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Synapse/workspaces) | | [workspaces](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Synapse/workspaces) |
+| [Image Templates](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.VirtualMachineImages/imageTemplates) | `MS.VirtualMachineImages` | [imageTemplates](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.VirtualMachineImages/imageTemplates) |
+| [API Connections](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Web/connections) | `MS.Web` | [connections](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Web/connections) |
+| [App Service Environments](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Web/hostingEnvironments) | | [hostingEnvironments](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Web/hostingEnvironments) |
+| [App Service Plans](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Web/serverfarms) | | [serverfarms](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Web/serverfarms) |
+| [Web/Function Apps](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Web/sites) | | [sites](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Web/sites) |
+| [Static Web Apps](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Web/staticSites) | | [staticSites](https://github.com/lapellaniz/ResourceModules/tree/main/modules/Microsoft.Web/staticSites) |
diff --git a/settings.yml b/settings.yml
index 429b307358..6ed96e59e8 100644
--- a/settings.yml
+++ b/settings.yml
@@ -91,7 +91,6 @@ variables:
modulesRepository: ResourceModules # The repository hosting the deployment code (i.e. 'Components'). MUST be provided as a variable with every pipeline
pipelineFunctionsPath: 'utilities/pipelines'
-
#############################
## Publishing settings ##
#############################
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'
+}
+```
+
+Parameter JSON format
+
+```json
+"userAssignedIdentities": {
+ "value": {
+ "/subscriptions/<Bicep format
+
+```bicep
+userAssignedIdentities: {
+ '/subscriptions/<Parameter JSON format
+
+```json
+"acrOciArtifacts": {
+ "value": {
+ [{
+ "digest": "sha256:0a2e01852872580b2c2fea9380ff8d7b637d3928783c55beb3f21a6e58d5d108",
+ "imageName": "myimage:v1",
+ "loginServer": "myregistry.azurecr.io"
+ }]
+ }
+}
+```
+
+Bicep format
+
+```bicep
+acrOciArtifacts: [
+ {
+ digest: 'sha256:0a2e01852872580b2c2fea9380ff8d7b637d3928783c55beb3f21a6e58d5d108'
+ imageName: 'myimage:v1'
+ loginServer: 'myregistry.azurecr.io'
+ }
+]
+```
+
+Parameter JSON format
+
+```json
+"userAssignedIdentities": {
+ "value": {
+ "/subscriptions/<Bicep format
+
+```bicep
+userAssignedIdentities: {
+ '/subscriptions/<Parameter JSON format
+
+```json
+"roleAssignments": {
+ "value": [
+ {
+ "roleDefinitionIdOrName": "Reader",
+ "description": "Reader Role Assignment",
+ "principalIds": [
+ "12345678-1234-1234-1234-123456789012", // object 1
+ "78945612-1234-1234-1234-123456789012" // object 2
+ ]
+ },
+ {
+ "roleDefinitionIdOrName": "/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11",
+ "principalIds": [
+ "12345678-1234-1234-1234-123456789012" // object 1
+ ],
+ "principalType": "ServicePrincipal"
+ }
+ ]
+}
+```
+
+Bicep format
+
+```bicep
+roleAssignments: [
+ {
+ roleDefinitionIdOrName: 'Reader'
+ description: 'Reader Role Assignment'
+ principalIds: [
+ '12345678-1234-1234-1234-123456789012' // object 1
+ '78945612-1234-1234-1234-123456789012' // object 2
+ ]
+ }
+ {
+ roleDefinitionIdOrName: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'
+ principalIds: [
+ '12345678-1234-1234-1234-123456789012' // object 1
+ ]
+ principalType: 'ServicePrincipal'
+ }
+]
+```
+
+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'
+}
+```
+
+Parameter JSON format
+
+```json
+"userAssignedIdentities": {
+ "value": {
+ "/subscriptions/<Bicep format
+
+```bicep
+userAssignedIdentities: {
+ '/subscriptions/<Parameter JSON format
+
+```json
+"destinationMapping": {
+ "value": {
+ "templateType": "CodeValueFhir",
+ "template": {
+ "codes": [
+ {
+ "code": "8867-4",
+ "system": "http://loinc.org",
+ "display": "Heart rate"
+ }
+ ],
+ "periodInterval": 60,
+ "typeName": "heartrate",
+ "value": {
+ "defaultPeriod": 5000,
+ "unit": "count/min",
+ "valueName": "hr",
+ "valueType": "SampledData"
+ }
+ }
+ }
+}
+```
+
+Bicep format
+
+```bicep
+destinationMapping: {
+ templateType: 'CodeValueFhir'
+ template: {
+ codes: [
+ {
+ code: '8867-4'
+ system: 'http://loinc.org'
+ display: 'Heart rate'
+ }
+ ],
+ periodInterval: 60,
+ typeName: 'heartrate'
+ value: {
+ defaultPeriod: 5000
+ unit: 'count/min'
+ valueName: 'hr'
+ valueType: 'SampledData'
+ }
+ }
+}
+```
+
+Parameter JSON format
+
+```json
+"deviceMapping": {
+ "value": {
+ "templateType": "CollectionContent",
+ "template": [
+ {
+ "templateType": "JsonPathContent",
+ "template": {
+ "typeName": "heartrate",
+ "typeMatchExpression": "$..[?(@heartRate)]",
+ "deviceIdExpression": "$.deviceId",
+ "timestampExpression": "$.endDate",
+ "values": [
+ {
+ "required": "true",
+ "valueExpression": "$.heartRate",
+ "valueName": "hr"
+ }
+ ]
+ }
+ }
+ ]
+ }
+}
+```
+
+Bicep format
+
+```bicep
+deviceMapping: {
+ templateType: 'CollectionContent'
+ template: [
+ {
+ templateType: 'JsonPathContent'
+ template: {
+ typeName: 'heartrate'
+ typeMatchExpression: '$..[?(@heartRate)]'
+ deviceIdExpression: '$.deviceId'
+ timestampExpression: '$.endDate'
+ values: [
+ {
+ required: 'true'
+ valueExpression: '$.heartRat'
+ valueName: 'hr'
+ }
+ ]
+ }
+ }]
+}
+```
+
+Parameter JSON format
+
+```json
+"destinationMapping": {
+ "value": {
+ "templateType": "CodeValueFhir",
+ "template": {
+ "codes": [
+ {
+ "code": "8867-4",
+ "system": "http://loinc.org",
+ "display": "Heart rate"
+ }
+ ],
+ "periodInterval": 60,
+ "typeName": "heartrate",
+ "value": {
+ "defaultPeriod": 5000,
+ "unit": "count/min",
+ "valueName": "hr",
+ "valueType": "SampledData"
+ }
+ }
+ }
+}
+```
+
+Bicep format
+
+```bicep
+destinationMapping: {
+ templateType: 'CodeValueFhir'
+ template: {
+ codes: [
+ {
+ code: '8867-4'
+ system: 'http://loinc.org'
+ display: 'Heart rate'
+ }
+ ],
+ periodInterval: 60,
+ typeName: 'heartrate'
+ value: {
+ defaultPeriod: 5000
+ unit: 'count/min'
+ valueName: 'hr'
+ valueType: 'SampledData'
+ }
+ }
+}
+```
+
+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'
+}
+```
+
+Parameter JSON format
+
+```json
+"userAssignedIdentities": {
+ "value": {
+ "/subscriptions/<Bicep format
+
+```bicep
+userAssignedIdentities: {
+ '/subscriptions/<Parameter JSON format
+
+```json
+"fhirServices": {
+ "value": [
+ {
+ "name": "<Bicep format
+
+```bicep
+fhirServices: [
+ {
+ name: '<Parameter JSON format
+
+```json
+"dicomServices": {
+ "value": [
+ {
+ "name": "<Bicep format
+
+```bicep
+dicomServices: [
+ {
+ name: '<Parameter JSON format
+
+```json
+"iotConnectors": {
+ "value": [
+ {
+ "name": "<Bicep format
+
+```bicep
+iotConnectors: [
+ {
+ name: '<Parameter JSON format
+
+```json
+"roleAssignments": {
+ "value": [
+ {
+ "roleDefinitionIdOrName": "Reader",
+ "description": "Reader Role Assignment",
+ "principalIds": [
+ "12345678-1234-1234-1234-123456789012", // object 1
+ "78945612-1234-1234-1234-123456789012" // object 2
+ ]
+ },
+ {
+ "roleDefinitionIdOrName": "/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11",
+ "principalIds": [
+ "12345678-1234-1234-1234-123456789012" // object 1
+ ],
+ "principalType": "ServicePrincipal"
+ }
+ ]
+}
+```
+
+Bicep format
+
+```bicep
+roleAssignments: [
+ {
+ roleDefinitionIdOrName: 'Reader'
+ description: 'Reader Role Assignment'
+ principalIds: [
+ '12345678-1234-1234-1234-123456789012' // object 1
+ '78945612-1234-1234-1234-123456789012' // object 2
+ ]
+ }
+ {
+ roleDefinitionIdOrName: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'
+ principalIds: [
+ '12345678-1234-1234-1234-123456789012' // object 1
+ ]
+ principalType: 'ServicePrincipal'
+ }
+]
+```
+
+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'
+}
+```
+
+Example 1: Common
+
+via Bicep module
+
+```bicep
+module workspaces './Microsoft.HealthcareApis/workspaces/deploy.bicep' = {
+ name: '${uniqueString(deployment().name)}-test-hawcom'
+ params: {
+ // Required parameters
+ name: '<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": "<Example 2: Min
+
+via Bicep module
+
+```bicep
+module workspaces './Microsoft.HealthcareApis/workspaces/deploy.bicep' = {
+ name: '${uniqueString(deployment().name)}-test-hawmin'
+ params: {
+ // Required parameters
+ name: '<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": "<