Skip to content
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

Fixing additional Properties #24480

Merged
merged 1 commit into from
Jun 21, 2023
Merged

Fixing additional Properties #24480

merged 1 commit into from
Jun 21, 2023

Conversation

moadus
Copy link
Contributor

@moadus moadus commented Jun 16, 2023

RPaaS is planning to rollout a new Swagger spec linter rule where free-form type additionalProperties should be set to "true" or "{}" as noted in the OpenAPI docs under Free-Form Objects.

All new API versions are subject to the new rule and this can potentially be a breaking change for existing API versions once it goes into effect by the end of August 2023.

Your resource provider has been flagged for this validation in one or more API versions. Please check all the environments you've onboarded to and take the action outlined below to avoid any issues or service outages once the rule goes into effect.
There are two ways to mitigate this linter rule:

(Recommended) Check your RP's Swagger specifications for the following API versions in their respective repos and make the necessary corrections. If the PR is flagged for breaking change, let the reviewer know it's to comply with the additionalProperties validation.

This is to fix:
image

@openapi-workflow-bot
Copy link

Hi, @moadus 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 Jun 16, 2023

    Swagger Validation Report

    ️❌BreakingChange: 2 Errors, 0 Warnings failed [Detail]
    compared swaggers (via Oad v0.10.4)] new version base version
    sqlManagedInstances.json 2021-11-01(d99a5d3) 2021-11-01(main)
    Rule Message
    1026 - TypeChanged The new version has a different type '' than the previous one 'string'.
    New: Microsoft.AzureArcData/stable/2021-11-01/sqlManagedInstances.json#L207:11
    Old: Microsoft.AzureArcData/stable/2021-11-01/sqlManagedInstances.json#L207:11
    1026 - TypeChanged The new version has a different type '' than the previous one 'string'.
    New: Microsoft.AzureArcData/stable/2021-11-01/sqlManagedInstances.json#L212:11
    Old: Microsoft.AzureArcData/stable/2021-11-01/sqlManagedInstances.json#L214:11
    ️️✔️Breaking Change(Cross-Version) succeeded [Detail] [Expand]
    There are no breaking changes.
    ️️✔️CredScan succeeded [Detail] [Expand]
    There is no credential detected.
    ️️✔️LintDiff succeeded [Detail] [Expand]
    Validation passes for LintDiff.
    compared tags (via openapi-validator v2.1.3) new version base version
    package-2021-11-01 package-2021-11-01(d99a5d3) package-2021-11-01(main)
    ️️✔️Avocado succeeded [Detail] [Expand]
    Validation passes for Avocado.
    ️️✔️ApiReadinessCheck succeeded [Detail] [Expand]
    ️⚠️~[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 Jun 16, 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-python-track2 warning [Detail]
    • ⚠️Warning [Logs]Release - Generate from e0ec410. 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] npm notice
      cmderr	[automation_generate.sh] npm notice New minor version of npm available! 9.5.1 -> 9.7.1
      cmderr	[automation_generate.sh] npm notice Changelog: <https://github.com/npm/cli/releases/tag/v9.7.1>
      cmderr	[automation_generate.sh] npm notice Run `npm install -g npm@9.7.1` to update!
      cmderr	[automation_generate.sh] npm notice
    • ️✔️track2_azure-mgmt-azurearcdata [View full logs]  [Release SDK Changes]
      info	[Changelog] ### Features Added
      info	[Changelog]
      info	[Changelog]   - Added operation group FailoverGroupsOperations
      info	[Changelog]   - Added operation group SqlServerDatabasesOperations
      info	[Changelog]   - Model SqlManagedInstanceK8SSpec has a new parameter security
      info	[Changelog]   - Model SqlManagedInstanceK8SSpec has a new parameter settings
      info	[Changelog]   - Model SqlServerInstanceProperties has a new parameter cores
    ️⚠️ azure-sdk-for-java warning [Detail]
    • ⚠️Warning [Logs]Release - Generate from e0ec410. 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.2
      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.2
      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-azurearcdata [View full logs]  [Release SDK Changes]
    ️️✔️ azure-sdk-for-go succeeded [Detail] [Expand]
    • ️✔️Succeeded [Logs]Release - Generate from e0ec410. 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/azurearcdata/armazurearcdata [View full logs]  [Release SDK Changes]
      info	[Changelog] ### Features Added
      info	[Changelog]
      info	[Changelog] - New value `ArcSQLServerLicenseTypeLicenseOnly`, `ArcSQLServerLicenseTypePAYG`, `ArcSQLServerLicenseTypeServerCAL` added to enum type `ArcSQLServerLicenseType`
      info	[Changelog] - New value `EditionTypeBusinessIntelligence` added to enum type `EditionType`
      info	[Changelog] - New value `HostTypeAWSKubernetesService`, `HostTypeAWSVMWareVirtualMachine`, `HostTypeAzureKubernetesService`, `HostTypeAzureVMWareVirtualMachine`, `HostTypeAzureVirtualMachine`, `HostTypeContainer`, `HostTypeGCPKubernetesService`, `HostTypeGCPVMWareVirtualMachine` added to enum type `HostType`
      info	[Changelog] - New enum type `DatabaseState` with values `DatabaseStateCopying`, `DatabaseStateEmergency`, `DatabaseStateOffline`, `DatabaseStateOfflineSecondary`, `DatabaseStateOnline`, `DatabaseStateRecovering`, `DatabaseStateRecoveryPending`, `DatabaseStateRestoring`, `DatabaseStateSuspect`
      info	[Changelog] - New enum type `FailoverGroupPartnerSyncMode` with values `FailoverGroupPartnerSyncModeAsync`, `FailoverGroupPartnerSyncModeSync`
      info	[Changelog] - New enum type `InstanceFailoverGroupRole` with values `InstanceFailoverGroupRoleForcePrimaryAllowDataLoss`, `InstanceFailoverGroupRoleForceSecondary`, `InstanceFailoverGroupRolePrimary`, `InstanceFailoverGroupRoleSecondary`
      info	[Changelog] - New enum type `ProvisioningState` with values `ProvisioningStateAccepted`, `ProvisioningStateCanceled`, `ProvisioningStateFailed`, `ProvisioningStateSucceeded`
      info	[Changelog] - New enum type `RecoveryMode` with values `RecoveryModeBulkLogged`, `RecoveryModeFull`, `RecoveryModeSimple`
      info	[Changelog] - New function `*ClientFactory.NewFailoverGroupsClient() *FailoverGroupsClient`
      info	[Changelog] - New function `*ClientFactory.NewSQLServerDatabasesClient() *SQLServerDatabasesClient`
      info	[Changelog] - New function `NewFailoverGroupsClient(string, azcore.TokenCredential, *arm.ClientOptions) (*FailoverGroupsClient, error)`
      info	[Changelog] - New function `*FailoverGroupsClient.BeginCreate(context.Context, string, string, string, FailoverGroupResource, *FailoverGroupsClientBeginCreateOptions) (*runtime.Poller[FailoverGroupsClientCreateResponse], error)`
      info	[Changelog] - New function `*FailoverGroupsClient.BeginDelete(context.Context, string, string, string, *FailoverGroupsClientBeginDeleteOptions) (*runtime.Poller[FailoverGroupsClientDeleteResponse], error)`
      info	[Changelog] - New function `*FailoverGroupsClient.Get(context.Context, string, string, string, *FailoverGroupsClientGetOptions) (FailoverGroupsClientGetResponse, error)`
      info	[Changelog] - New function `*FailoverGroupsClient.NewListPager(string, string, *FailoverGroupsClientListOptions) *runtime.Pager[FailoverGroupsClientListResponse]`
      info	[Changelog] - New function `NewSQLServerDatabasesClient(string, azcore.TokenCredential, *arm.ClientOptions) (*SQLServerDatabasesClient, error)`
      info	[Changelog] - New function `*SQLServerDatabasesClient.Create(context.Context, string, string, string, SQLServerDatabaseResource, *SQLServerDatabasesClientCreateOptions) (SQLServerDatabasesClientCreateResponse, error)`
      info	[Changelog] - New function `*SQLServerDatabasesClient.Delete(context.Context, string, string, string, *SQLServerDatabasesClientDeleteOptions) (SQLServerDatabasesClientDeleteResponse, error)`
      info	[Changelog] - New function `*SQLServerDatabasesClient.Get(context.Context, string, string, string, *SQLServerDatabasesClientGetOptions) (SQLServerDatabasesClientGetResponse, error)`
      info	[Changelog] - New function `*SQLServerDatabasesClient.NewListPager(string, string, *SQLServerDatabasesClientListOptions) *runtime.Pager[SQLServerDatabasesClientListResponse]`
      info	[Changelog] - New function `*SQLServerDatabasesClient.Update(context.Context, string, string, string, SQLServerDatabaseUpdate, *SQLServerDatabasesClientUpdateOptions) (SQLServerDatabasesClientUpdateResponse, error)`
      info	[Changelog] - New struct `ArcSQLServerDatabaseListResult`
      info	[Changelog] - New struct `FailoverGroupListResult`
      info	[Changelog] - New struct `FailoverGroupProperties`
      info	[Changelog] - New struct `FailoverGroupResource`
      info	[Changelog] - New struct `FailoverGroupSpec`
      info	[Changelog] - New struct `K8SActiveDirectory`
      info	[Changelog] - New struct `K8SActiveDirectoryConnector`
      info	[Changelog] - New struct `K8SNetworkSettings`
      info	[Changelog] - New struct `K8SSecurity`
      info	[Changelog] - New struct `K8SSettings`
      info	[Changelog] - New struct `K8StransparentDataEncryption`
      info	[Changelog] - New struct `SQLServerDatabaseResource`
      info	[Changelog] - New struct `SQLServerDatabaseResourceProperties`
      info	[Changelog] - New struct `SQLServerDatabaseResourcePropertiesBackupInformation`
      info	[Changelog] - New struct `SQLServerDatabaseResourcePropertiesDatabaseOptions`
      info	[Changelog] - New struct `SQLServerDatabaseUpdate`
      info	[Changelog] - New field `Security`, `Settings` in struct `SQLManagedInstanceK8SSpec`
      info	[Changelog] - New field `Cores` in struct `SQLServerInstanceProperties`
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 86 additive change(s).
    ️️✔️ azure-sdk-for-js succeeded [Detail] [Expand]
    • ️✔️Succeeded [Logs]Release - Generate from e0ec410. 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-azurearcdata [View full logs]  [Release SDK Changes]
      info	[Changelog]
      error	breakingChangeTracking is enabled, but version or changelogItem is not found in output.
    ️️✔️ azure-sdk-for-net succeeded [Detail] [Expand]
    • ️✔️Succeeded [Logs]Release - Generate from e0ec410. 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	autorest --version=2.0.4421 --csharp --reflect-api-versions --license-header=MICROSOFT_MIT_NO_VERSION --use=@microsoft.azure/autorest.csharp@2.3.101 --csharp-sdks-folder=/mnt/vss/_work/1/s/azure-sdk-for-net/sdk ../azure-rest-api-specs/specification/azurearcdata/resource-manager/readme.md
      cmderr	[Autorest] realpath(): Permission denied
      cmderr	[Autorest] realpath(): Permission denied
      cmderr	[Autorest] realpath(): Permission denied
    • ️✔️Microsoft.Azure.Management.AzureArcData [View full logs]  [Release SDK Changes]
      warn	Skip artifact folder because it doesn't exist: artifacts/packages
    ️⚠️ azure-resource-manager-schemas warning [Detail]
    • ⚠️Warning [Logs]Release - Generate from e0ec410. 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
    • ️✔️azurearcdata [View full logs]  [Release Schema Changes]
    ️❌ azure-powershell failed [Detail]
    • Pipeline Framework Failed [Logs]Release - Generate from e0ec410. 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
      SSL error: syscall failure: Broken pipe
      Error: SSL error: syscall failure: Broken pipe
    • ️✔️Az.azurearcdata.DefaultTag [View full logs
      error	Fatal error: SSL error: syscall failure: Broken pipe
      error	The following packages are still pending:
      error		Az.azurearcdata.DefaultTag
    Posted by Swagger Pipeline | How to fix these errors?

    @openapi-pipeline-app
    Copy link

    openapi-pipeline-app bot commented Jun 16, 2023

    Generated ApiView

    Language Package Name ApiView Link
    Go sdk/resourcemanager/azurearcdata/armazurearcdata https://apiview.dev/Assemblies/Review/3cfb8224aa0c4f798d455b3901e3084e
    Java azure-resourcemanager-azurearcdata https://apiview.dev/Assemblies/Review/3eda0c368ea049118d7536cfdf117735
    JavaScript @azure/arm-azurearcdata https://apiview.dev/Assemblies/Review/5554e4144b0e44d7b3b430822c32cb72

    @openapi-workflow-bot
    Copy link

    Hi @moadus, 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.

    @moadus
    Copy link
    Contributor Author

    moadus commented Jun 19, 2023

    Here's the breaking change ticket I created - https://msazure.visualstudio.com/One/_workitems/edit/24306780

    @Wzb123456789
    Copy link
    Contributor

    @nhebbar2011 Please check BreakingChange and mark Approve-BreakingChange lable.

    @mikekistler mikekistler added the Approved-BreakingChange DO NOT USE! OBSOLETE label. See https://github.com/Azure/azure-sdk-tools/issues/6374 label Jun 20, 2023
    @Wzb123456789 Wzb123456789 added the Approved-OkToMerge <valid label in PR review process>add this label when assignee approve to merge the updates label Jun 21, 2023
    harryli0108 pushed a commit to harryli0108/azure-rest-api-specs that referenced this pull request Jul 28, 2023
    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 Approved-OkToMerge <valid label in PR review process>add this label when assignee approve to merge the updates BreakingChangeReviewRequired <valid label in PR review process>add this label when breaking change review is required resource-manager RPaaS
    Projects
    None yet
    Development

    Successfully merging this pull request may close these issues.

    6 participants