-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Add Azure Databricks 2025-10-01-preview API version #37963
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Azure Databricks 2025-10-01-preview API version #37963
Conversation
Next Steps to Merge✅ All automated merging requirements have been met! To get your PR merged, see aka.ms/azsdk/specreview/merge.Comment generated by summarize-checks workflow run. |
…025-10-01-preview
API Change CheckAPIView identified API level changes in this PR and created the following API reviews
|
…review' of https://github.com/Yuqing-cat/azure-rest-api-specs into dev/yuqing/databricks-Microsoft.Databricks/2025-10-01-preview
| "x-ms-enum": { | ||
| "modelAsString": true, | ||
| "name": "ComplianceStandard" | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure it makes sense to have an x-ms-enum on a property that is not an enum.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for catching this, Mike. We'd like to keep the name "ComplianceStandard", so we don't remove this part.
| } | ||
| } | ||
| }, | ||
| "ComplianceStandardDefinition": { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @ramoka178 , this will not accept arbitrary free-form strings. The implementation expects an extensible list of predefined string values.
We simplified this to a string rather than maintaining an explicit enum in Swagger because the set of compliance standards evolves rapidly and is owned by a partner team. Using enums would require creating new API versions every time a value is added, which increases engineering overhead and makes it harder for customers to continuously upgrade.
Please let us know if you have a better approach to achieve flexibility without introducing free-form input.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If the variable accepts a set of predefined values, you should implement the enums. I understand for every new value, the swagger should be updated. But , please think of the end user's experience. If you publish the expected values in the swagger, the user will already know what values are expected . If you chose to stop supporting an enum, via a breaking change approval, that can also be published and the user will be aware of it.
If there is no insight to the customer, would they be just randomly trying out different values until they find the right one ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @ramoka178, thank you for raising this concern—it’s a valid point.
For context:
- This feature is mainly used by enterprise customers with strict compliance needs. They onboard through a partner-managed process, and we’ve linked the official documentation for clarity.
- In the past six months, we’ve added four new standards. Each time, customers requested immediate access for compliance reasons and required public preview before adoption.
- Updating Enums in a published preview spec is considered a breaking change, which forces new API versions or delays with batch releases—both harm customer experience.
We discussed this in Breaking Change Office Hours, and the approved guidance was to use string for flexibility. While not ideal, this avoids repeated version churn and ensures faster delivery for customers.
If there’s a better approach that balances discoverability and forward compatibility, we’re open to suggestions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Addition of enums to an existing list should not trigger breaking changes I believe. Removing of Enums might do that IIRC.
And, adding of enums can still happen in the same api-version.
I believe this is a standard practice of using Enums across Azure i.e., creating PRs for the new enums and those should go in without a new api-version.
If you make it a free form string, there could be multiple issues which are both client and server impacting.
- You lose server-side schema validation
- Users will need to consult the documentation all the time to see what values are valid, results in Poor API contract clarity
- In SDKs, enums are converted to constants I believe. you would lose on that.
- You would need some server-side normalization to account for case issues
Using enums is cleaner and easier to adopt. I agree that it might make development lifecycle longer than usual, but I would argue to keep the customer experience as a top priority.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for sharing your detailed feedback—it’s greatly appreciated.
Our top priority is customer experience, and the original intent behind proposing Enum removal was to help customers adopt new compliance standards faster without repeated API version upgrades, which has been a major pain point.
We respect your guidance and have reverted the change to align with ARM expectations. At the same time, we will continue to explore ways to improve agility while maintaining clarity and validation, as this remains critical for enterprise customers.
|
Please fix the Swagger LintDiff error too |
…review' of https://github.com/Yuqing-cat/azure-rest-api-specs into dev/yuqing/databricks-Microsoft.Databricks/2025-10-01-preview
The LintDiff error is inherited from previous API versions. The property KeyName has been long existing in the Databricks stable and preview API version. I attempted to fix this in earlier commits, but it triggered a breaking-change violation. The breaking-change review team requested that we revert the change to avoid impacting existing clients. I'm adding a suppression directive with justification in readme.md to bypass this. More details are listed below: |
…025-10-01-preview
…025-10-01-preview



ARM (Control Plane) API Specification Update Pull Request
Tip
Overwhelmed by all this guidance? See the
Getting helpsection 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.
Purpose of this PR
What's the purpose of this PR? Check the specific option that applies. This is mandatory!
The changes have been reviewed in PrPr version:
Introduces a new
computeModeproperty and improves flexibility in compliance definitionscomputeModeproperty with two supported values: Hybrid or Serverless.managesResourceGroupIdto be optional, as this value should be omitted for Serverless workspaces.ComplianceStandardDefinitionEnum section to add more supported Compliance Standards.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:
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.