Skip to content

Conversation

@majastrz
Copy link
Member

@majastrz majastrz commented Dec 4, 2025

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).
  • Other, please clarify:
    • edit this with your clarification

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 4, 2025

Next Steps to Merge

Next steps that must be taken to merge this PR:
  • ❌ This PR targets either the main branch of the public specs repo or the RPSaaSMaster branch of the private specs repo. These branches are not intended for iterative development. Therefore, you must acknowledge you understand that after this PR is merged, the APIs are considered shipped to Azure customers. Any further attempts at in-place modifications to the APIs will be subject to Azure's versioning and breaking change policies. Additionally, for control plane APIs, you must acknowledge that you are following all the best practices documented by ARM at aka.ms/armapibestpractices. If you do intend to release the APIs to your customers by merging this PR, add the PublishToCustomers label to your PR in acknowledgement of the above. Otherwise, retarget this PR onto a feature branch, i.e. with prefix release- (see aka.ms/azsdk/api-versions#release--branches).


Comment generated by summarize-checks workflow run.

@github-actions github-actions bot added resource-manager TypeSpec Authored with TypeSpec labels Dec 4, 2025
@github-actions
Copy link

github-actions bot commented Dec 4, 2025

API Change Check

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

Language API Review for Package
TypeSpec RegionalMoveClient
Go sdk/resourcemanager/resources/armregionalmove
Python azure-mgmt-resource-regionalmove
Java com.azure.resourcemanager:azure-resourcemanager-resources-regionalmove
JavaScript @azure/arm-resourcesregionalmove
Swagger Microsoft.Authorization-regionalmove

@majastrz majastrz force-pushed the majastrz/rms-tsp branch 2 times, most recently from ef1ed4e to efe2a52 Compare December 5, 2025 01:33
@majastrz majastrz marked this pull request as ready for review December 5, 2025 02:30
@github-actions github-actions bot added ARMReview new-api-version WaitForARMFeedback <valid label in PR review process> add this label when ARM review is required labels Dec 5, 2025
@psah434
Copy link
Member

psah434 commented Dec 5, 2025

the sdk validation is failing. Please check.

@psah434 psah434 added ARMChangesRequested and removed WaitForARMFeedback <valid label in PR review process> add this label when ARM review is required labels Dec 5, 2025
@majastrz
Copy link
Member Author

majastrz commented Dec 5, 2025

@msyyc The Python SDK validation is failing with the error below. It seems unrelated to my changes:

