Skip to content
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 Replicas_ListByServer to postgres flexible server 2022-03-08-preview #21424

Merged

Conversation

alanenriqueo
Copy link
Member

@alanenriqueo alanenriqueo commented Nov 4, 2022

  • Add Replicas_ListByServer operation to postgres flexible server 2022-03-08-preview.
  • Add replicationRole property to model ServerPropertiesForUpdate.
  • Add None to replicationRole enum.
  • Add 202 response code to Administrators_Create.

ARM API Information (Control Plane)

MSFT employees can try out our new experience at OpenAPI Hub - one location for using our validation tools and finding your workflow.

Azure 1st Party Service can try out the Shift Left experience to initiate API design review from ADO code repo. If you are interested, may request engineering support by filling in with the form https://aka.ms/ShiftLeftSupportForm.

Changelog

Add a changelog entry for this PR by answering the following questions:

  1. What's the purpose of the update?
    • new service onboarding
    • new API version
    • update existing version for new feature
    • update existing version to fix swagger quality issue in s360
    • Other, please clarify
  2. When are you targeting to deploy the new service/feature to public regions? Please provide the date or, if the date is not yet available, the month.
  3. When do you expect to publish the swagger? Please provide date or, the the date is not yet available, the month.
  4. By default, Azure SDKs of all languages (.NET/Python/Java/JavaScript for both management-plane SDK and data-plane SDK, Go for management-plane SDK only ) MUST be refreshed with/after swagger of new version is published. If you prefer NOT to refresh any specific SDK language upon swagger updates in the current PR, please leave details with justification here.

Contribution checklist (MS Employees Only):

If any further question about AME onboarding or validation tools, please view the FAQ.

ARM API Review Checklist

Applicability: ⚠️

If your changes encompass only the following scenarios, you should SKIP this section, as these scenarios do not require ARM review.

  • Change to data plane APIs
  • Adding new properties
  • All removals

Otherwise your PR may be subject to ARM review requirements. Complete the following:

  • Check this box if any of the following apply to the PR so that the label "ARMReview" and "WaitForARMFeedback" will be added by bot to kick off ARM API Review. Missing to check this box in the following scenario may result in delays to the ARM manifest review and deployment.

    • Adding a new service
    • Adding new API(s)
    • Adding a new API version
      -[ ] To review changes efficiently, ensure you copy the existing version into the new directory structure for first commit and then push new changes, including version updates, in separate commits. You can use OpenAPIHub to initialize the PR for adding a new version. For more details refer to the wiki.
  • Ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

  • If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist

If you have any breaking changes as defined in the Breaking Change Policy, request approval from the Breaking Change Review Board.

Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Additional details on the process and office hours are on the Breaking Change Wiki.

NOTE: To update API(s) in public preview for over 1 year (refer to Retirement of Previews)

Please follow the link to find more details on PR review process.

@openapi-workflow-bot
Copy link

