Skip to content

Mysql version uniform #35110

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

Open
wants to merge 16 commits into
base: main
Choose a base branch
from
Open

Conversation

judyzhu10
Copy link

Choose a PR Template

Switch to "Preview" on this description then select one of the choices below.

Click here to open a PR for a Data Plane API.

Click here to open a PR for a Control Plane (ARM) API.

Click here to open a PR for only SDK configuration.

Copy link

openapi-pipeline-app bot commented Jun 5, 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).
  • ❌ This PR is in purview of the ARM review (label: ARMReview). This PR must get ARMSignedOff label from an ARM reviewer.
    This PR is not ready for ARM review (label: NotReadyForARMReview). This PR will not be reviewed by ARM until relevant problems are fixed. Consult the rest of this Next Steps to Merge comment for details.
    Once the blocking problems are addressed, add to the PR a comment with contents /azp run. Automation will re-evaluate this PR and if everything looks good, it will add WaitForARMFeedback label which will put this PR on the ARM review queue.
    For details of the ARM review, see aka.ms/azsdk/pr-arm-review
  • ❌ This PR is NotReadyForARMReview because it has the BreakingChangeReviewRequired label.
  • ❌ This PR has at least one breaking change (label: BreakingChangeReviewRequired).
    To unblock this PR, follow the process at aka.ms/brch.
  • ❌ The required check named TypeSpec Requirement 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

Copy link

openapi-pipeline-app bot commented Jun 5, 2025

PR validation pipeline restarted successfully. If there is ApiView generated, it will be updated in this comment.

@judyzhu10
Copy link
Author

@qiaozha

Copy link

github-actions bot commented Jun 5, 2025

API Change Check

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

Language API Review for Package
Swagger Microsoft.DBforMySQL-FlexibleServers
Swagger Microsoft.DBforMySQL
Go sdk/resourcemanager/mysql/armmysqlflexibleservers
Java com.azure.resourcemanager:azure-resourcemanager-mysqlflexibleservers
Python azure-mgmt-mysqlflexibleservers
JavaScript @azure/arm-mysql-flexible

Copy link
Contributor

@judyzhu10 please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.

@microsoft-github-policy-service agree [company="{your company}"]

