[Hub Generated] Review request for Microsoft.ContainerService/aks to add version preview/2024-03-02-preview
This is a PR generated at OpenAPI Hub. You can view your work branch via this link.
ARM (Control Plane) API Specification Update Pull Request
[!TIP] Overwhelmed by all this guidance? See the
Getting helpsection 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.
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.
- [x] 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:
- [x] I confirm this PR is modifying Azure Resource Manager (ARM) related specifications, and not data plane related specifications.
- [x] 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 PRandDue diligence checklist. - To understand what you must do next to merge this PR, see the
Next Steps to Mergecomment. 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
queuedstate, please add a comment with contents/azp run. This should result in a new comment denoting aPR validation pipelinehas 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.
Next Steps to Merge
✅ All automated merging requirements have been met! To get your PR merged, see aka.ms/azsdk/specreview/merge.
Swagger Validation Report
️️✔️BreakingChange succeeded [Detail] [Expand]
There are no breaking changes.
️⚠️Breaking Change(Cross-Version): 8 Warnings warning [Detail]
| Compared specs (v0.10.8) | new version | base version |
|---|---|---|
| managedClusters.json | 2024-03-02-preview(830c127) | 2024-02-01(main) |
| managedClusters.json | 2024-03-02-preview(830c127) | 2024-02-02-preview(main) |
The following breaking changes are detected by comparison with the latest stable version:
️️✔️CredScan succeeded [Detail] [Expand]
There is no credential detected.
️⚠️LintDiff: 50 Warnings warning [Detail]
| Compared specs (v2.2.0) | new version | base version |
|---|---|---|
| package-preview-2024-03 | package-preview-2024-03(830c127) | default(main) |
[must fix]The following errors/warnings are introduced by current PR:
Only 30 items are listed, please refer to log for more details.
| Rule | Message | Related RPC [For API reviewers] |
|---|---|---|
| :warning: RequiredReadOnlySystemData | The response of operation:'Machines_Get' is defined without 'systemData'. Consider adding the systemData to the response. Location: aks/preview/2024-03-02-preview/managedClusters.json#L1514 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: aks/preview/2024-03-02-preview/managedClusters.json#L2534 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: aks/preview/2024-03-02-preview/managedClusters.json#L2537 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: aks/preview/2024-03-02-preview/managedClusters.json#L2540 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: aks/preview/2024-03-02-preview/managedClusters.json#L2579 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: aks/preview/2024-03-02-preview/managedClusters.json#L2582 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: aks/preview/2024-03-02-preview/managedClusters.json#L2585 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: aks/preview/2024-03-02-preview/managedClusters.json#L2591 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: aks/preview/2024-03-02-preview/managedClusters.json#L2624 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: aks/preview/2024-03-02-preview/managedClusters.json#L2627 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: aks/preview/2024-03-02-preview/managedClusters.json#L2630 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: aks/preview/2024-03-02-preview/managedClusters.json#L2639 |
|
| :warning: UniqueXmsExample | Do not have duplicate name of x-ms-example, make sure every x-ms-example name unique. Duplicate x-ms-example: Get OperationStatusResult Location: aks/preview/2024-03-02-preview/managedClusters.json#L2656 |
|
| :warning: UniqueXmsExample | Do not have duplicate name of x-ms-example, make sure every x-ms-example name unique. Duplicate x-ms-example: List Agent Pools by Managed Cluster Location: aks/preview/2024-03-02-preview/managedClusters.json#L3879 |
|
| :warning: 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: aks/preview/2024-03-02-preview/managedClusters.json#L4373 |
|
| :warning: AvoidNestedProperties | Consider using x-ms-client-flatten to provide a better end user experience Location: aks/preview/2024-03-02-preview/managedClusters.json#L5098 |
|
| :warning: 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: aks/preview/2024-03-02-preview/managedClusters.json#L5101 |
|
| :warning: AvoidNestedProperties | Consider using x-ms-client-flatten to provide a better end user experience Location: aks/preview/2024-03-02-preview/managedClusters.json#L5127 |
|
| :warning: 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: aks/preview/2024-03-02-preview/managedClusters.json#L5760 |
|
| :warning: 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: aks/preview/2024-03-02-preview/managedClusters.json#L5979 |
|
| :warning: 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: aks/preview/2024-03-02-preview/managedClusters.json#L6008 |
|
| :warning: 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: aks/preview/2024-03-02-preview/managedClusters.json#L6013 |
|
| :warning: 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: aks/preview/2024-03-02-preview/managedClusters.json#L6018 |
|
| :warning: 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: aks/preview/2024-03-02-preview/managedClusters.json#L6314 |
|
| :warning: 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: aks/preview/2024-03-02-preview/managedClusters.json#L7646 |
|
| :warning: 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: aks/preview/2024-03-02-preview/managedClusters.json#L7650 |
|
| :warning: SchemaDescriptionOrTitle | Schema should have a description or title. Location: aks/preview/2024-03-02-preview/managedClusters.json#L7657 |
|
| :warning: 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: aks/preview/2024-03-02-preview/managedClusters.json#L7660 |
|
| :warning: SchemaDescriptionOrTitle | Schema should have a description or title. Location: aks/preview/2024-03-02-preview/managedClusters.json#L7667 |
|
| :warning: 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: aks/preview/2024-03-02-preview/managedClusters.json#L7670 |
The following errors/warnings exist before current PR submission:
Only 30 items are listed, please refer to log for more details.
| Rule | Message |
|---|---|
OperationsApiResponseSchema |
The response schema of operations API '/providers/Microsoft.ContainerService/operations' does not match the ARM specification. Please standardize the schema. Location: aks/preview/2024-03-02-preview/managedClusters.json#L52 |
OperationsApiSchemaUsesCommonTypes |
Operations API path must follow the schema provided in the common types. Location: aks/preview/2024-03-02-preview/managedClusters.json#L53 |
XmsPageableForListCalls |
x-ms-pageable extension must be specified for LIST APIs.Location: aks/preview/2024-03-02-preview/managedClusters.json#L74 |
ParametersInPointGet |
Query parameter resource-type should be removed. Point Get's MUST not have query parameters other than api version. Location: aks/preview/2024-03-02-preview/managedClusters.json#L80 |
XmsPageableForListCalls |
x-ms-pageable extension must be specified for LIST APIs.Location: aks/preview/2024-03-02-preview/managedClusters.json#L116 |
GetCollectionOnlyHasValueAndNextLink |
Get endpoints for collections of resources must only have the value and nextLink properties in their model.Location: aks/preview/2024-03-02-preview/managedClusters.json#L137 |
XmsPageableForListCalls |
x-ms-pageable extension must be specified for LIST APIs.Location: aks/preview/2024-03-02-preview/managedClusters.json#L237 |
ResourceNameRestriction |
The resource name parameter 'roleName' should be defined with a 'pattern' restriction. Location: aks/preview/2024-03-02-preview/managedClusters.json#L278 |
ParametersInPost |
server-fqdn is a query parameter. Post operation must not contain any query parameter other than api-version. Location: aks/preview/2024-03-02-preview/managedClusters.json#L336 |
ParametersInPost |
server-fqdn is a query parameter. Post operation must not contain any query parameter other than api-version. Location: aks/preview/2024-03-02-preview/managedClusters.json#L381 |
ParametersInPost |
format is a query parameter. Post operation must not contain any query parameter other than api-version. Location: aks/preview/2024-03-02-preview/managedClusters.json#L381 |
ParametersInPost |
server-fqdn is a query parameter. Post operation must not contain any query parameter other than api-version. Location: aks/preview/2024-03-02-preview/managedClusters.json#L429 |
LroErrorContent |
Error response content of long running operations must follow the error schema provided in the common types v2 and above. Location: aks/preview/2024-03-02-preview/managedClusters.json#L569 |
PatchResponseCodes |
Long-running PATCH operations must have responses with 200, 202 and default return codes. They also must not have other response codes. Location: aks/preview/2024-03-02-preview/managedClusters.json#L676 |
PatchIdentityProperty |
The patch operation body parameter schema should contain property 'identity'. Location: aks/preview/2024-03-02-preview/managedClusters.json#L695 |
LroPatch202 |
The async patch operation should return 202. Location: aks/preview/2024-03-02-preview/managedClusters.json#L713 |
LroErrorContent |
Error response content of long running operations must follow the error schema provided in the common types v2 and above. Location: aks/preview/2024-03-02-preview/managedClusters.json#L723 |
LroErrorContent |
Error response content of long running operations must follow the error schema provided in the common types v2 and above. Location: aks/preview/2024-03-02-preview/managedClusters.json#L781 |
ResourceNameRestriction |
The resource name parameter 'configName' should be defined with a 'pattern' restriction. Location: aks/preview/2024-03-02-preview/managedClusters.json#L841 |
PostResponseCodes |
Long-running POST operations must have responses with 202 and default return codes. They must also have a 200 return code if only if the final response is intended to have a schema, if not the 200 return code must not be specified. They also must not have other response codes. Location: aks/preview/2024-03-02-preview/managedClusters.json#L1011 |
LroErrorContent |
Error response content of long running operations must follow the error schema provided in the common types v2 and above. Location: aks/preview/2024-03-02-preview/managedClusters.json#L1055 |
LroErrorContent |
Error response content of long running operations must follow the error schema provided in the common types v2 and above. Location: aks/preview/2024-03-02-preview/managedClusters.json#L1223 |
LroErrorContent |
Error response content of long running operations must follow the error schema provided in the common types v2 and above. Location: aks/preview/2024-03-02-preview/managedClusters.json#L1347 |
XmsPageableForListCalls |
x-ms-pageable extension must be specified for LIST APIs.Location: aks/preview/2024-03-02-preview/managedClusters.json#L1363 |
XmsPageableForListCalls |
x-ms-pageable extension must be specified for LIST APIs.Location: aks/preview/2024-03-02-preview/managedClusters.json#L1562 |
OperationIdNounVerb |
Per the Noun_Verb convention for Operation Ids, the noun 'AgentPools' should not appear after the underscore. Note: If you have already shipped an SDK on top of this spec, fixing this warning may introduce a breaking change. Location: aks/preview/2024-03-02-preview/managedClusters.json#L1566 |
GetCollectionOnlyHasValueAndNextLink |
Get endpoints for collections of resources must only have the value and nextLink properties in their model.Location: aks/preview/2024-03-02-preview/managedClusters.json#L1586 |
PostResponseCodes |
200 return code does not have a schema specified. LRO POST must have a 200 return code if only if the final response is intended to have a schema, if not the 200 return code must not be specified. Location: aks/preview/2024-03-02-preview/managedClusters.json#L1605 |
LroErrorContent |
Error response content of long running operations must follow the error schema provided in the common types v2 and above. Location: aks/preview/2024-03-02-preview/managedClusters.json#L1651 |
PostResponseCodes |
200 return code does not have a schema specified. LRO POST must have a 200 return code if only if the final response is intended to have a schema, if not the 200 return code must not be specified. Location: aks/preview/2024-03-02-preview/managedClusters.json#L1667 |
️❌Avocado: 9 Errors, 0 Warnings failed [Detail]
| Rule | Message |
|---|---|
MISSING_APIS_IN_DEFAULT_TAG |
The default tag should contain all APIs. The API path /subscriptions/{}/providers/Microsoft.ContainerService/openShiftManagedClusters is not in the default tag. Please make sure the missing API swaggers are in the default tag.readme: resource-manager/Microsoft.ContainerService/aks/readme.md json: aks/preview/2019-10-27-preview/openShiftManagedClusters.json |
MISSING_APIS_IN_DEFAULT_TAG |
The default tag should contain all APIs. The API path /subscriptions/{}/resourceGroups/{}/providers/Microsoft.ContainerService/openShiftManagedClusters is not in the default tag. Please make sure the missing API swaggers are in the default tag.readme: resource-manager/Microsoft.ContainerService/aks/readme.md json: aks/preview/2019-10-27-preview/openShiftManagedClusters.json |
MISSING_APIS_IN_DEFAULT_TAG |
The default tag should contain all APIs. The API path /subscriptions/{}/resourceGroups/{}/providers/Microsoft.ContainerService/openShiftManagedClusters/{} is not in the default tag. Please make sure the missing API swaggers are in the default tag.readme: resource-manager/Microsoft.ContainerService/aks/readme.md json: aks/preview/2019-10-27-preview/openShiftManagedClusters.json |
MISSING_APIS_IN_DEFAULT_TAG |
The default tag should contain all APIs. The API path /subscriptions/{}/resourceGroups/{}/providers/Microsoft.ContainerService/fleets/{} is not in the default tag. Please make sure the missing API swaggers are in the default tag.readme: resource-manager/Microsoft.ContainerService/aks/readme.md json: aks/preview/2022-09-02-preview/fleets.json |
MISSING_APIS_IN_DEFAULT_TAG |
The default tag should contain all APIs. The API path /subscriptions/{}/resourceGroups/{}/providers/Microsoft.ContainerService/fleets is not in the default tag. Please make sure the missing API swaggers are in the default tag.readme: resource-manager/Microsoft.ContainerService/aks/readme.md json: aks/preview/2022-09-02-preview/fleets.json |
MISSING_APIS_IN_DEFAULT_TAG |
The default tag should contain all APIs. The API path /subscriptions/{}/providers/Microsoft.ContainerService/fleets is not in the default tag. Please make sure the missing API swaggers are in the default tag.readme: resource-manager/Microsoft.ContainerService/aks/readme.md json: aks/preview/2022-09-02-preview/fleets.json |
MISSING_APIS_IN_DEFAULT_TAG |
The default tag should contain all APIs. The API path /subscriptions/{}/resourceGroups/{}/providers/Microsoft.ContainerService/fleets/{}/members/{} is not in the default tag. Please make sure the missing API swaggers are in the default tag.readme: resource-manager/Microsoft.ContainerService/aks/readme.md json: aks/preview/2022-09-02-preview/fleets.json |
MISSING_APIS_IN_DEFAULT_TAG |
The default tag should contain all APIs. The API path /subscriptions/{}/resourceGroups/{}/providers/Microsoft.ContainerService/fleets/{}/members is not in the default tag. Please make sure the missing API swaggers are in the default tag.readme: resource-manager/Microsoft.ContainerService/aks/readme.md json: aks/preview/2022-09-02-preview/fleets.json |
MISSING_APIS_IN_DEFAULT_TAG |
The default tag should contain all APIs. The API path /subscriptions/{}/resourceGroups/{}/providers/Microsoft.ContainerService/fleets/{}/listCredentials is not in the default tag. Please make sure the missing API swaggers are in the default tag.readme: resource-manager/Microsoft.ContainerService/aks/readme.md json: aks/preview/2022-09-02-preview/fleets.json |
️️✔️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]
Swagger Generation Artifacts
️❌ApiDocPreview: 1 Errors, 0 Warnings failed [Detail]
Only -1 items are listed, please refer to log for more details.
| Rule | Message |
|---|
️⚠️ azure-sdk-for-python warning [Detail]
Only 0 items are rendered, please refer to log for more details.
️❌ azure-sdk-for-java failed [Detail]
Only 0 items are rendered, please refer to log for more details.
️️✔️ azure-sdk-for-go succeeded [Detail] [Expand]
Only 0 items are rendered, please refer to log for more details.
️️✔️ azure-sdk-for-js succeeded [Detail] [Expand]
Only 0 items are rendered, please refer to log for more details.
️❌ azure-sdk-for-net-track2 failed [Detail]
Only 0 items are rendered, please refer to log for more details.
️❌ azure-resource-manager-schemas failed [Detail]
Only 0 items are rendered, please refer to log for more details.
️️✔️ azure-powershell succeeded [Detail] [Expand]
Only 0 items are rendered, please refer to log for more details.
Generated ApiView
| Language | Package Name | ApiView Link |
|---|---|---|
| Go | sdk/resourcemanager/containerservice/armcontainerservice | https://apiview.dev/Assemblies/Review/2f19cca64456411e9c342082a432418f?revisionId=d26168b84d344445a8546d8752f9c176 |
| JavaScript | @azure/arm-containerservice | https://apiview.dev/Assemblies/Review/dabf043916d14dc38e0c2d456d89f55a?revisionId=425d00783ed54a778855515e0967d387 |
| Swagger | Microsoft.ContainerService | https://apiview.dev/Assemblies/Review/71d5cd3d2d1c46b59eabc692899ea0b4?revisionId=edfa23f313b4456a98224348267b4858 |
For the failure in Swagger Avocado,
openShiftManagedClustersrelated API paths from aks/preview/2019-10-27-preview/openShiftManagedClusters.json are deprecatedfleetsrelated API paths from aks/preview/2022-09-02-preview/fleets.json are supported, but are published as a separate SDK, see specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/readme.md
"operationId": "LoadBalancers_Rebalance",
Refers to: specification/containerservice/resource-manager/Microsoft.ContainerService/aks/preview/2024-03-02-preview/managedClusters.json:3836 in 19d06fc. [](commit_id = 19d06fcc530ac8b83e6452a26db4aa2e7a0cbbee, deletion_comment = False)
"List Agent Pools by Managed Cluster": {
please fix the name of this example
Refers to: specification/containerservice/resource-manager/Microsoft.ContainerService/aks/preview/2024-03-02-preview/managedClusters.json:3880 in 19d06fc. [](commit_id = 19d06fcc530ac8b83e6452a26db4aa2e7a0cbbee, deletion_comment = False)
}
Please review all the newly added properies in this PR and see if these can be represented as enums instead of booleans :
https://github.com/Azure/azure-openapi-validator/blob/main/docs/enum-instead-of-boolean.md
Refers to: specification/containerservice/resource-manager/Microsoft.ContainerService/aks/preview/2024-03-02-preview/managedClusters.json:8826 in 19d06fc. [](commit_id = 19d06fcc530ac8b83e6452a26db4aa2e7a0cbbee, deletion_comment = False)
"allowServicePlacement": {
enum instead of boolean
Refers to: specification/containerservice/resource-manager/Microsoft.ContainerService/aks/preview/2024-03-02-preview/managedClusters.json:9875 in 19d06fc. [](commit_id = 19d06fcc530ac8b83e6452a26db4aa2e7a0cbbee, deletion_comment = False)
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.
Can we make those checks in the check-in pipeline? This will save time for both of us.
}Please review all the newly added properies in this PR and see if these can be represented as enums instead of booleans :
https://github.com/Azure/azure-openapi-validator/blob/main/docs/enum-instead-of-boolean.md
Refers to: specification/containerservice/resource-manager/Microsoft.ContainerService/aks/preview/2024-03-02-preview/managedClusters.json:8826 in 19d06fc. [](commit_id = 19d06fc, deletion_comment = False)
hi, for advanced networking.observability we have discussed that boolean is the better route for our api. We are using enablement field to turn on/off our addon and we are tying our features into the aks sku tiers - different aks skus = different features. I don't see any value in changing the boolean to an enum here. we also had some discussion here: Advanced Networking - Overview (azure.com)
}Please review all the newly added properies in this PR and see if these can be represented as enums instead of booleans : https://github.com/Azure/azure-openapi-validator/blob/main/docs/enum-instead-of-boolean.md Refers to: specification/containerservice/resource-manager/Microsoft.ContainerService/aks/preview/2024-03-02-preview/managedClusters.json:8826 in 19d06fc. [](commit_id = 19d06fc, deletion_comment = False)
hi, for advanced networking.observability we have discussed that boolean is the better route for our api. We are using enablement field to turn on/off our addon and we are tying our features into the aks sku tiers - different aks skus = different features. I don't see any value in changing the boolean to an enum here. we also had some discussion here: Advanced Networking - Overview (azure.com)
I also don't see the benefit of using string to replace boolean. In this way I need an extra conversion from bool to string in our code and this is not meaningful. Boolean appears to be a more concise choice for me.
"operationId": "LoadBalancers_Rebalance",https://github.com/Azure/azure-openapi-validator/blob/main/docs/post-operation-id-contains-url-verb.md
Refers to: specification/containerservice/resource-manager/Microsoft.ContainerService/aks/preview/2024-03-02-preview/managedClusters.json:3836 in 19d06fc. [](commit_id = 19d06fc, deletion_comment = False)
Can you suggest a operation id? Another error would be hit if change to LoadBalancers_RebalanceLoadBalancers.
They likely want it to be called ManagedCluster_RebalanceLoadBalancers because it's hanging off of the managedCluster rather than a LoadBalancer?
They likely want it to be called
ManagedCluster_RebalanceLoadBalancersbecause it's hanging off of the managedCluster rather than a LoadBalancer?
This can work
"operationId": "LoadBalancers_Rebalance",
Try matthchr's suggested operationId
In reply to: 2060107330
Refers to: specification/containerservice/resource-manager/Microsoft.ContainerService/aks/preview/2024-03-02-preview/managedClusters.json:3836 in 19d06fc. [](commit_id = 19d06fcc530ac8b83e6452a26db4aa2e7a0cbbee, deletion_comment = False)
}Please review all the newly added properies in this PR and see if these can be represented as enums instead of booleans : https://github.com/Azure/azure-openapi-validator/blob/main/docs/enum-instead-of-boolean.md Refers to: specification/containerservice/resource-manager/Microsoft.ContainerService/aks/preview/2024-03-02-preview/managedClusters.json:8826 in 19d06fc. [](commit_id = 19d06fc, deletion_comment = False)
hi, for advanced networking.observability we have discussed that boolean is the better route for our api. We are using enablement field to turn on/off our addon and we are tying our features into the aks sku tiers - different aks skus = different features. I don't see any value in changing the boolean to an enum here. we also had some discussion here: Advanced Networking - Overview (azure.com)
I also don't see the benefit of using string to replace boolean. In this way I need an extra conversion from bool to string in our code and this is not meaningful. Boolean appears to be a more concise choice for me.
Standard guidance is: replace boolean/switch properties with a more meaningful enum whenever possible. A boolean will forever have two valid values (true or false). A string enum type is always preferred. Also, properties should always provide better values just than True and False. For example two switches "isTypeA" and "isTypeB" should be replaced with one enum "type": [A, B, DefaultType]. Enums are always a more flexible and future proof option because they allow additional values to be added in the future in a non-breaking way, e.g. [Enabled, Disabled, Suspended, Deallocated]. Note: do NOT define a 'boolean enum' with two values 'True and False'. This might be easier to 'extend' in terms of types, but semantically its confusing, and no better than a boolean.
Since its a strong suggestion, please review and confirm from your side.
- you can always compare enum to enum in code
}Please review all the newly added properies in this PR and see if these can be represented as enums instead of booleans : https://github.com/Azure/azure-openapi-validator/blob/main/docs/enum-instead-of-boolean.md Refers to: specification/containerservice/resource-manager/Microsoft.ContainerService/aks/preview/2024-03-02-preview/managedClusters.json:8826 in 19d06fc. [](commit_id = 19d06fc, deletion_comment = False)
hi, for advanced networking.observability we have discussed that boolean is the better route for our api. We are using enablement field to turn on/off our addon and we are tying our features into the aks sku tiers - different aks skus = different features. I don't see any value in changing the boolean to an enum here. we also had some discussion here: Advanced Networking - Overview (azure.com)
I also don't see the benefit of using string to replace boolean. In this way I need an extra conversion from bool to string in our code and this is not meaningful. Boolean appears to be a more concise choice for me.
Standard guidance is: replace boolean/switch properties with a more meaningful enum whenever possible. A boolean will forever have two valid values (true or false). A string enum type is always preferred. Also, properties should always provide better values just than True and False. For example two switches "isTypeA" and "isTypeB" should be replaced with one enum "type": [A, B, DefaultType]. Enums are always a more flexible and future proof option because they allow additional values to be added in the future in a non-breaking way, e.g. [Enabled, Disabled, Suspended, Deallocated]. Note: do NOT define a 'boolean enum' with two values 'True and False'. This might be easier to 'extend' in terms of types, but semantically its confusing, and no better than a boolean.
Since its a strong suggestion, please review and confirm from your side.
- you can always compare enum to enum in code
I see the value of enum overall, but for advanced network observability, we only want to use this field to turn our feature on or off. The different features will be determined from ask cluster sku, so I don't think this feature will have any value from updating it to enum as stated. If this is blocking the api, then we can update it, but we don't plan on having other states such as "deallocated" or "suspended". Pretty much we only want a simple on/off for observability
For a property with only two possible values, a boolean data type is the most suitable choice. Changing it to a string enum would introduce unnecessary complexity.
/pr RequestMerge
@ramoka178 want to mark this PR approved based on your review or does it need further review?