Add ScheduledEventsPolicy parameters to Update-AzVmss, Update-AzAvailabilitySet, and Update-AzVM#221
Draft
Add ScheduledEventsPolicy parameters to Update-AzVmss, Update-AzAvailabilitySet, and Update-AzVM#221
Conversation
…abilitySet, and Update-AzVM cmdlets Co-authored-by: haagha <64601174+haagha@users.noreply.github.com>
Co-authored-by: haagha <64601174+haagha@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Update Az.Compute for ScheduledEventsPolicy changes
Add ScheduledEventsPolicy parameters to Update-AzVmss, Update-AzAvailabilitySet, and Update-AzVM
Nov 25, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds support for configuring ScheduledEventsPolicy on VMSS, AvailabilitySet, and VM resources. This enables customers to control scheduled events delivery to Event Grid/Resource Graph and auto-approval behavior when all instances are down.
New Parameters:
-ScheduledEventAdditionalPublishingTargetEventGridAndResourceGraphEnable(bool) - Enable event grid and resource graph for scheduled events-ScheduledEventAdditionalPublishingTargetEventGridAndResourceGraphApiVersion(string) - API version for scheduled events schema (format: "YYYY-MM-DD")-AllInstancesDownAutomaticallyApprove(bool) - Auto-approve scheduled events when all instances are downExample:
Files Changed:
ScheduledEventsPolicyproperty toPSVirtualMachineScaleSet,PSAvailabilitySet,PSVirtualMachineUpdate-AzVmss,Update-AzAvailabilitySet,Update-AzVMMandatory Checklist
Please choose the target release of Azure PowerShell. (⚠️ Target release is a different concept from API readiness. Please click below links for details.)
Check this box to confirm: I have read the Submitting Changes section of
CONTRIBUTING.mdand reviewed the following information:ChangeLog.mdfile(s) appropriatelysrc/{{SERVICE}}/{{SERVICE}}/ChangeLog.md.## Upcoming Releaseheader in the past tense.ChangeLog.mdif no new release is required, such as fixing test case only.Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
1n8vsblobprodwus2184.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)40vvsblobprodwus2135.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)6yfvsblobprodwus2121.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)7q7vsblobprodwus2144.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)84hvsblobprodwus2148.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)8wdvsblobprodwus2137.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)9yyvsblobprodwus2157.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)b53vsblobprodwus2154.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)ba0vsblobprodwus2130.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)balvsblobprodwus2129.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)cbvvsblobprodwus2131.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)cffvsblobprodwus218.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)d94vsblobprodwus2119.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)ezcvsblobprodwus2170.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)faxvsblobprodwus2122.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)g3xvsblobprodwus2151.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)i01vsblobprodwus216.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)isvvsblobprodwus2147.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)jhgvsblobprodwus2167.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)k4pvsblobprodwus2140.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)ldhvsblobprodwus2153.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)mt2vsblobprodwus2110.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)nudvsblobprodwus214.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)p2tvsblobprodwus2189.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)s8nvsblobprodwus2158.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)tn2vsblobprodwus2124.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)wlnvsblobprodwus2188.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)wztvsblobprodwus2155.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)y5lvsblobprodwus2179.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)yf8vsblobprodwus212.vsblob.vsassets.io/usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj(dns block)/usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources(dns block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
This section details on the original issue you should resolve
<issue_title>Az.Compute - ScheduledEventsPolicy Changes</issue_title>
<issue_description>
Guidelines
The purpose of the Azure PowerShell design review is to ensure that the cmdlets follow the same pattern across the Azure modules. An early design review reduces the risk of unnecessary implementation changes caused by a cmdlet syntax design change.
Please ensure your cmdlets comply with the design guidelines outlined in the PowerShell Design Guidelines document.
Please generate cmdlets syntax using
GenerateCmdletDesignMarkdown.ps1for review if your cmdlet is generated from API spec directly by Autorest.PowerShell.If you just add parameter to existing cmdlets and parameter definition complies with guideline, the design review is not expected.
Have you read above statement?
{ Yes }Service Release Details
Is this an Embargoed Preview, A Public Preview, or a General Release?
Public PreviewWhat is the expected service release date?
Private Preview Began: 10/15Which Powershell module are these changes being made in?
ComputeContact Information
Main developer contacts (emails + github aliases)
Payal Gupta([payallnu@microsoft.com](mailto:payallnu@microsoft.com)), Avisha Jain ([avishajainmicrosoft.com](mailto:arpit.nand@microsoft.com)), Eric Radzikowski ([ericrad@microsoft.com](mailto:ericrad@microsoft.com), GitHub: EricRadzikowskiMSFT)PM contact (email + github alias)
[wilsonadam@microsoft.com](mailto:wilsonadam@microsoft.com) GitHub: adwilsoOther people who should attend a design review (email)
[gtiwari@microsoft.com](mailto:gtiwari@microsoft.com)High Level Scenarios
Describe how your feature is intended to be used by customers.
`- Customers will need to set the 2 new properties on the VM/VMSS/AvSet profile. These properties will control if scheduled events (https://learn.microsoft.com/en-us/azure/virtual-machines/linux/scheduled-events) are delivered to additional endpoints (Azure resource graph and Event Grid) and how user initiated scheduled events are handled.
Scheduled events are used by customers to detect upcoming availability impacts to their VMs and react accordingly. For example an typical event will tell customers about an upcoming maintenance operation on the host server their VM is sitting on. It will include the time and expected impact of the maintenance, giving the customer time to drain sessions and move the workload to a secondary VM if needed.
The usage for the PowerShell command will simply be setting/unsetting the value in the profile to opt the customer in or out of getting events. We expect the property to be set once and left for the lifetime of the VM.`
Piping scenarios / how these cmdlets are used with existing cmdlets
Don't expect the new flags t to be connected with any other commands. Customers still might pipe together commands to get the VMSS name for example, but that should be impacted by adding new optional parametersSample of end-to-end usage
Please provide comprehensive examples that don't assume additional setup. It helps the audience understand your feature.
`Enable support:
Update-AzVmss -ResourceGroupName "myResourceGroup" -Name "myScaleSet" -VirtualMachineScaleSet $vmss --scheduled-events-api-version True --enable-allInstancesDown True
Disable support: Update-AzVmss -ResourceGroupName "myResourceGroup" -Name "myScaleSet" -VirtualMachineScaleSet $vmss --scheduled-events-api-version False--enable-allInstancesDown False
Update-AzAvailabilitySet and Update-AzVM should behave the same way.`
Syntax changes
Indicate if you are requesting an edit to existing cmdlets, adding new cmdlets, or both. Then edit the corresponding section below.
New Cmdlet
List the new cmdlet names.
Changed cmdlet
List the names of the cmdlets that are being edited.
List the new parameters for the cmdlet, the parameter types, and their allowed values if applicable.
--ScheduledEventsApiVersion
--EnableAllInstancesDown
...
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.