Skip to content

Conversation

@bhavikatambi2000
Copy link

ARM (Control Plane) API Specification Update Pull Request

Tip

Overwhelmed by all this guidance? See the Getting help section at the bottom of this PR description.

PR review workflow diagram

Please understand this diagram before proceeding. It explains how to get your PR approved & merged.

spec_pr_review_workflow_diagram

Purpose of this PR

What's the purpose of this PR? Check the specific option that applies. This is mandatory!

  • New resource provider.
  • New API version for an existing resource provider. (If API spec is not defined in TypeSpec, the PR should have been created in adherence to OpenAPI specs PR creation guidance).
  • Update existing version for a new feature. (This is applicable only when you are revising a private preview API version.)
  • Update existing version to fix OpenAPI spec quality issues in S360.
  • Convert existing OpenAPI spec to TypeSpec spec (do not combine this with implementing changes for a new API version).
  • [X ] Other, please clarify:
    • Adding resiliencyProfile to VM Properties

Due diligence checklist

To merge this PR, you must go through the following checklist and confirm you understood
and followed the instructions by checking all the boxes:

  • I confirm this PR is modifying Azure Resource Manager (ARM) related specifications, and not data plane related specifications.
  • I have reviewed following Resource Provider guidelines, including
    ARM resource provider contract and
    REST guidelines (estimated time: 4 hours).
    I understand this is required before I can proceed to the diagram Step 2, "ARM API changes review", for this PR.
  • A release plan has been created. If not, please create one as it will help guide you through the REST API and SDK creation process.

Additional information

Viewing API changes

For convenient view of the API changes made by this PR, refer to the URLs provided in the table
in the Generated ApiView comment added to this PR. You can use ApiView to show API versions diff.

Suppressing failures

If one or multiple validation error/warning suppression(s) is detected in your PR, please follow the
suppressions guide to get approval.

Getting help

  • First, please carefully read through this PR description, from top to bottom. Please fill out the Purpose of this PR and Due diligence checklist.
  • If you don't have permissions to remove or add labels to the PR, request write access per aka.ms/azsdk/access#request-access-to-rest-api-or-sdk-repositories
  • To understand what you must do next to merge this PR, see the Next Steps to Merge comment. It will appear within few minutes of submitting this PR and will continue to be up-to-date with current PR state.
  • For guidance on fixing this PR CI check failures, see the hyperlinks provided in given failure
    and https://aka.ms/ci-fix.
  • For help with ARM review (PR workflow diagram Step 2), see https://aka.ms/azsdk/pr-arm-review.
  • If the PR CI checks appear to be stuck in queued state, please add a comment with contents /azp run.
    This should result in a new comment denoting a PR validation pipeline has started and the checks should be updated after few minutes.
  • If the help provided by the previous points is not enough, post to https://aka.ms/azsdk/support/specreview-channel and link to this PR.
  • For guidance on SDK breaking change review, refer to https://aka.ms/ci-fix.

@github-actions
Copy link

github-actions bot commented Dec 24, 2025

Next Steps to Merge

Next steps that must be taken to merge this PR:
  • ❌ This PR is in purview of the ARM review (label: ARMReview). This PR must get ARMSignedOff label from an ARM reviewer.
    This PR has ARMChangesRequested label. Please address or respond to feedback from the ARM API reviewer.
    When you are ready to continue the ARM API review, please remove the ARMChangesRequested label.
    Automation should then add WaitForARMFeedback label.
    ❗If you don't have permissions to remove the label, request write access per aka.ms/azsdk/access#request-access-to-rest-api-or-sdk-repositories.
    For details of the ARM review, see aka.ms/azsdk/pr-arm-review
  • ❌ The required check named Swagger Avocado has failed. Refer to the check in the PR's 'Checks' tab for details on how to fix it and consult the aka.ms/ci-fix guide


Comment generated by summarize-checks workflow run.

@github-actions github-actions bot added TypeSpec Authored with TypeSpec ARMReview resource-manager WaitForARMFeedback <valid label in PR review process> add this label when ARM review is required labels Dec 24, 2025
@github-actions
Copy link

github-actions bot commented Dec 24, 2025

API Change Check

APIView identified API level changes in this PR and created the following API reviews

Language API Review for Package
TypeSpec Microsoft.Compute
Go sdk/resourcemanager/compute/armcompute
Java com.azure.resourcemanager:azure-resourcemanager-compute-generated
JavaScript @azure/arm-compute
Python azure-mgmt-compute

/**
* Time gap between creation of two restore points for a VM, in hours. Default: 24.
*/
frequencyInHours?: int32;

Choose a reason for hiding this comment

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

It was decided to hide all attributes other than isEnabled from customers. So let's not publish these.

Copy link
Author

Choose a reason for hiding this comment

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

This is both for set and get right ?

Choose a reason for hiding this comment

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

Customers doing GET and then sending the same payload back is a very common pattern.

So, I would rather not have these attributes in the GET payload. It unnecessarily brings the risk of CRP throwing a "these are read-only attributes" client error. So, let's just keep them out of both read and write payloads.

Instead, we can keep these values document that periodicRestorePoints.isEnabled = true means you are getting daily restore point creation with 10 retained.

/**
* Indicates if zone movement is enabled.
*/
isEnabled?: boolean;

Choose a reason for hiding this comment

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

If zoneMovement: {} is provided, isEnabled = false, is it?

Copy link
Author

@bhavikatambi2000 bhavikatambi2000 Dec 26, 2025

Choose a reason for hiding this comment

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

Thinking .. Zonemovement empty and then defaulting to false does not look good. Making isEnabled mandatory.
i.e If ZoneMovement is added , isEnabled should be explicitly required.

},
"ResiliencyProfile": {
"type": "object",
"description": "Describes resiliency profile for a VM.",

Choose a reason for hiding this comment

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

Please check with Aarthi what she wants this description to be.

@@ -0,0 +1,188 @@
{

Choose a reason for hiding this comment

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

Curious, why do we need to define example twice?

Copy link
Author

@bhavikatambi2000 bhavikatambi2000 Dec 26, 2025

Choose a reason for hiding this comment

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

One file is auto generated file. Keeping comment active for API Spec Reviewer too in case I am doing anything wrong .

@bhavikatambi2000 bhavikatambi2000 force-pushed the bhavikatambi/resiliencyProfileChanges branch from ac350cf to 85bf738 Compare December 24, 2025 10:48
@bhavikatambi2000
Copy link
Author

Swagger LintDiff check failing.
image

@ravimeda
Copy link
Member

Please address the failing checks (LintDiff, Avocado)

@github-actions github-actions bot removed the WaitForARMFeedback <valid label in PR review process> add this label when ARM review is required label Dec 26, 2025
},
"periodicRestorePoints": {
"$ref": "#/definitions/PeriodicRestorePoints",
"description": "Periodic restore points configuration."
Copy link
Contributor

Choose a reason for hiding this comment

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

with the new naming convention should we have this as Basic Data Protection or Automatic Restore Points @kirankumarp-azure ?

@@ -0,0 +1,204 @@
{
"parameters": {
Copy link
Contributor

Choose a reason for hiding this comment

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

why do we need 2 copies of these example jsons?

Copy link
Author

Choose a reason for hiding this comment

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

#39385 (comment), addressed here.

"hardwareProfile": {
"vmSize": "Standard_D2s_v3"
},
"resiliencyProfile": {
Copy link
Contributor

Choose a reason for hiding this comment

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

@kirankumarp-azure, we do not need to add the other properties in periodic restore points - maxretained, frequency ...

Copy link
Author

Choose a reason for hiding this comment

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

#39385 (comment), similar comment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants