Skip to content

[SQL][DO NOT MERGE] Reader endpoint pre-fix ARM review comparison - #47529

Draft
rajashree012 wants to merge 2 commits into
Azure:release-sql-Microsoft.Sql-2026-11-01-previewfrom
rajashree012:dev/rapolsan/readerendpoint-202611-arm-review-prefix
Draft

rajashree012 wants to merge 2 commits into
Azure:release-sql-Microsoft.Sql-2026-11-01-previewfrom
rajashree012:dev/rapolsan/readerendpoint-202611-arm-review-prefix

Conversation

@rajashree012

Copy link
Copy Markdown
Member

ARM (Control Plane) API Specification Update Pull Request

Purpose of this PR

  • New resource provider.
  • New API version for an existing resource provider.
  • Update existing version for a new feature.
  • Update existing version to fix OpenAPI spec quality issues in S360.
  • Convert existing OpenAPI spec to TypeSpec spec.
  • Other: Temporary pre-fix snapshot for ARM review comparison. DO NOT MERGE.

Summary

This draft freezes the reader endpoint specifications at commit
d8ec3adb64c26a8731697a46ec3332e6b8f2fd26, before the F1-F11 review fixes in
4842c335955cf4e694c5743acc30831c71682a29.

The active implementation PR is #47504. This comparison PR deliberately retains the older
contracts and suppressions to measure which issues the automated ARM review detects.
It does not replace #47504 and is not intended for release or merging.

Target: release-sql-Microsoft.Sql-2026-11-01-preview.

Validation

Local validation of this exact snapshot passed TypeSpec compilation, repository TypeSpec
validation, generated-file reproducibility, Swagger semantic/example validation, and Avocado.
Local ARM lint detected contract issues, and eight TypeSpec suppressions require approval.
These results are not official ARM signoff or a full GitHub CI run.

Review procedure

An authorized reviewer with the required repository permissions should post /arm-review
on this PR. The review has not yet been triggered. Compare its findings with the original
review and the fixes in #47504, then close this temporary PR without merging.

Due diligence checklist

  • I confirm this PR modifies ARM specifications, not data-plane specifications.
  • Resource Provider guidelines, ARM contract, and REST guideline review completed and approved.
  • A release plan has been created.

Additional information

Comparison only. Known contract issues are intentionally preserved. No deployment or release
readiness is asserted. Keep this PR in draft state.

rapolsan and others added 2 commits October 21, 2026 18:00
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@microsoft-github-policy-service microsoft-github-policy-service Bot added the customer-reported Issues that are reported by GitHub users external to the Azure organization. label Oct 22, 2026
@microsoft-github-policy-service

Copy link
Copy Markdown
Contributor

Thank you for your contribution rajashree012! We will review the pull request and get back to you soon.

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 7 pipeline(s).
3 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

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

Important checks have failed. As of today they are not blocking this PR, but in near future they may.
Addressing the following failures is highly recommended:
  • ⚠️ The check named Swagger BreakingChange has failed. To unblock this PR, follow the process at aka.ms/brch.


Comment generated by summarize-checks workflow run.

@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

API Change Check

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

Language API Review for Package
Go sdk/resourcemanager/sql/armsql
JavaScript @azure/arm-sql
Java com.azure.resourcemanager:azure-resourcemanager-sql
Python azure-mgmt-sql

Comment generated by After APIView workflow run.

@github-actions github-actions Bot added resource-manager TypeSpec Authored with TypeSpec labels Oct 22, 2026
@rajashree012

Copy link
Copy Markdown
Member Author

/arm-review

1 similar comment
@achyuth-ms

Copy link
Copy Markdown
Member

/arm-review

@rajashree012

Copy link
Copy Markdown
Member Author

/arm-review

@github-actions

Copy link
Copy Markdown

ARM API review

Reviewed commit d8ec3adb64c26a8731697a46ec3332e6b8f2fd26 against base e3cc072ccf0c8adcd2397aa2fc22b0020cc07f71.

Approval labels observed: none.

Blocking findings

  1. ReaderEndpoint supports asynchronous PUT/PATCH but its properties omit the required read-only provisioningState (RPC-Async-V1-02). Add the property with Succeeded, Failed, and Canceled terminal states and remove the suppression.
  2. ReaderEndpointListResult.nextLink is emitted as a string without format: uri; ARM list contract Section 13.1 requires a URI-formatted nextLink.
  3. ReaderEndpointListResult.value is optional; ARM list contract Section 13.1 requires a required array-valued value.
  4. The change suppresses error-level rules (arm-resource-provisioning-state, envelope-property, and PUT/DELETE response-code rules). Fix the underlying contracts instead of suppressing errors.

All four findings are new at this head and were independently verified by Critic (PASS). No prior ARM findings or review threads required reconciliation. Finding 4 from the review analysis concerning new Legacy.flattenProperty usage was not posted because its applicability was not sufficiently established.

🔍 ARM API review by ARM API Review: Automated Workflow

},
"nextLink": {
"type": "string",
"description": "Link to retrieve the next page of results.",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Blocking — nextLink is not formatted as a URI. The generated list wrapper declares nextLink as a plain string. ARM list responses require nextLink to be URI-formatted; update the TypeSpec source so generation emits "format": "uri". See Section 13.1 — List API Must Follow ARM Contract. No applicable approval label was observed.

}

/** Properties of a reader endpoint. */
#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "The existing API exposes completion through Location polling, not a provisioningState property."

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Blocking — missing provisioningState on an asynchronous resource. ReaderEndpoint supports asynchronous PUT/PATCH, but ReaderEndpointProperties omits the required read-only provisioningState. Please add the property with the required terminal states (Succeeded, Failed, Canceled) and remove the arm-resource-provisioning-state suppression. See RPC-Async-V1-02. No applicable approval label was observed.

}

/** Properties of a reader endpoint. */
#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "The existing API exposes completion through Location polling, not a provisioningState property."

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Blocking — error-level rules are suppressed. This change adds suppressions for error rules including arm-resource-provisioning-state, arm-resource-invalid-envelope-property, and PUT/DELETE response-code validation (see also ReaderEndpointFeatureRegistration.tsp). Error-level rules must be fixed rather than suppressed; remove these suppressions and correct the underlying contracts. See TypeSpec suppression policy §4.1. No applicable approval label was observed.

/** A list of reader endpoints. */
@added(Versions.v2026_11_01_preview)
model ReaderEndpointListResult {
/** Array of results. */

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Blocking — list value must be required. ReaderEndpointListResult declares value as optional, and the generated schema consequently omits required: ["value"]. ARM list responses require a required array-valued value property. Make value required in the TypeSpec source. See Section 13.1 — List API Must Follow ARM Contract. No applicable approval label was observed.

@microsoft-github-policy-service

Copy link
Copy Markdown
Contributor

rajashree012 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.

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

Labels

ARMChangesRequested customer-reported Issues that are reported by GitHub users external to the Azure organization. resource-manager SQL TypeSpec Authored with TypeSpec

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants