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

Release SplitIO.Experimentation api spec from private repo RPSaaSMaster branch #28725

Conversation

hahahahahaiyiwen
Copy link
Member

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.

Note

As of January 2024 there is no PR assignee. This is expected. See https://aka.ms/azsdk/pr-arm-review.

PR review workflow diagram

Please understand this diagram before proceeding. It explains how to get your PR approved & merged.

diagram

Click here to see the details of Step 1, Breaking Changes review

If you are in purview of Step 1 of the diagram, follow the Breaking Changes review process.
IMPORTANT! This applies even if you believe your PR was mislabeled, for any reason, including tool failure.

Click here to see the details of Step 2, ARM review

See https://aka.ms/azsdk/pr-arm-review.

Click here to see the diagram footnotes

Diagram footnotes

[1] See ARM review queue (for PR merge queues, see [2]).
[2] public repo merge queue, private repo merge queue (for ARM review queue, [1])
The ARM reviewer on-call engineer visits the merge queue twice a day, so the approximate ETA for merges is 12 - 24 hours.

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 generated using OpenAPI Hub).
  • 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.
  • 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.

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.
  • 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 PR workflow diagram Step 2 (ARM review), 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.

Private repo link

Link of private repo RPSaaSMaster branch spec: https://github.com/Azure/azure-rest-api-specs-pr/tree/RPSaaSMaster/specification/splitio

Copy link

openapi-pipeline-app bot commented Apr 17, 2024

Next Steps to Merge

✅ All automated merging requirements have been met! To get your PR merged, see aka.ms/azsdk/specreview/merge.

Copy link

openapi-pipeline-app bot commented Apr 17, 2024

Swagger Validation Report

️️✔️BreakingChange succeeded [Detail] [Expand]
There are no breaking changes.
️️✔️Breaking Change(Cross-Version) succeeded [Detail] [Expand]
There are no breaking changes.
️️✔️CredScan succeeded [Detail] [Expand]
There is no credential detected.
️⚠️LintDiff: 2 Warnings warning [Detail]
Compared specs (v2.2.0) new version base version
package-2024-03-01-preview package-2024-03-01-preview(33bb9f3) default(main)

[must fix]The following errors/warnings are introduced by current PR:

Rule Message Related RPC [For API reviewers]
⚠️ EnumInsteadOfBoolean Booleans properties are not descriptive in all cases and can make them to use, evaluate whether is makes sense to keep the property as boolean or turn it into an enum.
Location: SplitIO.Experimentation/preview/2024-03-01-preview/splitio.json#L742
⚠️ EnumInsteadOfBoolean Booleans properties are not descriptive in all cases and can make them to use, evaluate whether is makes sense to keep the property as boolean or turn it into an enum.
Location: SplitIO.Experimentation/preview/2024-03-01-preview/splitio.json#L765
️️✔️Avocado succeeded [Detail] [Expand]
Validation passes for Avocado.
️️✔️SwaggerAPIView succeeded [Detail] [Expand]
️️✔️TypeSpecAPIView succeeded [Detail] [Expand]
️️✔️ModelValidation succeeded [Detail] [Expand]
Validation passes for ModelValidation.
️️✔️SemanticValidation succeeded [Detail] [Expand]
Validation passes for SemanticValidation.
️️✔️PoliCheck succeeded [Detail] [Expand]
Validation passed for PoliCheck.
️️✔️SpellCheck succeeded [Detail] [Expand]
Validation passes for SpellCheck.
️️✔️Lint(RPaaS) succeeded [Detail] [Expand]
Validation passes for Lint(RPaaS).
️️✔️PR Summary succeeded [Detail] [Expand]
Validation passes for Summary.
️️✔️Automated merging requirements met succeeded [Detail] [Expand]
Posted by Swagger Pipeline | How to fix these errors?

Copy link

openapi-pipeline-app bot commented Apr 17, 2024

Swagger Generation Artifacts

️️✔️ApiDocPreview succeeded [Detail] [Expand]
 Please click here to preview with your @microsoft account. 
Posted by Swagger Pipeline | How to fix these errors?

Copy link

openapi-pipeline-app bot commented Apr 17, 2024

Copy link

