diff --git a/src/Resources/ResourceManager/Implementation/Providers/GetAzureProviderCmdlet.cs b/src/Resources/ResourceManager/Implementation/Providers/GetAzureProviderCmdlet.cs index 62104f7f48bb..5a7a5e016351 100644 --- a/src/Resources/ResourceManager/Implementation/Providers/GetAzureProviderCmdlet.cs +++ b/src/Resources/ResourceManager/Implementation/Providers/GetAzureProviderCmdlet.cs @@ -86,7 +86,8 @@ protected override void OnProcessRecord() ResourceTypeName = type.ResourceTypeName, Locations = type.Locations, ApiVersions = type.ApiVersions, - ZoneMappings = type.ZoneMappings + ZoneMappings = type.ZoneMappings, + DefaultApiVersion = type.DefaultApiVersion } }, ZoneMappings = type.ZoneMappings diff --git a/src/Resources/ResourceManager/ResourceManager.format.ps1xml b/src/Resources/ResourceManager/ResourceManager.format.ps1xml index 279dfc008c74..99fe6e86dc87 100644 --- a/src/Resources/ResourceManager/ResourceManager.format.ps1xml +++ b/src/Resources/ResourceManager/ResourceManager.format.ps1xml @@ -586,6 +586,10 @@ ApiVersions + + + DefaultApiVersion + diff --git a/src/Resources/ResourceManager/SdkExtensions/ResourcesExtensions.cs b/src/Resources/ResourceManager/SdkExtensions/ResourcesExtensions.cs index 685af44cffe8..4707146f84f2 100644 --- a/src/Resources/ResourceManager/SdkExtensions/ResourcesExtensions.cs +++ b/src/Resources/ResourceManager/SdkExtensions/ResourcesExtensions.cs @@ -115,6 +115,7 @@ public static PSResourceProvider ToPSResourceProvider(this Provider provider) ResourceTypeName = resourceType.ResourceType, Locations = resourceType.Locations != null ? resourceType.Locations.ToArray() : null, ApiVersions = resourceType.ApiVersions != null ? resourceType.ApiVersions.ToArray() : null, + DefaultApiVersion = resourceType.DefaultApiVersion }).ToArray(), }; } @@ -214,7 +215,7 @@ public static string ConstructOutputTable(IDictionary dictionary dictionary.Keys.ForEach(k => maxNameLength = Math.Max(maxNameLength, k.Length + 2)); StringBuilder output = new StringBuilder(); - + if (dictionary.Count > 0) { string rowFormat = "{0, -" + maxNameLength + "} {1}\r\n"; @@ -266,7 +267,7 @@ public static string ConstructDeploymentVariableTable(Dictionary pair in dictionary) { - result.AppendFormat(rowFormat, pair.Key, pair.Value.Type, + result.AppendFormat(rowFormat, pair.Key, pair.Value.Type, JsonConvert.SerializeObject(pair.Value.Value).Indent(maxNameLength + maxTypeLength + 4).Trim()); } } diff --git a/src/Resources/ResourceManager/SdkModels/ResourceProvider/PSResourceProviderResourceType.cs b/src/Resources/ResourceManager/SdkModels/ResourceProvider/PSResourceProviderResourceType.cs index b71657187462..0bde47c22db0 100644 --- a/src/Resources/ResourceManager/SdkModels/ResourceProvider/PSResourceProviderResourceType.cs +++ b/src/Resources/ResourceManager/SdkModels/ResourceProvider/PSResourceProviderResourceType.cs @@ -39,5 +39,10 @@ public class PSResourceProviderResourceType /// Gets or sets the zone mappings that this resource supports. /// public Hashtable ZoneMappings { get; set; } + + /// + /// Gets or sets the default api version for this resource. + /// + public string DefaultApiVersion { get; set; } } } diff --git a/src/Resources/Resources/ChangeLog.md b/src/Resources/Resources/ChangeLog.md index 2e38f3d2f1bf..75c928ee51fb 100644 --- a/src/Resources/Resources/ChangeLog.md +++ b/src/Resources/Resources/ChangeLog.md @@ -19,6 +19,7 @@ --> ## Upcoming Release +* Added DefaultApiVersion to the returned properties of the `Get-AzResourceProvider` cmdlet's Resource Type array * Added Diagnostics/Warnings to WhatIf/Validate results for deployments. * Fixed bug unexpected type issue: [#26752] * Added parameter `RequestedAccessTokenVersion` for `New-AzADApplication` and `Update-AzADApplication` @@ -49,7 +50,7 @@ * `New-AzPolicyExemption` * `Update-AzPolicyAssignment` * `Update-AzPolicyExemption` -* Fixed bug deserializing property: `policyDefinitionReferenceId` [#25112] +* Fixed bug deserializing property: `policyDefinitionReferenceId` [#25112] * Fixed overriding of Bicep parameters in Deployment cmdlets to support `SecureString` parameters. * Added Test cmdlets for Deployment Stacks. diff --git a/src/Resources/Resources/help/Get-AzResourceProvider.md b/src/Resources/Resources/help/Get-AzResourceProvider.md index 196064236da4..26937857b688 100644 --- a/src/Resources/Resources/help/Get-AzResourceProvider.md +++ b/src/Resources/Resources/help/Get-AzResourceProvider.md @@ -214,6 +214,22 @@ Locations : {West US, East US, North Europe, West Europe…} This command Gets all the resource providers under "Microsoft.Compute" and "Microsoft.Network". +### Example 4: Get the default API version for a specific resource type + +```powershell +$crp = Get-AzResourceProvider -ProviderNamespace "Microsoft.Compute" +$crp.ResourceTypes | Where-Object { $_.ResourceTypeName -eq "disks" } +``` + +```output +ResourceTypeName : disks +Locations : {Southeast Asia, East US 2, Central US, West Europe…} +ApiVersions : {2024-03-02, 2023-10-02, 2023-04-02, 2023-01-02…} +DefaultApiVersion : 2022-03-02 +``` + +To get the default API version for a specific resource type, get the resource provider first then filter the resource type by name. + ## PARAMETERS ### -ApiVersion