Skip to content

Conversation

@koderjoker
Copy link
Member

@koderjoker koderjoker commented Apr 3, 2023

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.

koderjoker and others added 4 commits March 6, 2023 12:31
* Add examples for access policy resource apis

* Add examples for access policy assignment APIs

* Fix formatting

* Add access policy path to swagger specification

* Add example for Access policy list api

* Add path for get access policies of a cache

* Add access policy assignment path

* Add aad enabled property to redis configuration

* Push prettier fixes

* Semantic validation fix

* FIx response in examples

* Add location header to delete responses

* Add proxy resource to get responses

* Rewrite access policy definitions

* Fix definition name

* Fix access policy definition references

* Add schema for access policy delete operation

* Remove request body from access policy assignment delete operation

* Rewrite access policy assignment definitions

* Fix access policy assignment example

* Add provisioning state and type enums

* Add cache name regex

* Update new response codes and access policy pattern matching

* Update provisioning state enum with terminal states

* Add object types to resources

* Add identifier to access policy assignments

* Add object type to assignments

* Add location header to 202 responses

* Add access policy type enum options

* Add long running operation options to PUT and DELETE

* Add schema for PUT 200

* Rename username property to name

* Add access policy list operation

* Minor fix

* Enum rename

* Enum removal

* Add enum back

* Use single definition for access policy request and response

* Use single definition for access policy assignment request and response

* Use common cache name parameter

* Remove cache name parameter pattern

* Remove common cache parameter for new APIs, use common types API version for all operations

* Prettier cleanup

* Add common type subscription id

* Use common types vs everywhere

* Combine access policyassignments, properties and requestresponse def

* Combine access policyand access policy properties

* Make permissions only field for access policies

* Rename access policy assignment name property to objectIdAlias and update description

* Add type object to access policy assignment request response

* Remove obj type

* Remove property from access policy assignment definition

* Test

* Update access policy assignment description

* Update aad description

* Add method extension and pattern to global cacheNameParameter

* Rename access policy list definition

* Rename access policy assignment definitions

* Rename permissions desc

* Rename permissions desc

* Update permissions desc

* Update permissions desc

* Update with suggestions

* Update Put response schema description

* Remove global params update linked server operations

---------

Co-authored-by: Kanchan Joshi <kanchanjoshi@microsoft.com>
@openapi-workflow-bot
Copy link

