From c0df1b1e70bb21504138da118f820ebe8a16e865 Mon Sep 17 00:00:00 2001 From: John Date: Sun, 10 Nov 2024 12:31:07 +0100 Subject: [PATCH] `avm/res/dev-ops-infrastructure/pool`: removed preview API and added daysData UDT for user-friendly input (#3751) ## Description This pull requests: - Updates the API version to non-preview - Adds a user-defined type for daysData to make the input user-friendly - Updates WAF deployment test - Adds `formattedDaysData` to convert user input to actual input required by API Tagging module owners: @elizatargithub7 @surajguptha ## Pipeline Reference | Pipeline | | -------- | | [![avm.res.dev-ops-infrastructure.pool](https://github.com/johnlokerse/bicep-registry-modules/actions/workflows/avm.res.dev-ops-infrastructure.pool.yml/badge.svg?branch=johnlokerse%2Fimprove-mdp-daysdata)](https://github.com/johnlokerse/bicep-registry-modules/actions/workflows/avm.res.dev-ops-infrastructure.pool.yml) | ## Type of Change - [ ] Update to CI Environment or utilities (Non-module affecting changes) - [ ] Azure Verified Module updates: - [ ] Bugfix containing backwards-compatible bug fixes, and I have NOT bumped the MAJOR or MINOR version in `version.json`: - [ ] Someone has opened a bug report issue, and I have included "Closes #{bug_report_issue_number}" in the PR description. - [ ] The bug was found by the module author, and no one has opened an issue to report it yet. - [ ] Feature update backwards compatible feature updates, and I have bumped the MINOR version in `version.json`. - [x] Breaking changes and I have bumped the MAJOR version in `version.json`. - [x] Update to documentation ## Checklist - [x] I'm sure there are no other open Pull Requests for the same update/change - [x] I have run `Set-AVMModule` locally to generate the supporting module files. - [x] My corresponding pipelines / checks run clean and green without any errors or warnings --- avm/res/dev-ops-infrastructure/pool/README.md | 148 ++++++------------ .../dev-ops-infrastructure/pool/main.bicep | 108 ++++++++++--- avm/res/dev-ops-infrastructure/pool/main.json | 120 ++++++++++++-- .../pool/tests/e2e/max/main.test.bicep | 37 ++--- .../tests/e2e/waf-aligned/main.test.bicep | 25 --- .../dev-ops-infrastructure/pool/version.json | 4 +- 6 files changed, 252 insertions(+), 190 deletions(-) diff --git a/avm/res/dev-ops-infrastructure/pool/README.md b/avm/res/dev-ops-infrastructure/pool/README.md index b587711756..9b7d40e881 100644 --- a/avm/res/dev-ops-infrastructure/pool/README.md +++ b/avm/res/dev-ops-infrastructure/pool/README.md @@ -17,7 +17,7 @@ This module deploys the Managed DevOps Pool resource. | :-- | :-- | | `Microsoft.Authorization/locks` | [2020-05-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-05-01/locks) | | `Microsoft.Authorization/roleAssignments` | [2022-04-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2022-04-01/roleAssignments) | -| `Microsoft.DevOpsInfrastructure/pools` | [2024-04-04-preview](https://learn.microsoft.com/en-us/azure/templates/Microsoft.DevOpsInfrastructure/2024-04-04-preview/pools) | +| `Microsoft.DevOpsInfrastructure/pools` | [2024-10-19](https://learn.microsoft.com/en-us/azure/templates/Microsoft.DevOpsInfrastructure/2024-10-19/pools) | | `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://learn.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | ## Usage examples @@ -182,26 +182,24 @@ module pool 'br/public:avm/res/dev-ops-infrastructure/pool:' = { agentProfile: { kind: 'Stateless' resourcePredictions: { - daysData: [ - { - '09:00:00': 1 - '17:00:00': 0 + daysData: { + friday: { + endAgentCount: 0 + endTime: '17:00:00' + startAgentCount: 1 + startTime: '09:00:00' } - {} - {} - {} - { - '09:00:00': 1 - '17:00:00': 0 + monday: { + endAgentCount: 0 + endTime: '17:00:00' + startAgentCount: 1 + startTime: '09:00:00' } - {} - {} - ] - timeZone: 'Central Europe Standard Time' + } + timeZone: 'UTC' } resourcePredictionsProfile: { - kind: 'Automatic' - predictionPreference: 'Balanced' + kind: 'Manual' } } concurrency: 1 @@ -293,26 +291,24 @@ module pool 'br/public:avm/res/dev-ops-infrastructure/pool:' = { "value": { "kind": "Stateless", "resourcePredictions": { - "daysData": [ - { - "09:00:00": 1, - "17:00:00": 0 - }, - {}, - {}, - {}, - { - "09:00:00": 1, - "17:00:00": 0 + "daysData": { + "friday": { + "endAgentCount": 0, + "endTime": "17:00:00", + "startAgentCount": 1, + "startTime": "09:00:00" }, - {}, - {} - ], - "timeZone": "Central Europe Standard Time" + "monday": { + "endAgentCount": 0, + "endTime": "17:00:00", + "startAgentCount": 1, + "startTime": "09:00:00" + } + }, + "timeZone": "UTC" }, "resourcePredictionsProfile": { - "kind": "Automatic", - "predictionPreference": "Balanced" + "kind": "Manual" } } }, @@ -426,26 +422,24 @@ using 'br/public:avm/res/dev-ops-infrastructure/pool:' param agentProfile = { kind: 'Stateless' resourcePredictions: { - daysData: [ - { - '09:00:00': 1 - '17:00:00': 0 + daysData: { + friday: { + endAgentCount: 0 + endTime: '17:00:00' + startAgentCount: 1 + startTime: '09:00:00' } - {} - {} - {} - { - '09:00:00': 1 - '17:00:00': 0 + monday: { + endAgentCount: 0 + endTime: '17:00:00' + startAgentCount: 1 + startTime: '09:00:00' } - {} - {} - ] - timeZone: 'Central Europe Standard Time' + } + timeZone: 'UTC' } resourcePredictionsProfile: { - kind: 'Automatic' - predictionPreference: 'Balanced' + kind: 'Manual' } } param concurrency = 1 @@ -537,24 +531,6 @@ module pool 'br/public:avm/res/dev-ops-infrastructure/pool:' = { // Required parameters agentProfile: { kind: 'Stateless' - resourcePredictions: { - daysData: [ - { - '09:00:00': 1 - '17:00:00': 0 - } - {} - {} - {} - { - '09:00:00': 1 - '17:00:00': 0 - } - {} - {} - ] - timeZone: 'Central Europe Standard Time' - } resourcePredictionsProfile: { kind: 'Automatic' predictionPreference: 'Balanced' @@ -607,24 +583,6 @@ module pool 'br/public:avm/res/dev-ops-infrastructure/pool:' = { "agentProfile": { "value": { "kind": "Stateless", - "resourcePredictions": { - "daysData": [ - { - "09:00:00": 1, - "17:00:00": 0 - }, - {}, - {}, - {}, - { - "09:00:00": 1, - "17:00:00": 0 - }, - {}, - {} - ], - "timeZone": "Central Europe Standard Time" - }, "resourcePredictionsProfile": { "kind": "Automatic", "predictionPreference": "Balanced" @@ -691,24 +649,6 @@ using 'br/public:avm/res/dev-ops-infrastructure/pool:' // Required parameters param agentProfile = { kind: 'Stateless' - resourcePredictions: { - daysData: [ - { - '09:00:00': 1 - '17:00:00': 0 - } - {} - {} - {} - { - '09:00:00': 1 - '17:00:00': 0 - } - {} - {} - ] - timeZone: 'Central Europe Standard Time' - } resourcePredictionsProfile: { kind: 'Automatic' predictionPreference: 'Balanced' diff --git a/avm/res/dev-ops-infrastructure/pool/main.bicep b/avm/res/dev-ops-infrastructure/pool/main.bicep index 358dd0abf5..8dbaad49b5 100644 --- a/avm/res/dev-ops-infrastructure/pool/main.bicep +++ b/avm/res/dev-ops-infrastructure/pool/main.bicep @@ -114,6 +114,19 @@ var identity = !empty(managedIdentities) } : null +var formattedDaysData = !empty(agentProfile.?resourcePredictions.?daysData) + ? map( + ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + day => + contains(agentProfile.resourcePredictions.daysData, day) + ? { + '${agentProfile.resourcePredictions.daysData[day].startTime}': agentProfile.resourcePredictions.daysData[day].startAgentCount + '${agentProfile.resourcePredictions.daysData[day].endTime}': agentProfile.resourcePredictions.daysData[day].endAgentCount + } + : {} + ) + : null + #disable-next-line no-deployments-resources resource avmTelemetry 'Microsoft.Resources/deployments@2024-03-01' = if (enableTelemetry) { name: '46d3xbcp.res.devopsinfrastructure-pool.${replace('-..--..-', '.', '-')}.${substring(uniqueString(deployment().name, location), 0, 4)}' @@ -133,13 +146,36 @@ resource avmTelemetry 'Microsoft.Resources/deployments@2024-03-01' = if (enableT } } -resource managedDevOpsPool 'Microsoft.DevOpsInfrastructure/pools@2024-04-04-preview' = { +resource managedDevOpsPool 'Microsoft.DevOpsInfrastructure/pools@2024-10-19' = { name: name location: location tags: tags identity: identity properties: { - agentProfile: agentProfile + // agentProfile: agentProfile + agentProfile: agentProfile.kind == 'Stateful' + ? { + kind: 'Stateful' + maxAgentLifetime: agentProfile.maxAgentLifetime + gracePeriodTimeSpan: agentProfile.gracePeriodTimeSpan + resourcePredictions: !empty(agentProfile.?resourcePredictions) + ? { + timeZone: agentProfile.?resourcePredictions.timeZone + daysData: formattedDaysData + } + : null + resourcePredictionsProfile: agentProfile.?resourcePredictionsProfile + } + : { + kind: 'Stateless' + resourcePredictions: !empty(agentProfile.?resourcePredictions) + ? { + timeZone: agentProfile.?resourcePredictions.timeZone + daysData: formattedDaysData + } + : null + resourcePredictionsProfile: agentProfile.?resourcePredictionsProfile + } devCenterProjectResourceId: devCenterProjectResourceId fabricProfile: { sku: { @@ -363,7 +399,13 @@ type agentStatefulType = { gracePeriodTimeSpan: string @description('Optional. Defines pool buffer/stand-by agents.') - resourcePredictions: object? + resourcePredictions: { + @description('Required. The time zone in which the daysData is provided. To see the list of available time zones, see: https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones?view=windows-11#time-zones or via PowerShell command `(Get-TimeZone -ListAvailable).StandardName`.') + timeZone: string + + @description('Optional. The number of agents needed at a specific time.') + daysData: daysDataType + }? @discriminator('kind') @description('Optional. Determines how the stand-by scheme should be provided.') @@ -381,26 +423,7 @@ type agentStatelessType = { timeZone: string @description('Optional. The number of agents needed at a specific time.') - @metadata({ - example: ''' - [ - { // Monday - '09:00': 5 - '22:00': 0 - } - {} // Tuesday - {} // Wednesday - {} // Thursday - { // Friday - '09:00': 5 - '22:00': 0 - } - {} // Saturday - {} // Sunday - ] - ''' - }) - daysData: object[]? + daysData: daysDataType }? @discriminator('kind') @@ -501,3 +524,42 @@ type managedIdentitiesType = { @description('Optional. The resource ID(s) to assign to the resource.') userAssignedResourceIds: string[]? }? + +@export() +type standbyAgentsConfigType = { + @description('Required. The time at which the agents are needed.') + startTime: string + + @description('Required. The time at which the agents are no longer needed.') + endTime: string + + @description('Required. The number of agents needed at the start time.') + startAgentCount: int + + @description('Required. The number of agents needed at the end time.') + endAgentCount: int +}? + +@export() +type daysDataType = { + @description('Optional. The number of agents needed at a specific time for Monday.') + monday: standbyAgentsConfigType + + @description('Optional. The number of agents needed at a specific time for Tuesday.') + tuesday: standbyAgentsConfigType + + @description('Optional. The number of agents needed at a specific time for Wednesday.') + wednesday: standbyAgentsConfigType + + @description('Optional. The number of agents needed at a specific time for Thursday.') + thursday: standbyAgentsConfigType + + @description('Optional. The number of agents needed at a specific time for Friday.') + friday: standbyAgentsConfigType + + @description('Optional. The number of agents needed at a specific time for Saturday.') + saturday: standbyAgentsConfigType + + @description('Optional. The number of agents needed at a specific time for Sunday.') + sunday: standbyAgentsConfigType +}? diff --git a/avm/res/dev-ops-infrastructure/pool/main.json b/avm/res/dev-ops-infrastructure/pool/main.json index 05c3db9232..9607831b9e 100644 --- a/avm/res/dev-ops-infrastructure/pool/main.json +++ b/avm/res/dev-ops-infrastructure/pool/main.json @@ -5,8 +5,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.30.23.60470", - "templateHash": "14560645908978883645" + "version": "0.31.34.60546", + "templateHash": "14164073542984791131" }, "name": "Managed DevOps Pool", "description": "This module deploys the Managed DevOps Pool resource.", @@ -392,6 +392,20 @@ }, "resourcePredictions": { "type": "object", + "properties": { + "timeZone": { + "type": "string", + "metadata": { + "description": "Required. The time zone in which the daysData is provided. To see the list of available time zones, see: https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones?view=windows-11#time-zones or via PowerShell command `(Get-TimeZone -ListAvailable).StandardName`." + } + }, + "daysData": { + "$ref": "#/definitions/daysDataType", + "metadata": { + "description": "Optional. The number of agents needed at a specific time." + } + } + }, "nullable": true, "metadata": { "description": "Optional. Defines pool buffer/stand-by agents." @@ -442,13 +456,8 @@ } }, "daysData": { - "type": "array", - "items": { - "type": "object" - }, - "nullable": true, + "$ref": "#/definitions/daysDataType", "metadata": { - "example": " [\n { // Monday\n '09:00': 5\n '22:00': 0\n }\n {} // Tuesday\n {} // Wednesday\n {} // Thursday\n { // Friday\n '09:00': 5\n '22:00': 0\n }\n {} // Saturday\n {} // Sunday\n ]\n ", "description": "Optional. The number of agents needed at a specific time." } } @@ -750,6 +759,90 @@ "metadata": { "__bicep_export!": true } + }, + "standbyAgentsConfigType": { + "type": "object", + "properties": { + "startTime": { + "type": "string", + "metadata": { + "description": "Required. The time at which the agents are needed." + } + }, + "endTime": { + "type": "string", + "metadata": { + "description": "Required. The time at which the agents are no longer needed." + } + }, + "startAgentCount": { + "type": "int", + "metadata": { + "description": "Required. The number of agents needed at the start time." + } + }, + "endAgentCount": { + "type": "int", + "metadata": { + "description": "Required. The number of agents needed at the end time." + } + } + }, + "nullable": true, + "metadata": { + "__bicep_export!": true + } + }, + "daysDataType": { + "type": "object", + "properties": { + "monday": { + "$ref": "#/definitions/standbyAgentsConfigType", + "metadata": { + "description": "Optional. The number of agents needed at a specific time for Monday." + } + }, + "tuesday": { + "$ref": "#/definitions/standbyAgentsConfigType", + "metadata": { + "description": "Optional. The number of agents needed at a specific time for Tuesday." + } + }, + "wednesday": { + "$ref": "#/definitions/standbyAgentsConfigType", + "metadata": { + "description": "Optional. The number of agents needed at a specific time for Wednesday." + } + }, + "thursday": { + "$ref": "#/definitions/standbyAgentsConfigType", + "metadata": { + "description": "Optional. The number of agents needed at a specific time for Thursday." + } + }, + "friday": { + "$ref": "#/definitions/standbyAgentsConfigType", + "metadata": { + "description": "Optional. The number of agents needed at a specific time for Friday." + } + }, + "saturday": { + "$ref": "#/definitions/standbyAgentsConfigType", + "metadata": { + "description": "Optional. The number of agents needed at a specific time for Saturday." + } + }, + "sunday": { + "$ref": "#/definitions/standbyAgentsConfigType", + "metadata": { + "description": "Optional. The number of agents needed at a specific time for Sunday." + } + } + }, + "nullable": true, + "metadata": { + "__bicep_export!": true + } } }, "parameters": { @@ -889,7 +982,8 @@ "User Access Administrator": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '18d7d88d-d35e-4fb5-a5c3-7773c20a72d9')]" }, "formattedUserAssignedIdentities": "[reduce(map(coalesce(tryGet(parameters('managedIdentities'), 'userAssignedResourceIds'), createArray()), lambda('id', createObject(format('{0}', lambdaVariables('id')), createObject()))), createObject(), lambda('cur', 'next', union(lambdaVariables('cur'), lambdaVariables('next'))))]", - "identity": "[if(not(empty(parameters('managedIdentities'))), createObject('type', if(coalesce(tryGet(parameters('managedIdentities'), 'systemAssigned'), false()), if(not(empty(coalesce(tryGet(parameters('managedIdentities'), 'userAssignedResourceIds'), createObject()))), 'SystemAssigned,UserAssigned', 'SystemAssigned'), if(not(empty(coalesce(tryGet(parameters('managedIdentities'), 'userAssignedResourceIds'), createObject()))), 'UserAssigned', 'None')), 'userAssignedIdentities', if(not(empty(variables('formattedUserAssignedIdentities'))), variables('formattedUserAssignedIdentities'), null())), null())]" + "identity": "[if(not(empty(parameters('managedIdentities'))), createObject('type', if(coalesce(tryGet(parameters('managedIdentities'), 'systemAssigned'), false()), if(not(empty(coalesce(tryGet(parameters('managedIdentities'), 'userAssignedResourceIds'), createObject()))), 'SystemAssigned,UserAssigned', 'SystemAssigned'), if(not(empty(coalesce(tryGet(parameters('managedIdentities'), 'userAssignedResourceIds'), createObject()))), 'UserAssigned', 'None')), 'userAssignedIdentities', if(not(empty(variables('formattedUserAssignedIdentities'))), variables('formattedUserAssignedIdentities'), null())), null())]", + "formattedDaysData": "[if(not(empty(tryGet(tryGet(parameters('agentProfile'), 'resourcePredictions'), 'daysData'))), map(createArray('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'), lambda('day', if(contains(parameters('agentProfile').resourcePredictions.daysData, lambdaVariables('day')), createObject(format('{0}', parameters('agentProfile').resourcePredictions.daysData[lambdaVariables('day')].startTime), parameters('agentProfile').resourcePredictions.daysData[lambdaVariables('day')].startAgentCount, format('{0}', parameters('agentProfile').resourcePredictions.daysData[lambdaVariables('day')].endTime), parameters('agentProfile').resourcePredictions.daysData[lambdaVariables('day')].endAgentCount), createObject()))), null())]" }, "resources": { "avmTelemetry": { @@ -914,13 +1008,13 @@ }, "managedDevOpsPool": { "type": "Microsoft.DevOpsInfrastructure/pools", - "apiVersion": "2024-04-04-preview", + "apiVersion": "2024-10-19", "name": "[parameters('name')]", "location": "[parameters('location')]", "tags": "[parameters('tags')]", "identity": "[variables('identity')]", "properties": { - "agentProfile": "[parameters('agentProfile')]", + "agentProfile": "[if(equals(parameters('agentProfile').kind, 'Stateful'), createObject('kind', 'Stateful', 'maxAgentLifetime', parameters('agentProfile').maxAgentLifetime, 'gracePeriodTimeSpan', parameters('agentProfile').gracePeriodTimeSpan, 'resourcePredictions', if(not(empty(tryGet(parameters('agentProfile'), 'resourcePredictions'))), createObject('timeZone', tryGet(parameters('agentProfile'), 'resourcePredictions', 'timeZone'), 'daysData', variables('formattedDaysData')), null()), 'resourcePredictionsProfile', tryGet(parameters('agentProfile'), 'resourcePredictionsProfile')), createObject('kind', 'Stateless', 'resourcePredictions', if(not(empty(tryGet(parameters('agentProfile'), 'resourcePredictions'))), createObject('timeZone', tryGet(parameters('agentProfile'), 'resourcePredictions', 'timeZone'), 'daysData', variables('formattedDaysData')), null()), 'resourcePredictionsProfile', tryGet(parameters('agentProfile'), 'resourcePredictionsProfile')))]", "devCenterProjectResourceId": "[parameters('devCenterProjectResourceId')]", "fabricProfile": { "sku": { @@ -1041,7 +1135,7 @@ "metadata": { "description": "The location the Managed DevOps Pool resource was deployed into." }, - "value": "[reference('managedDevOpsPool', '2024-04-04-preview', 'full').location]" + "value": "[reference('managedDevOpsPool', '2024-10-19', 'full').location]" }, "systemAssignedMIPrincipalId": { "type": "string", @@ -1049,7 +1143,7 @@ "metadata": { "description": "The principal ID of the system assigned identity." }, - "value": "[tryGet(tryGet(reference('managedDevOpsPool', '2024-04-04-preview', 'full'), 'identity'), 'principalId')]" + "value": "[tryGet(tryGet(reference('managedDevOpsPool', '2024-10-19', 'full'), 'identity'), 'principalId')]" } } } \ No newline at end of file diff --git a/avm/res/dev-ops-infrastructure/pool/tests/e2e/max/main.test.bicep b/avm/res/dev-ops-infrastructure/pool/tests/e2e/max/main.test.bicep index 09b40200e5..5a5ce51cb2 100644 --- a/avm/res/dev-ops-infrastructure/pool/tests/e2e/max/main.test.bicep +++ b/avm/res/dev-ops-infrastructure/pool/tests/e2e/max/main.test.bicep @@ -70,33 +70,24 @@ module testDeployment '../../../main.bicep' = [ agentProfile: { kind: 'Stateless' resourcePredictions: { - timeZone: 'Central Europe Standard Time' - daysData: [ - // Monday - { - '09:00:00': 1 - '17:00:00': 0 + timeZone: 'UTC' + daysData: { + monday: { + startTime: '09:00:00' + startAgentCount: 1 + endTime: '17:00:00' + endAgentCount: 0 } - // Tuesday - {} - // Wednesday - {} - // Thursday - {} - // Friday - { - '09:00:00': 1 - '17:00:00': 0 + friday: { + startTime: '09:00:00' + startAgentCount: 1 + endTime: '17:00:00' + endAgentCount: 0 } - // Saturday - {} - // Sunday - {} - ] + } } resourcePredictionsProfile: { - kind: 'Automatic' - predictionPreference: 'Balanced' + kind: 'Manual' } } concurrency: 1 diff --git a/avm/res/dev-ops-infrastructure/pool/tests/e2e/waf-aligned/main.test.bicep b/avm/res/dev-ops-infrastructure/pool/tests/e2e/waf-aligned/main.test.bicep index 20a04a3900..884f636192 100644 --- a/avm/res/dev-ops-infrastructure/pool/tests/e2e/waf-aligned/main.test.bicep +++ b/avm/res/dev-ops-infrastructure/pool/tests/e2e/waf-aligned/main.test.bicep @@ -69,31 +69,6 @@ module testDeployment '../../../main.bicep' = [ location: enforcedLocation agentProfile: { kind: 'Stateless' - resourcePredictions: { - timeZone: 'Central Europe Standard Time' - daysData: [ - // Monday - { - '09:00:00': 1 - '17:00:00': 0 - } - // Tuesday - {} - // Wednesday - {} - // Thursday - {} - // Friday - { - '09:00:00': 1 - '17:00:00': 0 - } - // Saturday - {} - // Sunday - {} - ] - } resourcePredictionsProfile: { kind: 'Automatic' predictionPreference: 'Balanced' diff --git a/avm/res/dev-ops-infrastructure/pool/version.json b/avm/res/dev-ops-infrastructure/pool/version.json index 8def869ede..729ac87673 100644 --- a/avm/res/dev-ops-infrastructure/pool/version.json +++ b/avm/res/dev-ops-infrastructure/pool/version.json @@ -1,7 +1,7 @@ { "$schema": "https://aka.ms/bicep-registry-module-version-file-schema#", - "version": "0.1", + "version": "0.2", "pathFilters": [ "./main.json" ] -} +} \ No newline at end of file