", "subscriptionId": "22222222-2222-2222-2222-222222222222", "tenantId": "33333333-3333-3333-3333-333333333333" }` | The login credentials of the deployment principal used to log into the target Azure environment to test in. The format is described [here](https://github.com/Azure/login#configure-deployment-credentials). For more information, see the `[Special case: AZURE_CREDENTIALS]` note below. |
-| `TOKEN_NAMEPREFIX` | `cntso` | Optional. A short (3-5 character length), unique string that should be included in any deployment to Azure. For more information, see the `[Special case: TOKEN_NAMEPREFIX]` note below. |
-
-
-
-{{< expand "β How to: Add a repository secret to GitHub" "expand/collapse" >}}
-
-1. Navigate to the repository's `Settings`.
-
-
-
-2. In the list of settings, expand `Secrets` and select `Actions`. You can create a new repository secret by selecting `New repository secret` on the top right.
-
-
-
-3. In the opening view, you can create a secret by providing a secret `Name`, a secret `Value`, followed by a click on the `Add secret` button.
-
-
-
-{{< /expand >}}
-
-
-
-{{< hint type=important title="Special case: AZURE_CREDENTIALS">}}
-
-This secret represent the service connection to Azure, and its value is a compressed JSON object that must match the following format:
-
-```JSON
-{"clientId": "", "clientSecret": "", "subscriptionId": "", "tenantId": "" }
-```
-
-**Make sure you create this object as one continuous string as shown above** - using the information you collected during [Step 1](#1-setup-your-azure-test-environment). Failing to format the secret as above, causes GitHub to consider each line of the JSON object as a separate secret string. If you're interested, you can find more information about this object [here](https://github.com/Azure/login#configure-deployment-credentials).
-
-{{< /hint >}}
-
-{{< hint type=note title-="Special case: TOKEN_NAMEPREFIX">}}
-
-To lower the barrier to entry and allow users to easily define their own naming conventions, we introduced a default 'name prefix' for all deployed resources.
-
-This prefix is **only** used by the CI environment you validate your modules in, and doesn't affect the naming of any resources you deploy as part of any multi-module solutions (applications/workloads) based on the modules.
-
-Each pipeline in AVM deploying resources uses a logic that automatically replaces "tokens" (i.e., placeholders) in any module test file. These tokens are, for example, included in the resources names (e.g. `'name: kvlt-${namePrefix}'`). Tokens are stored as repository secrets to facilitate maintenance.
-
-{{< /hint >}}
-
-### 3.2. Enable actions
-
-Finally, 'GitHub Actions' are disabled by default and hence, must be enabled first.
-
-To do so, perform the following steps:
-
-1. Navigate to the `Actions` tab on the top of the repository page.
-
-1. Next, select '`I understand my workflows, go ahead and enable them`'.
-
-
-
-### 3.3. Set Read/Write Workflow permissions
-
-To let the workflow engine publish their results into your repository, you have to enable the read / write access for the GitHub actions.
-
-1. Navigate to the `Settings` tab on the top of your repository page.
-
-1. Within the section `Code and automation` click on `Actions` and `General`
-
-1. Make sure to enable `Read and write permissions`
-
-
-
-
-
-{{< hint type=tip >}}
-
-Once you enabled the GitHub actions, your workflows will behave as they do in the upstream repository. This includes a scheduled trigger to continuously check that all modules are working and compliant with the latest tests. However, testing all modules can incur substantial costs with the target subscription. Therefore, we recommend **disabling all workflows of modules you are not working on**. To make this as easy as possible, we created a workflow that disables/enables workflows based on a selected toggle & naming pattern. For more information on how to use this workflow, please refer to the corresponding [documentation](/Azure-Verified-Modules/contributing/bicep/bicep-contribution-flow/enable-or-disable-workflows).
-
-{{< /hint >}}
-
-## 4. Implement your contribution
-
-To implement your contribution, we kindly ask you to first review the [shared](/Azure-Verified-Modules/specs/shared/) & [Bicep-specific](/Azure-Verified-Modules/specs/bicep/) specifications and [composition guidelines](/Azure-Verified-Modules/contributing/bicep/composition/) in particular to make sure your contribution complies with the repository's design and principles.
-
-If you're working on a new module, we'd also ask you to create its corresponding workflow file. Each module has its own file, but only differs in very few details, such as its triggers and pipeline variables. As a result, you can either copy & update any other module workflow file (starting with `'avm.[res|ptn].'`) or leverage the following template:
-
-{{< expand "β Module workflow template" "expand/collapse" >}}
-
-{{< include file="/static/includes/avm.[res-ptn].workflow.template.yml" language="yaml" options="linenos=false" >}}
-
-{{< /expand >}}
-
-{{< hint type=tip >}}
-
-After any change to a module and before running tests, we highly recommend running the [Set-AVMModule](/Azure-Verified-Modules/contributing/bicep/bicep-contribution-flow/generate-bicep-module-files) utility to update all module files that are auto-generated (e.g., the `main.json` & `readme.md` files).
-
-{{< /hint >}}
-
-
-
-## 5. Create/Update and run tests
-
-Before opening a Pull Request to the Bicep Public Registry, ensure your module is ready for publishing, by validating that it meets all the Testing Specifications as per [SNFR1](/Azure-Verified-Modules/specs/shared/#id-snfr1---category-testing---prescribed-tests), [SNFR2](/Azure-Verified-Modules/specs/shared/#id-snfr2---category-testing---e2e-testing), [SNFR3](/Azure-Verified-Modules/specs/shared/#id-snfr3---category-testing---avm-unit-tests), [SNFR4](/Azure-Verified-Modules/specs/shared/#id-snfr4---category-testing---additional-unit-tests), [SNFR5](/Azure-Verified-Modules/specs/shared/#id-snfr5---category-testing---upgrade-tests), [SNFR6](/Azure-Verified-Modules/specs/shared/#id-snfr6---category-testing---static-analysislinting-tests), [SNFR7](/Azure-Verified-Modules/specs/shared/#id-snfr7---category-testing---idempotency-tests).
-
-For example, to meet [SNFR2](/Azure-Verified-Modules/specs/shared/#id-snfr2---category-testing---e2e-testing), ensure the updated module is deployable against a testing Azure subscription and compliant with the intended configuration.
-
-Depending on the type of contribution you implemented (for example, a new resource module feature) we would kindly ask you to also update the `e2e` test run by the pipeline. For a new parameter this could mean to either add its usage to an existing test file, or to add an entirely new test as per [BCPRMNFR1](/Azure-Verified-Modules/specs/bicep/#id-bcprmnfr1---category-testing---expected-test-directories).
-
-Once the contribution is implemented and the changes are pushed to your forked repository, we kindly ask you to validate your updates in your own cloud environment before requesting to merge them to the main repo. Test your code leveraging the forked AVM CI environment you configured before
-
-{{< hint type=tip >}}
-
-In case your contribution involves changes to a module, you can also optionally leverage the [Validate module locally](/Azure-Verified-Modules/contributing/bicep/bicep-contribution-flow/validate-bicep-module-locally) utility to validate the updated module from your local host before validating it through its pipeline.
-
-{{< /hint >}}
-
-### Creating `e2e` tests
-
-As per [BCPRMNFR1](/Azure-Verified-Modules/specs/bicep/#id-bcprmnfr1---category-testing---expected-test-directories), a resource module must contain a minimum set of deployment test cases, while for pattern modules there is no restriction on the naming each deployment test must have.
-In either case, you're free to implement any additional, meaningful test that you see fit. Each test is implemented in its own test folder, containing at least a `main.test.bicep` and optionally any amount of extra deployment files that you may require (e.g., to deploy dependencies using a `dependencies.bicep` that you reference in the test template file).
-
-To get started implementing your test in the `main.test.bicep` file, we recommend the following guidelines:
-
-- As per [BCPNFR13](/Azure-Verified-Modules/specs/bicep/#id-bcpnfr13---category-testing---test-file-metadata), each `main.test.bicep` file should implement metadata to render the test more meaningful in the documentation
-- The `main.test.bicep` file should deploy any immediate dependencies (e.g., a resource group, if required) and invoke the module's main template while providing all parameters for a given test scenario.
-- Parameters
-
- - Each file should define a parameter `serviceShort`. This parameter should be unique to this file (i.e, no two test files should share the same) as it is injected into all resource deployments, making them unique too and account for corresponding requirements.
-
- - As a reference you can create a identifier by combining a substring of the resource type and test scenario (e.g., in case of a Linux Virtual Machine Deployment: `vmlin`).
- - For the substring, we recommend to take the first character and subsequent 'first' character from the resource type identifier and combine them into one string. Following you can find a few examples for reference:
-
- - `db-for-postgre-sql/flexible-server` with a test folder `default` could be: `dfpsfsdef`
- - `storage/storage-account` with a test folder `waf-aligned` could be: `ssawaf`
-
- π‘ If the combination of the `servicesShort` with the rest of a resource name becomes too long, it may be necessary to bend the above recommendations and shorten the name.
- This can especially happen when deploying resources such as Virtual Machines or Storage Accounts that only allow comparatively short names.
-
- - If the module deploys a resource-group-level resource, the template should further have a `resourceGroupName` parameter and subsequent resource deployment. As a reference for the default name you can use `dep-.-${serviceShort}-rg`.
- - Each file should also provide a `location` parameter that may default to the deployments default location
-
-- It is recommended to define all major resource names in the `main.test.bicep` file as it makes later maintenance easier. To implement this, make sure to pass all resource names to any referenced module (including any resource deployed in the `dependencies.bicep`).
-- Further, for any test file (including the `dependencies.bicep` file), the usage of variables should be reduced to the absolute minimum. In other words: You should only use variables if you must use them in more than one place. The idea is to keep the test files as simple as possible
-- References to dependencies should be implemented using resource references in combination with outputs. In other words: You should not hardcode any references into the module template's deployment. Instead use references such as `nestedDependencies.outputs.managedIdentityPrincipalId`
-
- {{< hint type=important >}}
-
- As per [BCPNFR12](/Azure-Verified-Modules/specs/bicep/#id-bcpnfr12---category-testing---deployment-test-naming) you must use the header `module testDeployment '../.*main.bicep' =` when invoking the module's template.
-
- {{< /hint >}}
-
- {{< hint type=tip >}}
-
- π [Example of test file](https://github.com/Azure/bicep-registry-modules/blob/main/avm/utilities/tools/helper/src/src.main.test.bicep)
-
- {{< /hint >}}
-
-Dependency file (`dependencies.bicep`) guidelines:
-
-- The `dependencies.bicep` should optionally be used if any additional dependencies must be deployed into a nested scope (e.g. into a deployed Resource Group).
-- Note that you can reuse many of the assets implemented in other modules. For example, there are many recurring implementations for Managed Identities, Key Vaults, Virtual Network deployments, etc.
-
-- A special case to point out is the implementation of Key Vaults that require purge protection (for example, for Customer Managed Keys). As this implies that we cannot fully clean up a test deployment, it is recommended to generate a new name for this resource upon each pipeline run using the output of the `utcNow()` function at the time.
-
- {{< hint type=tip >}}
-
- π [Example of test using purge protected Key Vault dependency](https://github.com/Azure/bicep-registry-modules/blob/main/avm/res/cognitive-services/account/tests/e2e/system-assigned-cmk-encryption/main.test.bicep#L43)
-
- {{< /hint >}}
-
-
-
-### Reusable assets
-
-There are a number of additional scripts and utilities available [here](https://github.com/Azure/bicep-registry-modules/blob/main/avm/utilities/e2e-template-assets) that may be of use to module owners/contributors. These contain both scripts and Bicep templates that you can re-use in your test files (e.g., to deploy standadized dependencies, or to generate keys using deployment scripts).
-
-Example: Certificate creation script
-
-If you need a Deployment Script to set additional non-template resources up (for example certificates/files, etc.), we recommend to store it as a file in the shared `avm/utilities/e2e-template-assets/scripts` folder and load it using the template function `loadTextContent()` (for example: `scriptContent: loadTextContent('../../../../../../utilities/e2e-template-assets/scripts/New-SSHKey.ps1')`). This approach makes it easier to test & validate the logic and further allows reusing the same logic across multiple test cases.
-
-Example: Diagnostic Settings dependencies
-
-To test the numerous diagnostic settings targets (Log Analytics Workspace, Storage Account, Event Hub, etc.) the AVM core team have provided a dependencies `.bicep` file to help create all these pre-requisite targets that will be needed during test runs.
-
-{{< expand "β Diagnostic Settings Dependencies - Bicep File" "expand/collapse" >}}
-
-{{< include file="/static/includes/diagnostic.dependencies.bicep" language="bicep" options="linenos=false" >}}
-
-{{< /expand >}}
-
-
-
-## 6. Create a Pull Request to the Public Bicep Registry
-
-Finally, once you are satisfied with your contribution and validated it, open a PR for the module owners or core team to review. Make sure you:
-
-1. Provide a meaningful title in the form of _feat: ``_ to align witht the Semantic PR Check.
-2. Provide a meaningful description.
-3. Follow instructions you find in the PR template.
-4. If applicable (i.e., a module is created/updated), please reference the badge status of your pipeline run. This badge will show the reviewer that the code changes were successfully validated & tested in your environment. To create a badge, first select the three dots (`...`) at the top right of the pipeline, and then chose the `Create status badge` option.
-
-
-
- In the opening pop-up, you first need to select your branch and then click on the `Copy status badge Markdown`
-
-
-
-
diff --git a/docs/content/contributing/bicep/bicep-contribution-flow/enable-or-disable-workflows.md b/docs/content/contributing/bicep/bicep-contribution-flow/enable-or-disable-workflows.md
deleted file mode 100644
index 19f4c73..0000000
--- a/docs/content/contributing/bicep/bicep-contribution-flow/enable-or-disable-workflows.md
+++ /dev/null
@@ -1,63 +0,0 @@
-When forking the BRM repository, all workflows from the CI environment are also part of your fork. In an earlier step it was explained, how to set them up correctly, to verify your module development.
-
-Due to the trigger mechanism of the workflows, eventually all of them run at some point in time, creating and deleting resources on Azure in your environment. That will also happen for modules, you are not working on. This will create costs in your own subscription and it can also create a queue for workflow runs, due to the lack of enough free agents.
-
-To limit those workflow runs, you can manually disable each pipeline you do not want to run. As this is a time consuming task, there is script in the BRM repository, to disable (or enable) pipelines in a batch process, that can also be run via a workflow. You can also use RegEx to specify which pipelines should be included and which should be excluded.
-
----
-
-### _Navigation_
-
-- [Location](#location)
-- [How it works](#how-it-works)
-- [Typical use cases](#typical-use-cases)
- - [Disable all but one workflow](#disable-all-but-one-workflow)
- - [Disable all but multiple workflows](#disable-all-but-multiple-workflows)
- - [Enable all workflows](#enable-all-workflows)
-- [Limitations](#limitations)
-
----
-# Location
-
-You can find the script under [`avm/utilities/pipelines/platform/Switch-WorkflowState.ps1)`](https://github.com/Azure/bicep-registry-modules/blob/main/avm/utilities/pipelines/platform/Switch-WorkflowState.ps1)
-You can find the workflow under [`.github/workflows/avm.platform.toggle-avm-workflows.yml`](https://github.com/Azure/bicep-registry-modules/blob/main/.github/workflows/platform.toggle-avm-workflows.yml)
-
-# How it works
-
-Browse to `Actions` and select the workflow from the list
-
-
-
-Run the workflow `avm.platform.toggle-avm-workflows` and set the following settings:
-- `Enable or disable workflows` to enable or disable workflows
-- `RegEx which workflows are included` include a specific set of workflows, using a RegEx.
-- `RegEx which workflows are excluded` exclude a specific set of workflows, using a RegEx.
-
-
-
-# Typical use cases
-
-## Disable all but one workflow
-- `Enable or disable workflows` to `Disable`
-- `RegEx which workflows are included` to `avm\.(?:res|ptn)` (this is the default setting)
-- `RegEx which workflows are excluded` to `avm.res.compute.virtual-machine` (use the name of your own workflow. This example uses the workflow for virtual machine)
-
-## Disable all but multiple workflows
-- `Enable or disable workflows` to `Disable`
-- `RegEx which workflows are included` to `avm\.(?:res|ptn)` (this is the default setting)
-- `RegEx which workflows are excluded` to `(?:avm.res.avm.res.compute.virtual-machine|avm.res.compute.image|avm.res.compute.disk)` (use the names of your own workflows. This example uses the workflows for virtual machine, image, and disk)
-
-## Enable all workflows
-- `Enable or disable workflows` to `Enable`
-- `RegEx which workflows are included` to `avm\.(?:res|ptn)` (this is the default setting)
-- `RegEx which workflows are excluded` to `^$` (this is the default setting)
-
-# Limitations
-
-Please keep in mind, that the workflow run disables all workflows that match the RegEx at that point in time. If you sync your fork with the original repository and new workflows are there, they will be synced to your repository and will be enabled by default. So you will need to run the workflow to disable the new ones again after the sync.
-
-{{< hint type=important >}}
-
-The workflow can only be triggered in forks.
-
-{{< /hint >}}
diff --git a/docs/content/contributing/bicep/bicep-contribution-flow/generate-bicep-module-files.md b/docs/content/contributing/bicep/bicep-contribution-flow/generate-bicep-module-files.md
deleted file mode 100644
index 2ee1d7c..0000000
--- a/docs/content/contributing/bicep/bicep-contribution-flow/generate-bicep-module-files.md
+++ /dev/null
@@ -1,48 +0,0 @@
-As per the module design structure ([BCPFR3](/Azure-Verified-Modules/specs/bicep/#id-bcpfr3---category-composition---directory-and-file-structure)), every module in the AVM library requires
-- a up-to-date ReadMe markdown (`readme.md`) file documenting the set of deployable resource types, input and output parameters and a set of relevant template references from the official Azure Resource Reference documentation
-- an up-to-date compiled template (`main.json`) file
-
-The `Set-AVMModule` utility aims to simplify contributing to the AVM library, as it supports
-- idempotently generating the AVM folder structure for a module (including any child resource)
-- generating the module's ReadMe file from scratch or updating it
-- compiling/building the module template
-
-To ease maintenance, you can run the utility with a `Recurse` flag from the root of your folder to update all files automatically.
-
----
-
-### _Navigation_
-
-- [Location](#location)
-- [How it works](#how-it-works)
-- [How to use it](#how-to-use-it)
-
----
-# Location
-
-You can find the script under [`avm/utilities/tools/Set-AVMModule.ps1`](https://github.com/Azure/bicep-registry-modules/blob/main/avm/utilities/tools/Set-AVMModule.ps1)
-
-# How it works
-
-Using the provided template path, the script
-1. validates the module's folder structure
- - To do so, it searches for any required folder path / file missing and adds them. For several files, it will also provide some default content to get you started. The sources files for this action can be found [here](https://github.com/Azure/bicep-registry-modules/tree/main/avm/utilities/tools/helper/src)
-1. compiles its bicep template
-1. updates the readme (recursively, specified)
- 1. If the intended readMe file does not yet exist in the expected path, it is generated with a skeleton (with e.g., a generated header name)
- 1. The script then goes through all sections defined as `SectionsToRefresh` (by default all) and refreshes the sections' content (for example, for the `Parameters`) based on the values in the ARM/JSON Template. It detects sections by their header and always regenerates the full section.
- 1. Once all are refreshed, the current ReadMe file is overwritten. **Note:** The script can be invoked combining the `WhatIf` and `Verbose` switches to just receive an console-output of the updated content.
-
-# How to use it
-
-For details on how to use the function, please refer to the script's local documentation.
-
-{{< hint type=note >}}
-
-The script must be loaded ('*dot-sourced*') before the function can be invoked.
-```PowerShell
-. 'C:/dev/Set-AVMModule.ps1'
-Set-AVMModule (...)
-```
-
-{{< /hint >}}
diff --git a/docs/content/contributing/bicep/bicep-contribution-flow/owner-contribution-flow.md b/docs/content/contributing/bicep/bicep-contribution-flow/owner-contribution-flow.md
deleted file mode 100644
index 95a9f9a..0000000
--- a/docs/content/contributing/bicep/bicep-contribution-flow/owner-contribution-flow.md
+++ /dev/null
@@ -1,170 +0,0 @@
----
-title: Owner Contribution Flow
-geekdocNav: true
-geekdocAlign: left
-geekdocAnchor: true
----
-
-This section describes the contribution flow for module owners who are responsible for creating and maintaining Bicep Modules.
-
-{{< toc >}}
-
-{{< hint type=important >}}
-
-This contribution flow is for **Module Owners** only.
-
-As a **Bicep Module Owner** you need to be aware of the [AVM Contribution Process Overview](/Azure-Verified-Modules/contributing/process/), [Shared Specifications](/Azure-Verified-Modules/specs/shared/) (including [Interfaces](/Azure-Verified-Modules/specs/shared/interfaces/)) and [Bicep-specific](/Azure-Verified-Modules/specs/bicep/) specifications as these need to be followed during pull request reviews for the modules you own. The purpose of this **Owner Contribution Flow** is to simplify and list the most important activities of an owner and to help you understand your responsibilities as an owner.
-
-{{< /hint >}}
-
----
-
-## 1. Owner Activities and Responsibilities
-
-Familiarise yourself with the responsibilities as **Module Owner** outlined in [Team Definitions & RACI](/Azure-Verified-Modules/specs/shared/team-definitions/#module-owners) and [Module Owner Responsibilities](/Azure-Verified-Modules/help-support/issue-triage/brm-issue-triage/#module-owner-responsibilities) in the [BRM Issue Triage](/Azure-Verified-Modules/help-support/issue-triage/brm-issue-triage/).
-
-1. Create GitHub teams as outlined in [SNFR20](/Azure-Verified-Modules/specs/shared/#id-snfr20---category-contributionsupport---github-teams-only) and add respective parent teams:
-
-Segments:
-
-- `avm-res-