azure-rest-api-specs icon indicating copy to clipboard operation
azure-rest-api-specs copied to clipboard

waf features 2024-02-01

Open neelesh06 opened this issue 2 years ago • 19 comments

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.

diagram

[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!

  • [ ] New API version. (Such PR should have been generated with 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 swagger quality issues in S360.
  • [ ] Other, please clarify:
    • edit this with your clarification

Due diligence checklist

To merge this PR, you must go through the following checklist and confirm you understood and followed the instructions by checking all the boxes:

  • [ ] I confirm this PR is modifying Azure Resource Manager (ARM) related specifications, and not data plane related specifications.
  • [ ] I have reviewed following Resource Provider guidelines, including ARM resource provider contract and REST guidelines (estimated time: 4 hours).
    I understand this is required before I can proceed to Step 2, "ARM Review", for this PR.

Breaking changes review (Step 1)

  • If the automation determines you have breaking changes, i.e. Step 1 from the diagram applies to you, you must follow the breaking changes process.
    IMPORTANT This applies even if:
    • The tool fails while it shouldn't, e.g. due to runtime exception, or incorrect detection of breaking changes.
    • You believe there is no need for you to request breaking change approval, for any reason. Such claims must be reviewed, and the process is the same.

ARM API changes review (Step 2)

  • If this PR is in purview of ARM review then automation will add the ARMReview label.
  • If you want to force ARM review, add the label yourself.
  • Proceed according to the diagram at the top of this comment.

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

  • For general PR approval workflow, see the diagram at the top of this comment.
  • For guidance on fixing this PR CI check failures, see the hyperlinks provided in given failure and https://aka.ms/ci-fix.
  • 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.

neelesh06 avatar Nov 09 '23 00:11 neelesh06

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

️️✔️BreakingChange succeeded [Detail] [Expand]
There are no breaking changes.
️⚠️Breaking Change(Cross-Version): 5 Warnings warning [Detail]
Compared specs (v0.10.5) new version base version
network.json 2024-02-01(0ebdb15) 2022-05-01(main)
network.json 2024-02-01(0ebdb15) 2019-03-01-preview(main)
webapplicationfirewall.json 2024-02-01(0ebdb15) 2022-05-01(main)
webapplicationfirewall.json 2024-02-01(0ebdb15) 2019-03-01-preview(main)

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

Rule Message
:warning: 1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/FrontDoorWebApplicationFirewallPolicies' removed or restructured?
Old: Microsoft.Network/preview/2019-03-01-preview/webapplicationfirewall.json#L37:5
:warning: 1017 - ReferenceRedirection The '$ref' property points to different models in the old and new versions.
New: Microsoft.Network/stable/2024-02-01/webapplicationfirewall.json#L844:9
Old: Microsoft.Network/preview/2019-03-01-preview/webapplicationfirewall.json#L616:9
:warning: 1036 - ConstraintChanged The new version has a different 'maximum' value than the previous one.
New: Microsoft.Network/stable/2024-02-01/webapplicationfirewall.json#L616:9
Old: Microsoft.Network/preview/2019-03-01-preview/webapplicationfirewall.json#L441:9
:warning: 1036 - ConstraintChanged The new version has a different 'minimum' value than the previous one.
New: Microsoft.Network/stable/2024-02-01/webapplicationfirewall.json#L616:9
Old: Microsoft.Network/preview/2019-03-01-preview/webapplicationfirewall.json#L441:9
:warning: 1036 - ConstraintChanged The new version has a different 'minimum' value than the previous one.
New: Microsoft.Network/stable/2024-02-01/webapplicationfirewall.json#L622:9
Old: Microsoft.Network/preview/2019-03-01-preview/webapplicationfirewall.json#L445:9
️️✔️CredScan succeeded [Detail] [Expand]
There is no credential detected.
️⚠️LintDiff: 0 Warnings warning [Detail]
Compared specs (v2.2.0) new version base version
package-2024-02 package-2024-02(0ebdb15) default(main)

The following errors/warnings exist before current PR submission:

Only 30 items are listed, please refer to log for more details.

Rule Message
OperationsAPIImplementation Operations API must be implemented for 'Microsoft.Network'.
Location: Microsoft.Network/stable/2024-02-01/network.json#L1
MissingTypeObject The schema 'ErrorDetails' is considered an object but without a 'type:object', please add the missing 'type:object'.
Location: Microsoft.Network/stable/2024-02-01/network.json#L40
MissingTypeObject The schema 'Error' is considered an object but without a 'type:object', please add the missing 'type:object'.
Location: Microsoft.Network/stable/2024-02-01/network.json#L53
MissingTypeObject The schema 'AzureAsyncOperationResult' is considered an object but without a 'type:object', please add the missing 'type:object'.
Location: Microsoft.Network/stable/2024-02-01/network.json#L75
MissingTypeObject The schema 'Resource' is considered an object but without a 'type:object', please add the missing 'type:object'.
Location: Microsoft.Network/stable/2024-02-01/network.json#L96
MissingTypeObject The schema 'SubResource' is considered an object but without a 'type:object', please add the missing 'type:object'.
Location: Microsoft.Network/stable/2024-02-01/network.json#L128
MissingTypeObject The schema 'TagsObject' is considered an object but without a 'type:object', please add the missing 'type:object'.
Location: Microsoft.Network/stable/2024-02-01/network.json#L138
XmsParameterLocation The parameter 'SubscriptionIdParameter' is defined in global parameters section without 'x-ms-parameter-location' extension. This would add the parameter as the client property. Please ensure that this is exactly you want. If so, apply the extension 'x-ms-parameter-location': 'client'. Else, apply the extension 'x-ms-parameter-location': 'method'.
Location: Microsoft.Network/stable/2024-02-01/network.json#L152
XmsParameterLocation The parameter 'ApiVersionParameter' is defined in global parameters section without 'x-ms-parameter-location' extension. This would add the parameter as the client property. Please ensure that this is exactly you want. If so, apply the extension 'x-ms-parameter-location': 'client'. Else, apply the extension 'x-ms-parameter-location': 'method'.
Location: Microsoft.Network/stable/2024-02-01/network.json#L159
DefaultErrorResponseSchema the default error response schema does not correspond to the schema documented at https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-details.md#error-response-content.
Location: Microsoft.Network/stable/2024-02-01/webapplicationfirewall.json#L62
ResourceNameRestriction The resource name parameter 'policyName' should be defined with a 'pattern' restriction.
Location: Microsoft.Network/stable/2024-02-01/webapplicationfirewall.json#L118
DefaultErrorResponseSchema the default error response schema does not correspond to the schema documented at https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-details.md#error-response-content.
Location: Microsoft.Network/stable/2024-02-01/webapplicationfirewall.json#L146
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.Network/stable/2024-02-01/webapplicationfirewall.json#L159
LroLocationHeader A 202 response should include an Location response header.
Location: Microsoft.Network/stable/2024-02-01/webapplicationfirewall.json#L201
DefaultErrorResponseSchema the default error response schema does not correspond to the schema documented at https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-details.md#error-response-content.
Location: Microsoft.Network/stable/2024-02-01/webapplicationfirewall.json#L207
LroErrorContent Error response content of long running operations must follow the error schema provided in the common types v2 and above.
Location: Microsoft.Network/stable/2024-02-01/webapplicationfirewall.json#L210
PatchResponseCodes Long-running PATCH operations must have responses with 200, 202 and default return codes. They also must not have other response codes.
Location: Microsoft.Network/stable/2024-02-01/webapplicationfirewall.json#L221
LroPatch202 The async patch operation should return 202.
Location: Microsoft.Network/stable/2024-02-01/webapplicationfirewall.json#L250
DefaultErrorResponseSchema the default error response schema does not correspond to the schema documented at https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-details.md#error-response-content.
Location: Microsoft.Network/stable/2024-02-01/webapplicationfirewall.json#L257
LroErrorContent Error response content of long running operations must follow the error schema provided in the common types v2 and above.
Location: Microsoft.Network/stable/2024-02-01/webapplicationfirewall.json#L260
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.Network/stable/2024-02-01/webapplicationfirewall.json#L271
RequiredDefaultResponse The response is defined but without a default error response implementation.Consider adding it.'
Location: Microsoft.Network/stable/2024-02-01/webapplicationfirewall.json#L291
LroLocationHeader A 202 response should include an Location response header.
Location: Microsoft.Network/stable/2024-02-01/webapplicationfirewall.json#L295
PathResourceTypeNameCamelCase Resource type naming must follow camel case. Path: '/subscriptions/{subscriptionId}/providers/Microsoft.Network/FrontDoorWebApplicationFirewallManagedRuleSets'
Location: Microsoft.Network/stable/2024-02-01/webapplicationfirewall.json#L310
DefaultErrorResponseSchema the default error response schema does not correspond to the schema documented at https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-details.md#error-response-content.
Location: Microsoft.Network/stable/2024-02-01/webapplicationfirewall.json#L332
MissingTypeObject The schema 'WebApplicationFirewallPolicy' is considered an object but without a 'type:object', please add the missing 'type:object'.
Location: Microsoft.Network/stable/2024-02-01/webapplicationfirewall.json#L351
MissingTypeObject The schema 'WebApplicationFirewallPolicyProperties' is considered an object but without a 'type:object', please add the missing 'type:object'.
Location: Microsoft.Network/stable/2024-02-01/webapplicationfirewall.json#L374
MissingTypeObject The schema 'WebApplicationFirewallPolicyList' is considered an object but without a 'type:object', please add the missing 'type:object'.
Location: Microsoft.Network/stable/2024-02-01/webapplicationfirewall.json#L456
MissingTypeObject The schema 'PolicySettings' is considered an object but without a 'type:object', please add the missing 'type:object'.
Location: Microsoft.Network/stable/2024-02-01/webapplicationfirewall.json#L473
IntegerTypeMustHaveFormat The integer type does not have a format, please add it.
Location: Microsoft.Network/stable/2024-02-01/webapplicationfirewall.json#L504
️⚠️Avocado: 1 Warnings warning [Detail]
Rule Message
:warning: MULTIPLE_API_VERSION The default tag contains multiple API versions swaggers.
readme: specification/frontdoor/resource-manager/readme.md
tag: specification/frontdoor/resource-manager/readme.md#tag-package-2024-02
️️✔️SwaggerAPIView succeeded [Detail] [Expand]
️️✔️TypeSpecAPIView succeeded [Detail] [Expand]
️️✔️ModelValidation succeeded [Detail] [Expand]
Validation passes for ModelValidation.
️️✔️SemanticValidation succeeded [Detail] [Expand]
Validation passes for SemanticValidation.
️️✔️PoliCheck succeeded [Detail] [Expand]
Validation passed for PoliCheck.
️️✔️SpellCheck succeeded [Detail] [Expand]
Validation passes for SpellCheck.
️️✔️Lint(RPaaS) succeeded [Detail] [Expand]
Validation passes for Lint(RPaaS).
️️✔️PR Summary succeeded [Detail] [Expand]
Validation passes for Summary.
️️✔️Automated merging requirements met succeeded [Detail] [Expand]
Posted by Swagger Pipeline | How to fix these errors?

Swagger Generation Artifacts

️️✔️ApiDocPreview succeeded [Detail] [Expand]
 Please click here to preview with your @microsoft account. 
️❌SDK Breaking Change Tracking failed [Detail]

Breaking Changes Tracking



azure-sdk-for-js - @azure/arm-frontdoor - Approved - 6.0.0
+	Class FrontDoorManagementClient has a new signature
️️✔️ azure-sdk-for-net-track2 succeeded [Detail] [Expand]
  • ️✔️Succeeded [Logs] Generate from d08326de2bfcb9a47b7a7fbc447f0b58f5edb779. 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.FrontDoor [View full logs]  [Preview SDK Changes]
    info	[Changelog]
️⚠️ azure-sdk-for-python-track2 warning [Detail]
  • ⚠️Warning [Logs] Generate from d08326de2bfcb9a47b7a7fbc447f0b58f5edb779. 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: azure-devtools 1.2.1 does not provide the extra 'ci-tools'
    cmderr	[automation_init.sh] WARNING: azure-devtools 1.2.1 does not provide the extra 'ci-tools'
    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]
    cmderr	[automation_generate.sh]  New minor version of npm available! 10.2.4 -> 10.5.0
    cmderr	[automation_generate.sh] npm notice Changelog: <https://github.com/npm/cli/releases/tag/v10.5.0>
    cmderr	[automation_generate.sh] npm notice Run `npm install -g [email protected]` to update!
    cmderr	[automation_generate.sh] npm notice
  • ️✔️track2_azure-mgmt-frontdoor [View full logs]  [Preview SDK Changes]
    info	[Changelog] ### Features Added
    info	[Changelog]
    info	[Changelog]   - Model CustomRule has a new parameter group_by
    info	[Changelog]   - Model PolicySettings has a new parameter javascript_challenge_expiration_in_minutes
    info	[Changelog]   - Model PolicySettings has a new parameter scrubbing_rules
    info	[Changelog]   - Model PolicySettings has a new parameter state
️️✔️ azure-sdk-for-go succeeded [Detail] [Expand]
  • ️✔️Succeeded [Logs] Generate from d08326de2bfcb9a47b7a7fbc447f0b58f5edb779. 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/frontdoor/armfrontdoor [View full logs]  [Preview SDK Changes]
    info	[Changelog] ### Features Added
    info	[Changelog]
    info	[Changelog] - New value `ActionTypeJSChallenge` added to enum type `ActionType`
    info	[Changelog] - New enum type `ScrubbingRuleEntryMatchOperator` with values `ScrubbingRuleEntryMatchOperatorEquals`, `ScrubbingRuleEntryMatchOperatorEqualsAny`
    info	[Changelog] - New enum type `ScrubbingRuleEntryMatchVariable` with values `ScrubbingRuleEntryMatchVariableQueryStringArgNames`, `ScrubbingRuleEntryMatchVariableRequestBodyJSONArgNames`, `ScrubbingRuleEntryMatchVariableRequestBodyPostArgNames`, `ScrubbingRuleEntryMatchVariableRequestCookieNames`, `ScrubbingRuleEntryMatchVariableRequestHeaderNames`, `ScrubbingRuleEntryMatchVariableRequestIPAddress`, `ScrubbingRuleEntryMatchVariableRequestURI`
    info	[Changelog] - New enum type `ScrubbingRuleEntryState` with values `ScrubbingRuleEntryStateDisabled`, `ScrubbingRuleEntryStateEnabled`
    info	[Changelog] - New enum type `VariableName` with values `VariableNameGeoLocation`, `VariableNameNone`, `VariableNameSocketAddr`
    info	[Changelog] - New enum type `WebApplicationFirewallScrubbingState` with values `WebApplicationFirewallScrubbingStateDisabled`, `WebApplicationFirewallScrubbingStateEnabled`
    info	[Changelog] - New struct `GroupByVariable`
    info	[Changelog] - New struct `PolicySettingsLogScrubbing`
    info	[Changelog] - New struct `WebApplicationFirewallScrubbingRules`
    info	[Changelog] - New field `GroupBy` in struct `CustomRule`
    info	[Changelog] - New field `JavascriptChallengeExpirationInMinutes`, `LogScrubbing` in struct `PolicySettings`
    info	[Changelog]
    info	[Changelog] Total 0 breaking change(s), 30 additive change(s).
️️✔️ azure-sdk-for-js succeeded [Detail] [Expand]
  • ️✔️Succeeded [Logs] Generate from d08326de2bfcb9a47b7a7fbc447f0b58f5edb779. 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-frontdoor [View full logs]  [Preview SDK Changes] Breaking Change Detected
    info	[Changelog] **Features**
    info	[Changelog]
    info	[Changelog]   - Added Interface GroupByVariable
    info	[Changelog]   - Added Interface WebApplicationFirewallScrubbingRules
    info	[Changelog]   - Added Type Alias ScrubbingRuleEntryMatchOperator
    info	[Changelog]   - Added Type Alias ScrubbingRuleEntryMatchVariable
    info	[Changelog]   - Added Type Alias ScrubbingRuleEntryState
    info	[Changelog]   - Added Type Alias VariableName
    info	[Changelog]   - Added Type Alias WebApplicationFirewallScrubbingState
    info	[Changelog]   - Interface CustomRule has a new optional parameter groupBy
    info	[Changelog]   - Interface PolicySettings has a new optional parameter javascriptChallengeExpirationInMinutes
    info	[Changelog]   - Interface PolicySettings has a new optional parameter scrubbingRules
    info	[Changelog]   - Interface PolicySettings has a new optional parameter state
    info	[Changelog]   - Added Enum KnownScrubbingRuleEntryMatchOperator
    info	[Changelog]   - Added Enum KnownScrubbingRuleEntryMatchVariable
    info	[Changelog]   - Added Enum KnownScrubbingRuleEntryState
    info	[Changelog]   - Added Enum KnownVariableName
    info	[Changelog]   - Added Enum KnownWebApplicationFirewallScrubbingState
    info	[Changelog]   - Enum KnownActionType has a new value JSChallenge
    info	[Changelog]
    info	[Changelog] **Breaking Changes**
    info	[Changelog]
    info	[Changelog]   - Class FrontDoorManagementClient has a new signature
️⚠️ azure-resource-manager-schemas warning [Detail]
  • ⚠️Warning [Logs] Generate from d08326de2bfcb9a47b7a7fbc447f0b58f5edb779. 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]
    cmderr	[initScript.sh] npm notice New minor version of npm available! 10.2.4 -> 10.5.0
    cmderr	[initScript.sh] npm notice Changelog: <https://github.com/npm/cli/releases/tag/v10.5.0>
    cmderr	[initScript.sh] npm notice Run `npm install -g [email protected]` to update!
    cmderr	[initScript.sh] npm notice
    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
  • ️✔️frontdoor [View full logs]  [Preview Schema Changes]
Posted by Swagger Pipeline | How to fix these errors?

Hi @neelesh06! 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.

Hi @neelesh06! 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.

Please follow this guide, to include the old API so we can see the diff.

zizw123 avatar Nov 09 '23 21:11 zizw123

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.

Swagger pipeline started successfully. If there is ApiView generated, it will be updated in this comment.

Hi @neelesh06! 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.

refer this comment for base version

raosuhas avatar Jan 22 '24 19:01 raosuhas

I have added a same PR in private repo as well https://github.com/Azure/azure-rest-api-specs-pr/pull/16853. Please review the private repo PR. I want to merge the private repo PR and start the PS/CLI work. Thanks.

neelesh06 avatar Feb 01 '24 19:02 neelesh06

/pr RequestMerge

neelesh06 avatar Mar 13 '24 18:03 neelesh06