Hi, @hahahahahaiyiwen, our workflow has detected that there is no management SDK ever released for your RP, to further process SDK onboard for your RP, you should have the SDK client library name of your RP reviewed and approved.
Action Required:

  • Follow this guidance Naming for new initial management or client libraries (new SDKs) - Overview (azure.com) to create an issue for management client library name arch board review.
  • Paste the issue link that you created in step 1 in this PR

  • Impact: SDK release owner will take the approved management client library name to release SDK. No client library name approval will leads to SDK release delayed.

    @hahahahahaiyiwen
    Copy link
    Member Author

    SDK name review issue opened, link: Azure/azure-sdk#7440

    @AzureRestAPISpecReview AzureRestAPISpecReview added the ReadyForApiTest <valid label in PR review process>add this label when swagger and service APIs are ready for test label Apr 17, 2024
    "description": "List the operations for the provider",
    "parameters": [
    {
    "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter"
    Copy link
    Contributor

    Choose a reason for hiding this comment

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

    ApiVersionParameter

    Common to the entire file: Why not use v5 of the common types instead of using v3 ?

    Copy link
    Member Author

    Choose a reason for hiding this comment

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

    Updated to use v5

    "Succeeded",
    "Failed",
    "Canceled"
    ],
    Copy link
    Contributor

    Choose a reason for hiding this comment

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

    This provisioningState is returned when the PUT/PATCH call is made too.

    Don't we need a starting/intermediate state in those responses , before eventually responding with the terminal state.

    Copy link
    Member Author

    Choose a reason for hiding this comment

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

    Updated to include more states.

    "properties": {
    "properties": {
    "$ref": "#/definitions/ExperimentationWorkspaceProperties",
    "description": "The resource-specific properties for this resource.",
    Copy link
    Contributor

    Choose a reason for hiding this comment

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

    The resource-specific properties for this resource

    nit: May be a better description ?

    Copy link
    Member Author

    Choose a reason for hiding this comment

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

    This description is not controlled by us. It get auto-generated based on TypeSpec when using model ExperimentationWorkspace is TrackedResource<ExperimentationWorkspaceProperties>

    "minLength": 5,
    "maxLength": 50,
    "pattern": "^[a-zA-Z0-9](?!.*--)[a-zA-Z0-9-]*[a-zA-Z0-9]$"
    }
    Copy link
    Contributor

    Choose a reason for hiding this comment

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

    define a common parameter and refer that wherever needed.

    Copy link
    Member Author

    Choose a reason for hiding this comment

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

    This spec is TypeSpec generated, and I didn't find a way to define a common name parameter. There will be a TypeSpec compile error if resource name is not decorated by pattern.

    "description": "The id of the Split.IO data plane authentication application.",
    "required": true,
    "type": "string"
    },
    Copy link
    Contributor

    Choose a reason for hiding this comment

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

    Any Pattern, minLength, maxLength that could be added here ?

    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 think it's consistent with current API implementation.

    @ramoka178 ramoka178 added the ARMChangesRequested <valid label in PR review process>add this label when require changes after ARM review label Apr 22, 2024
    Copy link

    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.
    This will notify the reviewer to have another look.
    If the feedback provided needs further discussion, please use this Teams channel to post your questions - aka.ms/azsdk/support/specreview-channel.
    Please include [ARM Query] in the title of your question to indicate that it is ARM-related.

    @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 Apr 22, 2024
    @et13 et13 removed the ARMChangesRequested <valid label in PR review process>add this label when require changes after ARM review label Apr 24, 2024
    @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 Apr 24, 2024
    "value": "Created",
    "description": "Created"
    },
    {
    Copy link
    Contributor

    Choose a reason for hiding this comment

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

    Do you need a Deleted state or is that covered in Succeeded?

    Copy link
    Member Author

    Choose a reason for hiding this comment

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

    The RP is behind Rpaas and will be deleted once delete async operation completes, so we don't have deleted state.

    - suppress: PathResourceProviderNamePascalCase
    from: splitio.json
    reason: This is a specific resource provider name requested by liftr partner.
    - suppress: PatchBodyParametersSchema
    Copy link
    Contributor

    Choose a reason for hiding this comment

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

    • suppress: PatchBodyParametersSchema

    could you include "where" that mentions the path , instead of suppressing for the whole 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.

    ok, 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.

    I tried to include "where" in suppression in different ways but checks error cannot be resolved in those cases. I think it's because what's flagged ("Sku" name is a required property and "ManagedServiceIdentity" type is a required property) is in common-type files. Is there a way suppression can point to common-type files?

    @ramoka178 ramoka178 added the ARMChangesRequested <valid label in PR review process>add this label when require changes after ARM review label Apr 25, 2024
    @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 Apr 25, 2024
    @AzureRestAPISpecReview AzureRestAPISpecReview added BreakingChangeReviewRequired <valid label in PR review process>add this label when breaking change review is required and removed ReadyForApiTest <valid label in PR review process>add this label when swagger and service APIs are ready for test labels Apr 26, 2024
    @AzureRestAPISpecReview AzureRestAPISpecReview removed the BreakingChangeReviewRequired <valid label in PR review process>add this label when breaking change review is required label Apr 26, 2024
    @hahahahahaiyiwen hahahahahaiyiwen removed the ARMChangesRequested <valid label in PR review process>add this label when require changes after ARM review label Apr 26, 2024
    @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 Apr 26, 2024
    @AzureRestAPISpecReview AzureRestAPISpecReview added the ReadyForApiTest <valid label in PR review process>add this label when swagger and service APIs are ready for test label Apr 26, 2024
    @ramoka178 ramoka178 added Approved-Suppression ARMSignedOff <valid label in PR review process>add this label when ARM approve updates after review labels Apr 26, 2024
    @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 Apr 26, 2024
    @hahahahahaiyiwen
    Copy link
    Member Author

    /pr RequestMerge

    @microsoft-github-policy-service microsoft-github-policy-service bot added the MergeRequested Part of the ARM PR review workflow label Apr 29, 2024
    @TimLovellSmith
    Copy link
    Member

    @ramoka178 want to mark this PR approved based on your review or does it need further review?

    @TimLovellSmith TimLovellSmith merged commit 84d5f96 into Azure:main May 1, 2024
    31 of 32 checks passed
    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 MergeRequested Part of the ARM PR review workflow new-api-version new-rp-namespace ReadyForApiTest <valid label in PR review process>add this label when swagger and service APIs are ready for test resource-manager RPaaS SuppressionReviewRequired TypeSpec Authored with TypeSpec
    Projects
    None yet
    Development

    Successfully merging this pull request may close these issues.

    None yet

    5 participants