03:18:48.934 error 	ErrorStack: Error: [EXT-ERR] Failed to read generateOutput.json. Please check if the generate script is configured correctly.
    at workflowCallGenerateScript (/mnt/vss/_work/1/s/azure-rest-api-specs/node_modules/@azure-tools/spec-gen-sdk/dist/automation/workflowHelpers.js:88:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async workflowGenerateSdk (/mnt/vss/_work/1/s/azure-rest-api-specs/node_modules/@azure-tools/spec-gen-sdk/dist/automation/workflow.js:227:40)
    at async workflowMain (/mnt/vss/_work/1/s/azure-rest-api-specs/node_modules/@azure-tools/spec-gen-sdk/dist/automation/workflow.js:78:5)
    at async sdkAutoMain (/mnt/vss/_work/1/s/azure-rest-api-specs/node_modules/@azure-tools/spec-gen-sdk/dist/automation/entrypoint.js:104:9)
    at async generateSdk (/mnt/vss/_work/1/s/azure-rest-api-specs/node_modules/@azure-tools/spec-gen-sdk/dist/cli/cli.js:45:18)
    at async Object.handler (/mnt/vss/_work/1/s/azure-rest-api-specs/node_modules/@azure-tools/spec-gen-sdk/dist/cli/cli.js:178:5).

@majastrz
Copy link
Member Author

majastrz commented Dec 5, 2025

the sdk validation is failing. Please check.

@psah434 These appear to be infra issues and I am following up with the owners. Please continue with the review as the fixes for those issues are unlikely to change the tsp shape.

@msyyc
Copy link
Member

msyyc commented Dec 8, 2025

@msyyc The Python SDK validation is failing with the error below. It seems unrelated to my changes:

03:18:48.934 error 	ErrorStack: Error: [EXT-ERR] Failed to read generateOutput.json. Please check if the generate script is configured correctly.
    at workflowCallGenerateScript (/mnt/vss/_work/1/s/azure-rest-api-specs/node_modules/@azure-tools/spec-gen-sdk/dist/automation/workflowHelpers.js:88:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async workflowGenerateSdk (/mnt/vss/_work/1/s/azure-rest-api-specs/node_modules/@azure-tools/spec-gen-sdk/dist/automation/workflow.js:227:40)
    at async workflowMain (/mnt/vss/_work/1/s/azure-rest-api-specs/node_modules/@azure-tools/spec-gen-sdk/dist/automation/workflow.js:78:5)
    at async sdkAutoMain (/mnt/vss/_work/1/s/azure-rest-api-specs/node_modules/@azure-tools/spec-gen-sdk/dist/automation/entrypoint.js:104:9)
    at async generateSdk (/mnt/vss/_work/1/s/azure-rest-api-specs/node_modules/@azure-tools/spec-gen-sdk/dist/cli/cli.js:45:18)
    at async Object.handler (/mnt/vss/_work/1/s/azure-rest-api-specs/node_modules/@azure-tools/spec-gen-sdk/dist/cli/cli.js:178:5).

Python failure is caused by wrong configuration in tspconfig.yaml. I commit the fix to the PR which shall fix the failure.

@majastrz
Copy link
Member Author

majastrz commented Dec 8, 2025

@msyyc The Python SDK validation is failing with the error below. It seems unrelated to my changes:

03:18:48.934 error 	ErrorStack: Error: [EXT-ERR] Failed to read generateOutput.json. Please check if the generate script is configured correctly.
    at workflowCallGenerateScript (/mnt/vss/_work/1/s/azure-rest-api-specs/node_modules/@azure-tools/spec-gen-sdk/dist/automation/workflowHelpers.js:88:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async workflowGenerateSdk (/mnt/vss/_work/1/s/azure-rest-api-specs/node_modules/@azure-tools/spec-gen-sdk/dist/automation/workflow.js:227:40)
    at async workflowMain (/mnt/vss/_work/1/s/azure-rest-api-specs/node_modules/@azure-tools/spec-gen-sdk/dist/automation/workflow.js:78:5)
    at async sdkAutoMain (/mnt/vss/_work/1/s/azure-rest-api-specs/node_modules/@azure-tools/spec-gen-sdk/dist/automation/entrypoint.js:104:9)
    at async generateSdk (/mnt/vss/_work/1/s/azure-rest-api-specs/node_modules/@azure-tools/spec-gen-sdk/dist/cli/cli.js:45:18)
    at async Object.handler (/mnt/vss/_work/1/s/azure-rest-api-specs/node_modules/@azure-tools/spec-gen-sdk/dist/cli/cli.js:178:5).

Python failure is caused by wrong configuration in tspconfig.yaml. I commit the fix to the PR which shall fix the failure.

Thanks for fixing it! The Python validation is passing now.

@majastrz
Copy link
Member Author

majastrz commented Dec 9, 2025

@psah434 The .net SDK failure is due to Azure/azure-sdk-for-net#54383. I've addressed the other .net validation failures, however.

@majastrz majastrz added the DoNotMerge <valid label in PR review process> use to hold merge after approval label Dec 9, 2025
@github-actions github-actions bot added the WaitForARMFeedback <valid label in PR review process> add this label when ARM review is required label Dec 9, 2025
@majastrz majastrz changed the title Initial Regional Move Service tsp Initial Regional Move Service tsp [do not merge] Dec 9, 2025
from: regionalMove.json
reason: Operations API is implemented as a separate service.
- suppress: AvoidAdditionalProperties
from: regionalMove.json
Copy link
Contributor

Choose a reason for hiding this comment

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

from

instead of suppressing for the whole file, please add the path where it should be suppressed.

Copy link
Member Author

Choose a reason for hiding this comment

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

Since there's one Swagger file being generated, I assume you mean path within the file?

Copy link
Member Author

Choose a reason for hiding this comment

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

Never mind. I found examples of how to do it.

Copy link
Member Author

Choose a reason for hiding this comment

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

I narrowed the scope of the suppression to just the single definition.


delete is ArmResourceDeleteSync<RegionalMoveContainer>;

@action("finalize")
Copy link
Contributor

Choose a reason for hiding this comment

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

finalize

the guidance is to have a verb+action format.
may be, can the name be 'finalizeMove' or something similar ?

Copy link
Member Author

Choose a reason for hiding this comment

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

Will rename to finalizeMove.

Copy link
Member Author

Choose a reason for hiding this comment

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

Renamed

"resourceProperties": {
"type": "object",
"description": "Properties to be overridden/modified on the resource during the copy operation. The resource provider will reject invalid modifications.",
"additionalProperties": {}
Copy link
Contributor

Choose a reason for hiding this comment

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

additionalProperties

Use of additionalProperties is not allowed for properties owned by the service. The only time its ok to use it is when the properties are pass thru (user defined) and not subject to any validations.

Please provide how these values are used.

If your team uses these values, Please make this an array or provide an explanation for why you need this.

Copy link
Member Author

Choose a reason for hiding this comment

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

@ramoka178 The resourceProperties are passed through as-is to the RP that implements the internal move contract with ARM. We don't do anything with those values except pass them through to the RP.

Copy link
Member Author

Choose a reason for hiding this comment

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

I renamed resourceProperties to resourceOverrides to clarify the intent. The shape is basically a subset of a full ARM resource body and can include properties like sku, zones, properties, or others depending on the RP. As I said earlier, we will pass the object as-is to the RP.

"type": "string",
"description": "Resource ID where the source will be copied/moved to. For copy operations, this cannot be the same as the source."
},
"resourceProperties": {
Copy link
Contributor

Choose a reason for hiding this comment

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

resourceProperties

Could you update the examples to show this property too ?

Copy link
Member Author

Choose a reason for hiding this comment

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

Will do.

Copy link
Member Author

Choose a reason for hiding this comment

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

Added

@ramoka178 ramoka178 added ARMChangesRequested and removed WaitForARMFeedback <valid label in PR review process> add this label when ARM review is required labels Dec 9, 2025
@github-actions github-actions bot added the WaitForARMFeedback <valid label in PR review process> add this label when ARM review is required label Dec 10, 2025
@ramoka178 ramoka178 added Approved-Suppression ARMSignedOff <valid label in PR review process>add this label when ARM approve updates after review and removed WaitForARMFeedback <valid label in PR review process> add this label when ARM review is required labels Dec 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Approved-Suppression ARMReview ARMSignedOff <valid label in PR review process>add this label when ARM approve updates after review DoNotMerge <valid label in PR review process> use to hold merge after approval new-api-version resource-manager SuppressionReviewRequired TypeSpec Authored with TypeSpec

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants