Review request for Microsoft.HardwareSecurityModules to add version 2024-06-30 (Includes Azure Backup)
ARM (Control Plane) API Specification Update Pull Request
[!TIP] Overwhelmed by all this guidance? See the
Getting helpsection at the bottom of this PR description.
[!NOTE] As of January 2024 there is no PR assignee. This is expected. See https://aka.ms/azsdk/pr-arm-review.
PR review workflow diagram
Please understand this diagram before proceeding. It explains how to get your PR approved & merged.
Click here to see the details of Step 1, Breaking Changes review
If you are in purview of Step 1 of the diagram, follow the Breaking Changes review process.
IMPORTANT! This applies even if you believe your PR was mislabeled, for any reason, including tool failure.
Click here to see the details of Step 2, ARM review
See https://aka.ms/azsdk/pr-arm-review.
Click here to see the diagram footnotes
Diagram footnotes
[1] See ARM review queue (for PR merge queues, see [2]).
[2] public repo merge queue, private repo merge queue (for ARM review queue, [1])
The ARM reviewer on-call engineer visits the merge queue twice a day, so the approximate ETA for merges is 12 - 24 hours.
Purpose of this PR
What's the purpose of this PR? Check the specific option that applies. This is mandatory!
- [ ] New resource provider.
- [X] New API version for an existing resource provider. (If API spec is not defined in TypeSpec, the PR should have been generated using OpenAPI Hub).
- [ ] Update existing version for a new feature. (This is applicable only when you are revising a private preview API version.)
- [ ] Update existing version to fix OpenAPI spec quality issues in S360.
- [ ] Other, please clarify:
- edit this with your clarification
Due diligence checklist
To merge this PR, you must go through the following checklist and confirm you understood and followed the instructions by checking all the boxes:
- [x] I confirm this PR is modifying Azure Resource Manager (ARM) related specifications, and not data plane related specifications.
- [x] I have reviewed following Resource Provider guidelines, including
ARM resource provider contract and
REST guidelines (estimated time: 4 hours).
I understand this is required before I can proceed to the diagram Step 2, "ARM API changes review", for this PR.
Additional information
Viewing API changes
For convenient view of the API changes made by this PR, refer to the URLs provided in the table
in the Generated ApiView comment added to this PR. You can use ApiView to show API versions diff.
Suppressing failures
If one or multiple validation error/warning suppression(s) is detected in your PR, please follow the suppressions guide to get approval.
Getting help
- First, please carefully read through this PR description, from top to bottom. Please fill out the
Purpose of this PRandDue diligence checklist. - To understand what you must do next to merge this PR, see the
Next Steps to Mergecomment. It will appear within few minutes of submitting this PR and will continue to be up-to-date with current PR state. - For guidance on fixing this PR CI check failures, see the hyperlinks provided in given failure and https://aka.ms/ci-fix.
- For help with PR workflow diagram Step 2 (ARM review), see https://aka.ms/azsdk/pr-arm-review.
- If the PR CI checks appear to be stuck in
queuedstate, please add a comment with contents/azp run. This should result in a new comment denoting aPR validation pipelinehas started and the checks should be updated after few minutes. - If the help provided by the previous points is not enough, post to https://aka.ms/azsdk/support/specreview-channel and link to this PR.
Next Steps to Merge
Next steps that must be taken to merge this PR:- ❌ This PR is in purview of the ARM review (label:
ARMReview). This PR must getARMSignedOfflabel from an ARM reviewer.
This PR hasARMChangesRequestedlabel. Please address or respond to feedback from the ARM API reviewer.
When you are ready to continue the ARM API review, please remove theARMChangesRequestedlabel.
Automation should then addWaitForARMFeedbacklabel.
❗If you don't have permissions to remove the label, requestwrite accessper aka.ms/azsdk/access#request-access-to-rest-api-or-sdk-repositories.
For details of the ARM review, see aka.ms/azsdk/pr-arm-review - ❌ The required check named
Swagger LintDiffhas failed. Refer to the check in the PR's 'Checks' tab for details on how to fix it and consult the aka.ms/ci-fix guide
Swagger Validation Report
️️✔️BreakingChange succeeded [Detail] [Expand]
There are no breaking changes.
️❌Breaking Change(Cross-Version): 26 Errors, 133 Warnings failed [Detail]
| Compared specs (v0.10.12) | new version | base version |
|---|---|---|
| cloudhsm.json | 2024-06-30(8f823a5) | 2023-12-10-preview(main) |
| dedicatedhsm.json | 2024-06-30(8f823a5) | 2021-11-30(main) |
| dedicatedhsm.json | 2024-06-30(8f823a5) | 2018-10-31-preview(main) |
The following breaking changes are detected by comparison with the latest stable version:
Only 29 items are listed, please refer to log for more details.
The following breaking changes are detected by comparison with the latest preview version:
Only 29 items are listed, please refer to log for more details.
️️✔️CredScan succeeded [Detail] [Expand]
There is no credential detected.
️❌LintDiff: 3 Errors, 32 Warnings failed [Detail]
| Compared specs (v2.2.2) | new version | base version |
|---|---|---|
| package-2024-06 | package-2024-06(8f823a5) | default(main) |
[must fix]The following errors/warnings are introduced by current PR:
Only 29 items are listed, please refer to log for more details.
| Rule | Message | Related RPC [For API reviewers] |
|---|---|---|
LroErrorContent |
Error response content of long running operations must follow the error schema provided in the common types v2 and above. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/dedicatedhsm.json#L84 |
|
LroErrorContent |
Error response content of long running operations must follow the error schema provided in the common types v2 and above. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/dedicatedhsm.json#L150 |
|
LroErrorContent |
Error response content of long running operations must follow the error schema provided in the common types v2 and above. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/dedicatedhsm.json#L200 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L88 |
|
| :warning: PatchSkuProperty | The patch operation body parameter schema should contain property 'sku'. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L121 |
RPC-Patch-V1-09 |
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L152 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L192 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L243 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L289 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L335 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of privatelinks.json. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L374 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L380 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L437 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L491 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L534 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L576 |
|
| :warning: PostOperationIdContainsUrlVerb | OperationId should contain the verb: 'validatebackupproperties' in:'CloudHsmClusters_ValidateBackup'. Consider updating the operationId Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L595 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L663 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L747 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L798 |
|
| :warning: PostOperationIdContainsUrlVerb | OperationId should contain the verb: 'validaterestoreproperties' in:'CloudHsmClusters_ValidateRestore'. Consider updating the operationId Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L820 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L888 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L973 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L1024 |
|
| :warning: EnumInsteadOfBoolean | Booleans properties are not descriptive in all cases and can make them to use, evaluate whether is makes sense to keep the property as boolean or turn it into an enum. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L1118 |
|
| :warning: LatestVersionOfCommonTypesMustBeUsed | Use the latest version v5 of types.json. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L1426 |
|
| :warning: OperationIdNounConflictingModelNames | OperationId has a noun that conflicts with one of the model names in definitions section. The model name will be disambiguated to 'DedicatedHsmModel'. Consider using the plural form of 'DedicatedHsm' to avoid this. Note: If you have already shipped an SDK on top of this spec, fixing this warning may introduce a breaking change. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/dedicatedhsm.json#L42 |
|
| :warning: OperationIdNounConflictingModelNames | OperationId has a noun that conflicts with one of the model names in definitions section. The model name will be disambiguated to 'DedicatedHsmModel'. Consider using the plural form of 'DedicatedHsm' to avoid this. Note: If you have already shipped an SDK on top of this spec, fixing this warning may introduce a breaking change. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/dedicatedhsm.json#L104 |
|
| :warning: PatchSkuProperty | The patch operation body parameter schema should contain property 'sku'. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/dedicatedhsm.json#L114 |
RPC-Patch-V1-09 |
The following errors/warnings exist before current PR submission:
| Rule | Message |
|---|---|
PatchBodyParametersSchema |
Properties of a PATCH request body must not be required, property:type. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L126 |
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.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L395 |
ProvisioningStateValidation |
ProvisioningState must have terminal states: Succeeded, Failed and Canceled. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/dedicatedhsm.json#L521 |
| :warning: OperationIdNounConflictingModelNames | OperationId has a noun that conflicts with one of the model names in definitions section. The model name will be disambiguated to 'DedicatedHsmModel'. Consider using the plural form of 'DedicatedHsm' to avoid this. Note: If you have already shipped an SDK on top of this spec, fixing this warning may introduce a breaking change. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/dedicatedhsm.json#L262 |
| :warning: OperationIdNounConflictingModelNames | OperationId has a noun that conflicts with one of the model names in definitions section. The model name will be disambiguated to 'DedicatedHsmModel'. Consider using the plural form of 'DedicatedHsm' to avoid this. Note: If you have already shipped an SDK on top of this spec, fixing this warning may introduce a breaking change. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/dedicatedhsm.json#L314 |
️️✔️Avocado succeeded [Detail] [Expand]
Validation passes for Avocado.
️️✔️SwaggerAPIView succeeded [Detail] [Expand]
️️✔️TypeSpecAPIView succeeded [Detail] [Expand]
️️✔️ModelValidation succeeded [Detail] [Expand]
Validation passes for ModelValidation.
️️✔️SemanticValidation succeeded [Detail] [Expand]
Validation passes for SemanticValidation.
️️✔️PoliCheck succeeded [Detail] [Expand]
Validation passed for PoliCheck.
️️✔️SpellCheck succeeded [Detail] [Expand]
Validation passes for SpellCheck.
️️✔️Lint(RPaaS) succeeded [Detail] [Expand]
Validation passes for Lint(RPaaS).
️️✔️PR Summary succeeded [Detail] [Expand]
Validation passes for Summary.
️️✔️Automated merging requirements met succeeded [Detail] [Expand]
Swagger Generation Artifacts
️️✔️ApiDocPreview succeeded [Detail] [Expand]
Please click here to preview with your @microsoft account.
️⚠️ azure-sdk-for-python warning [Detail]
- For more instructions, please refer to the FAQ .
⚠️Warning in generating from f10b52645d21f0cbe068599582b24daaa251da5a. SDK Automation 14.0.0command sh scripts/automation_init.sh ../azure-sdk-for-python_tmp/initInput.json ../azure-sdk-for-python_tmp/initOutput.json cmderr [automation_init.sh] W: Target Packages (main/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list.d/azure-cli.list:1 and /etc/apt/sources.list.d/azure-cli.sources:1 cmderr [automation_init.sh] W: Target Packages (main/binary-all/Packages) is configured multiple times in /etc/apt/sources.list.d/azure-cli.list:1 and /etc/apt/sources.list.d/azure-cli.sources:1 cmderr [automation_init.sh] W: Target Translations (main/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list.d/azure-cli.list:1 and /etc/apt/sources.list.d/azure-cli.sources:1 cmderr [automation_init.sh] W: Target CNF (main/cnf/Commands-amd64) is configured multiple times in /etc/apt/sources.list.d/azure-cli.list:1 and /etc/apt/sources.list.d/azure-cli.sources:1 cmderr [automation_init.sh] W: Target CNF (main/cnf/Commands-all) is configured multiple times in /etc/apt/sources.list.d/azure-cli.list:1 and /etc/apt/sources.list.d/azure-cli.sources:1 cmderr [automation_init.sh] W: Target Packages (main/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list.d/azure-cli.list:1 and /etc/apt/sources.list.d/azure-cli.sources:1 cmderr [automation_init.sh] W: Target Packages (main/binary-all/Packages) is configured multiple times in /etc/apt/sources.list.d/azure-cli.list:1 and /etc/apt/sources.list.d/azure-cli.sources:1 cmderr [automation_init.sh] W: Target Translations (main/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list.d/azure-cli.list:1 and /etc/apt/sources.list.d/azure-cli.sources:1 cmderr [automation_init.sh] W: Target CNF (main/cnf/Commands-amd64) is configured multiple times in /etc/apt/sources.list.d/azure-cli.list:1 and /etc/apt/sources.list.d/azure-cli.sources:1 cmderr [automation_init.sh] W: Target CNF (main/cnf/Commands-all) is configured multiple times in /etc/apt/sources.list.d/azure-cli.list:1 and /etc/apt/sources.list.d/azure-cli.sources:1 cmderr [automation_init.sh] WARNING: Skipping azure-nspkg as it is not installed. cmderr [automation_init.sh] npm notice cmderr [automation_init.sh] npm notice New minor version of npm available! 10.7.0 -> 10.8.1 cmderr [automation_init.sh] npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.8.1 cmderr [automation_init.sh] npm notice To update run: npm install -g [email protected] cmderr [automation_init.sh] npm notice command sh scripts/automation_generate.sh ../azure-sdk-for-python_tmp/generateInput.json ../azure-sdk-for-python_tmp/generateOutput.json
️✔️azure-mgmt-hardwaresecuritymodules [Preview SDK Changes]
️❌ azure-resource-manager-schemas failed [Detail]
- For more instructions, please refer to the FAQ .
❌Code Generator Failed in generating from f10b52645d21f0cbe068599582b24daaa251da5a. Schema Automation 14.0.0command .sdkauto/initScript.sh ../azure-resource-manager-schemas_tmp/initInput.json ../azure-resource-manager-schemas_tmp/initOutput.json cmderr [initScript.sh] Submodule 'bicep-types-az' (https://github.com/Azure/bicep-types-az) registered for path 'bicep-types-az' cmderr [initScript.sh] Cloning into '/mnt/vss/_work/1/s/azure-resource-manager-schemas/bicep-types-az'... cmderr [initScript.sh] Submodule 'bicep-types' (https://github.com/Azure/bicep-types) registered for path 'bicep-types-az/bicep-types' cmderr [initScript.sh] Cloning into '/mnt/vss/_work/1/s/azure-resource-manager-schemas/bicep-types-az/bicep-types'... cmderr [initScript.sh] npm notice cmderr [initScript.sh] npm notice New minor version of npm available! 10.7.0 -> 10.8.1 cmderr [initScript.sh] npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.8.1 cmderr [initScript.sh] npm notice To update run: npm install -g [email protected] cmderr [initScript.sh] npm notice error Script return with result [failed] code [1] signal [null] cwd [azure-resource-manager-schemas]: .sdkauto/initScript.sh warn Warning: File azure-resource-manager-schemas_tmp/initOutput.json not found to read. Please re-run the pipeline if the error is transitient error or report this issue through https://aka.ms/azsdk/support/specreview-channel. command .sdkauto/generateScript.sh ../azure-resource-manager-schemas_tmp/generateInput.json ../azure-resource-manager-schemas_tmp/generateOutput.json cmderr [generateScript.sh] /mnt/vss/_work/1/a/unified-pipeline-runtime/common/temp/node_modules/.pnpm/[email protected][email protected]/node_modules/ts-node/src/index.ts:500 cmderr [generateScript.sh] return new TSError(diagnosticText, diagnosticCodes) cmderr [generateScript.sh] ^ cmderr [generateScript.sh] TSError: ⨯ Unable to compile TypeScript: cmderr [generateScript.sh] cmd/generateall.ts(6,20): error TS2307: Cannot find module 'colors' or its corresponding type declarations. cmderr [generateScript.sh] cmd/generateall.ts(10,19): error TS2307: Cannot find module 'yargs' or its corresponding type declarations. cmderr [generateScript.sh] cmd/generateall.ts(11,18): error TS2307: Cannot find module 'path' or its corresponding type declarations. cmderr [generateScript.sh] cmd/generateall.ts(13,35): error TS2307: Cannot find module 'fs' or its corresponding type declarations. cmderr [generateScript.sh] cmd/generateall.ts(14,23): error TS2307: Cannot find module 'strip-ansi' or its corresponding type declarations. cmderr [generateScript.sh] cmd/generateall.ts(42,9): error TS2584: Cannot find name 'console'. Do you need to change your target library? Try changing the 'lib' compiler option to include 'dom'. cmderr [generateScript.sh] cmd/generateall.ts(53,9): error TS2584: Cannot find name 'console'. Do you need to change your target library? Try changing the 'lib' compiler option to include 'dom'. cmderr [generateScript.sh] cmd/generateall.ts(69,67): error TS7006: Parameter 'x' implicitly has an 'any' type. cmderr [generateScript.sh] cmd/generateall.ts(70,49): error TS7006: Parameter 'f' implicitly has an 'any' type. cmderr [generateScript.sh] cmd/generateall.ts(94,21): error TS2584: Cannot find name 'console'. Do you need to change your target library? Try changing the 'lib' compiler option to include 'dom'. cmderr [generateScript.sh] cmd/generateall.ts(105,21): error TS2584: Cannot find name 'console'. Do you need to change your target library? Try changing the 'lib' compiler option to include 'dom'. cmderr [generateScript.sh] cmd/generateall.ts(106,21): error TS2584: Cannot find name 'console'. Do you need to change your target library? Try changing the 'lib' compiler option to include 'dom'. cmderr [generateScript.sh] cmd/generateall.ts(157,13): error TS2591: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig. cmderr [generateScript.sh] at createTSError (/mnt/vss/_work/1/a/unified-pipeline-runtime/common/temp/node_modules/.pnpm/[email protected][email protected]/node_modules/ts-node/src/index.ts:500:12) cmderr [generateScript.sh] at reportTSError (/mnt/vss/_work/1/a/unified-pipeline-runtime/common/temp/node_modules/.pnpm/[email protected][email protected]/node_modules/ts-node/src/index.ts:504:19) cmderr [generateScript.sh] at getOutput (/mnt/vss/_work/1/a/unified-pipeline-runtime/common/temp/node_modules/.pnpm/[email protected][email protected]/node_modules/ts-node/src/index.ts:739:36) cmderr [generateScript.sh] at Object.compile (/mnt/vss/_work/1/a/unified-pipeline-runtime/common/temp/node_modules/.pnpm/[email protected][email protected]/node_modules/ts-node/src/index.ts:955:32) cmderr [generateScript.sh] at Module.m._compile (/mnt/vss/_work/1/a/unified-pipeline-runtime/common/temp/node_modules/.pnpm/[email protected][email protected]/node_modules/ts-node/src/index.ts:1043:43) cmderr [generateScript.sh] at Module._extensions..js (node:internal/modules/cjs/loader:1422:10) cmderr [generateScript.sh] at Object.require.extensions.<computed> [as .ts] (/mnt/vss/_work/1/a/unified-pipeline-runtime/common/temp/node_modules/.pnpm/[email protected][email protected]/node_modules/ts-node/src/index.ts:1046:12) cmderr [generateScript.sh] at Module.load (node:internal/modules/cjs/loader:1203:32) cmderr [generateScript.sh] at Function.Module._load (node:internal/modules/cjs/loader:1019:12) cmderr [generateScript.sh] at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:128:12) error Script return with result [failed] code [1] signal [null] cwd [azure-resource-manager-schemas]: .sdkauto/generateScript.sh warn Warning: Package processing is skipped as the SDK generation fails. Please look into the above generation errors or report this issue through https://aka.ms/azsdk/support/specreview-channel.
️️✔️ azure-sdk-for-go succeeded [Detail] [Expand]
- For more instructions, please refer to the FAQ .
️✔️Succeeded in generating from f10b52645d21f0cbe068599582b24daaa251da5a. SDK Automation 14.0.0command 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/hardwaresecuritymodules/armhardwaresecuritymodules [Preview SDK Changes] Breaking Change Detectedinfo [Changelog] ### Breaking Changes info [Changelog] info [Changelog] - Type of `SystemData.CreatedByType` has been changed from `*IdentityType` to `*CreatedByType` info [Changelog] - Type of `SystemData.LastModifiedByType` has been changed from `*IdentityType` to `*CreatedByType` info [Changelog] - Struct `DedicatedHsmOperation` has been removed info [Changelog] - Struct `DedicatedHsmOperationDisplay` has been removed info [Changelog] - Struct `DedicatedHsmOperationListResult` has been removed info [Changelog] - Struct `ResourceListResult` has been removed info [Changelog] - Field `ID` of struct `APIEntityReference` has been removed info [Changelog] - Field `ID` of struct `NetworkInterface` has been removed info [Changelog] - Field `DedicatedHsmOperationListResult` of struct `OperationsClientListResponse` has been removed info [Changelog] - Field `Location`, `SKU`, `Tags`, `Zones` of struct `Resource` has been removed info [Changelog] info [Changelog] ### Features Added info [Changelog] info [Changelog] - New enum type `ActionType` with values `ActionTypeInternal` info [Changelog] - New enum type `ActivationState` with values `ActivationStateActive`, `ActivationStateFailed`, `ActivationStateNotActivated`, `ActivationStateNotDefined`, `ActivationStateUnknown` info [Changelog] - New enum type `BackupRestoreOperationStatus` with values `BackupRestoreOperationStatusCancelled`, `BackupRestoreOperationStatusFailed`, `BackupRestoreOperationStatusInProgress`, `BackupRestoreOperationStatusSucceeded` info [Changelog] - New enum type `CloudHsmClusterSKUFamily` with values `CloudHsmClusterSKUFamilyB` info [Changelog] - New enum type `CloudHsmClusterSKUName` with values `CloudHsmClusterSKUNameStandardB1`, `CloudHsmClusterSKUNameStandardB10` info [Changelog] - New enum type `CreatedByType` with values `CreatedByTypeApplication`, `CreatedByTypeKey`, `CreatedByTypeManagedIdentity`, `CreatedByTypeUser` info [Changelog] - New enum type `ManagedServiceIdentityType` with values `ManagedServiceIdentityTypeNone`, `ManagedServiceIdentityTypeSystemAssigned`, `ManagedServiceIdentityTypeSystemAssignedUserAssigned`, `ManagedServiceIdentityTypeUserAssigned` info [Changelog] - New enum type `Origin` with values `OriginSystem`, `OriginUser`, `OriginUserSystem` info [Changelog] - New enum type `PrivateEndpointConnectionProvisioningState` with values `PrivateEndpointConnectionProvisioningStateCanceled`, `PrivateEndpointConnectionProvisioningStateCreating`, `PrivateEndpointConnectionProvisioningStateDeleting`, `PrivateEndpointConnectionProvisioningStateFailed`, `PrivateEndpointConnectionProvisioningStateInternalError`, `PrivateEndpointConnectionProvisioningStateSucceeded`, `PrivateEndpointConnectionProvisioningStateUpdating` info [Changelog] - New enum type `PrivateEndpointServiceConnectionStatus` with values `PrivateEndpointServiceConnectionStatusApproved`, `PrivateEndpointServiceConnectionStatusPending`, `PrivateEndpointServiceConnectionStatusRejected` info [Changelog] - New enum type `ProvisioningState` with values `ProvisioningStateCanceled`, `ProvisioningStateDeleting`, `ProvisioningStateFailed`, `ProvisioningStateProvisioning`, `ProvisioningStateSucceeded` info [Changelog] - New function `*ClientFactory.NewCloudHsmClusterBackupStatusClient() *CloudHsmClusterBackupStatusClient` info [Changelog] - New function `*ClientFactory.NewCloudHsmClusterPrivateEndpointConnectionsClient() *CloudHsmClusterPrivateEndpointConnectionsClient` info [Changelog] - New function `*ClientFactory.NewCloudHsmClusterPrivateLinkResourcesClient() *CloudHsmClusterPrivateLinkResourcesClient` info [Changelog] - New function `*ClientFactory.NewCloudHsmClusterRestoreStatusClient() *CloudHsmClusterRestoreStatusClient` info [Changelog] - New function `*ClientFactory.NewCloudHsmClustersClient() *CloudHsmClustersClient` info [Changelog] - New function `*ClientFactory.NewPrivateEndpointConnectionsClient() *PrivateEndpointConnectionsClient` info [Changelog] - New function `NewCloudHsmClusterBackupStatusClient(string, azcore.TokenCredential, *arm.ClientOptions) (*CloudHsmClusterBackupStatusClient, error)` info [Changelog] - New function `*CloudHsmClusterBackupStatusClient.Get(context.Context, string, string, string, *CloudHsmClusterBackupStatusClientGetOptions) (CloudHsmClusterBackupStatusClientGetResponse, error)` info [Changelog] - New function `NewCloudHsmClusterPrivateEndpointConnectionsClient(string, azcore.TokenCredential, *arm.ClientOptions) (*CloudHsmClusterPrivateEndpointConnectionsClient, error)` info [Changelog] - New function `*CloudHsmClusterPrivateEndpointConnectionsClient.Create(context.Context, string, string, string, PrivateEndpointConnection, *CloudHsmClusterPrivateEndpointConnectionsClientCreateOptions) (CloudHsmClusterPrivateEndpointConnectionsClientCreateResponse, error)` info [Changelog] - New function `*CloudHsmClusterPrivateEndpointConnectionsClient.BeginDelete(context.Context, string, string, string, *CloudHsmClusterPrivateEndpointConnectionsClientBeginDeleteOptions) (*runtime.Poller[CloudHsmClusterPrivateEndpointConnectionsClientDeleteResponse], error)` info [Changelog] - New function `*CloudHsmClusterPrivateEndpointConnectionsClient.Get(context.Context, string, string, string, *CloudHsmClusterPrivateEndpointConnectionsClientGetOptions) (CloudHsmClusterPrivateEndpointConnectionsClientGetResponse, error)` info [Changelog] - New function `NewCloudHsmClusterPrivateLinkResourcesClient(string, azcore.TokenCredential, *arm.ClientOptions) (*CloudHsmClusterPrivateLinkResourcesClient, error)` info [Changelog] - New function `*CloudHsmClusterPrivateLinkResourcesClient.NewListByCloudHsmClusterPager(string, string, *CloudHsmClusterPrivateLinkResourcesClientListByCloudHsmClusterOptions) *runtime.Pager[CloudHsmClusterPrivateLinkResourcesClientListByCloudHsmClusterResponse]` info [Changelog] - New function `NewCloudHsmClusterRestoreStatusClient(string, azcore.TokenCredential, *arm.ClientOptions) (*CloudHsmClusterRestoreStatusClient, error)` info [Changelog] - New function `*CloudHsmClusterRestoreStatusClient.Get(context.Context, string, string, string, *CloudHsmClusterRestoreStatusClientGetOptions) (CloudHsmClusterRestoreStatusClientGetResponse, error)` info [Changelog] - New function `NewCloudHsmClustersClient(string, azcore.TokenCredential, *arm.ClientOptions) (*CloudHsmClustersClient, error)` info [Changelog] - New function `*CloudHsmClustersClient.BeginCreateOrUpdate(context.Context, string, string, CloudHsmCluster, *CloudHsmClustersClientBeginCreateOrUpdateOptions) (*runtime.Poller[CloudHsmClustersClientCreateOrUpdateResponse], error)` info [Changelog] - New function `*CloudHsmClustersClient.BeginDelete(context.Context, string, string, *CloudHsmClustersClientBeginDeleteOptions) (*runtime.Poller[CloudHsmClustersClientDeleteResponse], error)` info [Changelog] - New function `*CloudHsmClustersClient.Get(context.Context, string, string, *CloudHsmClustersClientGetOptions) (CloudHsmClustersClientGetResponse, error)` info [Changelog] - New function `*CloudHsmClustersClient.NewListByResourceGroupPager(string, *CloudHsmClustersClientListByResourceGroupOptions) *runtime.Pager[CloudHsmClustersClientListByResourceGroupResponse]` info [Changelog] - New function `*CloudHsmClustersClient.NewListBySubscriptionPager(*CloudHsmClustersClientListBySubscriptionOptions) *runtime.Pager[CloudHsmClustersClientListBySubscriptionResponse]` info [Changelog] - New function `*CloudHsmClustersClient.BeginRestore(context.Context, string, string, RestoreRequestProperties, *CloudHsmClustersClientBeginRestoreOptions) (*runtime.Poller[CloudHsmClustersClientRestoreResponse], error)` info [Changelog] - New function `*CloudHsmClustersClient.BeginUpdate(context.Context, string, string, CloudHsmClusterPatchParameters, *CloudHsmClustersClientBeginUpdateOptions) (*runtime.Poller[CloudHsmClustersClientUpdateResponse], error)` info [Changelog] - New function `*CloudHsmClustersClient.BeginValidateBackup(context.Context, string, string, *CloudHsmClustersClientBeginValidateBackupOptions) (*runtime.Poller[CloudHsmClustersClientValidateBackupResponse], error)` info [Changelog] - New function `*CloudHsmClustersClient.BeginValidateRestore(context.Context, string, string, *CloudHsmClustersClientBeginValidateRestoreOptions) (*runtime.Poller[CloudHsmClustersClientValidateRestoreResponse], error)` info [Changelog] - New function `*CloudHsmClustersClient.BeginBackup(context.Context, string, string, *CloudHsmClustersClientBeginBackupOptions) (*runtime.Poller[CloudHsmClustersClientBackupResponse], error)` info [Changelog] - New function `NewPrivateEndpointConnectionsClient(string, azcore.TokenCredential, *arm.ClientOptions) (*PrivateEndpointConnectionsClient, error)` info [Changelog] - New function `*PrivateEndpointConnectionsClient.NewListByCloudHsmClusterPager(string, string, *PrivateEndpointConnectionsClientListByCloudHsmClusterOptions) *runtime.Pager[PrivateEndpointConnectionsClientListByCloudHsmClusterResponse]` info [Changelog] - New struct `BackupRequestProperties` info [Changelog] - New struct `BackupRestoreBaseResult` info [Changelog] - New struct `BackupRestoreRequestBaseProperties` info [Changelog] - New struct `BackupResult` info [Changelog] - New struct `CloudHsmCluster` info [Changelog] - New struct `CloudHsmClusterListResult` info [Changelog] - New struct `CloudHsmClusterPatchParameters` info [Changelog] - New struct `CloudHsmClusterProperties` info [Changelog] - New struct `CloudHsmClusterResource` info [Changelog] - New struct `CloudHsmClusterSKU` info [Changelog] - New struct `CloudHsmProperties` info [Changelog] - New struct `ErrorAdditionalInfo` info [Changelog] - New struct `ErrorDetail` info [Changelog] - New struct `ErrorResponse` info [Changelog] - New struct `ManagedServiceIdentity` info [Changelog] - New struct `Operation` info [Changelog] - New struct `OperationDisplay` info [Changelog] - New struct `OperationListResult` info [Changelog] - New struct `PrivateEndpoint` info [Changelog] - New struct `PrivateEndpointConnection` info [Changelog] - New struct `PrivateEndpointConnectionListResult` info [Changelog] - New struct `PrivateEndpointConnectionProperties` info [Changelog] - New struct `PrivateLinkResource` info [Changelog] - New struct `PrivateLinkResourceListResult` info [Changelog] - New struct `PrivateLinkResourceProperties` info [Changelog] - New struct `PrivateLinkServiceConnectionState` info [Changelog] - New struct `ProxyResource` info [Changelog] - New struct `RestoreRequestProperties` info [Changelog] - New struct `RestoreResult` info [Changelog] - New struct `TrackedResource` info [Changelog] - New struct `UserAssignedIdentity` info [Changelog] - New field `ResourceID` in struct `APIEntityReference` info [Changelog] - New field `ResourceID` in struct `NetworkInterface` info [Changelog] - New anonymous field `OperationListResult` in struct `OperationsClientListResponse` info [Changelog] - New field `SystemData` in struct `Resource` info [Changelog] info [Changelog] Total 13 breaking change(s), 145 additive change(s).
Present SDK breaking changes suppressions No suppression file added.
Absent SDK breaking changes suppressions - Field `DedicatedHsmOperationListResult` of struct `OperationsClientListResponse` has been removed - Field `ID` of struct `APIEntityReference` has been removed - Field `ID` of struct `NetworkInterface` has been removed - Field `Location`, `SKU`, `Tags`, `Zones` of struct `Resource` has been removed - Struct `DedicatedHsmOperationDisplay` has been removed - Struct `DedicatedHsmOperationListResult` has been removed - Struct `DedicatedHsmOperation` has been removed - Struct `ResourceListResult` has been removed - Type of `SystemData.CreatedByType` has been changed from `*IdentityType` to `*CreatedByType` - Type of `SystemData.LastModifiedByType` has been changed from `*IdentityType` to `*CreatedByType`
Parse Suppression File Errors No suppression file added.
Please refer to the guidance for suppressing SDK breaking changes.
️⚠️ azure-powershell warning [Detail]
- For more instructions, please refer to the FAQ .
⚠️Warning in generating from f10b52645d21f0cbe068599582b24daaa251da5a. SDK Automation 14.0.0command 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.hardwaresecuritymodules.DefaultTag [Preview SDK Changes]
️️✔️ azure-sdk-for-java succeeded [Detail] [Expand]
- For more instructions, please refer to the FAQ .
️✔️Succeeded in generating from f10b52645d21f0cbe068599582b24daaa251da5a. SDK Automation 14.0.0command ./eng/mgmt/automation/init.sh ../azure-sdk-for-java_tmp/initInput.json ../azure-sdk-for-java_tmp/initOutput.json command ./eng/mgmt/automation/generate.py ../azure-sdk-for-java_tmp/generateInput.json ../azure-sdk-for-java_tmp/generateOutput.json
️✔️azure-resourcemanager-hardwaresecuritymodules [Preview SDK Changes]info [Changelog]
Generated ApiView
| Language | Package Name | ApiView Link |
|---|---|---|
| Go | sdk/resourcemanager/hardwaresecuritymodules/armhardwaresecuritymodules | https://apiview.dev/Assemblies/Review/f41402790b9144c8ab8fd2377a592ed8?revisionId=e4a200410eaf40f496d3442ea8c29e76 |
| Java | azure-resourcemanager-hardwaresecuritymodules | https://apiview.dev/Assemblies/Review/d242e2e1b4124f1b88d8260f77e624b1?revisionId=b4612ee78553488aaf19f11464a2864b |
| Swagger | Microsoft.HardwareSecurityModules | https://apiview.dev/Assemblies/Review/a6149fb1577e4af2a73a0055ae8f3621?revisionId=92d16426e2a94e4f84416d3d53c4ec08 |
PR validation pipeline can not start as the pull request is not merged or mergeable - most likely it has merge conflicts.
PR validation pipeline can not start as the pull request is not merged or mergeable - most likely it has merge conflicts.
/azp run TypeSpec Requirement
Azure Pipelines successfully started running 1 pipeline(s).
PR validation pipeline can not start as the pull request is not merged or mergeable - most likely it has merge conflicts.
PR validation pipeline can not start as the pull request is not merged or mergeable - most likely it has merge conflicts.
Hi @emmeliaAra, please fix SDK azure-sdk-for-go CI fail: Duplicate Schema named 'ErrorResponse'.
duplicate(v5, v6):
- https://github.com/Azure/azure-rest-api-specs/blob/c95baaa242fb580c65eba71e3693ab0b487ff74b/specification/hardwaresecuritymodules/resource-manager/Microsoft.HardwareSecurityModules/stable/2024-06-30/operations.json#L59
- https://github.com/Azure/azure-rest-api-specs/blob/c95baaa242fb580c65eba71e3693ab0b487ff74b/specification/hardwaresecuritymodules/resource-manager/Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L88
PR validation pipeline can not start as the pull request is not merged or mergeable - most likely it has merge conflicts.
Hi @emmeliaAra, please fix
SDK azure-sdk-for-goCI fail:Duplicate Schema named 'ErrorResponse'.duplicate(v5, v6):
- https://github.com/Azure/azure-rest-api-specs/blob/c95baaa242fb580c65eba71e3693ab0b487ff74b/specification/hardwaresecuritymodules/resource-manager/Microsoft.HardwareSecurityModules/stable/2024-06-30/operations.json#L59
- https://github.com/Azure/azure-rest-api-specs/blob/c95baaa242fb580c65eba71e3693ab0b487ff74b/specification/hardwaresecuritymodules/resource-manager/Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L88
Hi @Alancere, Thanks! this resolved the duplicate schema issue. Can you review Breaking change for SDK please?
Hi @emmeliaAra, please fix
SDK azure-sdk-for-goCI fail:Duplicate Schema named 'ErrorResponse'. duplicate(v5, v6):
- https://github.com/Azure/azure-rest-api-specs/blob/c95baaa242fb580c65eba71e3693ab0b487ff74b/specification/hardwaresecuritymodules/resource-manager/Microsoft.HardwareSecurityModules/stable/2024-06-30/operations.json#L59
- https://github.com/Azure/azure-rest-api-specs/blob/c95baaa242fb580c65eba71e3693ab0b487ff74b/specification/hardwaresecuritymodules/resource-manager/Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L88
Hi @Alancere, Thanks! this resolved the duplicate schema issue. Can you review Breaking change for SDK please?
When the PR is Ready for review and after ARM reviewed, I will review GO Breaking Change.
/azp run
Azure Pipelines successfully started running 4 pipeline(s).
Hi @mentat9, this PR is created to release a new version for CloudHsm service (cloudhsm.json). There are not changes to DedicatedHsm Service (dedicatedHsm.json), we are just updating the spec to include the latest API version.
All the LintDiff validations related to DHSM existed before the current PR submission and I believe they resurfaced because of changing the DedicatedHsmName.name from "name" to "dedicatedHsmName" parameter. I made some updates based on your feedback but I cannot make any changes to the APIs (result codes) since we are not actually making any changes to the service. Can these LindDiff Validation be approved ?
Validations before making the change has all LindDiff errors listed in The following errors/warnings exist before current PR submission section. https://github.com/Azure/azure-rest-api-specs/pull/28651/checks?check_run_id=26590485355
@emmeliaAra please finish due diligence section
All the LintDiff validations related to DHSM existed before the current PR submission and I believe they resurfaced because of changing the DedicatedHsmName.name from "name" to "dedicatedHsmName" parameter
This is possible. Given that its a new api-version, I'm of the opinion that you should really fix some of them anyway! I'll highlight which ones.
'>❌ XmsPageableForListCalls x-ms-pageable extension must be specified for LIST APIs. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L752
You should ideally be fixing this, declaring nextLink its an ARM requirement for 'list resources' apis, and IMO actually a bugfix, but see below for more about this API...
❌ GetCollectionOnlyHasValueAndNextLink Get endpoints for collections of resources must only have the value and nextLink properties in their model. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L778
You should really fix this, but maybe not in the way you are thinking - the problem the Linter rule sees here is that the URI needs to work like a LIST operation (list 'pendings' resource type), not a GET operation:
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HardwareSecurityModules/cloudHsmClusters/{cloudHsmClusterName}/backup/{jobId}/pending
Same API. This would be a breaking change, but since it's violating ARM requirements, it seems to me personally, like something you should be working to fix somehow. Maybe there's an alternate approach that will allow fixing this that doesn't run afoul of breaking change guidelines, like deprecating this API, and introducing a new one. Or are you already doing that?
❌ LroPatch202 The async patch operation should return 202. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/dedicatedhsm.json#L131 RPC-Patch-V1-06, RPC-Async-V1-08
"operationId": "DedicatedHsm_Update",
"x-ms-long-running-operation": true,
[ARMBlockingComment] You marked Update with x-ms-long-running-operation as `true, this is why the linter thinks it needs to return 202. It looks like you really do return 200 with provisioningStatus which is traditionally acceptable. But, I think you'd probably also want these sprinklings, for the sake of SDK codegen:
"x-ms-long-running-operation-options" : {
"final-state-via" : "original-uri",
"final-state-schema": "#/definitions/DedicatedHsm"
},
But this might look like an SDK breaking change, I'm not really sure what the diff will be, maybe its better to pretend you're NOT a long running operation, if today your SDK is forcing customers to check provisioningState manually.
❌ LroLocationHeader A 202 response should include an Location response header. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/dedicatedhsm.json#L179 RPC-Async-V1-07
This is failing because its a new linter rule, with more strict requirement to document Location headers, which your api should already be returning, if it returns 202 Accepted. Please check the behavior of your old API, and then document that behavior, and it should be effectively nonbreaking, since its just better doc / a doc bugfix, and not going to impact SDK codegen.
What is it exactly, that you're maintaining API compatibility with, for the error response format, when you add NEW apis? Is this just about having one error response type across cloudHSM and dedicatedHSM?
It just seems like you're not really doing that if you have two different error types for it, right? DedicatedHsmError and CloudHsmError.
(Would this be enough impetus to switch to using commontypes error definition? Or would that not be benign enough? Is it better to just use CloudHsmError in both places, or use DedicatedHsmError one place, CommonTypes the other?? @mikekistler)
Hi @TimLovellSmith, Thanks for the feedback.
- '>❌ XmsPageableForListCalls x-ms-pageable extension must be specified for LIST APIs. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L752
--- This is a GET API but does not return a list of objects (array) as the return type. Do we still need the next link ? Based on the Rule documentation here the value type must be 'array' for the x-ms-pageable to be required. Same applies for this validation: Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L974
- ❌ GetCollectionOnlyHasValueAndNextLink Get endpoints for collections of resources must only have the value and nextLink properties in their model. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L778
You should really fix this, but maybe not in the way you are thinking - the problem the Linter rule sees here is that the URI needs to work like a LIST operation (list 'pendings' resource type), not a GET operation:
--- Do you mean we should make this API return a list and not a GET ? This API will return the status of the specified job Id. This is a requirement from Azure Backup internal team to allow integration with the service.
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HardwareSecurityModules/cloudHsmClusters/{cloudHsmClusterName}/backup/{jobId}/pending
Same API. This would be a breaking change, but since it's violating ARM requirements, it seems to me personally, like something you should be working to fix somehow. Maybe there's an alternate approach that will allow fixing this that doesn't run afoul of breaking change guidelines, like deprecating this API, and introducing a new one. Or are you already doing that?
--- Are you referring to the /{jobId}/pending API ? If yes, this is a new API that we are introducing in this new API Version. Could you explain what is the breaking change here ?
What is it exactly, that you're maintaining API compatibility with, for the error response format, when you add NEW apis? Is this just about having one error response type across cloudHSM and dedicatedHSM?
It just seems like you're not really doing that if you have two different error types for it, right? DedicatedHsmError and CloudHsmError.
(Would this be enough impetus to switch to using commontypes error definition? Or would that not be benign enough? Is it better to just use CloudHsmError in both places, or use DedicatedHsmError one place, CommonTypes the other?? @mikekistler)
We are using the CommonTypes ErrorResponse for Cloudhsm.json and DedicatedHsmError for Dedicated HSM. Cloud HSM is a nre service and we updated the ErrorCode to reflect the ARM recommendation. We cannot modify Dedicated HSM Service as we are not making any changes to the service in this new version.
❌ GetCollectionOnlyHasValueAndNextLink Get endpoints for collections of resources must only have the value and nextLink properties in their model. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L778 You should really fix this, but maybe not in the way you are thinking - the problem the Linter rule sees here is that the URI needs to work like a LIST operation (list 'pendings' resource type), not a GET operation:
--- Do you mean we should make this API return a list and not a GET ? This API will return the status of the specified job Id. This is a requirement from Azure Backup internal team to allow integration with the service.
What I mean is that the API and its URI pattern don't match. ARM path segments have to follow the patterns:
/collection/item/collection/item/collection [for GET only, returns a list] /collection/item/collection/item/collection/item /collection/item/collection/item/collection/item/action [for POST only]
etc.
and your API mixes these up. This is a problem when ARM assumes it can parse collection GET responses as lists.
❌ GetCollectionOnlyHasValueAndNextLink Get endpoints for collections of resources must only have the value and nextLink properties in their model. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L778 You should really fix this, but maybe not in the way you are thinking - the problem the Linter rule sees here is that the URI needs to work like a LIST operation (list 'pendings' resource type), not a GET operation:
--- Do you mean we should make this API return a list and not a GET ? This API will return the status of the specified job Id. This is a requirement from Azure Backup internal team to allow integration with the service.
What I mean is that the API and its URI pattern don't match. ARM path segments have to follow the patterns:
/collection/item/collection/item/collection [for GET only, returns a list] /collection/item/collection/item/collection/item /collection/item/collection/item/collection/item/action [for POST only]
etc.
and your API mixes these up. This is a problem when ARM assumes it can parse collection GET responses as lists.
Will this work for the GET APIs ? "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HardwareSecurityModules/cloudHsmClusters/{cloudHsmClusterName}/backupOperationStatus/{jobId}"
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HardwareSecurityModules/cloudHsmClusters/{cloudHsmClusterName}/restoreOperationStatus/{jobId}"
❌ GetCollectionOnlyHasValueAndNextLink Get endpoints for collections of resources must only have the value and nextLink properties in their model. Location: Microsoft.HardwareSecurityModules/stable/2024-06-30/cloudhsm.json#L778 You should really fix this, but maybe not in the way you are thinking - the problem the Linter rule sees here is that the URI needs to work like a LIST operation (list 'pendings' resource type), not a GET operation:
--- Do you mean we should make this API return a list and not a GET ? This API will return the status of the specified job Id. This is a requirement from Azure Backup internal team to allow integration with the service. What I mean is that the API and its URI pattern don't match. ARM path segments have to follow the patterns: /collection/item/collection/item/collection [for GET only, returns a list] /collection/item/collection/item/collection/item /collection/item/collection/item/collection/item/action [for POST only] etc. and your API mixes these up. This is a problem when ARM assumes it can parse collection GET responses as lists.
Will this work for the GET APIs ? "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HardwareSecurityModules/cloudHsmClusters/{cloudHsmClusterName}/backupOperationStatus/{jobId}"
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HardwareSecurityModules/cloudHsmClusters/{cloudHsmClusterName}/restoreOperationStatus/{jobId}"
I think so! When I see it that way, I do find myself wondering whether they needed to be separate paths, or if they could have just been one general purpose operationResults path, but you may well have some good reasons....
What is it exactly, that you're maintaining API compatibility with, for the error response format, when you add NEW apis? Is this just about having one error response type across cloudHSM and dedicatedHSM? It just seems like you're not really doing that if you have two different error types for it, right? DedicatedHsmError and CloudHsmError. (Would this be enough impetus to switch to using commontypes error definition? Or would that not be benign enough? Is it better to just use CloudHsmError in both places, or use DedicatedHsmError one place, CommonTypes the other?? @mikekistler)
We are using the CommonTypes ErrorResponse for Cloudhsm.json and DedicatedHsmError for Dedicated HSM. Cloud HSM is a nre service and we updated the ErrorCode to reflect the ARM recommendation. We cannot modify Dedicated HSM Service as we are not making any changes to the service in this new version.
Maybe I just forgot, but I don't think I understand what you mean by 'nre service'.
I don't understand the claim that you're not making any changes to Dedicated HRM service in this new version. You're adding support for Dedicated HRM service in this new version right, isn't that already a really big change?
What is it exactly, that you're maintaining API compatibility with, for the error response format, when you add NEW apis? Is this just about having one error response type across cloudHSM and dedicatedHSM? It just seems like you're not really doing that if you have two different error types for it, right? DedicatedHsmError and CloudHsmError. (Would this be enough impetus to switch to using commontypes error definition? Or would that not be benign enough? Is it better to just use CloudHsmError in both places, or use DedicatedHsmError one place, CommonTypes the other?? @mikekistler)
We are using the CommonTypes ErrorResponse for Cloudhsm.json and DedicatedHsmError for Dedicated HSM. Cloud HSM is a nre service and we updated the ErrorCode to reflect the ARM recommendation. We cannot modify Dedicated HSM Service as we are not making any changes to the service in this new version.
Maybe I just forgot, but I don't think I understand what you mean by 'nre service'.
I don't understand the claim that you're not making any changes to Dedicated HRM service in this new version. You're adding support for Dedicated HRM service in this new version right, isn't that already a really big change?
Typo sorry, It is a 'new service'.
We are releasing a new version for Cloud HSM service and based on ARM guidelines we need to update the version for all RPs under the namespace so I created version 2024-06-30 for Dedicated HSM service as well, but we are not making any API model changes or service changes to to Dedicated HSM service. Hope this makes sense.
What is it exactly, that you're maintaining API compatibility with, for the error response format, when you add NEW apis? Is this just about having one error response type across cloudHSM and dedicatedHSM? It just seems like you're not really doing that if you have two different error types for it, right? DedicatedHsmError and CloudHsmError. (Would this be enough impetus to switch to using commontypes error definition? Or would that not be benign enough? Is it better to just use CloudHsmError in both places, or use DedicatedHsmError one place, CommonTypes the other?? @mikekistler)
We are using the CommonTypes ErrorResponse for Cloudhsm.json and DedicatedHsmError for Dedicated HSM. Cloud HSM is a nre service and we updated the ErrorCode to reflect the ARM recommendation. We cannot modify Dedicated HSM Service as we are not making any changes to the service in this new version.
Maybe I just forgot, but I don't think I understand what you mean by 'nre service'. I don't understand the claim that you're not making any changes to Dedicated HRM service in this new version. You're adding support for Dedicated HRM service in this new version right, isn't that already a really big change?
Typo sorry, It is a 'new service'.
We are releasing a new version for Cloud HSM service and based on ARM guidelines we need to update the version for all RPs under the namespace so I created version 2024-06-30 for Dedicated HSM service as well, but we are not making any API model changes or service changes to to Dedicated HSM service. Hope this makes sense.
What you're saying makes sense in terms of how you want to organize the work, but it doesn't fit well with our process -- if it looks like you're creating a new api version of both services, so that's what we review and then ship.
In this case maybe that's actually a good thing, even for customers, since it will help keep the APIs more consistent, making it easy for them if they need to switch between HSM types
closing this PR because we need to submit Preview PR fist https://github.com/Azure/azure-rest-api-specs/pull/29712