Skip to content

Add ScheduledEventsPolicy parameters to Update-AzVmss, Update-AzAvailabilitySet, and Update-AzVM#221

Draft
Copilot wants to merge 3 commits intomainfrom
copilot/update-schedule-events-policy
Draft

Add ScheduledEventsPolicy parameters to Update-AzVmss, Update-AzAvailabilitySet, and Update-AzVM#221
Copilot wants to merge 3 commits intomainfrom
copilot/update-schedule-events-policy

Conversation

Copy link
Copy Markdown

Copilot AI commented Nov 25, 2025

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 down

Example:

# Enable scheduled events publishing to Event Grid with auto-approval
Update-AzVmss -ResourceGroupName "myRG" -VMScaleSetName "myVMSS" `
    -ScheduledEventAdditionalPublishingTargetEventGridAndResourceGraphEnable $true `
    -ScheduledEventAdditionalPublishingTargetEventGridAndResourceGraphApiVersion "2025-01-01" `
    -AllInstancesDownAutomaticallyApprove $true

Files Changed:

  • Model classes: Added ScheduledEventsPolicy property to PSVirtualMachineScaleSet, PSAvailabilitySet, PSVirtualMachine
  • Cmdlets: Update-AzVmss, Update-AzAvailabilitySet, Update-AzVM
  • Help docs: Updated for all three cmdlets
  • Tests: Added scenario tests for each cmdlet

Mandatory Checklist

  • SHOULD update ChangeLog.md file(s) appropriately
    • Update src/{{SERVICE}}/{{SERVICE}}/ChangeLog.md.
      • A snippet outlining the change(s) made in the PR should be written under the ## Upcoming Release header in the past tense.
    • Should not change ChangeLog.md if no new release is required, such as fixing test case only.
  • SHOULD regenerate markdown help files if there is cmdlet API change. Instruction
  • SHOULD have proper test coverage for changes in pull request.
  • SHOULD NOT adjust version of module manually in pull request

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
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • 40vvsblobprodwus2135.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • 6yfvsblobprodwus2121.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • 7q7vsblobprodwus2144.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • 84hvsblobprodwus2148.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • 8wdvsblobprodwus2137.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • 9yyvsblobprodwus2157.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • b53vsblobprodwus2154.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • ba0vsblobprodwus2130.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • balvsblobprodwus2129.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • cbvvsblobprodwus2131.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • cffvsblobprodwus218.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • d94vsblobprodwus2119.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • ezcvsblobprodwus2170.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • faxvsblobprodwus2122.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • g3xvsblobprodwus2151.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • i01vsblobprodwus216.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • isvvsblobprodwus2147.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • jhgvsblobprodwus2167.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • k4pvsblobprodwus2140.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • ldhvsblobprodwus2153.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • mt2vsblobprodwus2110.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • nudvsblobprodwus214.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • p2tvsblobprodwus2189.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • s8nvsblobprodwus2158.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • tn2vsblobprodwus2124.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • wlnvsblobprodwus2188.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • wztvsblobprodwus2155.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • y5lvsblobprodwus2179.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /usr/bin/dotnet dotnet restore src/Compute/Compute/Compute.csproj --ignore-failed-sources (dns block)
  • yf8vsblobprodwus212.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build src/Compute/Compute/Compute.csproj (dns block)
    • Triggering command: /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.ps1 for 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 Preview
  • What is the expected service release date?

    • Private Preview Began: 10/15
  • Which Powershell module are these changes being made in?

    • Compute

Contact 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: adwilso
  • Other 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 parameters
  • Sample 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.

- Existing

New Cmdlet

List the new cmdlet names.

- NA

Changed cmdlet

List the names of the cmdlets that are being edited.

- Update-AzVmss
  • Set-AzVmss
  • Update-AzAvailabilitySet
  • Set-AzAvailabilitySet
  • Update-AzVM
  • Set-AzVM

List the new parameters for the cmdlet, the parameter types, and their allowed values if applicable.

-  For all the cmdlets we're looking to add the same 2 parameters. All 1 boolean values and 1 string value, and any combination of values for the 2 parameters is valid.

--ScheduledEventsApiVersion
--EnableAllInstancesDown
...

Custom agent used: Compute PowerShell Pull Request Agent
Specialized agent for creating PowerShell pull requests based on a design request

  • Fixes Azure/azure-powershell-cmdlet-review-pr#1511

💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI and others added 2 commits November 25, 2025 15:36
…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
Copilot AI requested a review from haagha November 25, 2025 15:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants