-
Notifications
You must be signed in to change notification settings - Fork 5.1k
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 MySQL Flex API Version 2021-12-01-preview #19217
Add MySQL Flex API Version 2021-12-01-preview #19217
Conversation
Hi, @zehao-ms Thanks for your PR. I am workflow bot for review process. Here are some small tips. Any feedback about review process or workflow bot, pls contact swagger and tools team. vscswagger@microsoft.com |
Hi, @zehao-ms your PR are labelled with WaitForARMFeedback. A notification email will be sent out shortly afterwards to notify ARM review board(armapireview@microsoft.com). |
Swagger Validation Report
|
Rule | Message |
---|---|
Since operation 'Configurations_BatchUpdate' response has model definition 'array', it should be of the form '_list'. Note: If you have already shipped an SDK on top of this spec, fixing this warning may introduce a breaking change. Location: Microsoft.DBforMySQL/preview/2021-12-01-preview/Configurations.json#L143 |
|
Since operation 'CheckVirtualNetworkSubnetUsage_Execute' response has model definition 'array', it should be of the form '_list'. Note: If you have already shipped an SDK on top of this spec, fixing this warning may introduce a breaking change. Location: Microsoft.DBforMySQL/preview/2021-12-01-preview/ServiceOperations.json#L84 |
|
'PUT' operation 'Backups_Put' should use method name 'Create'. Note: If you have already shipped an SDK on top of this spec, fixing this warning may introduce a breaking change. Location: Microsoft.DBforMySQL/preview/2021-12-01-preview/Backups.json#L42 |
|
OperationId should contain the verb: 'updateconfigurations' in:'Configurations_BatchUpdate'. Consider updating the operationId Location: Microsoft.DBforMySQL/preview/2021-12-01-preview/Configurations.json#L143 |
|
OperationId should contain the verb: 'checkvirtualnetworksubnetusage' in:'CheckVirtualNetworkSubnetUsage_Execute'. Consider updating the operationId Location: Microsoft.DBforMySQL/preview/2021-12-01-preview/ServiceOperations.json#L84 |
|
OperationId should contain the verb: 'checknameavailability' in:'CheckNameAvailability_Execute'. Consider updating the operationId Location: Microsoft.DBforMySQL/preview/2021-12-01-preview/ServiceOperations.json#L132 |
|
OperationId should contain the verb: 'getprivatednszonesuffix' in:'GetPrivateDnsZoneSuffix_Execute'. Consider updating the operationId Location: Microsoft.DBforMySQL/preview/2021-12-01-preview/ServiceOperations.json#L180 |
|
Booleans are not descriptive and make them hard to use. Consider using string enums with allowed set of values defined. Property: resetAllToDefault Location: Microsoft.DBforMySQL/preview/2021-12-01-preview/Configurations.json#L410 |
|
The value provided for description is not descriptive enough. Accurate and descriptive description is essential for maintaining reference documentation. Location: Microsoft.DBforMySQL/preview/2021-12-01-preview/FlexibleServers.json#L1080 |
|
Do not have duplicate name of x-ms-example, make sure every x-ms-example name unique. Duplicate x-ms-example: Restart a server Location: Microsoft.DBforMySQL/preview/2021-12-01-preview/FlexibleServers.json#L383 |
The following errors/warnings exist before current PR submission:
Rule | Message |
---|---|
Booleans are not descriptive and make them hard to use. Consider using string enums with allowed set of values defined. Property: nameAvailable Location: Microsoft.DBforMySQL/preview/2021-12-01-preview/ServiceOperations.json#L491 |
|
The resource 'LogFile' does not have get operation, please add it. Location: Microsoft.DBforMySQL/preview/2021-12-01-preview/LogFiles.json#L113 |
️⚠️
Avocado: 1 Warnings warning [Detail]
Rule | Message |
---|---|
The default tag contains multiple API versions swaggers. readme: specification/mysql/resource-manager/readme.md tag: specification/mysql/resource-manager/readme.md#tag-package-2020-01-01 |
️️✔️
ApiReadinessCheck succeeded [Detail] [Expand]
️️✔️
ModelValidation succeeded [Detail] [Expand]
Validation passes for ModelValidation.
️️✔️
SemanticValidation succeeded [Detail] [Expand]
Validation passes for SemanticValidation.
️⚠️
Cross-Version Breaking Changes: 1 Warnings warning [Detail]
Rule | Message |
---|---|
"details":"Attention: There are some existing APIs currently documented in a new spec file. The validation may not be able to report breaking changes with these APIs. It is recommended not to rename swagger file or move public APIs to a new file when creating a new API version.The existing APIs being moved are:Operations_List;", "location":"https://github.com/Azure/azure-rest-api-specs/blob/main/specification/mysql/resource-manager/Microsoft.DBforMySQL/preview/2021-12-01-preview/ServiceOperations.json" |
️️✔️
CredScan succeeded [Detail] [Expand]
There is no credential detected.
️️✔️
PoliCheck succeeded [Detail] [Expand]
Validation passed for PoliCheck.
️️✔️
SDK Track2 Validation succeeded [Detail] [Expand]
Validation passes for SDKTrack2Validation
- The following tags are being changed in this PR
️️✔️
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).
Swagger Generation Artifacts
|
Hi @zehao-ms, Your PR has some issues. Please fix the CI sequentially by following the order of
|
"$ref": "#/definitions/Server" | ||
} | ||
}, | ||
"202": { |
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.
we dont use the 202 model for PUTs anymore :
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.
This is a legacy API copied from previous API version.
.../mysql/resource-manager/Microsoft.DBforMySQL/preview/2021-12-01-preview/FlexibleServers.json
Outdated
Show resolved
Hide resolved
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" | ||
}, | ||
{ | ||
"$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" |
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.
Copied from previous API version
], | ||
"responses": { | ||
"200": { | ||
"description": "OK", |
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.
Copied from previous API version
} | ||
], | ||
"responses": { | ||
"200": { |
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.
Same comment everywhere else in this PR
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.
Copied from previous API version
"200": { | ||
"description": "OK", | ||
"schema": { | ||
"$ref": "#/definitions/ServerListResult" |
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.
Is there only list for the replicas ? What about point Gets \Puts\Deletes for this resource ? How is it created etc ?
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.
Copied from previous API version.
The replica is a kind of special server. They are created by creating server API with parameters, so there is only list for this.
"description": "Maintenance window of a server.", | ||
"properties": { | ||
"customWindow": { | ||
"type": "string", |
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.
Use enyums where applicable
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.
Copied from previous API version.
"properties": { | ||
"name": { | ||
"type": "string", | ||
"description": "The name of the sku, e.g. Standard_D32s_v3." |
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.
Copied from previous API version.
"description": "Delegated subnet resource id used to setup vnet for a server." | ||
}, | ||
"privateDnsZoneResourceId": { | ||
"type": "string", |
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.
Consider adding linked access checks where appropriate :
https://armwiki.azurewebsites.net/authorization/RBACLinkedAccessCheck.html?q=Linked%20access%20check
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.
Copied from previous API version.
}, | ||
"description": "Server restart parameters." | ||
}, | ||
"Identity": { |
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.
Copied from previous API version.
} | ||
}, | ||
"description": "List all the backups for a given server.", | ||
"parameters": [ |
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.
this is a point GET so should only return one baackup
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.
Fixed description
}, | ||
"paths": { | ||
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/flexibleServers/{serverName}/backups/{backupName}": { | ||
"put": { |
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.
Copied from previous API version.
Yes, currently backups are managed by service and cannot be deleted by customer.
"ServerBackupProperties": { | ||
"type": "object", | ||
"properties": { | ||
"backupType": { |
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.
Copied from previous API version.
} | ||
}, | ||
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/flexibleServers/{serverName}/updateConfigurations": { | ||
"post": { |
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.
can you explain a bit about how this confguration object works ?
Does this post operation create the configurations/{configurationName} resource ?
I see that the configurations/{configurationName} does not support PUT so how is it created ?
Note it is not recommended to use POST to create resources since this would not enable creation via ARM templates and application of Azure Policy
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.
Copied from previous API version.
These configurations are a set of parameters of MySQL itself.
The service exposes some parameters to customer for modifying and there is no resource created on this.
}, | ||
{ | ||
"$ref": "#/parameters/ConfigurationPageSizeParameter" | ||
} |
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 dont see where these params are being used ?
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.
They are used in Configurations_ListByServer
} | ||
}, | ||
"paths": { | ||
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/flexibleServers/{serverName}/logFiles": { |
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.
A legacy API in previous version.
Logfiles are some logs generated by service program on backend. They are managed by service, so there is no PUT/DELETE
}, | ||
"paths": { | ||
"/subscriptions/{subscriptionId}/providers/Microsoft.DBforMySQL/locations/{locationName}/capabilities": { | ||
"get": { |
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.
Copied from previous API version.
} | ||
} | ||
}, | ||
"/subscriptions/{subscriptionId}/providers/Microsoft.DBforMySQL/locations/{locationName}/checkVirtualNetworkSubnetUsage": { |
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.
Copied from previous API version.
The virtualNetwork here should mean the Vnet related settings on this server.
} | ||
} | ||
}, | ||
"/subscriptions/{subscriptionId}/providers/Microsoft.DBforMySQL/locations/{locationName}/checkNameAvailability": { |
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.
Copied from previous API version.
@zehao-ms I see a lot of comments saying it's copied from previous version, but in the change I don't see the reference for the previous version. Can you make sure you put the previous version in the first commit so we can use it view the diff? 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 ensure to respond feedbacks from the ARM API reviewer. When you are ready to continue the ARM API review, please remove |
Open a new PR by openAPI hub: |
MSFT employees can try out our new experience at OpenAPI Hub - one location for using our validation tools and finding your workflow.
Changelog
Add a changelog entry for this PR by answering the following questions:
Contribution checklist:
If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist
Otherwise your PR may be subject to ARM review requirements. Complete the following:
Check this box if any of the following appy 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.
-[ ] To review changes efficiently, ensure you are using OpenAPIHub to initialize the PR for adding a new version. 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 any of the following scenarios apply to the PR, request approval from the Breaking Change Review Board as defined in the Breaking Change Policy.
Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
Please follow the link to find more details on PR review process.