Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
[assembly: System.Reflection.AssemblyCopyrightAttribute("Copyright © Microsoft")]
[assembly: System.Reflection.AssemblyProductAttribute("Microsoft Azure PowerShell")]
[assembly: System.Reflection.AssemblyTitleAttribute("Microsoft Azure PowerShell - AppConfiguration")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.4.1")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.4.1")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("2.0.1")]
[assembly: System.Reflection.AssemblyVersionAttribute("2.0.1")]
[assembly: System.Runtime.InteropServices.ComVisibleAttribute(false)]
[assembly: System.CLSCompliantAttribute(false)]
81 changes: 71 additions & 10 deletions src/AppConfiguration/AppConfiguration.Autorest/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,13 @@ For information on how to develop for `Az.AppConfiguration`, see [how-to.md](how

---
## Generation Requirements
Use of the beta version of `autorest.powershell` generator requires the following:
- [NodeJS LTS](https://nodejs.org) (10.15.x LTS preferred)
- **Note**: It *will not work* with Node < 10.x. Using 11.x builds may cause issues as they may introduce instability or breaking changes.
> If you want an easy way to install and update Node, [NVS - Node Version Switcher](../nodejs/installing-via-nvs.md) or [NVM - Node Version Manager](../nodejs/installing-via-nvm.md) is recommended.
- [AutoRest](https://aka.ms/autorest) v3 beta <br>`npm install -g autorest@beta`<br>&nbsp;
- PowerShell 6.0 or greater
Use of the `autorest.powershell` generator requires the following:
- [NodeJS LTS](https://nodejs.org) (18.x LTS or greater)
- [AutoRest](https://aka.ms/autorest) v3 <br>`npm install -g autorest@latest`<br>&nbsp;
- PowerShell 7.0 or greater
- If you don't have it installed, you can use the cross-platform npm package <br>`npm install -g pwsh`<br>&nbsp;
- .NET Core SDK 2.0 or greater
- If you don't have it installed, you can use the cross-platform npm package <br>`npm install -g dotnet-sdk-2.2`<br>&nbsp;
- .NET SDK 8.0 or greater
- If you don't have it installed, download from [https://dotnet.microsoft.com/download](https://dotnet.microsoft.com/download)<br>&nbsp;

## Run Generation
In this directory, run AutoRest:
Expand All @@ -44,17 +42,37 @@ In this directory, run AutoRest:
> see https://aka.ms/autorest

``` yaml
commit: 7d6b4765562b238310ea80d652ac08597fec0476
commit: 45cbb1a2b5a68c01b7182dbcaa57c3052f992647
require:
- $(this-folder)/../../readme.azure.noprofile.md
input-file:
- $(repo)/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/stable/2022-05-01/appconfiguration.json
- $(repo)/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/stable/2024-06-01/appconfiguration.json

Copy link

Copilot AI Apr 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The AutoRest config is updated to the 2024-06-01 spec, but the checked-in generated module outputs under generated/AppConfiguration/AppConfiguration.Autorest still appear to target the old API version (no 2024-06-01 references) and do not include the new Replica cmdlets. Please re-run generation and commit the updated generated outputs (or ensure the build regenerates them) so the actual shipped module matches the updated docs/manifest.

Suggested change
# Write generated artifacts to the checked-in module location so the shipped output stays aligned
# with the 2024-06-01 specification and includes newly added operations such as Replica cmdlets.
output-folder: $(repo)/generated/AppConfiguration/AppConfiguration.Autorest
# Clear previously generated files to prevent stale outputs from older API versions remaining in the module.
clear-output-folder: true

Copilot uses AI. Check for mistakes.
module-version: 1.0.0
title: AppConfiguration
subject-prefix: $(service-name)

directive:
# Strip x-ms-identifiers extension to avoid schema validation errors
- from: swagger-document
where: $.definitions.OperationDefinitionListResult.properties.value
transform: delete $['x-ms-identifiers']
- from: swagger-document
where: $.definitions.ServiceSpecification.properties.logSpecifications
transform: delete $['x-ms-identifiers']
- from: swagger-document
where: $.definitions.ServiceSpecification.properties.metricSpecifications
transform: delete $['x-ms-identifiers']
- from: swagger-document
where: $.definitions.MetricSpecification.properties.dimensions
transform: delete $['x-ms-identifiers']
- from: swagger-document
where: $.definitions.ErrorDetails.properties.additionalInfo
transform: delete $['x-ms-identifiers']
Comment on lines +56 to +71
Copy link

Copilot AI Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AutoRest README directives should be individually commented with the rationale (“why”) for each transformation. The newly added swagger-document transforms (multiple delete $['x-ms-identifiers']) currently share a single header comment; please add per-directive comments (or otherwise clearly document each directive’s purpose/target) to match the repository’s AutoRest README guidance.

Suggested change
# Strip x-ms-identifiers extension to avoid schema validation errors
- from: swagger-document
where: $.definitions.OperationDefinitionListResult.properties.value
transform: delete $['x-ms-identifiers']
- from: swagger-document
where: $.definitions.ServiceSpecification.properties.logSpecifications
transform: delete $['x-ms-identifiers']
- from: swagger-document
where: $.definitions.ServiceSpecification.properties.metricSpecifications
transform: delete $['x-ms-identifiers']
- from: swagger-document
where: $.definitions.MetricSpecification.properties.dimensions
transform: delete $['x-ms-identifiers']
- from: swagger-document
where: $.definitions.ErrorDetails.properties.additionalInfo
transform: delete $['x-ms-identifiers']
# Strip x-ms-identifiers extension to avoid schema validation errors
# Remove x-ms-identifiers from operation list items to keep the collection schema compatible with AutoRest/PowerShell generation
- from: swagger-document
where: $.definitions.OperationDefinitionListResult.properties.value
transform: delete $['x-ms-identifiers']
# Remove x-ms-identifiers from logSpecifications to avoid validation issues on the service diagnostics definition
- from: swagger-document
where: $.definitions.ServiceSpecification.properties.logSpecifications
transform: delete $['x-ms-identifiers']
# Remove x-ms-identifiers from metricSpecifications to prevent schema extension conflicts in metrics metadata
- from: swagger-document
where: $.definitions.ServiceSpecification.properties.metricSpecifications
transform: delete $['x-ms-identifiers']
# Remove x-ms-identifiers from metric dimensions so the dimensions array schema passes AutoRest validation
- from: swagger-document
where: $.definitions.MetricSpecification.properties.dimensions
transform: delete $['x-ms-identifiers']
# Remove x-ms-identifiers from error additionalInfo entries to avoid validation issues on extended error payloads
- from: swagger-document
where: $.definitions.ErrorDetails.properties.additionalInfo
transform: delete $['x-ms-identifiers']
# Remove x-ms-identifiers from snapshot filters so the filters collection schema is compatible with the generator

Copilot uses AI. Check for mistakes.
- from: swagger-document
where: $.definitions.SnapshotProperties.properties.filters
transform: delete $['x-ms-identifiers']

- where:
variant: ^(Create|Update)(?!.*?(Expanded|JsonFilePath|JsonString))
remove: true
Expand Down Expand Up @@ -125,4 +143,47 @@ directive:
subject: ^ConfigurationStoreDeleted$
set:
subject: ConfigurationDeletedStore

# Snapshot operations are ARM proxies for data plane; exclude from this module
- where:
subject: ^Snapshot$
remove: true

# CreateMode is create-only (x-ms-mutability: create), not applicable to Update
- where:
verb: Update
subject: ConfigurationStore
parameter-name: CreateMode
hide: true

# Location is create-only on stores, not updatable
- where:
verb: Update
subject: ConfigurationStore
parameter-name: Location
hide: true

# Location is required when creating a replica
- from: swagger-document
where: $.definitions.Replica
transform: >
if (!$.required) { $.required = []; }
if (!$.required.includes('location')) { $.required.push('location'); }

# Hide Update-AzAppConfigurationReplica; replicas have no updatable properties
- where:
verb: Update
subject: Replica
hide: true

# Format output
- where:
model-name: Replica
set:
format-table:
properties:
- Name
- Location
- ProvisioningState
- ResourceGroupName
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
{
"resourceType": "configurationStores/replicas",
"apiVersion": "2024-06-01",
"learnMore": {
"url": "https://learn.microsoft.com/powershell/module/az.appconfiguration"
},
"commands": [
{
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we add the New-AzAppConfigurationReplica in this file?

"name": "Get-AzAppConfigurationReplica",
"description": "Gets the properties of the specified replica.",
"path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppConfiguration/configurationStores/{configStoreName}/replicas/{replicaName}",
"help": {
"learnMore": {
"url": "https://learn.microsoft.com/powershell/module/az.appconfiguration/get-azappconfigurationreplica"
},
"parameterSets": [
{
"parameters": [
"-ConfigStoreName <String>",
"-Name <String>",
"-ResourceGroupName <String>",
"[-SubscriptionId <String[]>]"
]
}
]
},
"examples": [
{
"description": "Gets the properties of the specified replica.",
"parameters": [
{
"name": "-ConfigStoreName",
"value": "[Path.configStoreName]"
},
{
"name": "-Name",
"value": "[Path.replicaName]"
},
{
"name": "-ResourceGroupName",
"value": "[Path.resourceGroupName]"
},
{
"name": "-SubscriptionId",
"value": "[Path.subscriptionId]"
}
]
}
]
},
{
"name": "Remove-AzAppConfigurationReplica",
"description": "Deletes a replica.",
"path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppConfiguration/configurationStores/{configStoreName}/replicas/{replicaName}",
"help": {
"learnMore": {
"url": "https://learn.microsoft.com/powershell/module/az.appconfiguration/remove-azappconfigurationreplica"
},
"parameterSets": [
{
"parameters": [
"-ConfigStoreName <String>",
"-Name <String>",
"-ResourceGroupName <String>",
"[-SubscriptionId <String>]"
]
}
]
},
"examples": [
{
"description": "Deletes a replica.",
"parameters": [
{
"name": "-ConfigStoreName",
"value": "[Path.configStoreName]"
},
{
"name": "-Name",
"value": "[Path.replicaName]"
},
{
"name": "-ResourceGroupName",
"value": "[Path.resourceGroupName]"
},
{
"name": "-SubscriptionId",
"value": "[Path.subscriptionId]"
}
]
}
]
}
]
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"resourceType": "configurationStores",
"apiVersion": "2022-05-01",
"apiVersion": "2024-06-01",
"learnMore": {
"url": "https://learn.microsoft.com/powershell/module/az.appconfiguration"
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"resourceType": "locations/deletedConfigurationStores",
"apiVersion": "2022-05-01",
"apiVersion": "2024-06-01",
"learnMore": {
"url": "https://learn.microsoft.com/powershell/module/az.appconfiguration"
},
Expand Down Expand Up @@ -45,7 +45,7 @@
},
{
"name": "Get-AzAppConfigurationDeletedStore",
"description": "Gets a deleted Azure app configuration store.",
"description": "Gets a deleted Azure App Configuration store.",
"path": "/subscriptions/{subscriptionId}/providers/Microsoft.AppConfiguration/locations/{location}/deletedConfigurationStores/{configStoreName}",
"help": {
"learnMore": {
Expand All @@ -63,7 +63,7 @@
},
"examples": [
{
"description": "Gets a deleted Azure app configuration store.",
"description": "Gets a deleted Azure App Configuration store.",
"parameters": [
{
"name": "-Location",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
Module Name: Az.AppConfiguration
Module Guid: eb7a20d7-4675-4932-b491-c24a29f7519e
Module Guid: 6017deb0-bdea-4770-ab56-df3ec463176b
Copy link

Copilot AI Mar 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Module Guid in this documentation front-matter does not match the module manifest GUID (Az.AppConfiguration.psd1 has GUID 3ff16738-381e-4d5a-9d90-c7ef6816f78e). Please update the docs Module Guid to match the manifest so tooling and users see a consistent module identity.

Suggested change
Module Guid: 6017deb0-bdea-4770-ab56-df3ec463176b
Module Guid: 3ff16738-381e-4d5a-9d90-c7ef6816f78e

Copilot uses AI. Check for mistakes.
Download Help Link: https://learn.microsoft.com/powershell/module/az.appconfiguration
Help Version: 1.0.0.0
Locale: en-US
Expand All @@ -15,26 +15,35 @@ Microsoft Azure PowerShell: AppConfiguration cmdlets
Permanently deletes the specified configuration store.

### [Get-AzAppConfigurationDeletedStore](Get-AzAppConfigurationDeletedStore.md)
Gets a deleted Azure app configuration store.
Gets a deleted Azure App Configuration store.

### [Get-AzAppConfigurationReplica](Get-AzAppConfigurationReplica.md)
Gets the properties of the specified replica.

### [Get-AzAppConfigurationStore](Get-AzAppConfigurationStore.md)
Get or list app configuration stores.

### [Get-AzAppConfigurationStoreKey](Get-AzAppConfigurationStoreKey.md)
Lists the access key for the specified configuration store.

### [New-AzAppConfigurationReplica](New-AzAppConfigurationReplica.md)
Create a replica with the specified parameters.

### [New-AzAppConfigurationStore](New-AzAppConfigurationStore.md)
create a configuration store with the specified parameters.
Create a configuration store with the specified parameters.

### [New-AzAppConfigurationStoreKey](New-AzAppConfigurationStoreKey.md)
Regenerates an access key for the specified configuration store.

### [Remove-AzAppConfigurationReplica](Remove-AzAppConfigurationReplica.md)
Deletes a replica.

### [Remove-AzAppConfigurationStore](Remove-AzAppConfigurationStore.md)
Deletes a configuration store.

### [Test-AzAppConfigurationStoreNameAvailability](Test-AzAppConfigurationStoreNameAvailability.md)
Checks whether the configuration store name is available for use.

### [Update-AzAppConfigurationStore](Update-AzAppConfigurationStore.md)
update a configuration store with the specified parameters.
Update a configuration store with the specified parameters.

Loading