diff --git a/src/ContainerInstance/ContainerInstance.Autorest/README.md b/src/ContainerInstance/ContainerInstance.Autorest/README.md index cc6fa6b15c1a..69107b1937a6 100644 --- a/src/ContainerInstance/ContainerInstance.Autorest/README.md +++ b/src/ContainerInstance/ContainerInstance.Autorest/README.md @@ -42,6 +42,7 @@ module-version: 1.0.3 # Normally, title is the service name title: ContainerInstance subject-prefix: $(service-name) +enable-change-safety: true directive: # Following is two common directive which are normally required in all the RPs diff --git a/src/ContainerInstance/ContainerInstance.Autorest/custom/Invoke-AzContainerInstanceCommand.ps1 b/src/ContainerInstance/ContainerInstance.Autorest/custom/Invoke-AzContainerInstanceCommand.ps1 index 788fc9d180bb..6175accd5b31 100644 --- a/src/ContainerInstance/ContainerInstance.Autorest/custom/Invoke-AzContainerInstanceCommand.ps1 +++ b/src/ContainerInstance/ContainerInstance.Autorest/custom/Invoke-AzContainerInstanceCommand.ps1 @@ -127,10 +127,27 @@ function Invoke-AzContainerInstanceCommand { # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process { - try { - Az.ContainerInstance.internal\Invoke-AzContainerInstanceCommand @PSBoundParameters - } catch { + + dynamicparam { + # Change Safety: forward the wrapped generated cmdlet's dynamic parameters (-AcquirePolicyToken / -ChangeReference). + # Self-gates on enable-change-safety: the private cmdlet implements IDynamicParameters only when the module opted in. + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command -Name 'Az.ContainerInstance.private\Invoke-AzContainerInstanceCommand_ExecuteExpanded' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { + $dynamicParameters.Add($entry.Key, $entry.Value) + } + } + } + return $dynamicParameters + } + + process { + try { + Az.ContainerInstance.internal\Invoke-AzContainerInstanceCommand @PSBoundParameters + } catch { throw } } diff --git a/src/ContainerInstance/ContainerInstance.Autorest/custom/New-AzContainerGroup.ps1 b/src/ContainerInstance/ContainerInstance.Autorest/custom/New-AzContainerGroup.ps1 index fc5ebe4fb1da..c08a73bb69a9 100644 --- a/src/ContainerInstance/ContainerInstance.Autorest/custom/New-AzContainerGroup.ps1 +++ b/src/ContainerInstance/ContainerInstance.Autorest/custom/New-AzContainerGroup.ps1 @@ -370,6 +370,23 @@ param( # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) + + dynamicparam { + # Change Safety: forward the wrapped generated cmdlet's dynamic parameters (-AcquirePolicyToken / -ChangeReference). + # Self-gates on enable-change-safety: the private cmdlet implements IDynamicParameters only when the module opted in. + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command -Name 'Az.ContainerInstance.private\New-AzContainerGroup_CreateExpanded' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { + $dynamicParameters.Add($entry.Key, $entry.Value) + } + } + } + return $dynamicParameters + } + process { try { diff --git a/src/ContainerInstance/ContainerInstance.Autorest/generate-info.json b/src/ContainerInstance/ContainerInstance.Autorest/generate-info.json index bbc89f8995d5..a0d93f1efd40 100644 --- a/src/ContainerInstance/ContainerInstance.Autorest/generate-info.json +++ b/src/ContainerInstance/ContainerInstance.Autorest/generate-info.json @@ -1,3 +1,3 @@ { - "generate_Id": "6b2e488e-e778-4c37-91d9-3cbcdbd92fbc" + "generate_Id": "b8eda972-31bc-4da8-aa9f-02ec75d4955f" } diff --git a/src/ContainerInstance/ContainerInstance/ChangeLog.md b/src/ContainerInstance/ContainerInstance/ChangeLog.md index 19ffa71b2279..cf49a2ec5517 100644 --- a/src/ContainerInstance/ContainerInstance/ChangeLog.md +++ b/src/ContainerInstance/ContainerInstance/ChangeLog.md @@ -19,6 +19,7 @@ --> ## Upcoming Release +* Added Change Safety support. ## Version 5.0.0 * [Upgraded code generator](https://go.microsoft.com/fwlink/?linkid=2340249) diff --git a/src/ContainerRegistry/ContainerRegistry.Autorest/README.md b/src/ContainerRegistry/ContainerRegistry.Autorest/README.md index 71cbe59acfb3..6b7251af39fd 100644 --- a/src/ContainerRegistry/ContainerRegistry.Autorest/README.md +++ b/src/ContainerRegistry/ContainerRegistry.Autorest/README.md @@ -53,6 +53,7 @@ try-require: module-version: 0.1.0 title: ContainerRegistry subject-prefix: $(service-name) +enable-change-safety: true inlining-threshold: 100 diff --git a/src/ContainerRegistry/ContainerRegistry.Autorest/generate-info.json b/src/ContainerRegistry/ContainerRegistry.Autorest/generate-info.json index decc1e7fa449..2b3abd41915b 100644 --- a/src/ContainerRegistry/ContainerRegistry.Autorest/generate-info.json +++ b/src/ContainerRegistry/ContainerRegistry.Autorest/generate-info.json @@ -1,3 +1,3 @@ { - "generate_Id": "a19a7101-0606-4929-92cc-43573f286e00" + "generate_Id": "2f748bc6-e0fe-44b2-879f-bff194351267" } diff --git a/src/ContainerRegistry/ContainerRegistry/ChangeLog.md b/src/ContainerRegistry/ContainerRegistry/ChangeLog.md index f160422faf7c..8d66c673eb63 100644 --- a/src/ContainerRegistry/ContainerRegistry/ChangeLog.md +++ b/src/ContainerRegistry/ContainerRegistry/ChangeLog.md @@ -18,6 +18,7 @@ - Additional information about change #1 --> ## Upcoming Release +* Added Change Safety support for additional cmdlets. ## Version 5.1.0 * Added ChangeSafety Support diff --git a/src/EventGrid/EventGrid.Autorest/README.md b/src/EventGrid/EventGrid.Autorest/README.md index 1d63c81b475a..66b7339abb57 100644 --- a/src/EventGrid/EventGrid.Autorest/README.md +++ b/src/EventGrid/EventGrid.Autorest/README.md @@ -36,6 +36,7 @@ input-file: title: EventGrid module-version: 0.1.0 subject-prefix: $(service-name) +enable-change-safety: true identity-correction-for-post: true resourcegroup-append: true diff --git a/src/EventGrid/EventGrid.Autorest/generate-info.json b/src/EventGrid/EventGrid.Autorest/generate-info.json index aca26b77da32..6f3f2342baf2 100644 --- a/src/EventGrid/EventGrid.Autorest/generate-info.json +++ b/src/EventGrid/EventGrid.Autorest/generate-info.json @@ -1,3 +1,3 @@ { - "generate_Id": "71d3c888-de41-4841-b15a-443051b0c462" + "generate_Id": "250f1633-0894-4094-a0e4-52f43ac30f5b" } diff --git a/src/EventGrid/EventGrid/ChangeLog.md b/src/EventGrid/EventGrid/ChangeLog.md index 9161ae1d3f5d..960079402d54 100644 --- a/src/EventGrid/EventGrid/ChangeLog.md +++ b/src/EventGrid/EventGrid/ChangeLog.md @@ -18,6 +18,7 @@ - Additional information about change #1 --> ## Upcoming Release +* Added Change Safety support. ## Version 2.2.0 * Upgraded nuget package to signed package. diff --git a/src/EventHub/EventHub.Autorest/README.md b/src/EventHub/EventHub.Autorest/README.md index e1ebd1de9b86..5c52fffbf6ee 100644 --- a/src/EventHub/EventHub.Autorest/README.md +++ b/src/EventHub/EventHub.Autorest/README.md @@ -46,6 +46,7 @@ module-version: 0.1.0 # Normally, title is the service name title: EventHub subject-prefix: $(service-name) +enable-change-safety: true # If there are post APIs for some kinds of actions in the RP, you may need to # uncomment following line to support viaIdentity for these post APIs diff --git a/src/EventHub/EventHub.Autorest/custom/Approve-AzEventHubPrivateEndpointConnection.ps1 b/src/EventHub/EventHub.Autorest/custom/Approve-AzEventHubPrivateEndpointConnection.ps1 index 5ef403e52a6b..23aceb2100aa 100644 --- a/src/EventHub/EventHub.Autorest/custom/Approve-AzEventHubPrivateEndpointConnection.ps1 +++ b/src/EventHub/EventHub.Autorest/custom/Approve-AzEventHubPrivateEndpointConnection.ps1 @@ -121,7 +121,18 @@ function Approve-AzEventHubPrivateEndpointConnection{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process{ + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.EventHub.private\New-AzEventHubPrivateEndpointConnection_CreateViaIdentity' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } + process{ try{ $hasDescription = $PSBoundParameters.Remove('Description') $hasAsJob = $PSBoundParameters.Remove('AsJob') diff --git a/src/EventHub/EventHub.Autorest/custom/Deny-AzEventHubPrivateEndpointConnection.ps1 b/src/EventHub/EventHub.Autorest/custom/Deny-AzEventHubPrivateEndpointConnection.ps1 index b13ef06b6698..b75b2a28e820 100644 --- a/src/EventHub/EventHub.Autorest/custom/Deny-AzEventHubPrivateEndpointConnection.ps1 +++ b/src/EventHub/EventHub.Autorest/custom/Deny-AzEventHubPrivateEndpointConnection.ps1 @@ -121,7 +121,18 @@ function Deny-AzEventHubPrivateEndpointConnection{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process{ + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.EventHub.private\New-AzEventHubPrivateEndpointConnection_CreateViaIdentity' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } + process{ try{ $hasDescription = $PSBoundParameters.Remove('Description') $hasAsJob = $PSBoundParameters.Remove('AsJob') diff --git a/src/EventHub/EventHub.Autorest/custom/New-AzEventHubAuthorizationRule.ps1 b/src/EventHub/EventHub.Autorest/custom/New-AzEventHubAuthorizationRule.ps1 index 79189f07f031..9f65f97b4c8e 100644 --- a/src/EventHub/EventHub.Autorest/custom/New-AzEventHubAuthorizationRule.ps1 +++ b/src/EventHub/EventHub.Autorest/custom/New-AzEventHubAuthorizationRule.ps1 @@ -125,7 +125,18 @@ function New-AzEventHubAuthorizationRule{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process{ + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.EventHub.private\New-AzEventHubNamespaceAuthorizationRule_CreateExpanded' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } + process{ try{ $null = $PSBoundParameters.Remove('WhatIf') $null = $PSBoundParameters.Remove('Confirm') diff --git a/src/EventHub/EventHub.Autorest/custom/New-AzEventHubKey.ps1 b/src/EventHub/EventHub.Autorest/custom/New-AzEventHubKey.ps1 index 982a239173b1..63b0003c2b87 100644 --- a/src/EventHub/EventHub.Autorest/custom/New-AzEventHubKey.ps1 +++ b/src/EventHub/EventHub.Autorest/custom/New-AzEventHubKey.ps1 @@ -132,7 +132,18 @@ function New-AzEventHubKey{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process{ + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.EventHub.private\New-AzEventHubNamespaceKey_Regenerate' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } + process{ try{ $hasKeyValue = $PSBoundParameters.Remove('KeyValue') $hasKeyType = $PSBoundParameters.Remove('KeyType') diff --git a/src/EventHub/EventHub.Autorest/custom/New-AzEventHubNamespace.ps1 b/src/EventHub/EventHub.Autorest/custom/New-AzEventHubNamespace.ps1 index edb62afa96b6..8954ed521868 100644 --- a/src/EventHub/EventHub.Autorest/custom/New-AzEventHubNamespace.ps1 +++ b/src/EventHub/EventHub.Autorest/custom/New-AzEventHubNamespace.ps1 @@ -198,6 +198,21 @@ function New-AzEventHubNamespace{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) + dynamicparam { + # Change Safety: forward the wrapped generated cmdlet's dynamic parameters (-AcquirePolicyToken / -ChangeReference). + # Self-gates on enable-change-safety: the private cmdlet implements IDynamicParameters only when the module opted in. + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command -Name 'Az.EventHub.private\New-AzEventHubNamespace_CreateExpanded' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { + $dynamicParameters.Add($entry.Key, $entry.Value) + } + } + } + return $dynamicParameters + } process{ try{ $null = $PSBoundParameters.Remove('WhatIf') diff --git a/src/EventHub/EventHub.Autorest/custom/Remove-AzEventHubAuthorizationRule.ps1 b/src/EventHub/EventHub.Autorest/custom/Remove-AzEventHubAuthorizationRule.ps1 index 42e3326c9b74..a5abb9086b3d 100644 --- a/src/EventHub/EventHub.Autorest/custom/Remove-AzEventHubAuthorizationRule.ps1 +++ b/src/EventHub/EventHub.Autorest/custom/Remove-AzEventHubAuthorizationRule.ps1 @@ -126,7 +126,18 @@ function Remove-AzEventHubAuthorizationRule{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process{ + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.EventHub.private\Remove-AzEventHubNamespaceAuthorizationRule_Delete' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } + process{ try{ $null = $PSBoundParameters.Remove('WhatIf') $null = $PSBoundParameters.Remove('Confirm') diff --git a/src/EventHub/EventHub.Autorest/custom/Set-AzEventHub.ps1 b/src/EventHub/EventHub.Autorest/custom/Set-AzEventHub.ps1 index 9ee802217b46..d6d80d465122 100644 --- a/src/EventHub/EventHub.Autorest/custom/Set-AzEventHub.ps1 +++ b/src/EventHub/EventHub.Autorest/custom/Set-AzEventHub.ps1 @@ -218,6 +218,21 @@ function Set-AzEventHub{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) + dynamicparam { + # Change Safety: forward the wrapped generated cmdlet's dynamic parameters (-AcquirePolicyToken / -ChangeReference). + # Self-gates on enable-change-safety: the private cmdlet implements IDynamicParameters only when the module opted in. + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command -Name 'Az.EventHub.private\New-AzEventHub_CreateViaIdentity' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { + $dynamicParameters.Add($entry.Key, $entry.Value) + } + } + } + return $dynamicParameters + } process{ try{ $hasCaptureEnabled = $PSBoundParameters.Remove('CaptureEnabled') diff --git a/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubApplicationGroup.ps1 b/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubApplicationGroup.ps1 index ade37ff43b52..05f40fd6ceb8 100644 --- a/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubApplicationGroup.ps1 +++ b/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubApplicationGroup.ps1 @@ -133,7 +133,18 @@ function Set-AzEventHubApplicationGroup{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process{ + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.EventHub.private\New-AzEventHubApplicationGroup_CreateViaIdentity' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } + process{ try{ $hasIsEnabled = $PSBoundParameters.Remove('IsEnabled') diff --git a/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubAuthorizationRule.ps1 b/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubAuthorizationRule.ps1 index 7173267e7a42..93347f0a95f7 100644 --- a/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubAuthorizationRule.ps1 +++ b/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubAuthorizationRule.ps1 @@ -132,7 +132,18 @@ function Set-AzEventHubAuthorizationRule{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process{ + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.EventHub.private\New-AzEventHubNamespaceAuthorizationRule_CreateViaIdentity' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } + process{ try{ $hasRights = $PSBoundParameters.Remove('Rights') $hasAsJob = $PSBoundParameters.Remove('AsJob') diff --git a/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubCluster.ps1 b/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubCluster.ps1 index d99c7b83db72..a0407b3d9711 100644 --- a/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubCluster.ps1 +++ b/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubCluster.ps1 @@ -122,7 +122,18 @@ function Set-AzEventHubCluster{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process{ + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.EventHub.private\New-AzEventHubCluster_CreateViaIdentity' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } + process{ try{ $hasCapacity = $PSBoundParameters.Remove('Capacity') $hasTag = $PSBoundParameters.Remove('Tag') diff --git a/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubConsumerGroup.ps1 b/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubConsumerGroup.ps1 index c8ed7900d690..b16f6914d708 100644 --- a/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubConsumerGroup.ps1 +++ b/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubConsumerGroup.ps1 @@ -128,7 +128,18 @@ function Set-AzEventHubConsumerGroup{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process{ + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.EventHub.private\New-AzEventHubConsumerGroup_CreateViaIdentity' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } + process{ try{ $hasUserMetadata = $PSBoundParameters.Remove('UserMetadata') $hasAsJob = $PSBoundParameters.Remove('AsJob') diff --git a/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubGeoDRConfigurationBreakPair.ps1 b/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubGeoDRConfigurationBreakPair.ps1 index c69bfaf60525..6022a9369e14 100644 --- a/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubGeoDRConfigurationBreakPair.ps1 +++ b/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubGeoDRConfigurationBreakPair.ps1 @@ -114,7 +114,18 @@ function Set-AzEventHubGeoDRConfigurationBreakPair{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process{ + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.EventHub.private\Invoke-AzEventHubBreakDisasterRecoveryConfigPairing_Break' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } + process{ try{ $hasAsJob = $PSBoundParameters.Remove('AsJob') $null = $PSBoundParameters.Remove('WhatIf') diff --git a/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubGeoDRConfigurationFailOver.ps1 b/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubGeoDRConfigurationFailOver.ps1 index 88842d98cf06..67e4ddadda4b 100644 --- a/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubGeoDRConfigurationFailOver.ps1 +++ b/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubGeoDRConfigurationFailOver.ps1 @@ -114,7 +114,18 @@ function Set-AzEventHubGeoDRConfigurationFailOver{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process{ + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.EventHub.private\Invoke-AzEventHubFailDisasterRecoveryConfigOver_Fail' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } + process{ try{ $hasAsJob = $PSBoundParameters.Remove('AsJob') $null = $PSBoundParameters.Remove('WhatIf') diff --git a/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubNamespace.ps1 b/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubNamespace.ps1 index 53c8a9338cc3..d8d3d593808a 100644 --- a/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubNamespace.ps1 +++ b/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubNamespace.ps1 @@ -187,6 +187,21 @@ function Set-AzEventHubNamespace{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) + dynamicparam { + # Change Safety: forward the wrapped generated cmdlet's dynamic parameters (-AcquirePolicyToken / -ChangeReference). + # Self-gates on enable-change-safety: the private cmdlet implements IDynamicParameters only when the module opted in. + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command -Name 'Az.EventHub.private\New-AzEventHubNamespace_CreateViaIdentity' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { + $dynamicParameters.Add($entry.Key, $entry.Value) + } + } + } + return $dynamicParameters + } process{ try{ $hasAlternateName = $PSBoundParameters.Remove('AlternateName') diff --git a/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubNetworkRuleSet.ps1 b/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubNetworkRuleSet.ps1 index 2ef6bb267436..a1057f2af3fe 100644 --- a/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubNetworkRuleSet.ps1 +++ b/src/EventHub/EventHub.Autorest/custom/Set-AzEventHubNetworkRuleSet.ps1 @@ -139,7 +139,18 @@ function Set-AzEventHubNetworkRuleSet{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process{ + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.EventHub.private\New-AzEventHubNetworkRuleSet_CreateViaIdentity' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } + process{ try{ $hasPublicNetworkAccess = $PSBoundParameters.Remove('PublicNetworkAccess') $hasTrustedServiceAccessEnabled = $PSBoundParameters.Remove('TrustedServiceAccessEnabled') diff --git a/src/EventHub/EventHub.Autorest/custom/Start-AzEventHubNamespaceFailOver.ps1 b/src/EventHub/EventHub.Autorest/custom/Start-AzEventHubNamespaceFailOver.ps1 index 7b49b1f28d76..22aae6aea9bd 100644 --- a/src/EventHub/EventHub.Autorest/custom/Start-AzEventHubNamespaceFailOver.ps1 +++ b/src/EventHub/EventHub.Autorest/custom/Start-AzEventHubNamespaceFailOver.ps1 @@ -120,7 +120,18 @@ function Start-AzEventHubNamespaceFailOver{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process{ + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.EventHub.private\Set-AzEventHubNamespace_FailoverExpanded' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } + process{ try{ $hasAsJob = $PSBoundParameters.Remove('AsJob') $null = $PSBoundParameters.Remove('WhatIf') diff --git a/src/EventHub/EventHub.Autorest/generate-info.json b/src/EventHub/EventHub.Autorest/generate-info.json index 7af6a373789a..1f4d0223bf71 100644 --- a/src/EventHub/EventHub.Autorest/generate-info.json +++ b/src/EventHub/EventHub.Autorest/generate-info.json @@ -1,3 +1,3 @@ { - "generate_Id": "182ad16f-843d-4453-a2eb-f91c0a5e6163" + "generate_Id": "37e57dcc-9680-41ff-a019-ec549669f7b0" } diff --git a/src/EventHub/EventHub/ChangeLog.md b/src/EventHub/EventHub/ChangeLog.md index 0e1331bfa48a..ec175fff137f 100644 --- a/src/EventHub/EventHub/ChangeLog.md +++ b/src/EventHub/EventHub/ChangeLog.md @@ -18,6 +18,7 @@ - Additional information about change #1 --> ## Upcoming Release +* Added Change Safety support for additional cmdlets. ## Version 5.6.0 * Added parameter `IPAddressType` to cmdlets 'New-AzEventHubNamespace' and 'Set-AzEventHubNamespace' diff --git a/src/Kusto/Kusto.Autorest/README.md b/src/Kusto/Kusto.Autorest/README.md index ced5c5208ac6..bcb908b96261 100644 --- a/src/Kusto/Kusto.Autorest/README.md +++ b/src/Kusto/Kusto.Autorest/README.md @@ -60,6 +60,7 @@ keep-pec-and-plr: true module-version: 0.1.4 title: Kusto subject-prefix: $(service-name) +enable-change-safety: true ``` > Folders diff --git a/src/Kusto/Kusto.Autorest/custom/New-AzKustoDatabase.ps1 b/src/Kusto/Kusto.Autorest/custom/New-AzKustoDatabase.ps1 index 2a4ddd2ad942..db51b0cc68ff 100644 --- a/src/Kusto/Kusto.Autorest/custom/New-AzKustoDatabase.ps1 +++ b/src/Kusto/Kusto.Autorest/custom/New-AzKustoDatabase.ps1 @@ -191,6 +191,22 @@ param( ${ProxyUseDefaultCredentials} ) + dynamicparam { + # Change Safety: forward the wrapped generated cmdlet's dynamic parameters (-AcquirePolicyToken / -ChangeReference). + # Self-gates on enable-change-safety: the private cmdlet implements IDynamicParameters only when the module opted in. + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command -Name 'Az.Kusto.private\New-AzKustoDatabase_CreateExpanded' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { + $dynamicParameters.Add($entry.Key, $entry.Value) + } + } + } + return $dynamicParameters + } + process { try { $Parameter = [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.ReadWriteDatabase]::new() diff --git a/src/Kusto/Kusto.Autorest/custom/Update-AzKustoDatabase.ps1 b/src/Kusto/Kusto.Autorest/custom/Update-AzKustoDatabase.ps1 index 2bdd20ee1c56..a69eca5f2c43 100644 --- a/src/Kusto/Kusto.Autorest/custom/Update-AzKustoDatabase.ps1 +++ b/src/Kusto/Kusto.Autorest/custom/Update-AzKustoDatabase.ps1 @@ -235,6 +235,22 @@ function Update-AzKustoDatabase { ${ProxyUseDefaultCredentials} ) + dynamicparam { + # Change Safety: forward the wrapped generated cmdlet's dynamic parameters (-AcquirePolicyToken / -ChangeReference). + # Self-gates on enable-change-safety: the private cmdlet implements IDynamicParameters only when the module opted in. + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command -Name 'Az.Kusto.private\Update-AzKustoDatabase_UpdateExpanded' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { + $dynamicParameters.Add($entry.Key, $entry.Value) + } + } + } + return $dynamicParameters + } + process { try { diff --git a/src/Kusto/Kusto.Autorest/generate-info.json b/src/Kusto/Kusto.Autorest/generate-info.json index b6a899a6aa08..e6466fabbaa9 100644 --- a/src/Kusto/Kusto.Autorest/generate-info.json +++ b/src/Kusto/Kusto.Autorest/generate-info.json @@ -1,3 +1,3 @@ { - "generate_Id": "878dbd25-487f-4219-aa4d-15fd88bfc546" + "generate_Id": "9be7a6ca-00b6-42ec-a4d0-5d979d69ee9b" } diff --git a/src/Kusto/Kusto/ChangeLog.md b/src/Kusto/Kusto/ChangeLog.md index fc90b243f2e1..82468295105b 100644 --- a/src/Kusto/Kusto/ChangeLog.md +++ b/src/Kusto/Kusto/ChangeLog.md @@ -18,6 +18,7 @@ - Additional information about change #1 --> ## Upcoming Release +* Added Change Safety support. ## Version 3.0.0 * [Upgraded code generator](https://go.microsoft.com/fwlink/?linkid=2340249) diff --git a/src/ManagedServiceIdentity/ManagedServiceIdentity.Autorest/README.md b/src/ManagedServiceIdentity/ManagedServiceIdentity.Autorest/README.md index aba150bb6e58..0df1d2566467 100644 --- a/src/ManagedServiceIdentity/ManagedServiceIdentity.Autorest/README.md +++ b/src/ManagedServiceIdentity/ManagedServiceIdentity.Autorest/README.md @@ -36,6 +36,7 @@ input-file: subject-prefix: "" module-version: 0.3.0 +enable-change-safety: true directive: # Update Location parameter available diff --git a/src/ManagedServiceIdentity/ManagedServiceIdentity.Autorest/generate-info.json b/src/ManagedServiceIdentity/ManagedServiceIdentity.Autorest/generate-info.json index d0f4bb05837d..0eca31347aaa 100644 --- a/src/ManagedServiceIdentity/ManagedServiceIdentity.Autorest/generate-info.json +++ b/src/ManagedServiceIdentity/ManagedServiceIdentity.Autorest/generate-info.json @@ -1,3 +1,3 @@ { - "generate_Id": "5e153379-a05b-47b5-9806-077aa515fb63" + "generate_Id": "cfc0f4c5-8aa5-4e33-bb1d-7f9734665387" } diff --git a/src/ManagedServiceIdentity/ManagedServiceIdentity/ChangeLog.md b/src/ManagedServiceIdentity/ManagedServiceIdentity/ChangeLog.md index 382c9d601e41..db01636e0f45 100644 --- a/src/ManagedServiceIdentity/ManagedServiceIdentity/ChangeLog.md +++ b/src/ManagedServiceIdentity/ManagedServiceIdentity/ChangeLog.md @@ -18,6 +18,7 @@ - Additional information about change #1 --> ## Upcoming Release +* Added Change Safety support. ## Version 2.0.0 * Introduced various new features by upgrading code generator. Please see details [here](https://github.com/Azure/azure-powershell/blob/main/documentation/Autorest-powershell-v4-new-features.md). diff --git a/src/Monitor/DataCollectionRule.Autorest/README.md b/src/Monitor/DataCollectionRule.Autorest/README.md index c579efe0bdbd..7581f4d0e70c 100644 --- a/src/Monitor/DataCollectionRule.Autorest/README.md +++ b/src/Monitor/DataCollectionRule.Autorest/README.md @@ -43,6 +43,7 @@ title: DataCollectionRule module-version: 0.1.0 namespace: Microsoft.Azure.PowerShell.Cmdlets.Monitor.DataCollection subject-prefix: '' +enable-change-safety: true directive: # custom required body diff --git a/src/Monitor/DataCollectionRule.Autorest/generate-info.json b/src/Monitor/DataCollectionRule.Autorest/generate-info.json index 53aabc2ca578..5bae0ad65570 100644 --- a/src/Monitor/DataCollectionRule.Autorest/generate-info.json +++ b/src/Monitor/DataCollectionRule.Autorest/generate-info.json @@ -1,3 +1,3 @@ { - "generate_Id": "38556130-4f1d-44b1-9a41-249e94064c5b" + "generate_Id": "3273a627-c9f6-429a-81cd-eb5a7a8e8a65" } diff --git a/src/Monitor/Monitor/ChangeLog.md b/src/Monitor/Monitor/ChangeLog.md index 11c50c829209..0a8660b462fb 100644 --- a/src/Monitor/Monitor/ChangeLog.md +++ b/src/Monitor/Monitor/ChangeLog.md @@ -19,6 +19,7 @@ --> ## Upcoming Release +* Added Change Safety support for data collection rule cmdlets. ## Version 8.0.0 * Added ChangeSafety Support diff --git a/src/Network/Network/ChangeLog.md b/src/Network/Network/ChangeLog.md index 5131c584c6f1..b1ce8e87f120 100644 --- a/src/Network/Network/ChangeLog.md +++ b/src/Network/Network/ChangeLog.md @@ -19,6 +19,7 @@ ---> ## Upcoming Release +* Added Change Safety support for additional cmdlets. * Added support for the `CAPTCHA` action in Application Gateway WAF (Web Application Firewall) policies. - Added `CAPTCHA` as an allowed value for the `-Action` parameter of custom rules (`New-AzApplicationGatewayFirewallCustomRule`) and managed rule overrides (`New-AzApplicationGatewayFirewallPolicyManagedRuleOverride`). - Added the `-CaptchaExpirationInMins` parameter to `New-AzApplicationGatewayFirewallPolicySetting`. diff --git a/src/Network/NetworkSecurityPerimeter.Autorest/README.md b/src/Network/NetworkSecurityPerimeter.Autorest/README.md index 95e285a9328a..573646a61967 100644 --- a/src/Network/NetworkSecurityPerimeter.Autorest/README.md +++ b/src/Network/NetworkSecurityPerimeter.Autorest/README.md @@ -45,6 +45,7 @@ module-version: 0.1.0 root-module-name: $(prefix).Network title: NetworkSecurityPerimeter subject-prefix: $(service-name) +enable-change-safety: true sanitize-names: true # If there are post APIs for some kinds of actions in the RP, you may need to diff --git a/src/Network/NetworkSecurityPerimeter.Autorest/custom/Update-AzNetworkSecurityPerimeterAccessRule.ps1 b/src/Network/NetworkSecurityPerimeter.Autorest/custom/Update-AzNetworkSecurityPerimeterAccessRule.ps1 index 6d67613baf9c..4ca2c9c9ad33 100644 --- a/src/Network/NetworkSecurityPerimeter.Autorest/custom/Update-AzNetworkSecurityPerimeterAccessRule.ps1 +++ b/src/Network/NetworkSecurityPerimeter.Autorest/custom/Update-AzNetworkSecurityPerimeterAccessRule.ps1 @@ -181,8 +181,22 @@ function Update-AzNetworkSecurityPerimeterAccessRule { ) + dynamicparam { + # Change Safety: forward the wrapped generated cmdlet's dynamic parameters (-AcquirePolicyToken / -ChangeReference). + # Self-gates on enable-change-safety: the private cmdlet implements IDynamicParameters only when the module opted in. + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command -Name 'Az.NetworkSecurityPerimeter.private\New-AzNetworkSecurityPerimeterAccessRule_CreateViaIdentity' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { + $dynamicParameters.Add($entry.Key, $entry.Value) + } + } + } + return $dynamicParameters + } - process { try { diff --git a/src/Network/NetworkSecurityPerimeter.Autorest/custom/Update-AzNetworkSecurityPerimeterAssociation.ps1 b/src/Network/NetworkSecurityPerimeter.Autorest/custom/Update-AzNetworkSecurityPerimeterAssociation.ps1 index e9117dfd803d..932f708dc6ac 100644 --- a/src/Network/NetworkSecurityPerimeter.Autorest/custom/Update-AzNetworkSecurityPerimeterAssociation.ps1 +++ b/src/Network/NetworkSecurityPerimeter.Autorest/custom/Update-AzNetworkSecurityPerimeterAssociation.ps1 @@ -150,6 +150,22 @@ function Update-AzNetworkSecurityPerimeterAssociation { ) + dynamicparam { + # Change Safety: forward the wrapped generated cmdlet's dynamic parameters (-AcquirePolicyToken / -ChangeReference). + # Self-gates on enable-change-safety: the private cmdlet implements IDynamicParameters only when the module opted in. + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command -Name 'Az.NetworkSecurityPerimeter.private\New-AzNetworkSecurityPerimeterAssociation_CreateViaIdentity' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { + $dynamicParameters.Add($entry.Key, $entry.Value) + } + } + } + return $dynamicParameters + } + process { try { diff --git a/src/Network/NetworkSecurityPerimeter.Autorest/custom/Update-AzNetworkSecurityPerimeterLink.ps1 b/src/Network/NetworkSecurityPerimeter.Autorest/custom/Update-AzNetworkSecurityPerimeterLink.ps1 index e146c8df8058..7a8267e7612d 100644 --- a/src/Network/NetworkSecurityPerimeter.Autorest/custom/Update-AzNetworkSecurityPerimeterLink.ps1 +++ b/src/Network/NetworkSecurityPerimeter.Autorest/custom/Update-AzNetworkSecurityPerimeterLink.ps1 @@ -151,6 +151,22 @@ function Update-AzNetworkSecurityPerimeterLink { # Add only those paramters which can be updated ) + dynamicparam { + # Change Safety: forward the wrapped generated cmdlet's dynamic parameters (-AcquirePolicyToken / -ChangeReference). + # Self-gates on enable-change-safety: the private cmdlet implements IDynamicParameters only when the module opted in. + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command -Name 'Az.NetworkSecurityPerimeter.private\New-AzNetworkSecurityPerimeterLink_CreateViaIdentity' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { + $dynamicParameters.Add($entry.Key, $entry.Value) + } + } + } + return $dynamicParameters + } + process { try { diff --git a/src/Network/NetworkSecurityPerimeter.Autorest/custom/Update-AzNetworkSecurityPerimeterLoggingConfiguration.ps1 b/src/Network/NetworkSecurityPerimeter.Autorest/custom/Update-AzNetworkSecurityPerimeterLoggingConfiguration.ps1 index ecc528bf1370..5cb73685d18c 100644 --- a/src/Network/NetworkSecurityPerimeter.Autorest/custom/Update-AzNetworkSecurityPerimeterLoggingConfiguration.ps1 +++ b/src/Network/NetworkSecurityPerimeter.Autorest/custom/Update-AzNetworkSecurityPerimeterLoggingConfiguration.ps1 @@ -139,6 +139,22 @@ function Update-AzNetworkSecurityPerimeterLoggingConfiguration { # Add only those paramters which can be updated ) + dynamicparam { + # Change Safety: forward the wrapped generated cmdlet's dynamic parameters (-AcquirePolicyToken / -ChangeReference). + # Self-gates on enable-change-safety: the private cmdlet implements IDynamicParameters only when the module opted in. + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command -Name 'Az.NetworkSecurityPerimeter.private\New-AzNetworkSecurityPerimeterLoggingConfiguration_CreateViaIdentity' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { + $dynamicParameters.Add($entry.Key, $entry.Value) + } + } + } + return $dynamicParameters + } + process { try { diff --git a/src/Network/NetworkSecurityPerimeter.Autorest/generate-info.json b/src/Network/NetworkSecurityPerimeter.Autorest/generate-info.json index f698a6119fad..9ea7b3bc480b 100644 --- a/src/Network/NetworkSecurityPerimeter.Autorest/generate-info.json +++ b/src/Network/NetworkSecurityPerimeter.Autorest/generate-info.json @@ -1,3 +1,3 @@ { - "generate_Id": "53112a50-57c5-478c-b083-0d529f1a2ec7" + "generate_Id": "22876a3f-6f36-449b-a291-2b1c423db247" } \ No newline at end of file diff --git a/src/PostgreSqlFlexibleServer/PostgreSqlFlexibleServer.Autorest/generate-info.json b/src/PostgreSqlFlexibleServer/PostgreSqlFlexibleServer.Autorest/generate-info.json index 5e3cf390d827..5e3dd6817437 100644 --- a/src/PostgreSqlFlexibleServer/PostgreSqlFlexibleServer.Autorest/generate-info.json +++ b/src/PostgreSqlFlexibleServer/PostgreSqlFlexibleServer.Autorest/generate-info.json @@ -1,3 +1,3 @@ { - "generate_Id": "07e2ee61-b31a-4bac-a32c-88e576f0fe93" + "generate_Id": "d61be785-e9cd-472e-9cfb-ae67d9e03f80" } diff --git a/src/PostgreSqlFlexibleServer/PostgreSqlFlexibleServer.Autorest/tspconfig.yaml b/src/PostgreSqlFlexibleServer/PostgreSqlFlexibleServer.Autorest/tspconfig.yaml index 0fdd5e5d8867..1343c00620c8 100644 --- a/src/PostgreSqlFlexibleServer/PostgreSqlFlexibleServer.Autorest/tspconfig.yaml +++ b/src/PostgreSqlFlexibleServer/PostgreSqlFlexibleServer.Autorest/tspconfig.yaml @@ -8,6 +8,7 @@ options: module-version: 1.0.0 prefix: "Az" subject-prefix: "PostgreSqlFlexibleServer" + enable-change-safety: true service-name: PostgreSqlFlexibleServer module-name: "{prefix}.{service-name}" output-folder: "{output-dir}" diff --git a/src/PostgreSqlFlexibleServer/PostgreSqlFlexibleServer/ChangeLog.md b/src/PostgreSqlFlexibleServer/PostgreSqlFlexibleServer/ChangeLog.md index 47be8117cc99..507dfad3a8d3 100644 --- a/src/PostgreSqlFlexibleServer/PostgreSqlFlexibleServer/ChangeLog.md +++ b/src/PostgreSqlFlexibleServer/PostgreSqlFlexibleServer/ChangeLog.md @@ -18,6 +18,7 @@ - Additional information about change #1 --> ## Upcoming Release +* Added Change Safety support. ## Version 0.1.0 * First preview release for module Az.PostgreSqlFlexibleServer diff --git a/src/ServiceBus/ServiceBus.Autorest/README.md b/src/ServiceBus/ServiceBus.Autorest/README.md index fa23634fce56..d3d3f62b7e22 100644 --- a/src/ServiceBus/ServiceBus.Autorest/README.md +++ b/src/ServiceBus/ServiceBus.Autorest/README.md @@ -42,6 +42,7 @@ module-version: 0.1.0 # Normally, title is the service name title: ServiceBus subject-prefix: $(service-name) +enable-change-safety: true # If there are post APIs for some kinds of actions in the RP, you may need to # uncomment following line to support viaIdentity for these post APIs diff --git a/src/ServiceBus/ServiceBus.Autorest/custom/Approve-AzServiceBusPrivateEndpointConnection.ps1 b/src/ServiceBus/ServiceBus.Autorest/custom/Approve-AzServiceBusPrivateEndpointConnection.ps1 index c822e353b63a..ed53fbfa22d5 100644 --- a/src/ServiceBus/ServiceBus.Autorest/custom/Approve-AzServiceBusPrivateEndpointConnection.ps1 +++ b/src/ServiceBus/ServiceBus.Autorest/custom/Approve-AzServiceBusPrivateEndpointConnection.ps1 @@ -122,7 +122,18 @@ function Approve-AzServiceBusPrivateEndpointConnection{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process{ + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.ServiceBus.private\New-AzServiceBusPrivateEndpointConnection_CreateViaIdentity' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } + process{ try{ $hasDescription = $PSBoundParameters.Remove('Description') $hasAsJob = $PSBoundParameters.Remove('AsJob') diff --git a/src/ServiceBus/ServiceBus.Autorest/custom/Deny-AzServiceBusPrivateEndpointConnection.ps1 b/src/ServiceBus/ServiceBus.Autorest/custom/Deny-AzServiceBusPrivateEndpointConnection.ps1 index f5040a10ba0d..5185cfd5a66b 100644 --- a/src/ServiceBus/ServiceBus.Autorest/custom/Deny-AzServiceBusPrivateEndpointConnection.ps1 +++ b/src/ServiceBus/ServiceBus.Autorest/custom/Deny-AzServiceBusPrivateEndpointConnection.ps1 @@ -122,7 +122,18 @@ function Deny-AzServiceBusPrivateEndpointConnection{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process{ + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.ServiceBus.private\New-AzServiceBusPrivateEndpointConnection_CreateViaIdentity' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } + process{ try{ $hasDescription = $PSBoundParameters.Remove('Description') $hasAsJob = $PSBoundParameters.Remove('AsJob') diff --git a/src/ServiceBus/ServiceBus.Autorest/custom/New-AzServiceBusAuthorizationRule.ps1 b/src/ServiceBus/ServiceBus.Autorest/custom/New-AzServiceBusAuthorizationRule.ps1 index 42f7620ca255..183682cb8c85 100644 --- a/src/ServiceBus/ServiceBus.Autorest/custom/New-AzServiceBusAuthorizationRule.ps1 +++ b/src/ServiceBus/ServiceBus.Autorest/custom/New-AzServiceBusAuthorizationRule.ps1 @@ -129,7 +129,18 @@ function New-AzServiceBusAuthorizationRule{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process{ + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.ServiceBus.private\New-AzServiceBusNamespaceAuthorizationRule_CreateExpanded' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } + process{ try{ $null = $PSBoundParameters.Remove('WhatIf') $null = $PSBoundParameters.Remove('Confirm') diff --git a/src/ServiceBus/ServiceBus.Autorest/custom/New-AzServiceBusKey.ps1 b/src/ServiceBus/ServiceBus.Autorest/custom/New-AzServiceBusKey.ps1 index 4eafdc013c6b..fb58cbe36cb0 100644 --- a/src/ServiceBus/ServiceBus.Autorest/custom/New-AzServiceBusKey.ps1 +++ b/src/ServiceBus/ServiceBus.Autorest/custom/New-AzServiceBusKey.ps1 @@ -142,7 +142,18 @@ function New-AzServiceBusKey{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process{ + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.ServiceBus.private\New-AzServiceBusNamespaceKey_Regenerate' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } + process{ try{ $hasKeyValue = $PSBoundParameters.Remove('KeyValue') $hasKeyType = $PSBoundParameters.Remove('KeyType') diff --git a/src/ServiceBus/ServiceBus.Autorest/custom/New-AzServiceBusNamespace.ps1 b/src/ServiceBus/ServiceBus.Autorest/custom/New-AzServiceBusNamespace.ps1 index c6cf5ac13822..13c472b77819 100644 --- a/src/ServiceBus/ServiceBus.Autorest/custom/New-AzServiceBusNamespace.ps1 +++ b/src/ServiceBus/ServiceBus.Autorest/custom/New-AzServiceBusNamespace.ps1 @@ -175,7 +175,7 @@ function New-AzServiceBusNamespace{ ${GeoDataReplicationMaxReplicationLagDurationInSecond}, [Parameter(HelpMessage = "Replica locations for geo data replication. Pass an array of NamespaceReplicaLocation objects (for example from New-AzServiceBusLocationsNameObject).")] - [Microsoft.Azure.PowerShell.Cmdlets.ServiceBus.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ServiceBus.Category('Body')] [Microsoft.Azure.PowerShell.Cmdlets.ServiceBus.Models.INamespaceReplicaLocation[]] ${GeoDataReplicationLocation}, @@ -184,6 +184,21 @@ function New-AzServiceBusNamespace{ [System.String] ${IPAddressType} ) + dynamicparam { + # Change Safety: forward the wrapped generated cmdlet's dynamic parameters (-AcquirePolicyToken / -ChangeReference). + # Self-gates on enable-change-safety: the private cmdlet implements IDynamicParameters only when the module opted in. + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command -Name 'Az.ServiceBus.private\New-AzServiceBusNamespace_CreateExpanded' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { + $dynamicParameters.Add($entry.Key, $entry.Value) + } + } + } + return $dynamicParameters + } process{ try{ $null = $PSBoundParameters.Remove('WhatIf') diff --git a/src/ServiceBus/ServiceBus.Autorest/custom/Remove-AzServiceBusAuthorizationRule.ps1 b/src/ServiceBus/ServiceBus.Autorest/custom/Remove-AzServiceBusAuthorizationRule.ps1 index 9c47a088139f..57a4b5145879 100644 --- a/src/ServiceBus/ServiceBus.Autorest/custom/Remove-AzServiceBusAuthorizationRule.ps1 +++ b/src/ServiceBus/ServiceBus.Autorest/custom/Remove-AzServiceBusAuthorizationRule.ps1 @@ -136,7 +136,18 @@ function Remove-AzServiceBusAuthorizationRule{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process{ + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.ServiceBus.private\Remove-AzServiceBusNamespaceAuthorizationRule_Delete' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } + process{ try{ $null = $PSBoundParameters.Remove('WhatIf') $null = $PSBoundParameters.Remove('Confirm') diff --git a/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusAuthorizationRule.ps1 b/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusAuthorizationRule.ps1 index 93440cf600ab..e1ac93e4b549 100644 --- a/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusAuthorizationRule.ps1 +++ b/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusAuthorizationRule.ps1 @@ -142,7 +142,18 @@ function Set-AzServiceBusAuthorizationRule{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process{ + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.ServiceBus.private\New-AzServiceBusNamespaceAuthorizationRule_CreateViaIdentity' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } + process{ try{ $hasRights = $PSBoundParameters.Remove('Rights') $hasAsJob = $PSBoundParameters.Remove('AsJob') diff --git a/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusGeoDRConfigurationBreakPair.ps1 b/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusGeoDRConfigurationBreakPair.ps1 index 07073ada33d0..1ad47e981f25 100644 --- a/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusGeoDRConfigurationBreakPair.ps1 +++ b/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusGeoDRConfigurationBreakPair.ps1 @@ -115,7 +115,18 @@ function Set-AzServiceBusGeoDRConfigurationBreakPair{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process{ + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.ServiceBus.private\Invoke-AzServiceBusBreakDisasterRecoveryConfigPairing_Break' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } + process{ try{ $hasAsJob = $PSBoundParameters.Remove('AsJob') $null = $PSBoundParameters.Remove('WhatIf') diff --git a/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusGeoDRConfigurationFailOver.ps1 b/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusGeoDRConfigurationFailOver.ps1 index defedbd728bc..d2fff87db5ea 100644 --- a/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusGeoDRConfigurationFailOver.ps1 +++ b/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusGeoDRConfigurationFailOver.ps1 @@ -115,7 +115,18 @@ function Set-AzServiceBusGeoDRConfigurationFailOver{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process{ + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.ServiceBus.private\Invoke-AzServiceBusFailDisasterRecoveryConfigOver_FailExpanded' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } + process{ try{ $hasAsJob = $PSBoundParameters.Remove('AsJob') $null = $PSBoundParameters.Remove('WhatIf') diff --git a/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusNamespace.ps1 b/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusNamespace.ps1 index 3348f3f291fc..099a480c5413 100644 --- a/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusNamespace.ps1 +++ b/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusNamespace.ps1 @@ -176,6 +176,21 @@ function Set-AzServiceBusNamespace{ [System.String] ${IPAddressType} ) + dynamicparam { + # Change Safety: forward the wrapped generated cmdlet's dynamic parameters (-AcquirePolicyToken / -ChangeReference). + # Self-gates on enable-change-safety: the private cmdlet implements IDynamicParameters only when the module opted in. + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command -Name 'Az.ServiceBus.private\New-AzServiceBusNamespace_CreateViaIdentity' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { + $dynamicParameters.Add($entry.Key, $entry.Value) + } + } + } + return $dynamicParameters + } process{ try{ $hasAlternateName = $PSBoundParameters.Remove('AlternateName') diff --git a/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusNetworkRuleSet.ps1 b/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusNetworkRuleSet.ps1 index 3f9b3dccf094..d6149a80ee4b 100644 --- a/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusNetworkRuleSet.ps1 +++ b/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusNetworkRuleSet.ps1 @@ -139,7 +139,18 @@ function Set-AzServiceBusNetworkRuleSet{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process{ + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.ServiceBus.private\New-AzServiceBusNetworkRuleSet_CreateViaIdentity' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } + process{ try{ $hasPublicNetworkAccess = $PSBoundParameters.Remove('PublicNetworkAccess') $hasTrustedServiceAccessEnabled = $PSBoundParameters.Remove('TrustedServiceAccessEnabled') diff --git a/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusQueue.ps1 b/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusQueue.ps1 index ef40cd5dbaba..5f272f40c85b 100644 --- a/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusQueue.ps1 +++ b/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusQueue.ps1 @@ -195,6 +195,22 @@ function Set-AzServiceBusQueue{ ${ProxyUseDefaultCredentials} ) + dynamicparam { + # Change Safety: forward the wrapped generated cmdlet's dynamic parameters (-AcquirePolicyToken / -ChangeReference). + # Self-gates on enable-change-safety: the private cmdlet implements IDynamicParameters only when the module opted in. + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command -Name 'Az.ServiceBus.private\New-AzServiceBusQueue_CreateViaIdentity' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { + $dynamicParameters.Add($entry.Key, $entry.Value) + } + } + } + return $dynamicParameters + } + process{ try{ $hasAutoDeleteOnIdle = $PSBoundParameters.Remove('AutoDeleteOnIdle') diff --git a/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusRule.ps1 b/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusRule.ps1 index 2343c980ada6..c49359ddcc31 100644 --- a/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusRule.ps1 +++ b/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusRule.ps1 @@ -218,7 +218,18 @@ function Set-AzServiceBusRule{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process{ + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.ServiceBus.private\New-AzServiceBusRule_CreateViaIdentity' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } + process{ try{ $hasSqlExpression = $PSBoundParameters.Remove('SqlExpression') $hasSqlFilterRequiresPreprocessing = $PSBoundParameters.Remove('SqlFilterRequiresPreprocessing') diff --git a/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusSubscription.ps1 b/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusSubscription.ps1 index e8dc13a3bc13..002b255c030b 100644 --- a/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusSubscription.ps1 +++ b/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusSubscription.ps1 @@ -189,6 +189,17 @@ function Set-AzServiceBusSubscription{ ${ProxyUseDefaultCredentials} ) + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.ServiceBus.private\New-AzServiceBusSubscription_CreateViaIdentity' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } process{ try{ $hasAutoDeleteOnIdle = $PSBoundParameters.Remove('AutoDeleteOnIdle') diff --git a/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusTopic.ps1 b/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusTopic.ps1 index 58b2fdf93eae..9c55e7a90caf 100644 --- a/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusTopic.ps1 +++ b/src/ServiceBus/ServiceBus.Autorest/custom/Set-AzServiceBusTopic.ps1 @@ -170,6 +170,22 @@ function Set-AzServiceBusTopic{ ${ProxyUseDefaultCredentials} ) + dynamicparam { + # Change Safety: forward the wrapped generated cmdlet's dynamic parameters (-AcquirePolicyToken / -ChangeReference). + # Self-gates on enable-change-safety: the private cmdlet implements IDynamicParameters only when the module opted in. + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command -Name 'Az.ServiceBus.private\New-AzServiceBusTopic_CreateViaIdentity' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { + $dynamicParameters.Add($entry.Key, $entry.Value) + } + } + } + return $dynamicParameters + } + process{ try{ $hasAutoDeleteOnIdle = $PSBoundParameters.Remove('AutoDeleteOnIdle') diff --git a/src/ServiceBus/ServiceBus.Autorest/custom/Start-AzServiceBusNamespaceFailOver.ps1 b/src/ServiceBus/ServiceBus.Autorest/custom/Start-AzServiceBusNamespaceFailOver.ps1 index 7a9109f97cbd..8f2e0858e9fa 100644 --- a/src/ServiceBus/ServiceBus.Autorest/custom/Start-AzServiceBusNamespaceFailOver.ps1 +++ b/src/ServiceBus/ServiceBus.Autorest/custom/Start-AzServiceBusNamespaceFailOver.ps1 @@ -120,7 +120,18 @@ function Start-AzServiceBusNamespaceFailOver{ # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) - process{ + dynamicparam { + $dynamicParameters = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() + $wrapped = Get-Command 'Az.ServiceBus.private\Set-AzServiceBusNamespace_FailoverExpanded' -ErrorAction Ignore + if ($wrapped -and [System.Management.Automation.IDynamicParameters].IsAssignableFrom($wrapped.ImplementingType)) { + $instance = [System.Activator]::CreateInstance($wrapped.ImplementingType) + foreach ($entry in $instance.GetDynamicParameters().GetEnumerator()) { + if (-not $dynamicParameters.ContainsKey($entry.Key)) { $dynamicParameters.Add($entry.Key, $entry.Value) } + } + } + return $dynamicParameters + } + process{ try{ $hasAsJob = $PSBoundParameters.Remove('AsJob') $null = $PSBoundParameters.Remove('WhatIf') diff --git a/src/ServiceBus/ServiceBus.Autorest/generate-info.json b/src/ServiceBus/ServiceBus.Autorest/generate-info.json index 1423a409112c..14c5740cefa9 100644 --- a/src/ServiceBus/ServiceBus.Autorest/generate-info.json +++ b/src/ServiceBus/ServiceBus.Autorest/generate-info.json @@ -1,3 +1,3 @@ { - "generate_Id": "86c39454-f25e-40b0-b299-0d10ea55953c" + "generate_Id": "d42664e3-3ae4-4daf-a410-fba6f9958c4e" } diff --git a/src/ServiceBus/ServiceBus/ChangeLog.md b/src/ServiceBus/ServiceBus/ChangeLog.md index 441ce745270b..e1c240079d4e 100644 --- a/src/ServiceBus/ServiceBus/ChangeLog.md +++ b/src/ServiceBus/ServiceBus/ChangeLog.md @@ -19,6 +19,7 @@ - Additional information about change #1 --> ## Upcoming Release +* Added Change Safety support for additional cmdlets. ## Version 4.3.0 * Added parameters 'GeoDataReplicationMaxReplicationLagDurationInSecond', 'GeoDataReplicationLocation', and 'IPAddressType' to cmdlets 'New-AzServiceBusNamespace' and 'Set-AzServiceBusNamespace'