Hi, @koderjoker 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 Apr 3, 2023

    Swagger Validation Report

    ️️✔️BreakingChange succeeded [Detail] [Expand]
    There are no breaking changes.
    ️❌Breaking Change(Cross-Version): 10 Errors, 27 Warnings failed [Detail]
    compared swaggers (via Oad v0.10.4)] new version base version
    redis.json 2023-05-01(036139d) 2022-06-01(main)
    redis.json 2023-05-01(036139d) 2019-07-01(main)

    The following breaking changes are detected by comparison with the latest stable version:

    Rule Message
    1036 - ConstraintChanged The new version has a different 'pattern' value than the previous one.
    New: Microsoft.Cache/preview/2023-05-01/redis.json#L760:9
    Old: Microsoft.Cache/stable/2022-06-01/redis.json#L818:11
    1036 - ConstraintChanged The new version has a different 'pattern' value than the previous one.
    New: Microsoft.Cache/preview/2023-05-01/redis.json#L806:9
    Old: Microsoft.Cache/stable/2022-06-01/redis.json#L866:11
    1036 - ConstraintChanged The new version has a different 'pattern' value than the previous one.
    New: Microsoft.Cache/preview/2023-05-01/redis.json#L869:9
    Old: Microsoft.Cache/stable/2022-06-01/redis.json#L937:11
    1036 - ConstraintChanged The new version has a different 'pattern' value than the previous one.
    New: Microsoft.Cache/preview/2023-05-01/redis.json#L917:9
    Old: Microsoft.Cache/stable/2022-06-01/redis.json#L993:11
    1036 - ConstraintChanged The new version has a different 'pattern' value than the previous one.
    New: Microsoft.Cache/preview/2023-05-01/redis.json#L967:9
    Old: Microsoft.Cache/stable/2022-06-01/redis.json#L1057:11
    1036 - ConstraintChanged The new version has a different 'pattern' value than the previous one.
    New: Microsoft.Cache/preview/2023-05-01/redis.json#L1432:9
    Old: Microsoft.Cache/stable/2022-06-01/redis.json#L1547:11
    1036 - ConstraintChanged The new version has a different 'pattern' value than the previous one.
    New: Microsoft.Cache/preview/2023-05-01/redis.json#L1477:9
    Old: Microsoft.Cache/stable/2022-06-01/redis.json#L1600:11
    1036 - ConstraintChanged The new version has a different 'pattern' value than the previous one.
    New: Microsoft.Cache/preview/2023-05-01/redis.json#L1521:9
    Old: Microsoft.Cache/stable/2022-06-01/redis.json#L1652:11
    1036 - ConstraintChanged The new version has a different 'pattern' value than the previous one.
    New: Microsoft.Cache/preview/2023-05-01/redis.json#L1579:9
    Old: Microsoft.Cache/stable/2022-06-01/redis.json#L1718:11
    1036 - ConstraintChanged The new version has a different 'pattern' value than the previous one.
    New: Microsoft.Cache/preview/2023-05-01/redis.json#L1624:9
    Old: Microsoft.Cache/stable/2022-06-01/redis.json#L1771:11


    The following breaking changes are detected by comparison with the latest preview version:

    Rule Message
    ⚠️ 1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{name}/listUpgradeNotifications' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L103:5
    ⚠️ 1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{name}' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L155:5
    ⚠️ 1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L354:5
    ⚠️ 1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/providers/Microsoft.Cache/Redis' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L394:5
    ⚠️ 1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{name}/listKeys' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L427:5
    ⚠️ 1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{name}/regenerateKey' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L471:5
    ⚠️ 1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{name}/forceReboot' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L524:5
    ⚠️ 1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{name}/import' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L577:5
    ⚠️ 1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{name}/export' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L634:5
    ⚠️ 1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{cacheName}/firewallRules' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L691:5
    ⚠️ 1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{cacheName}/firewallRules/{ruleName}' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L739:5
    ⚠️ 1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{cacheName}/patchSchedules' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L906:5
    ⚠️ 1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{name}/patchSchedules/{default}' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L954:5
    ⚠️ 1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{name}/linkedServers/{linkedServerName}' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L1142:5
    ⚠️ 1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{name}/linkedServers' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L1304:5
    ⚠️ 1011 - AddingResponseCode The new version adds a response code 'default'.
    New: Microsoft.Cache/preview/2023-05-01/redis.json#L61:11
    ⚠️ 1011 - AddingResponseCode The new version adds a response code 'default'.
    New: Microsoft.Cache/preview/2023-05-01/redis.json#L106:11
    ⚠️ 1026 - TypeChanged The new version has a different type '' than the previous one 'string'.
    New: Microsoft.Cache/preview/2023-05-01/redis.json#L2278:11
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L1397:11
    ⚠️ 1026 - TypeChanged The new version has a different type '' than the previous one 'string'.
    New: Microsoft.Cache/preview/2023-05-01/redis.json#L2278:11
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L1397:11
    ⚠️ 1026 - TypeChanged The new version has a different type '' than the previous one 'string'.
    New: Microsoft.Cache/preview/2023-05-01/redis.json#L2278:11
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L1397:11
    ⚠️ 1026 - TypeChanged The new version has a different type '' than the previous one 'string'.
    New: Microsoft.Cache/preview/2023-05-01/redis.json#L2278:11
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L1397:11
    ⚠️ 1027 - DefaultValueChanged The new version has a different default value than the previous one.
    New: Microsoft.Cache/preview/2023-05-01/redis.json#L2285:9
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L1402:9
    ⚠️ 1027 - DefaultValueChanged The new version has a different default value than the previous one.
    New: Microsoft.Cache/preview/2023-05-01/redis.json#L2285:9
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L1402:9
    ⚠️ 1027 - DefaultValueChanged The new version has a different default value than the previous one.
    New: Microsoft.Cache/preview/2023-05-01/redis.json#L2285:9
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L1402:9
    ⚠️ 1027 - DefaultValueChanged The new version has a different default value than the previous one.
    New: Microsoft.Cache/preview/2023-05-01/redis.json#L2285:9
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L1402:9
    ⚠️ 1029 - ReadonlyPropertyChanged The read only property has changed from 'true' to 'false'.
    New: Microsoft.Cache/preview/2023-05-01/redis.json#L2281:9
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L1485:9
    ⚠️ 1032 - DifferentAllOf The new version has a different 'allOf' property than the previous one.
    New: Microsoft.Cache/preview/2023-05-01/redis.json#L2566:5
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L1708:5
    ️️✔️CredScan succeeded [Detail] [Expand]
    There is no credential detected.
    ️❌LintDiff: 2 Errors, 6 Warnings failed [Detail]
    compared tags (via openapi-validator v2.0.0) new version base version
    package-preview-2023-05 package-preview-2023-05(036139d) default(main)

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

    Rule Message Related RPC [For API reviewers]
    CreateOperationAsyncResponseValidation An async PUT operation must set long running operation options 'x-ms-long-running-operation-options'
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L1708
    RPC-Async-V1-01
    CreateOperationAsyncResponseValidation An async PUT operation must set long running operation options 'x-ms-long-running-operation-options'
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L1934
    RPC-Async-V1-01
    ⚠️ RequiredReadOnlySystemData The response of operation:'AccessPolicy_CreateUpdate' is defined without 'systemData'. Consider adding the systemData to the response.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L1708
    ⚠️ XmsLongRunningOperationOptions The x-ms-long-running-operation-options should be specified explicitly to indicate the type of response header to track the async operation.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L1708
    RPC-Async-V1-06
    ⚠️ RequiredReadOnlySystemData The response of operation:'AccessPolicy_Get' is defined without 'systemData'. Consider adding the systemData to the response.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L1837
    ⚠️ RequiredReadOnlySystemData The response of operation:'AccessPolicyAssignment_CreateUpdate' is defined without 'systemData'. Consider adding the systemData to the response.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L1934
    ⚠️ XmsLongRunningOperationOptions The x-ms-long-running-operation-options should be specified explicitly to indicate the type of response header to track the async operation.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L1934
    RPC-Async-V1-06
    ⚠️ RequiredReadOnlySystemData The response of operation:'AccessPolicyAssignment_Get' is defined without 'systemData'. Consider adding the systemData to the response.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L2063


    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.Cache/operations' does not match the ARM specification. Please standardize the schema.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L57
    PathResourceTypeNameCamelCase Resource type naming must follow camel case. Path: '/subscriptions/{subscriptionId}/providers/Microsoft.Cache/CheckNameAvailability'
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L73
    CreateOperationAsyncResponseValidation An async PUT operation must set long running operation options 'x-ms-long-running-operation-options'
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L173
    LroLocationHeader A 202 response should include an Location response header.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L285
    DeleteOperationAsyncResponseValidation An async DELETE operation must set long running operation options 'x-ms-long-running-operation-options'
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L299
    LroLocationHeader A 202 response should include an Location response header.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L333
    PostOperationAsyncResponseValidation An async POST operation must set long running operation options 'x-ms-long-running-operation-options'
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L630
    LroLocationHeader A 202 response should include an Location response header.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L670
    PostOperationAsyncResponseValidation An async POST operation must set long running operation options 'x-ms-long-running-operation-options'
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L689
    LroLocationHeader A 202 response should include an Location response header.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L729
    ResourceNameRestriction The resource name parameter 'ruleName' should be defined with a 'pattern' restriction.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L793
    TrackedResourcePatchOperation Tracked resource 'RedisPatchSchedule' must have patch operation that at least supports the update of tags.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L1000
    ResourceNameRestriction The resource name parameter 'linkedServerName' should be defined with a 'pattern' restriction.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L1194
    CreateOperationAsyncResponseValidation An async PUT operation must set long running operation options 'x-ms-long-running-operation-options'
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L1195
    DeleteOperationAsyncResponseValidation An async DELETE operation must set long running operation options 'x-ms-long-running-operation-options'
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L1262
    GetCollectionResponseSchema The response in the GET collection operation 'PrivateEndpointConnections_List' does not match the response definition in the individual GET operation 'PrivateEndpointConnections_Get' .
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L1420
    ResourceNameRestriction The resource name parameter 'privateEndpointConnectionName' should be defined with a 'pattern' restriction.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L1465
    CreateOperationAsyncResponseValidation An async PUT operation must set long running operation options 'x-ms-long-running-operation-options'
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L1509
    MissingTypeObject The schema 'Sku' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L2161
    MissingTypeObject The schema 'RedisCommonProperties' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L2201
    MissingTypeObject The schema 'RedisCreateProperties' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L2342
    MissingTypeObject The schema 'RedisUpdateProperties' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L2374
    MissingTypeObject The schema 'RedisProperties' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L2389
    ProvisioningStateValidation ProvisioningState must have terminal states: Succeeded, Failed and Canceled.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L2391
    MissingTypeObject The schema 'RedisCreateParameters' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L2472
    MissingTypeObject The schema 'RedisUpdateParameters' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L2512
    MissingTypeObject The schema 'RedisAccessKeys' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L2533
    MissingTypeObject The schema 'RedisFirewallRule' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L2548
    MissingTypeObject The schema 'RedisFirewallRuleProperties' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L2574
    MissingTypeObject The schema 'RedisFirewallRuleListResult' is considered an object but without a 'type:object', please add the missing 'type:object'.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L2591
    ️❌Avocado: 15 Errors, 0 Warnings failed [Detail]
    Rule Message
    MISSING_APIS_IN_DEFAULT_TAG The default tag should contain all APIs. The API path /subscriptions/{}/resourceGroups/{}/providers/Microsoft.Cache/Redis/{}/listUpgradeNotifications is not in the default tag. Please make sure the missing API swaggers are in the default tag.
    readme: specification/redis/resource-manager/readme.md
    json: Microsoft.Cache/preview/2019-07-01/redis.json
    MISSING_APIS_IN_DEFAULT_TAG The default tag should contain all APIs. The API path /subscriptions/{}/resourceGroups/{}/providers/Microsoft.Cache/Redis/{} is not in the default tag. Please make sure the missing API swaggers are in the default tag.
    readme: specification/redis/resource-manager/readme.md
    json: Microsoft.Cache/preview/2019-07-01/redis.json
    MISSING_APIS_IN_DEFAULT_TAG The default tag should contain all APIs. The API path /subscriptions/{}/resourceGroups/{}/providers/Microsoft.Cache/Redis is not in the default tag. Please make sure the missing API swaggers are in the default tag.
    readme: specification/redis/resource-manager/readme.md
    json: Microsoft.Cache/preview/2019-07-01/redis.json
    MISSING_APIS_IN_DEFAULT_TAG The default tag should contain all APIs. The API path /subscriptions/{}/providers/Microsoft.Cache/Redis is not in the default tag. Please make sure the missing API swaggers are in the default tag.
    readme: specification/redis/resource-manager/readme.md
    json: Microsoft.Cache/preview/2019-07-01/redis.json
    MISSING_APIS_IN_DEFAULT_TAG The default tag should contain all APIs. The API path /subscriptions/{}/resourceGroups/{}/providers/Microsoft.Cache/Redis/{}/listKeys is not in the default tag. Please make sure the missing API swaggers are in the default tag.
    readme: specification/redis/resource-manager/readme.md
    json: Microsoft.Cache/preview/2019-07-01/redis.json
    MISSING_APIS_IN_DEFAULT_TAG The default tag should contain all APIs. The API path /subscriptions/{}/resourceGroups/{}/providers/Microsoft.Cache/Redis/{}/regenerateKey is not in the default tag. Please make sure the missing API swaggers are in the default tag.
    readme: specification/redis/resource-manager/readme.md
    json: Microsoft.Cache/preview/2019-07-01/redis.json
    MISSING_APIS_IN_DEFAULT_TAG The default tag should contain all APIs. The API path /subscriptions/{}/resourceGroups/{}/providers/Microsoft.Cache/Redis/{}/forceReboot is not in the default tag. Please make sure the missing API swaggers are in the default tag.
    readme: specification/redis/resource-manager/readme.md
    json: Microsoft.Cache/preview/2019-07-01/redis.json
    MISSING_APIS_IN_DEFAULT_TAG The default tag should contain all APIs. The API path /subscriptions/{}/resourceGroups/{}/providers/Microsoft.Cache/Redis/{}/import is not in the default tag. Please make sure the missing API swaggers are in the default tag.
    readme: specification/redis/resource-manager/readme.md
    json: Microsoft.Cache/preview/2019-07-01/redis.json
    MISSING_APIS_IN_DEFAULT_TAG The default tag should contain all APIs. The API path /subscriptions/{}/resourceGroups/{}/providers/Microsoft.Cache/Redis/{}/export is not in the default tag. Please make sure the missing API swaggers are in the default tag.
    readme: specification/redis/resource-manager/readme.md
    json: Microsoft.Cache/preview/2019-07-01/redis.json
    MISSING_APIS_IN_DEFAULT_TAG The default tag should contain all APIs. The API path /subscriptions/{}/resourceGroups/{}/providers/Microsoft.Cache/Redis/{}/firewallRules is not in the default tag. Please make sure the missing API swaggers are in the default tag.
    readme: specification/redis/resource-manager/readme.md
    json: Microsoft.Cache/preview/2019-07-01/redis.json
    MISSING_APIS_IN_DEFAULT_TAG The default tag should contain all APIs. The API path /subscriptions/{}/resourceGroups/{}/providers/Microsoft.Cache/Redis/{}/firewallRules/{} is not in the default tag. Please make sure the missing API swaggers are in the default tag.
    readme: specification/redis/resource-manager/readme.md
    json: Microsoft.Cache/preview/2019-07-01/redis.json
    MISSING_APIS_IN_DEFAULT_TAG The default tag should contain all APIs. The API path /subscriptions/{}/resourceGroups/{}/providers/Microsoft.Cache/Redis/{}/patchSchedules is not in the default tag. Please make sure the missing API swaggers are in the default tag.
    readme: specification/redis/resource-manager/readme.md
    json: Microsoft.Cache/preview/2019-07-01/redis.json
    MISSING_APIS_IN_DEFAULT_TAG The default tag should contain all APIs. The API path /subscriptions/{}/resourceGroups/{}/providers/Microsoft.Cache/Redis/{}/patchSchedules/{} is not in the default tag. Please make sure the missing API swaggers are in the default tag.
    readme: specification/redis/resource-manager/readme.md
    json: Microsoft.Cache/preview/2019-07-01/redis.json
    MISSING_APIS_IN_DEFAULT_TAG The default tag should contain all APIs. The API path /subscriptions/{}/resourceGroups/{}/providers/Microsoft.Cache/Redis/{}/linkedServers/{} is not in the default tag. Please make sure the missing API swaggers are in the default tag.
    readme: specification/redis/resource-manager/readme.md
    json: Microsoft.Cache/preview/2019-07-01/redis.json
    MISSING_APIS_IN_DEFAULT_TAG The default tag should contain all APIs. The API path /subscriptions/{}/resourceGroups/{}/providers/Microsoft.Cache/Redis/{}/linkedServers is not in the default tag. Please make sure the missing API swaggers are in the default tag.
    readme: specification/redis/resource-manager/readme.md
    json: Microsoft.Cache/preview/2019-07-01/redis.json
    ️❌ApiReadinessCheck: 1 Errors, 0 Warnings failed [Detail]
    Rule Message
    API Readiness check failed. Please make sure your service is deployed. "code: InvalidResourceType,
    message: The resource type 'operations' could not be found in the namespace 'Microsoft.Cache' for api version '2023-05-01'. The supported api-versions are '2023-03-01-preview,
    2022-11-01-preview,
    2022-06-01,
    2022-05-01,
    2021-06-01,
    2021-03-01,
    2021-02-01-preview,
    2020-12-01,
    2020-10-01-preview,
    2020-06-01,
    2019-07-01,
    2018-03-01,
    2017-10-01,
    2017-02-01,
    2016-04-01,
    2015-08-01,
    2015-03-01,
    2014-04-01,
    2014-04-01-preview,
    2014-04-01-alpha'."
    ️⚠️~[Staging] ServiceAPIReadinessTest: 0 Warnings warning [Detail]

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

    ️️✔️SwaggerAPIView succeeded [Detail] [Expand]
    ️️✔️CadlAPIView 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).
    ️️✔️CadlValidation succeeded [Detail] [Expand]
    Validation passes for CadlValidation.
    ️️✔️TypeSpec Validation succeeded [Detail] [Expand]
    Validation passes for TypeSpec Validation.
    ️️✔️PR Summary succeeded [Detail] [Expand]
    Validation passes for Summary.
    Posted by Swagger Pipeline | How to fix these errors?

    @openapi-pipeline-app
    Copy link

    openapi-pipeline-app bot commented Apr 3, 2023

    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] Generate from 1fdc3a2255dd1ebd234410a7d3671a9f4608ef95. 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
      command	pwsh ./eng/scripts/Invoke-GenerateAndBuildV2.ps1 ../azure-sdk-for-net_tmp/generateInput.json ../azure-sdk-for-net_tmp/generateOutput.json
    • ️✔️Azure.ResourceManager.Redis [View full logs]  [Preview SDK Changes]
      info	[Changelog]
    ️⚠️ azure-sdk-for-python-track2 warning [Detail]
    • ⚠️Warning [Logs] Generate from 1fdc3a2255dd1ebd234410a7d3671a9f4608ef95. 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]  notice
      cmderr	[automation_generate.sh] npm notice New minor version of npm available! 9.5.0 -> 9.6.5
      cmderr	[automation_generate.sh] npm notice Changelog: <https://github.com/npm/cli/releases/tag/v9.6.5>
      cmderr	[automation_generate.sh] npm notice Run `npm install -g npm@9.6.5` to update!
      cmderr	[automation_generate.sh] npm notice
    • ️✔️track2_azure-mgmt-redis [View full logs]  [Preview SDK Changes]
      info	[Changelog] ### Features Added
      info	[Changelog]
      info	[Changelog]   - Added operation group AccessPolicyAssignmentOperations
      info	[Changelog]   - Added operation group AccessPolicyOperations
      info	[Changelog]   - Model RedisCommonPropertiesRedisConfiguration has a new parameter aad_enabled
    ️⚠️ azure-sdk-for-java warning [Detail]
    • ⚠️Warning [Logs] Generate from 1fdc3a2255dd1ebd234410a7d3671a9f4608ef95. 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 is available: 23.0.1 -> 23.1
      cmderr	[init.sh] [notice] To update, run: pip install --upgrade pip
      cmderr	[init.sh] [notice] A new release of pip is available: 23.0.1 -> 23.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
    • ️✔️azure-resourcemanager-redis-generated [View full logs]  [Preview SDK Changes]
    ️️✔️ azure-sdk-for-go succeeded [Detail] [Expand]
    • ️✔️Succeeded [Logs] Generate from 1fdc3a2255dd1ebd234410a7d3671a9f4608ef95. 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/redis/armredis [View full logs]  [Preview SDK Changes]
      info	[Changelog] ### Features Added
      info	[Changelog]
      info	[Changelog] - New enum type `AccessPolicyAssignmentProvisioningState` with values `AccessPolicyAssignmentProvisioningStateCanceled`, `AccessPolicyAssignmentProvisioningStateDeleted`, `AccessPolicyAssignmentProvisioningStateDeleting`, `AccessPolicyAssignmentProvisioningStateFailed`, `AccessPolicyAssignmentProvisioningStateSucceeded`, `AccessPolicyAssignmentProvisioningStateUpdating`
      info	[Changelog] - New enum type `AccessPolicyProvisioningState` with values `AccessPolicyProvisioningStateCanceled`, `AccessPolicyProvisioningStateDeleted`, `AccessPolicyProvisioningStateDeleting`, `AccessPolicyProvisioningStateFailed`, `AccessPolicyProvisioningStateSucceeded`, `AccessPolicyProvisioningStateUpdating`
      info	[Changelog] - New enum type `AccessPolicyType` with values `AccessPolicyTypeBuiltIn`, `AccessPolicyTypeCustom`
      info	[Changelog] - New function `NewAccessPolicyAssignmentClient(string, azcore.TokenCredential, *arm.ClientOptions) (*AccessPolicyAssignmentClient, error)`
      info	[Changelog] - New function `*AccessPolicyAssignmentClient.BeginCreateUpdate(context.Context, string, string, string, CacheAccessPolicyAssignmentSet, *AccessPolicyAssignmentClientBeginCreateUpdateOptions) (*runtime.Poller[AccessPolicyAssignmentClientCreateUpdateResponse], error)`
      info	[Changelog] - New function `*AccessPolicyAssignmentClient.BeginDelete(context.Context, string, string, string, *AccessPolicyAssignmentClientBeginDeleteOptions) (*runtime.Poller[AccessPolicyAssignmentClientDeleteResponse], error)`
      info	[Changelog] - New function `*AccessPolicyAssignmentClient.Get(context.Context, string, string, string, *AccessPolicyAssignmentClientGetOptions) (AccessPolicyAssignmentClientGetResponse, error)`
      info	[Changelog] - New function `*AccessPolicyAssignmentClient.NewListPager(string, string, *AccessPolicyAssignmentClientListOptions) *runtime.Pager[AccessPolicyAssignmentClientListResponse]`
      info	[Changelog] - New function `NewAccessPolicyClient(string, azcore.TokenCredential, *arm.ClientOptions) (*AccessPolicyClient, error)`
      info	[Changelog] - New function `*AccessPolicyClient.BeginCreateUpdate(context.Context, string, string, string, CacheAccessPolicy, *AccessPolicyClientBeginCreateUpdateOptions) (*runtime.Poller[AccessPolicyClientCreateUpdateResponse], error)`
      info	[Changelog] - New function `*AccessPolicyClient.BeginDelete(context.Context, string, string, string, *AccessPolicyClientBeginDeleteOptions) (*runtime.Poller[AccessPolicyClientDeleteResponse], error)`
      info	[Changelog] - New function `*AccessPolicyClient.Get(context.Context, string, string, string, *AccessPolicyClientGetOptions) (AccessPolicyClientGetResponse, error)`
      info	[Changelog] - New function `*AccessPolicyClient.NewListPager(string, string, *AccessPolicyClientListOptions) *runtime.Pager[AccessPolicyClientListResponse]`
      info	[Changelog] - New function `*ClientFactory.NewAccessPolicyAssignmentClient() *AccessPolicyAssignmentClient`
      info	[Changelog] - New function `*ClientFactory.NewAccessPolicyClient() *AccessPolicyClient`
      info	[Changelog] - New struct `CacheAccessPolicy`
      info	[Changelog] - New struct `CacheAccessPolicyAssignment`
      info	[Changelog] - New struct `CacheAccessPolicyAssignmentList`
      info	[Changelog] - New struct `CacheAccessPolicyAssignmentSet`
      info	[Changelog] - New struct `CacheAccessPolicyAssignmentSetProperties`
      info	[Changelog] - New struct `CacheAccessPolicyList`
      info	[Changelog] - New struct `CacheAccessPolicyProperties`
      info	[Changelog] - New field `AADEnabled` in struct `CommonPropertiesRedisConfiguration`
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 44 additive change(s).
    ️️✔️ azure-sdk-for-js succeeded [Detail] [Expand]
    • ️✔️Succeeded [Logs] Generate from 1fdc3a2255dd1ebd234410a7d3671a9f4608ef95. 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
    • ️✔️@azure/arm-rediscache [View full logs]  [Preview SDK Changes]
      info	[Changelog] **Features**
      info	[Changelog]
      info	[Changelog]   - Added operation group AccessPolicy
      info	[Changelog]   - Added operation group AccessPolicyAssignment
      info	[Changelog]   - Added Interface AccessPolicyAssignmentCreateUpdateOptionalParams
      info	[Changelog]   - Added Interface AccessPolicyAssignmentDeleteHeaders
      info	[Changelog]   - Added Interface AccessPolicyAssignmentDeleteOptionalParams
      info	[Changelog]   - Added Interface AccessPolicyAssignmentGetOptionalParams
      info	[Changelog]   - Added Interface AccessPolicyAssignmentListNextOptionalParams
      info	[Changelog]   - Added Interface AccessPolicyAssignmentListOptionalParams
      info	[Changelog]   - Added Interface AccessPolicyCreateUpdateOptionalParams
      info	[Changelog]   - Added Interface AccessPolicyDeleteHeaders
      info	[Changelog]   - Added Interface AccessPolicyDeleteOptionalParams
      info	[Changelog]   - Added Interface AccessPolicyGetOptionalParams
      info	[Changelog]   - Added Interface AccessPolicyListNextOptionalParams
      info	[Changelog]   - Added Interface AccessPolicyListOptionalParams
      info	[Changelog]   - Added Interface LinkedServerDeleteHeaders
      info	[Changelog]   - Added Interface RedisCacheAccessPolicy
      info	[Changelog]   - Added Interface RedisCacheAccessPolicyAssignment
      info	[Changelog]   - Added Interface RedisCacheAccessPolicyAssignmentList
      info	[Changelog]   - Added Interface RedisCacheAccessPolicyAssignmentSet
      info	[Changelog]   - Added Interface RedisCacheAccessPolicyList
      info	[Changelog]   - Added Type Alias AccessPolicyAssignmentCreateUpdateResponse
      info	[Changelog]   - Added Type Alias AccessPolicyAssignmentGetResponse
      info	[Changelog]   - Added Type Alias AccessPolicyAssignmentListNextResponse
      info	[Changelog]   - Added Type Alias AccessPolicyAssignmentListResponse
      info	[Changelog]   - Added Type Alias AccessPolicyAssignmentProvisioningState
      info	[Changelog]   - Added Type Alias AccessPolicyCreateUpdateResponse
      info	[Changelog]   - Added Type Alias AccessPolicyGetResponse
      info	[Changelog]   - Added Type Alias AccessPolicyListNextResponse
      info	[Changelog]   - Added Type Alias AccessPolicyListResponse
      info	[Changelog]   - Added Type Alias AccessPolicyProvisioningState
      info	[Changelog]   - Added Type Alias AccessPolicyType
      info	[Changelog]   - Interface RedisCommonPropertiesRedisConfiguration has a new optional parameter aadEnabled
      info	[Changelog]   - Added Enum KnownAccessPolicyAssignmentProvisioningState
      info	[Changelog]   - Added Enum KnownAccessPolicyProvisioningState
      info	[Changelog]   - Added Enum KnownAccessPolicyType
    ️⚠️ azure-resource-manager-schemas warning [Detail]
    • ⚠️Warning [Logs] Generate from 1fdc3a2255dd1ebd234410a7d3671a9f4608ef95. 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]  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
    ️️✔️ azure-powershell succeeded [Detail] [Expand]
    • ️✔️Succeeded [Logs] Generate from 1fdc3a2255dd1ebd234410a7d3671a9f4608ef95. 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.redis.DefaultTag [View full logs]  [Preview SDK Changes]
    Posted by Swagger Pipeline | How to fix these errors?

    @openapi-pipeline-app
    Copy link

    openapi-pipeline-app bot commented Apr 3, 2023

    Generated ApiView

    Language Package Name ApiView Link
    Swagger Microsoft.Cache https://apiview.dev/Assemblies/Review/30ee31b694674b208f828ff96b5842da
    Go sdk/resourcemanager/redis/armredis https://apiview.dev/Assemblies/Review/699cdcf740fa4152b9ab0ef9c79c3920
    Java azure-resourcemanager-redis-generated https://apiview.dev/Assemblies/Review/a6174053c79c4f629597f4b89388f3f3
    .Net Azure.ResourceManager.Redis https://apiview.dev/Assemblies/Review/d11d69859e054579a1bc77a11ed2d2a2
    JavaScript @azure/arm-rediscache https://apiview.dev/Assemblies/Review/21af8eca927a490c95601f4b31e70598

    @openapi-workflow-bot openapi-workflow-bot bot added ARMReview WaitForARMFeedback <valid label in PR review process> add this label when ARM review is required labels Apr 3, 2023
    @openapi-workflow-bot
    Copy link

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

    @koderjoker
    Copy link
    Member Author

    koderjoker commented Apr 3, 2023

    Changes already approved as part of #22946, including SDK and swagger breaking changes

    @openapi-workflow-bot
    Copy link

    Hi @koderjoker, one or multiple breaking change(s) is detected in your PR. Please check out the breaking change(s), and provide business justification in the PR comment and @ PR assignee why you must have these change(s), and how external customer impact can be mitigated. Please ensure to follow breaking change policy to request breaking change review and approval before proceeding swagger PR review.
    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.
    If you want to know the production traffic statistic, please see ARM Traffic statistic.
    If you think it is false positive breaking change, please provide the reasons in the PR comment, report to Swagger Tooling Team via https://aka.ms/swaggerfeedback.
    Note: To avoid breaking change, you can refer to Shift Left Solution for detecting breaking change in early phase at your service code repository.

    @openapi-workflow-bot
    Copy link

    Hi @koderjoker, 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

    Hi, @koderjoker, 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. For more details refer to the wiki. Or you could onboard API spec pipeline

    "value": [
    {
    "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/redis/cache1/accessPolicyAssignments/accessPolicy1",
    "name": "cache1/accessPolicy1",
    Copy link
    Member

    Choose a reason for hiding this comment

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

    accessPolicy1

    nit, accessPolicyAssignment1 seems more appropriate here

    Copy link
    Member

    @TimLovellSmith TimLovellSmith Apr 20, 2023

    Choose a reason for hiding this comment

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

    Oh I see, it is actually aliasing to the accessPolicy1 resource...? Which has to already exist? This is a kind of confusing difference to other ARM APIs.

    Copy link
    Member Author

    Choose a reason for hiding this comment

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

    Over here we're listing the assignments done for accessPolicy1, thus the naming

    Copy link
    Member

    Choose a reason for hiding this comment

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

    Right but the URL for doing that is a bit surprising. Compared to e.g.

                ""/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/redis/cache1/accessPolicies/accessPolicy1/assignments",
    

    or

                "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/redis/cache1/accessPolicyAssignments?$filter='accessPolicy eq accessPolicy1'"
    

    Copy link
    Contributor

    Choose a reason for hiding this comment

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

    I agree with Tim that this is very unorthodox. Resources aren't referenced by name, they should be referenced by ID. In this case its even more unusual in that the reference is implied by the name of the "assignment" that is being created being equal to the name of the policy that is being assigned.

    I think this is not only unorthodox but problematic in your scenario because:

    1. It forces all objectId assignments for a specific policy to exist as an array inside 1 resource. If there are a lot that resource is going to be large. That resource is also not going to be safe to update concurrently because PATCH doesn't work well on arrays (if it was implemented in this API) and peoples changes will stomp on one another.
    2. It eliminates the possibility of doing linked access checks on the access policy you are assigning (since there is no resourceid in the body to do the access check on).
    3. RBAC becomes much less granular. An "owner" access policy has 1 and only 1 policy assignment associated with it and anyone that has access to it has access to add/remove any objectId from that assignment. If they were individual assignments that referenced the policy in their body I could give someone access to a specific instance of the owner assignment eliminating the potential for them messing up the other owner assignments.

    Copy link
    Contributor

    @samsaha-ms samsaha-ms Apr 24, 2023

    Choose a reason for hiding this comment

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

    @pilor , @TimLovellSmith , Thanks for pointing this out, we are open to changing our api to incorporate this suggestion in our stable GA release of the api version, but this is too late for this preview version of API as we have public preview release next week. Could you please help in merging this preview version with the exception? We will update our API before we publish GA/stable version of the corresponding api version. Hope that will be ok.

    Copy link
    Contributor

    Choose a reason for hiding this comment

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

    You won't be able to make breaking changes like this between public preview and stable API versions

    Copy link
    Contributor

    Choose a reason for hiding this comment

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

    I see, then we will be able to create a completely new api-version for GA release, right? Like 2023-06-01?

    Copy link
    Contributor

    Choose a reason for hiding this comment

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

    Copy link
    Member

    @TimLovellSmith TimLovellSmith left a comment

    Choose a reason for hiding this comment

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

    🕐

    @TimLovellSmith
    Copy link
    Member

          },
    

    is the intention that each access policy can only be assigned to a unique objectid?


    Refers to: specification/redis/resource-manager/Microsoft.Cache/preview/2023-05-01/redis.json:1961 in c363e11. [](commit_id = c363e11, deletion_comment = False)

    @sjanamma
    Copy link

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

    https://github.com/Azure/azure-rest-api-specs/pull/23406/checks?check_run_id=12886661549
    https://github.com/Azure/azure-rest-api-specs/pull/23406/checks?check_run_id=12886661699

    Also, this PR has breaking changes. Please review all the breaking changes via the link https://github.com/Azure/azure-rest-api-specs/pull/23406/checks?check_run_id=12886661236

    If the breaking changes are intended, please reach out to ARM Breaking Changes reviewers azbreakchangereview@microsoft.com to get a sign off.

    Please remember to remove ARMChangesRequested tag once you address all the issues and get a sign off for breaking changes.

    @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 20, 2023
    @samsaha-ms
    Copy link
    Contributor

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

    https://github.com/Azure/azure-rest-api-specs/pull/23406/checks?check_run_id=12886661549 https://github.com/Azure/azure-rest-api-specs/pull/23406/checks?check_run_id=12886661699

    Also, this PR has breaking changes. Please review all the breaking changes via the link https://github.com/Azure/azure-rest-api-specs/pull/23406/checks?check_run_id=12886661236

    If the breaking changes are intended, please reach out to ARM Breaking Changes reviewers azbreakchangereview@microsoft.com to get a sign off.

    Please remember to remove ARMChangesRequested tag once you address all the issues and get a sign off for breaking changes.

    @sjanamma, for PUT api x-ms-long-running-operation-options, is not mandatory, @rkmanda suggested us to remove it in one of previous comment. There is an issue in automation check that needs to be fixed.

    @koderjoker koderjoker changed the title Release redis microsoft.cache 2023-05-01 Release redis microsoft.cache 2023-05-01 preview Apr 20, 2023
    @TimLovellSmith
    Copy link
    Member

          },
    

    is the intention that each access policy can only be assigned to a unique objectid?

    Refers to: specification/redis/resource-manager/Microsoft.Cache/preview/2023-05-01/redis.json:1961 in c363e11. [](commit_id = c363e11, deletion_comment = False)

    Never mind, I see now that it takes a collection.

    @koderjoker
    Copy link
    Member Author

          "description": "User friendly name for object id. Also represents username for token based authentication"
    

    Are spaces, punctuation, etc allowed? Or is it a limited character set?

    Refers to: specification/redis/resource-manager/Microsoft.Cache/preview/2023-05-01/redis.json:3095 in c363e11. [](commit_id = c363e11, deletion_comment = False)

    We allow spaces and punctuation as well here eg. in case of user names

          "RedisCacheAccessPolicyDelete": {
    

    RedisCacheAccessPolicyAssignmentDelete

    Refers to: specification/redis/resource-manager/Microsoft.Cache/preview/2023-05-01/redis.json:2006 in c363e11. [](commit_id = c363e11, deletion_comment = False)

    I've fixed this now as part of #23656. @ihsanali01 @sjanamma @qiaozha could you help us get this quickly merged in?

    @koderjoker koderjoker mentioned this pull request Apr 20, 2023
    11 tasks
    @koderjoker koderjoker added the WaitForARMFeedback <valid label in PR review process> add this label when ARM review is required label Apr 20, 2023
    @TimLovellSmith
    Copy link
    Member

        },
    

    I think you probably just want to remove this and ignore any linter errors - my understanding was that this LRO 'options' shouldn't be required in most cases as the SDK will do the right thing by default.


    Refers to: specification/redis/resource-manager/Microsoft.Cache/preview/2023-05-01/redis.json:2014 in c363e11. [](commit_id = c363e11, deletion_comment = False)

    @TimLovellSmith
    Copy link
    Member

        },
    

    Also hopefully not needed


    Refers to: specification/redis/resource-manager/Microsoft.Cache/preview/2023-05-01/redis.json:1788 in c363e11. [](commit_id = c363e11, deletion_comment = False)

    @TimLovellSmith
    Copy link
    Member

          "final-state-via": "azure-async-operation"
    

    @rkmanda just to check, is it only PUTs its not required on? I don't think its required for DELETE either, with the usual implementation pattern?


    In reply to: 1496788714


    Refers to: specification/redis/resource-manager/Microsoft.Cache/preview/2023-05-01/redis.json:1716 in f960faa. [](commit_id = f960faa, deletion_comment = False)

    @TimLovellSmith
    Copy link
    Member

            "type": "integer"
    
          "format": "int32",
    

    Refers to: specification/redis/resource-manager/Microsoft.Cache/preview/2023-05-01/redis.json:2735 in c363e11. [](commit_id = c363e11, deletion_comment = False)

    @TimLovellSmith
    Copy link
    Member

            "type": "integer"
    

    would address
    ❌ IntegerTypeMustHaveFormat The integer type does not have a format, please add it.
    Location: Microsoft.Cache/preview/2023-05-01/redis.json#L2734


    In reply to: 1516835971


    Refers to: specification/redis/resource-manager/Microsoft.Cache/preview/2023-05-01/redis.json:2735 in c363e11. [](commit_id = c363e11, deletion_comment = False)

    @TimLovellSmith
    Copy link
    Member

          "description": "User friendly name for object id. Also represents username for token based authentication"
    

    Please add 'pattern' specifier.


    In reply to: 1516579332


    Refers to: specification/redis/resource-manager/Microsoft.Cache/preview/2023-05-01/redis.json:3095 in c363e11. [](commit_id = c363e11, deletion_comment = False)

    @JeffreyRichter JeffreyRichter added the Approved-BreakingChange DO NOT USE! OBSOLETE label. See https://github.com/Azure/azure-sdk-tools/issues/6374 label Apr 20, 2023
    @sjanamma
    Copy link

    @koderjoker - [must fix] The following errors/warnings are introduced by current PR:
    https://github.com/Azure/azure-rest-api-specs/pull/23406/checks?check_run_id=12886661549 https://github.com/Azure/azure-rest-api-specs/pull/23406/checks?check_run_id=12886661699
    Also, this PR has breaking changes. Please review all the breaking changes via the link https://github.com/Azure/azure-rest-api-specs/pull/23406/checks?check_run_id=12886661236
    If the breaking changes are intended, please reach out to ARM Breaking Changes reviewers azbreakchangereview@microsoft.com to get a sign off.
    Please remember to remove ARMChangesRequested tag once you address all the issues and get a sign off for breaking changes.

    @sjanamma, for PUT api x-ms-long-running-operation-options, is not mandatory, @rkmanda suggested us to remove it in one of previous comment. There is an issue in automation check that needs to be fixed.

    Yes, long-running-operations is not required for PUT. Please ignore that

    * Remove x-ms-long-running-operation-options
    
    * Address comments
    
    ---------
    
    Co-authored-by: Kanchan Joshi <kanchanjoshi@microsoft.com>
    "value": [
    {
    "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Cache/redis/cache1/accessPolicyAssignments/accessPolicy1",
    "name": "cache1/accessPolicy1",
    Copy link
    Contributor

    Choose a reason for hiding this comment

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

    The "name" of a nested resource is just the name of the resource, not the concatenated name of the parent + child. In this case it should be "accessPolicy1".

    @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 24, 2023
    @koderjoker
    Copy link
    Member Author

    All comments addressed in fresh PR for reviewing and changing ease, please help with review here #23745.

    Closing this PR

    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 ARMReview BreakingChangeReviewRequired <valid label in PR review process>add this label when breaking change review is required CI-FixRequiredOnFailure CI-MissingBaseCommit new-api-version Redis Cache resource-manager

    Projects

    None yet

    Development

    Successfully merging this pull request may close these issues.