Options:

  • (default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.
@microsoft-github-policy-service agree
  • (when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.
@microsoft-github-policy-service agree company="Microsoft"
Contributor License Agreement

Contribution License Agreement

This Contribution License Agreement (“Agreement”) is agreed to by the party signing below (“You”),
and conveys certain license rights to Microsoft Corporation and its affiliates (“Microsoft”) for Your
contributions to Microsoft open source projects. This Agreement is effective as of the latest signature
date below.

  1. Definitions.
    “Code” means the computer software code, whether in human-readable or machine-executable form,
    that is delivered by You to Microsoft under this Agreement.
    “Project” means any of the projects owned or managed by Microsoft and offered under a license
    approved by the Open Source Initiative (www.opensource.org).
    “Submit” is the act of uploading, submitting, transmitting, or distributing code or other content to any
    Project, including but not limited to communication on electronic mailing lists, source code control
    systems, and issue tracking systems that are managed by, or on behalf of, the Project for the purpose of
    discussing and improving that Project, but excluding communication that is conspicuously marked or
    otherwise designated in writing by You as “Not a Submission.”
    “Submission” means the Code and any other copyrightable material Submitted by You, including any
    associated comments and documentation.
  2. Your Submission. You must agree to the terms of this Agreement before making a Submission to any
    Project. This Agreement covers any and all Submissions that You, now or in the future (except as
    described in Section 4 below), Submit to any Project.
  3. Originality of Work. You represent that each of Your Submissions is entirely Your original work.
    Should You wish to Submit materials that are not Your original work, You may Submit them separately
    to the Project if You (a) retain all copyright and license information that was in the materials as You
    received them, (b) in the description accompanying Your Submission, include the phrase “Submission
    containing materials of a third party:” followed by the names of the third party and any licenses or other
    restrictions of which You are aware, and (c) follow any other instructions in the Project’s written
    guidelines concerning Submissions.
  4. Your Employer. References to “employer” in this Agreement include Your employer or anyone else
    for whom You are acting in making Your Submission, e.g. as a contractor, vendor, or agent. If Your
    Submission is made in the course of Your work for an employer or Your employer has intellectual
    property rights in Your Submission by contract or applicable law, You must secure permission from Your
    employer to make the Submission before signing this Agreement. In that case, the term “You” in this
    Agreement will refer to You and the employer collectively. If You change employers in the future and
    desire to Submit additional Submissions for the new employer, then You agree to sign a new Agreement
    and secure permission from the new employer before Submitting those Submissions.
  5. Licenses.
  • Copyright License. You grant Microsoft, and those who receive the Submission directly or
    indirectly from Microsoft, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license in the
    Submission to reproduce, prepare derivative works of, publicly display, publicly perform, and distribute
    the Submission and such derivative works, and to sublicense any or all of the foregoing rights to third
    parties.
  • Patent License. You grant Microsoft, and those who receive the Submission directly or
    indirectly from Microsoft, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license under
    Your patent claims that are necessarily infringed by the Submission or the combination of the
    Submission with the Project to which it was Submitted to make, have made, use, offer to sell, sell and
    import or otherwise dispose of the Submission alone or with the Project.
  • Other Rights Reserved. Each party reserves all rights not expressly granted in this Agreement.
    No additional licenses or rights whatsoever (including, without limitation, any implied licenses) are
    granted by implication, exhaustion, estoppel or otherwise.
  1. Representations and Warranties. You represent that You are legally entitled to grant the above
    licenses. You represent that each of Your Submissions is entirely Your original work (except as You may
    have disclosed under Section 3). You represent that You have secured permission from Your employer to
    make the Submission in cases where Your Submission is made in the course of Your work for Your
    employer or Your employer has intellectual property rights in Your Submission by contract or applicable
    law. If You are signing this Agreement on behalf of Your employer, You represent and warrant that You
    have the necessary authority to bind the listed employer to the obligations contained in this Agreement.
    You are not expected to provide support for Your Submission, unless You choose to do so. UNLESS
    REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, AND EXCEPT FOR THE WARRANTIES
    EXPRESSLY STATED IN SECTIONS 3, 4, AND 6, THE SUBMISSION PROVIDED UNDER THIS AGREEMENT IS
    PROVIDED WITHOUT WARRANTY OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY OF
    NONINFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
  2. Notice to Microsoft. You agree to notify Microsoft in writing of any facts or circumstances of which
    You later become aware that would make Your representations in this Agreement inaccurate in any
    respect.
  3. Information about Submissions. You agree that contributions to Projects and information about
    contributions may be maintained indefinitely and disclosed publicly, including Your name and other
    information that You submit with Your Submission.
  4. Governing Law/Jurisdiction. This Agreement is governed by the laws of the State of Washington, and
    the parties consent to exclusive jurisdiction and venue in the federal courts sitting in King County,
    Washington, unless no federal subject matter jurisdiction exists, in which case the parties consent to
    exclusive jurisdiction and venue in the Superior Court of King County, Washington. The parties waive all
    defenses of lack of personal jurisdiction and forum non-conveniens.
  5. Entire Agreement/Assignment. This Agreement is the entire agreement between the parties, and
    supersedes any and all prior agreements, understandings or communications, written or oral, between
    the parties relating to the subject matter hereof. This Agreement may be assigned by Microsoft.

@qiaozha
Copy link
Member

qiaozha commented Jun 5, 2025

@judyzhu10 we can ignore [TEST-IGNORE] - * failures for now.

we need to move specification/mysql/resource-manager/Microsoft.DBforMySQL/readme.language.md into specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServer/readme.language.md, in this specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServer/readme.md, you only need to keep the input files reference to the uniformed swaggers.
And we need to have an extra copy of specification/mysql/resource-manager/Microsoft.DBforMySQL/readme.md and put it into specification/mysql/resource-manager/Microsoft.DBforMySQL/legacy/readme.md, in this readme.md, you need to update the corresponding input-files reference to the legacy swagger files.

@judyzhu10 judyzhu10 force-pushed the mysql-version-uniform branch from 0bbd026 to 1e112b7 Compare June 5, 2025 07:35
@qiaozha
Copy link
Member

qiaozha commented Jun 5, 2025

@mikeharder could you help take a look at the Avocado, ModelValidation, SchemaValidation failures?
For Avocado failure like this,
image
I found it's strange as those folders has been moved into legacy folder and no longer exists, why does it require a readme file in that folder?

For model validation invalid format failure,
image
could you suggest what's the correct format of arm-id? I didn't see anything wrong this example value.
There's also some unclear failure, which I am not sure how to help @judyzhu10 to fix it.

For SemanticValidation failure, there's a internal tooling error.

@mikeharder
Copy link
Member

mikeharder commented Jun 5, 2025

@mikeharder could you help take a look at the Avocado, ModelValidation, SchemaValidation failures?

Avocado is failing for multiple reasons. There are so many errors, you need to view the full log:

https://dev.azure.com/azure-sdk/internal/_build/results?buildId=4944832&view=logs&j=22cb5f76-5058-5a9d-2377-d04e5451a5f2&t=75f8d99b-764d-5b43-90d5-e9f774389f08

Most of the errors are MISSING_README. Avocado tries to compare the spec before and after the PR, and it can't handle this large of a rename/move. Options:

  1. Try to update Avocado to handle this (expensive, won't happen for months)
  2. Ignore MISSING_README, but fix/review all other Avocado errors, and add label Approved-Avocado to bypass the check for this PR.
  3. Instead of one PR moving the spec, split it into two PRs, one adding the spec in the new location, and a later PR deleting it from the old location. I think this would prevent the MISSING_README errors.

These other errors should be investigated more closely, and suggest potential real problems in the new readmes:

{"code":"INCONSISTENT_API_VERSION","level":"Error","message":"The API version of the swagger is inconsistent with its file path.","jsonUrl":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServers/preview/2024-12-01-preview/common-types.json","path":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServers/preview/2024-12-01-preview/common-types.json","readMeUrl":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServers/readme.md"}
{"code":"UNREFERENCED_JSON_FILE","message":"The swagger JSON file is not referenced from the readme file.","level":"Error","readMeUrl":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServers/readme.md","jsonUrl":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServers/preview/2024-12-01-preview/PrivateEndpointConnections.json","path":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServers/preview/2024-12-01-preview/PrivateEndpointConnections.json"}
{"code":"UNREFERENCED_JSON_FILE","message":"The swagger JSON file is not referenced from the readme file.","level":"Error","readMeUrl":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServers/readme.md","jsonUrl":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServers/preview/2024-12-01-preview/PrivateLinkResources.json","path":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServers/preview/2024-12-01-preview/PrivateLinkResources.json"}
{"level":"Error","code":"MISSING_APIS_IN_DEFAULT_TAG","message":"The default tag should contain all APIs. The API path `/subscriptions/{}/resourcegroups/{}/providers/microsoft.dbformysql/flexibleservers/{}/privateendpointconnections/{}` is not in the default tag. Please make sure the missing API swaggers are in the default tag.","tag":"default","readMeUrl":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServers/readme.md","jsonUrl":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServers/preview/2024-12-01-preview/PrivateEndpointConnections.json","path":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServers/preview/2024-12-01-preview/PrivateEndpointConnections.json","apiPath":"/subscriptions/{}/resourcegroups/{}/providers/microsoft.dbformysql/flexibleservers/{}/privateendpointconnections/{}"}
{"level":"Error","code":"MISSING_APIS_IN_DEFAULT_TAG","message":"The default tag should contain all APIs. The API path `/subscriptions/{}/resourcegroups/{}/providers/microsoft.dbformysql/flexibleservers/{}/privateendpointconnections` is not in the default tag. Please make sure the missing API swaggers are in the default tag.","tag":"default","readMeUrl":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServers/readme.md","jsonUrl":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServers/preview/2024-12-01-preview/PrivateEndpointConnections.json","path":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServers/preview/2024-12-01-preview/PrivateEndpointConnections.json","apiPath":"/subscriptions/{}/resourcegroups/{}/providers/microsoft.dbformysql/flexibleservers/{}/privateendpointconnections"}
{"level":"Error","code":"MISSING_APIS_IN_DEFAULT_TAG","message":"The default tag should contain all APIs. The API path `/subscriptions/{}/resourcegroups/{}/providers/microsoft.dbformysql/flexibleservers/{}/privatelinkresources` is not in the default tag. Please make sure the missing API swaggers are in the default tag.","tag":"default","readMeUrl":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServers/readme.md","jsonUrl":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServers/preview/2024-12-01-preview/PrivateLinkResources.json","path":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServers/preview/2024-12-01-preview/PrivateLinkResources.json","apiPath":"/subscriptions/{}/resourcegroups/{}/providers/microsoft.dbformysql/flexibleservers/{}/privatelinkresources"}
{"level":"Error","code":"MISSING_APIS_IN_DEFAULT_TAG","message":"The default tag should contain all APIs. The API path `/subscriptions/{}/resourcegroups/{}/providers/microsoft.dbformysql/flexibleservers/{}/privatelinkresources/{}` is not in the default tag. Please make sure the missing API swaggers are in the default tag.","tag":"default","readMeUrl":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServers/readme.md","jsonUrl":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServers/preview/2024-12-01-preview/PrivateLinkResources.json","path":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServers/preview/2024-12-01-preview/PrivateLinkResources.json","apiPath":"/subscriptions/{}/resourcegroups/{}/providers/microsoft.dbformysql/flexibleservers/{}/privatelinkresources/{}"}
{"code":"MULTIPLE_API_VERSION","message":"The default tag contains multiple API versions swaggers.","readMeUrl":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/legacy/readme.md","tag":"package-2020-01-01","path":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/legacy/readme.md","level":"Warning"}
{"code":"MULTIPLE_DEFAULT_TAGS","level":"Error","message":"The readme file has more than one default tag.","path":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/legacy/readme.md","readMeUrl":"/mnt/vss/_work/1/c93b354fd9c14905bb574a8834c4d69b/specification/mysql/resource-manager/Microsoft.DBforMySQL/legacy/readme.md","tags":["package-flexibleserver-2024-10-01-preview","package-flexibleserver-2024-10-01-preview","package-2020-01-01"]}

@mikeharder
Copy link
Member

mikeharder commented Jun 5, 2025

TypeSpec Requirement is failing because it thinks this is a new spec that should use TypeSpec:

Branch 'main' does not contain path 'mysql/resource-manager/Microsoft.DBforMySQL/legacy/AAD/stable', so spec is new and must use TypeSpec

This can be suppressed in suppressions.yaml.

@mikeharder
Copy link
Member

mikeharder commented Jun 5, 2025

@qiaozha, @JeffreyRichter: Should the legacy folder exist in this PR? Note this folder will violate folder structure v2.

@mikeharder
Copy link
Member

For model validation invalid format failure, could you suggest what's the correct format of arm-id? I didn't see anything wrong this example value.

Regex for arm-id in ModelValidation:

https://github.com/Azure/oav/blob/c03201106a11a7513dcfc167219e425e83af3453/lib/swaggerValidator/ajv.ts#L138

Azure/oav#851

@mikeharder
Copy link
Member

SemanticValidation looks like a bug in the spec:

https://github.com/Azure/azure-rest-api-specs/blob/8e67d84151e2444eaf6f27ca8e1ef4272aadd729/specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServers/preview/2024-12-01-preview/ServiceOperations.json#L311:14

This location defines OperationIdParameter inline, while L383 instead uses a ref to OperationIdParameter under common-types.

I think the fix is to change the inline definition to a ref.

@qiaozha
Copy link
Member

qiaozha commented Jun 6, 2025

@qiaozha, @JeffreyRichter: Should the legacy folder exist in this PR? Note this folder will violate folder structure v2.

Let me explain the background of this.

First of all, MySQL has two services: legacy single server and flexible server, the legacy single server is going to retire, it's the flexible server that has the version uniform issue.

For the legacy single server service, we will not spend any effort on the spec regarding either folder structure or the version uniform issue.

For flexible server service, it has both version uniform issue and folder structure issue. the problem is that they have organized their service as a multiple service before https://github.com/Azure/azure-rest-api-specs/tree/main/specification/mysql/resource-manager/Microsoft.DBforMySQL but those are just operation groups within flexible server service not real multiple independent services. After the discussion with @akning-ms, we decide to go with the not split option, and remove those operation groups under flexible server services to be align with the folder structure v2.

In this pr, we want to focus on the version uniform issue first so that it could unblock the service migrate to typespec. And folder structure for existing swagger is something we can fix later, that's why @judyzhu10 has moved all the existing swagger files into the legacy folder to avoid confusions.

I am open to see if @mikeharder or @JeffreyRichter has better suggestions here?

@mikeharder
Copy link
Member

mikeharder commented Jun 6, 2025

UPDATE: The legacy folder has been removed, so this comment is obsolete.

current structure in main is pretty close to v2, with rp namespace and service names. only diff is one readme at rm, versus one readme per service:

s/mysql/rm/readme.md
s/mysql/rm/Microsoft.DBforMySQL/
  AAD/preview|stable
  Backups/preview|stable

structure in this PR, which is not valid per v2, because "legacy" would be the service name, then "AAD" is a sub-service which is not allowed per v2.

s/mysql/rm/Microsoft.DBforMySQL/
  FlexibleServers/
    readme.md
    preview/
  legacy/
    readme.md
    AAD/preview|stable
    Backups/preview|stable
    preview|stable

I understand the desire to minimize work on the legacy specs, but it should be done in a way that aligns as closely as possible with folder structure v2.

Copy link
Member

@mikeharder mikeharder left a comment

Choose a reason for hiding this comment

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

align with folder structure v2 as close as possible (at least as close as the current spec in main)

@judyzhu10 judyzhu10 force-pushed the mysql-version-uniform branch from 8e67d84 to 9df8b84 Compare June 9, 2025 07:16
@qiaozha
Copy link
Member

qiaozha commented Jun 9, 2025

For the new Avocado failure, in FlexibleServers/preview/2024-12-01-preview/common-types.json you need to change the version into 2024-12-01-preview.

For the UNREFERENCED_JSON_FILE and MISSING_APIS_IN_DEFAULT_TAG failures, you need to make sure all the files are included in resource-manager/Microsoft.DBforMySQL/FlexibleServers/readme.md

@qiaozha
Copy link
Member

qiaozha commented Jun 9, 2025

SemanticValidation looks like a bug in the spec:

https://github.com/Azure/azure-rest-api-specs/blob/8e67d84151e2444eaf6f27ca8e1ef4272aadd729/specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServers/preview/2024-12-01-preview/ServiceOperations.json#L311:14

This location defines OperationIdParameter inline, while L383 instead uses a ref to OperationIdParameter under common-types.

I think the fix is to change the inline definition to a ref.

@judyzhu10 could you unify the reference of OperationIdParameter here and

"$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/OperationIdParameter"

@@ -1,7 +1,7 @@
{
"swagger": "2.0",
"info": {
"version": "2024-10-01-preview",
"version": "2023-12-01-preview",
Copy link
Member

Choose a reason for hiding this comment

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

why we have this change?

@qiaozha
Copy link
Member

qiaozha commented Jun 10, 2025

For the TypeSpec requirement failure,

  • For the new FlexibleServer, could you update the supressions.yaml in specification/mysql/resource-manager/Microsoft.DBforMySQL/suppressions.yaml to update the path to preview/2024-12-01-preview/*.json
  • For the renamed FlexibleServerAPI folder, could you update the suppressions.yaml in specification/mysql/suppressions.yaml to update the corresponding path?

For the Swagger LintDiff error, could you add the suppression in the specification/mysql/resource-manager/Microsoft.DBforMySQL/FlexibleServers/readme.md for those errors?

@qiaozha
Copy link
Member

qiaozha commented Jun 10, 2025

Though the SDK automation didn't report errors, but I think we need to clean up the unnessary configuration as the legacy service is no longger needed, there's no need to use tag to differentiate the flexible server service SDK in FlexibleServers readme.language.md.
For example, JS could just change readme.typescript.md as

## TypeScript

These settings apply only when `--typescript` is specified on the command line.
Please also specify `--typescript-sdks-folder=<path to root folder of your azure-sdk-for-js clone>`.

``` yaml $(typescript)
typescript:
  azure-arm: true
  generate-metadata: true
title: MySQLManagementFlexibleServerClient
package-name: "@azure/arm-mysql-flexible"
output-folder: "$(typescript-sdks-folder)/sdk/mysql/arm-mysql-flexible/"
```

Please remove readme.nodejs.md as it's no longer valid.

@weidongxu-microsoft @XiaofeiCao for Java.
@tadelesh @JiaqiZhang-Dev for Go.
@msyyc for Python

@msyyc
Copy link
Member

msyyc commented Jun 10, 2025

@qiaozha Got it and updated for python.

reason: "202 is a pattern that is already used in our existing resources and being carried forward to new implementations to maintain consistency for our customers. This has already been approved by the API review board."
- code: PutInOperationName
from: AdvancedThreatProtectionSettings.json
reason: "This API is used to update thread detecion configuration, which is required by ARM policy, especially for `deployIfNotExist` scenario"
- code: AllProxyResourcesShouldHaveDelete
from: AdvancedThreatProtectionSettings.json
reason: "PUT API is used to update thread detecion configuration, which is required by ARM policy, especially for `deployIfNotExist` scenario, we do not support DELETE operation"
- code: PatchBodyParametersSchema
from: swagger-document.json
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
from: swagger-document.json
from: swagger-document

swagger-document is not a file, you don't need to add the .json file extension

@tadelesh
Copy link
Member

Though the SDK automation didn't report errors, but I think we need to clean up the unnessary configuration as the legacy service is no longger needed, there's no need to use tag to differentiate the flexible server service SDK in FlexibleServers readme.language.md. For example, JS could just change readme.typescript.md as

## TypeScript

These settings apply only when `--typescript` is specified on the command line.
Please also specify `--typescript-sdks-folder=<path to root folder of your azure-sdk-for-js clone>`.

``` yaml $(typescript)
typescript:
  azure-arm: true
  generate-metadata: true
title: MySQLManagementFlexibleServerClient
package-name: "@azure/arm-mysql-flexible"
output-folder: "$(typescript-sdks-folder)/sdk/mysql/arm-mysql-flexible/"

Please remove readme.nodejs.md as it's no longer valid.

@weidongxu-microsoft @XiaofeiCao for Java. @tadelesh @JiaqiZhang-Dev for Go. @msyyc for Python

Updated for Go.

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.

7 participants