-
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
Stabilize identity, encryption, and scaling status in Redis Enterprise version: 2023-11-01 #26541
Stabilize identity, encryption, and scaling status in Redis Enterprise version: 2023-11-01 #26541
Conversation
… to version 2023-11-01
Next Steps to Merge✔️ All automated merging requirements have been met! Refer to step 4 in the PR workflow diagram (even if your PR is for data plane, not ARM). |
Swagger Validation Report
|
compared swaggers (via Oad v0.10.4)] | new version | base version |
---|---|---|
redisenterprise.json | 2023-11-01(8335ca5) | 2023-07-01(main) |
redisenterprise.json | 2023-11-01(8335ca5) | 2023-10-01-preview(main) |
The following breaking changes are detected by comparison with the latest preview version:
️️✔️
CredScan succeeded [Detail] [Expand]
There is no credential detected.
️⚠️
LintDiff: 6 Warnings warning [Detail]
compared tags (via openapi-validator v2.1.6) | new version | base version |
---|---|---|
package-2023-11 | package-2023-11(8335ca5) | default(main) |
[must fix]The following errors/warnings are introduced by current PR:
Rule | Message | Related RPC [For API reviewers] |
---|---|---|
The response of operation:'RedisEnterprise_Create' is defined without 'systemData'. Consider adding the systemData to the response. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L116 |
||
The response of operation:'RedisEnterprise_Update' is defined without 'systemData'. Consider adding the systemData to the response. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L175 |
||
The response of operation:'RedisEnterprise_Get' is defined without 'systemData'. Consider adding the systemData to the response. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L278 |
||
The response of operation:'Databases_Create' is defined without 'systemData'. Consider adding the systemData to the response. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L447 |
||
The response of operation:'Databases_Update' is defined without 'systemData'. Consider adding the systemData to the response. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L513 |
||
The response of operation:'Databases_Get' is defined without 'systemData'. Consider adding the systemData to the response. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L573 |
The following errors/warnings exist before current PR submission:
Only 30 items are listed, please refer to log for more details.
Rule | Message |
---|---|
ResourceNameRestriction |
The resource name parameter 'clusterName' should be defined with a 'pattern' restriction. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L115 |
LroLocationHeader |
A 202 response should include an Location response header. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L220 |
DeleteResponseCodes |
Long-running delete operations must have responses with 202, 204 and default return codes. They also must have no other response codes. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L231 |
LroLocationHeader |
A 202 response should include an Location response header. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L264 |
ResourceNameRestriction |
The resource name parameter 'clusterName' should be defined with a 'pattern' restriction. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L400 |
ResourceNameRestriction |
The resource name parameter 'clusterName' should be defined with a 'pattern' restriction. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L446 |
ResourceNameRestriction |
The resource name parameter 'databaseName' should be defined with a 'pattern' restriction. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L446 |
LroLocationHeader |
A 202 response should include an Location response header. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L562 |
DeleteResponseCodes |
Long-running delete operations must have responses with 202, 204 and default return codes. They also must have no other response codes. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L617 |
LroLocationHeader |
A 202 response should include an Location response header. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L654 |
ResourceNameRestriction |
The resource name parameter 'clusterName' should be defined with a 'pattern' restriction. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L669 |
ResourceNameRestriction |
The resource name parameter 'databaseName' should be defined with a 'pattern' restriction. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L669 |
ResourceNameRestriction |
The resource name parameter 'clusterName' should be defined with a 'pattern' restriction. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L715 |
ResourceNameRestriction |
The resource name parameter 'databaseName' should be defined with a 'pattern' restriction. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L715 |
LroLocationHeader |
A 202 response should include an Location response header. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L765 |
ResourceNameRestriction |
The resource name parameter 'clusterName' should be defined with a 'pattern' restriction. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L777 |
ResourceNameRestriction |
The resource name parameter 'databaseName' should be defined with a 'pattern' restriction. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L777 |
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: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L778 |
LroLocationHeader |
A 202 response should include an Location response header. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L824 |
ResourceNameRestriction |
The resource name parameter 'clusterName' should be defined with a 'pattern' restriction. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L836 |
ResourceNameRestriction |
The resource name parameter 'databaseName' should be defined with a 'pattern' restriction. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L836 |
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: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L837 |
LroLocationHeader |
A 202 response should include an Location response header. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L883 |
ResourceNameRestriction |
The resource name parameter 'clusterName' should be defined with a 'pattern' restriction. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L895 |
GetCollectionOnlyHasValueAndNextLink |
Get endpoints for collections of resources must only have the value and nextLink properties in their model.Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L924 |
ResourceNameRestriction |
The resource name parameter 'clusterName' should be defined with a 'pattern' restriction. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L940 |
ResourceNameRestriction |
The resource name parameter 'privateEndpointConnectionName' should be defined with a 'pattern' restriction. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L940 |
ProvisioningStateSpecifiedForLROPut |
200 response schema in long running PUT operation is missing ProvisioningState property. A LRO PUT operations response schema must have ProvisioningState specified for the 200 and 201 status codes. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L984 |
PutResponseCodes |
Synchronous and long-running PUT operations must have responses with 200, 201 and default return codes. They also must not have other response codes. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L984 |
DeleteResponseCodes |
Long-running delete operations must have responses with 202, 204 and default return codes. They also must have no other response codes. Location: Microsoft.Cache/stable/2023-11-01/redisenterprise.json#L1037 |
️️✔️
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.
️️✔️
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).
️️✔️
PR Summary succeeded [Detail] [Expand]
Validation passes for Summary.
️️✔️
Automated merging requirements met succeeded [Detail] [Expand]
Swagger Generation Artifacts
|
Generated ApiView
|
Question, I think v5 of common types recently got added. Should we be migrating to that? Is there an automated way to do that that I could make use of or would it by manual search/replace? |
Edit from author: this check has been broken for a while huh. I used OpenAPIHub 😢 Hi @jantache-microsoft! For review efficiency consideration, when creating a new API version, it is required to place API specs of the base version in the first commit, and push new version updates into successive commits. You can use OpenAPIHub to initialize the PR for adding a new version. |
"type": "object", | ||
"description": "Encryption-at-rest configuration for the cluster.", | ||
"properties": { | ||
"customerManagedKeyEncryption": { |
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.
"customerManagedKeyEncryption": { [](http://example.com/codeflow?start=7&length=38)
use the common definition here https://github.com/Azure/azure-rest-api-specs/blob/main/specification/common-types/resource-management/v5/customermanagedkeys.json
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 think using the common-types would unfortunately make for a worse spec than avoiding it.
E.g. the API currently does not use many properties
"infrastructureEncryption": {
"type": "string",
"enum": [
"enabled",
"disabled"
],
"x-ms-enum": {
"name": "InfrastructureEncryption",
"modelAsString": true
},
"description": "(Optional) Discouraged to include in resource definition. Only needed where it is possible to disable platform (AKA infrastructure) encryption. Azure SQL TDE is an example of this. Values are enabled and disabled."
},
"federatedClientId": {
"type": "string",
"format": "uuid",
"description": "application client identity to use for accessing key encryption key Url in a different tenant. Ex: f83c6b1b-4d34-47e4-bb34-9d83df58b540"
},
"delegatedIdentityClientId": {
"type": "string",
"format": "uuid",
"description": "delegated identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/<resource group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity and userAssignedIdentity - internal use only."
}
Also, the identity type in common types is apparently not x-ms-enum
?
"identityType": {
"type": "string",
"enum": [
"systemAssignedIdentity",
"userAssignedIdentity",
"delegatedResourceIdentity"
],
"description": "The type of identity to use. Values can be systemAssignedIdentity, userAssignedIdentity, or delegatedResourceIdentity."
},
Also, it seems valuable to have the custom comments in the custom definition. E.g. common-types states:
"description": "key encryption key Url, versioned or unversioned. Ex: https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or https://contosovault.vault.azure.net/keys/contosokek."
Whereas for our service, due to a restriction imposed by the backing resource, only versioned keys are usable. So the custom type definition states:
"description": "Key encryption key Url, versioned only. Ex: https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78"
Thoughts on just keeping it as-is?
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.
Sounds like a pretty good argument overall to me.
I suppose the x-ms-enum thing should be fixed in common-types.
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.
Please address or respond to feedback from the ARM API reviewer. |
/pr RequestMerge |
Swagger pipeline restarted successfully, please wait for status update in this comment. |
…e version: 2023-11-01 (#26541) * Adds Microsoft.Cache stable api version 2023-11-01 with new scaling status, encryption, and identity support * Adds x-ms-identifiers tag for modules
ARM (Control Plane) API Specification Update Pull Request
PR review workflow diagram
Please understand this diagram before proceeding. It explains how to get your PR approved & merged.
[1] ARM review queue (for merge queues, see [4])
The PRs are processed by time opened, ascending. Your PR may show up on 2nd or later page.
If you addressed Step 1 from the diagram and your PR is not showing up in the queue, ensure the label
ARMChangesRequested
is removed from your PR. This should cause the label
WaitForARMFeedback
to be added.[2] https://aka.ms/azsdk/support/specreview-channel
[3] List of SDK breaking changes approvers in pinned Teams announcement
[4] public repo merge queue, private repo merge queue (for ARM review queue, [1])
If you need further help with anything, see
Getting help
section below.Purpose of this PR
What's the purpose of this PR? Check all that apply. This is mandatory!
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:
ARM resource provider contract and
REST guidelines (estimated time: 4 hours).
I understand this is required before I can proceed to Step 2, "ARM Review", for this PR.
Breaking changes review (Step 1)
you must follow the breaking changes process.
IMPORTANT This applies even if:
Such claims must be reviewed, and the process is the same.
ARM API changes review (Step 2)
ARMReview
label.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
Swagger-Suppression-Process
to get approval.
Getting help
and https://aka.ms/ci-fix.