Hi, @alanenriqueo Thanks for your PR. I am workflow bot for review process. Here are some small tips.

  • Please ensure to do self-check against checklists in first PR comment.
  • PR assignee is the person auto-assigned and responsible for your current PR reviewing and merging.
  • For specs comparison cross API versions, Use API Specs Comparison Report Generator
  • If there is CI failure(s), to fix CI error(s) is mandatory for PR merging; or you need to provide justification in PR comment for explanation. How to fix?

  • Any feedback about review process or workflow bot, pls contact swagger and tools team. vscswagger@microsoft.com

    @openapi-pipeline-app
    Copy link

    openapi-pipeline-app bot commented Nov 4, 2022

    Swagger Validation Report

    ️❌BreakingChange: 1 Errors, 0 Warnings failed [Detail]
    compared swaggers (via Oad v0.10.1)] new version base version
    2022-03-08-preview 2022-03-08-preview(ef004ed) 2022-03-08-preview(main)
    Rule Message
    Runtime Exception "new":"https://github.com/Azure/azure-rest-api-specs/blob/ef004edcd771fc275dd3a884c7a42db6ccba3ee1/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2022-03-08-preview",
    "old":"https://github.com/Azure/azure-rest-api-specs/blob/main/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2022-03-08-preview",
    "details":"Command failed: node /mnt/vss/_work/_tasks/AzureApiValidation_5654d05d-82c1-48da-ad8f-161b817f6d41/0.0.43/common/temp/node_modules/.pnpm/@Azure+oad@0.10.1/node_modules/autorest/dist/app.js /tmp/readme.oad.old.md --v2 --tag=oad-default-tag --output-artifact=swagger-document.json --output-artifact=swagger-document.map --output-file=old --output-folder=/tmp\nFATAL: swagger-document/compose - FAILED\nFATAL: Error: '$.definitions.Sku.description' has incompatible values (---\nThe resource model definition representing SKU\n,
    ---\nSku information related properties of a server.\n).\n Error: '$.definitions.Sku.description' has incompatible values (---\nThe resource model definition representing SKU\n,
    ---\nSku information related properties of a server.\n).\n"
    ️️✔️Breaking Change(Cross-Version) succeeded [Detail] [Expand]
    There are no breaking changes.
    ️️✔️CredScan succeeded [Detail] [Expand]
    There is no credential detected.
    ️❌LintDiff: 2 Errors, 0 Warnings failed [Detail] [must fix]The following errors/warnings are introduced by current PR:
    Rule Message Related RPC [For API reviewers]
    AutoRest exception "location":"specification/postgresql/resource-manager/readme.md",
    "tag":"package-flexibleserver-2022-03-preview",
    "details":"swagger-document/compose - FAILED"
    AutoRest exception "location":"specification/postgresql/resource-manager/readme.md",
    "tag":"package-flexibleserver-2022-03-preview",
    "details":"Error: '$.definitions.Sku.description' has incompatible values (---The resource model definition representing SKU,
    ---Sku information related properties of a server.)."


    The following errors/warnings exist before current PR submission:

    Rule Message
    ⚠️ R2017 - PutRequestResponseScheme A PUT operation request body schema should be the same as its 200 response schema, to allow reusing the same entity between GET and PUT. If the schema of the PUT request body is a superset of the GET response body, make sure you have a PATCH operation to make the resource updatable. Operation: 'Administrators_Create' Request Model: 'ActiveDirectoryAdministratorAdd' Response Model: 'ActiveDirectoryAdministrator'
    Location: Microsoft.DBforPostgreSQL/preview/2022-03-08-preview/Administrators.json#L38
    ️⚠️Avocado: 1 Warnings warning [Detail]
    Rule Message
    ⚠️ MULTIPLE_API_VERSION The default tag contains multiple API versions swaggers.
    readme: specification/postgresql/resource-manager/readme.md
    tag: specification/postgresql/resource-manager/readme.md#tag-package-2020-01-01
    ️️✔️ApiReadinessCheck succeeded [Detail] [Expand]
    ️⚠️~[Staging] ServiceAPIReadinessTest: 0 Warnings warning [Detail]

    API Test is not triggered due to precheck failure. Check pipeline log for details.

    ️️✔️ModelValidation succeeded [Detail] [Expand]
    Validation passes for ModelValidation.
    ️️✔️SemanticValidation succeeded [Detail] [Expand]
    Validation passes for SemanticValidation.
    ️️✔️PoliCheck succeeded [Detail] [Expand]
    Validation passed for PoliCheck.
    ️️✔️PrettierCheck succeeded [Detail] [Expand]
    Validation passes for PrettierCheck.
    ️️✔️SpellCheck succeeded [Detail] [Expand]
    Validation passes for SpellCheck.
    ️️✔️Lint(RPaaS) succeeded [Detail] [Expand]
    Validation passes for Lint(RPaaS).
    ️️✔️CadlValidation succeeded [Detail] [Expand]
    Validation passes for CadlValidation.
    ️️✔️PR Summary succeeded [Detail] [Expand]
    Validation passes for Summary.
    Posted by Swagger Pipeline | How to fix these errors?

    @ghost ghost added the PostgreSQL label Nov 4, 2022
    @openapi-pipeline-app
    Copy link

    openapi-pipeline-app bot commented Nov 4, 2022

    Swagger Generation Artifacts

    ️️✔️ApiDocPreview succeeded [Detail] [Expand]
     Please click here to preview with your @microsoft account. 
    ️️✔️SDK Breaking Change Tracking succeeded [Detail] [Expand]

    Breaking Changes Tracking


    ️️✔️ azure-sdk-for-net-track2 succeeded [Detail] [Expand]
    • ️✔️Succeeded [Logs]Release - Generate from b5957df. SDK Automation 14.0.0
      command	pwsh ./eng/scripts/Automation-Sdk-Init.ps1 ../azure-sdk-for-net_tmp/initInput.json ../azure-sdk-for-net_tmp/initOutput.json
      warn	File azure-sdk-for-net_tmp/initOutput.json not found to read
      command	pwsh ./eng/scripts/Invoke-GenerateAndBuildV2.ps1 ../azure-sdk-for-net_tmp/generateInput.json ../azure-sdk-for-net_tmp/generateOutput.json
    • ️✔️Azure.ResourceManager.PostgreSql [View full logs]  [Release SDK Changes]
      info	[Changelog]
    ️⚠️ azure-sdk-for-python-track2 warning [Detail]
    • ⚠️Warning [Logs]Release - Generate from b5957df. SDK Automation 14.0.0
      command	sh scripts/automation_init.sh ../azure-sdk-for-python_tmp/initInput.json ../azure-sdk-for-python_tmp/initOutput.json
      cmderr	[automation_init.sh] WARNING: Skipping azure-nspkg as it is not installed.
      command	sh scripts/automation_generate.sh ../azure-sdk-for-python_tmp/generateInput.json ../azure-sdk-for-python_tmp/generateOutput.json
      cmderr	[automation_generate.sh] npm notice
      cmderr	[automation_generate.sh] npm notice New major version of npm available! 8.19.2 -> 9.1.1
      cmderr	[automation_generate.sh] npm notice Changelog: <https://github.com/npm/cli/releases/tag/v9.1.1>
      cmderr	[automation_generate.sh] npm notice Run `npm install -g npm@9.1.1` to update!
      cmderr	[automation_generate.sh] npm notice
    • ️✔️track2_azure-mgmt-rdbms [View full logs]  [Release SDK Changes]
      info	[Changelog] ### Features Added
      info	[Changelog]
      info	[Changelog]   - Model ServerForUpdate has a new parameter replication_role
    ️⚠️ azure-sdk-for-java warning [Detail]
    • ⚠️Warning [Logs]Release - Generate from b5957df. SDK Automation 14.0.0
      command	./eng/mgmt/automation/init.sh ../azure-sdk-for-java_tmp/initInput.json ../azure-sdk-for-java_tmp/initOutput.json
      cmderr	[init.sh] [notice] A new release of pip available: 22.3 -> 22.3.1
      cmderr	[init.sh] [notice] To update, run: pip install --upgrade pip
      cmderr	[init.sh] [notice] A new release of pip available: 22.3 -> 22.3.1
      cmderr	[init.sh] [notice] To update, run: pip install --upgrade pip
      command	./eng/mgmt/automation/generate.py ../azure-sdk-for-java_tmp/generateInput.json ../azure-sdk-for-java_tmp/generateOutput.json
      warn	No file changes detected after generation
      warn	No package detected after generation
    ️️✔️ azure-sdk-for-go succeeded [Detail] [Expand]
    • ️✔️Succeeded [Logs]Release - Generate from b5957df. SDK Automation 14.0.0
      command	sh ./eng/scripts/automation_init.sh ../../../../../azure-sdk-for-go_tmp/initInput.json ../../../../../azure-sdk-for-go_tmp/initOutput.json
      command	generator automation-v2 ../../../../../azure-sdk-for-go_tmp/generateInput.json ../../../../../azure-sdk-for-go_tmp/generateOutput.json
    • ️✔️sdk/resourcemanager/postgresql/armpostgresql [View full logs]  [Release SDK Changes] Breaking Change Detected
      info	[Changelog] ### Breaking Changes
      info	[Changelog]
      info	[Changelog] - Struct `CloudError` has been removed
      info	[Changelog]
      info	[Changelog] Total 2 breaking change(s), 0 additive change(s).
    • ️✔️sdk/resourcemanager/postgresql/armpostgresqlflexibleservers [View full logs]  [Release SDK Changes] Breaking Change Detected
      info	[Changelog] ### Breaking Changes
      info	[Changelog]
      info	[Changelog] - Struct `CloudError` has been removed
      info	[Changelog]
      info	[Changelog] Total 2 breaking change(s), 0 additive change(s).
    ️⚠️ azure-sdk-for-js warning [Detail]
    • ⚠️Warning [Logs]Release - Generate from b5957df. SDK Automation 14.0.0
      command	sh .scripts/automation_init.sh ../azure-sdk-for-js_tmp/initInput.json ../azure-sdk-for-js_tmp/initOutput.json
      warn	File azure-sdk-for-js_tmp/initOutput.json not found to read
      command	sh .scripts/automation_generate.sh ../azure-sdk-for-js_tmp/generateInput.json ../azure-sdk-for-js_tmp/generateOutput.json
      warn	No file changes detected after generation
      warn	No package detected after generation
    ️⚠️ azure-resource-manager-schemas warning [Detail]
    • ⚠️Warning [Logs]Release - Generate from b5957df. Schema Automation 14.0.0
      command	.sdkauto/initScript.sh ../azure-resource-manager-schemas_tmp/initInput.json ../azure-resource-manager-schemas_tmp/initOutput.json
      cmderr	[initScript.sh]  WARN old lockfile
      cmderr	[initScript.sh] npm WARN old lockfile The package-lock.json file was created with an old version of npm,
      cmderr	[initScript.sh] npm WARN old lockfile so supplemental metadata must be fetched from the registry.
      cmderr	[initScript.sh] npm WARN old lockfile
      cmderr	[initScript.sh] npm WARN old lockfile This is a one-time fix-up, please be patient...
      cmderr	[initScript.sh] npm WARN old lockfile
      warn	File azure-resource-manager-schemas_tmp/initOutput.json not found to read
      command	.sdkauto/generateScript.sh ../azure-resource-manager-schemas_tmp/generateInput.json ../azure-resource-manager-schemas_tmp/generateOutput.json
    • ️✔️postgresql [View full logs]  [Release Schema Changes]
    ️️✔️ azure-powershell succeeded [Detail] [Expand]
    • ️✔️Succeeded [Logs]Release - Generate from b5957df. SDK Automation 14.0.0
      command	sh ./tools/SwaggerCI/init.sh ../azure-powershell_tmp/initInput.json ../azure-powershell_tmp/initOutput.json
      command	pwsh ./tools/SwaggerCI/psci.ps1 ../azure-powershell_tmp/generateInput.json ../azure-powershell_tmp/generateOutput.json
    • ️✔️Az.PostgreSql [View full logs]  [Release SDK Changes]
    Posted by Swagger Pipeline | How to fix these errors?

    @openapi-pipeline-app
    Copy link

    openapi-pipeline-app bot commented Nov 4, 2022

    Generated ApiView

    Language Package Name ApiView Link
    Go sdk/resourcemanager/postgresql/armpostgresql Create ApiView failed. Please ensure your github account in Azure/Microsoft is public and add a comment "/azp run" to re-trigger the CI.
    Go sdk/resourcemanager/postgresql/armpostgresqlflexibleservers Create ApiView failed. Please ensure your github account in Azure/Microsoft is public and add a comment "/azp run" to re-trigger the CI.
    Python track2_azure-mgmt-rdbms Create ApiView failed. Please ensure your github account in Azure/Microsoft is public and add a comment "/azp run" to re-trigger the CI.
    .Net Azure.ResourceManager.PostgreSql Create ApiView failed. Please ensure your github account in Azure/Microsoft is public and add a comment "/azp run" to re-trigger the CI.

    @AzureRestAPISpecReview AzureRestAPISpecReview added ARMReview CI-FixRequiredOnFailure NewApiVersionRequired resource-manager WaitForARMFeedback <valid label in PR review process> add this label when ARM review is required labels Nov 4, 2022
    @openapi-workflow-bot
    Copy link

    Hi @alanenriqueo, Your PR has some issues. Please fix the CI sequentially by following the order of Avocado, semantic validation, model validation, breaking change, lintDiff. If you have any questions, please post your questions in this channel https://aka.ms/swaggersupport.

    TaskHow to fixPriority
    AvocadoFix-AvocadoHigh
    Semantic validationFix-SemanticValidation-ErrorHigh
    Model validationFix-ModelValidation-ErrorHigh
    LintDiffFix-LintDiffhigh
    If you need further help, please feedback via swagger feedback.

    @openapi-workflow-bot
    Copy link

    NewApiVersionRequired reason:

    A service’s API is a contract with customers and is represented by using the api-version query parameter. Changes such as adding an optional property to a request/response or introducing a new operation is a change to the service’s contract and therefore requires a new api-version value. This is critically important for documentation, client libraries, and customer support.

    EXAMPLE: if a customer calls a service in the public cloud using api-version=2020-07-27, the new property or operation may exist but if they call the service in a government cloud, air-gapped cloud, or Azure Stack Hub cloud using the same api-version, the property or operation may not exist. Because there is no clear relationship between the service api-version and the new property/operation, customers can’t trust the documentation and Azure customer have difficulty helping customers diagnose issues. In addition, each client library version documents the service version it supports. When an optional property or new operation is added to a service and its Swagger, new client libraries must be produced to expose this functionality to customers. Without updating the api-version, it is unclear to customers which version of a client library supports these new features.

    @raych1 raych1 assigned ruowan and unassigned raych1 Nov 4, 2022
    @openapi-workflow-bot
    Copy link

    Hi, @alanenriqueo your PR are labelled with WaitForARMFeedback. A notification email will be sent out shortly afterwards to notify ARM review board(armapireview@microsoft.com).

    @@ -85,6 +85,9 @@
    "$ref": "#/definitions/ActiveDirectoryAdministrator"
    }
    },
    "202": {
    Copy link
    Member

    Choose a reason for hiding this comment

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

    202

    PUT MUST not return a 202

    Copy link
    Member Author

    Choose a reason for hiding this comment

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

    In our RP we have a lot of PUT operations that return 202. We'll fix it later, but for now we need to keep 202 in this API, and we've had this issue before: #21234 (review)

    Copy link
    Member

    Choose a reason for hiding this comment

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

    @rkmanda looped you in the chat history we had earlier with Tim during earlier review regarding PUT calls returning 202.

    @rkmanda
    Copy link
    Member

    rkmanda commented Nov 10, 2022

          "$ref": "#/definitions/ReplicationRole",
    

    The diffs for replicationRole changes are not clear when I do a diff between the 1st and last iterations of the PR.


    Refers to: specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2022-03-08-preview/FlexibleServers.json:509 in ef004ed. [](commit_id = ef004ed, deletion_comment = False)

    @rkmanda
    Copy link
    Member

    rkmanda commented Nov 10, 2022

          "$ref": "#/definitions/ReplicationRole",
    

    Is every file in this PR new changes? If any of them are from previous API version, please follow this:
    The first commit needs to be the previous api version and the new changes should only be added in the subsequent commits. This is explained in detail here (If using Open API which is recommended) https://dev.azure.com/azure-sdk/internal/_wiki/wikis/internal.wiki/208/OpenAPI-Hub-Adding-new-API-version or here(For manual process) : https://dev.azure.com/azure-sdk/internal/_wiki/wikis/internal.wiki/83/Manual-Process-Adding-new-API-version . Please remove the "ARMChangesRequested" label once you have fixed this issue.


    In reply to: 1309696792


    Refers to: specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2022-03-08-preview/FlexibleServers.json:509 in b9dbea9. [](commit_id = b9dbea9, deletion_comment = False)

    @rkmanda rkmanda added the ARMChangesRequested <valid label in PR review process>add this label when require changes after ARM review label Nov 10, 2022
    @openapi-workflow-bot
    Copy link

    Please ensure to respond feedbacks from the ARM API reviewer. When you are ready to continue the ARM API review, please remove ARMChangesRequested

    @openapi-workflow-bot openapi-workflow-bot bot removed the WaitForARMFeedback <valid label in PR review process> add this label when ARM review is required label Nov 10, 2022
    @alanenriqueo
    Copy link
    Member Author

    Hi @rkmanda, thanks for the review. This PR is only to do some fixes for the recent merged new api version 2022-03-preview (#20212). We need this to be merged because CLI depends on SDK for Python and there are some urgent features needed by this month relying on this api version.

    @alanenriqueo alanenriqueo removed the ARMChangesRequested <valid label in PR review process>add this label when require changes after ARM review label Nov 10, 2022
    @openapi-workflow-bot openapi-workflow-bot bot added the WaitForARMFeedback <valid label in PR review process> add this label when ARM review is required label Nov 10, 2022
    @rkmanda rkmanda added the ARMSignedOff <valid label in PR review process>add this label when ARM approve updates after review label Nov 11, 2022
    @openapi-workflow-bot openapi-workflow-bot bot removed the WaitForARMFeedback <valid label in PR review process> add this label when ARM review is required label Nov 11, 2022
    @ruowan
    Copy link
    Member

    ruowan commented Nov 14, 2022

    This breaking change and lintDiff is existing issue. Service team already plan to fix it.

    @ruowan ruowan added Approved-LintDiff Approved-BreakingChange DO NOT USE! OBSOLETE label. See https://github.com/Azure/azure-sdk-tools/issues/6374 labels Nov 14, 2022
    @ruowan ruowan merged commit b5957df into Azure:main Nov 14, 2022
    ghost pushed a commit to Azure/azure-resource-manager-schemas that referenced this pull request Nov 14, 2022
    anandanthony pushed a commit to anandMicro/azure-rest-api-specs that referenced this pull request Dec 16, 2022
    …iew (Azure#21424)
    
    * Add Replicas_ListByServer to postgres package-flexibleserver-2022-03-preview
    
    * Fix lintDiff
    
    * Fix lintDiff
    
    * Move Replicas_ListByServer to Replicas.json
    
    * Add 202 response to Administrators_Create
    kayousef-zz pushed a commit to kayousef-zz/azure-rest-api-specs that referenced this pull request Dec 21, 2022
    …iew (Azure#21424)
    
    * Add Replicas_ListByServer to postgres package-flexibleserver-2022-03-preview
    
    * Fix lintDiff
    
    * Fix lintDiff
    
    * Move Replicas_ListByServer to Replicas.json
    
    * Add 202 response to Administrators_Create
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    Approved-BreakingChange DO NOT USE! OBSOLETE label. See https://github.com/Azure/azure-sdk-tools/issues/6374 Approved-LintDiff ARMReview ARMSignedOff <valid label in PR review process>add this label when ARM approve updates after review CI-BreakingChange-Go CI-FixRequiredOnFailure PostgreSQL resource-manager
    Projects
    None yet
    Development

    Successfully merging this pull request may close these issues.

    6 participants