From 8d2c8c5fcd0a106756fee2902c2300f2a320a161 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Thu, 20 Aug 2026 15:07:44 +0800 Subject: [PATCH 01/22] Promote latest common types lint rule Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- ...ersion-common-types-2026-08-20-14-00-00.md | 8 + .../typespec-azure-resource-manager/README.md | 93 ++-- .../src/linter.ts | 2 + ...st-version-of-common-types-must-be-used.md | 108 +++++ ...st-version-of-common-types-must-be-used.ts | 425 ++++++++++++++++++ ...rsion-of-common-types-must-be-used.test.ts | 292 ++++++++++++ .../src/rulesets/resource-manager.ts | 1 + .../reference/linter.md | 93 ++-- 8 files changed, 930 insertions(+), 92 deletions(-) create mode 100644 .chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md create mode 100644 packages/typespec-azure-resource-manager/src/rules/latest-version-of-common-types-must-be-used.md create mode 100644 packages/typespec-azure-resource-manager/src/rules/latest-version-of-common-types-must-be-used.ts create mode 100644 packages/typespec-azure-resource-manager/test/rules/latest-version-of-common-types-must-be-used.test.ts diff --git a/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md b/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md new file mode 100644 index 0000000000..39d11b95d2 --- /dev/null +++ b/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md @@ -0,0 +1,8 @@ +--- +changeKind: feature +packages: + - "@azure-tools/typespec-azure-resource-manager" + - "@azure-tools/typespec-azure-rulesets" +--- + +Add an ARM lint rule that warns when services select or emit older ARM common-types versions instead of the latest available common-types version. diff --git a/packages/typespec-azure-resource-manager/README.md b/packages/typespec-azure-resource-manager/README.md index 985a806392..a21cc26b46 100644 --- a/packages/typespec-azure-resource-manager/README.md +++ b/packages/typespec-azure-resource-manager/README.md @@ -26,52 +26,53 @@ Available ruleSets: ## Rules -| Name | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [`@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-child-resources`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-agent-base-type-child-resources) | Resources decorated with @azureBaseType for the Agent base type must have both a Conversation and a Response child resource. | -| [`@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-lifecycle-operations`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-agent-base-type-lifecycle-operations) | Conversation and Response child resources of an Agent must define create, read, update, and delete lifecycle operations. | -| [`@azure-tools/typespec-azure-resource-manager/use-relationship-required-properties`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-relationship-required-properties) | Resources decorated with @azureBaseType for the Relationship base type must be extension resources with the required Relationship schema. | -| [`@azure-tools/typespec-azure-resource-manager/arm-no-record`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-no-record) | Don't use Record types for ARM resources. | -| [`@azure-tools/typespec-azure-resource-manager/arm-no-path-casing-conflicts`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-no-path-casing-conflicts) | Operation paths must be unique when compared case-insensitively. | -| [`@azure-tools/typespec-azure-resource-manager/no-override-props`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/no-override-props) | Disallow redefining properties already defined in a base type. | -| [`@azure-tools/typespec-azure-resource-manager/arm-common-types-version`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-common-types-version) | Specify the ARM common-types version using @armCommonTypesVersion. | -| [`@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-delete-operation-response-codes) | Ensure delete operations have the appropriate status codes. | -| [`@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-put-operation-response-codes) | Ensure put operations have the appropriate status codes. | -| [`@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-post-operation-response-codes) | Ensure post operations have the appropriate status codes. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-action-no-segment`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-action-no-segment) | `@armResourceAction` should not be used with `@segment`. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-property`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-duplicate-property) | Warn about duplicate properties in resources. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-invalid-envelope-property) | Check for invalid resource envelope properties. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-version-format`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-invalid-version-format) | Check for valid versions. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-key-invalid-chars`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-key-invalid-chars) | Arm resource key must contain only alphanumeric characters. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-name-pattern`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-name-pattern) | The resource name parameter should be defined with a 'pattern' restriction. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-operation-response`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-operation-response) | [RPC 008]: PUT, GET, PATCH & LIST must return the same resource schema. | -| [`@azure-tools/typespec-azure-resource-manager/use-api-version`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-api-version) | Validate ARM Resource operations include the api-version parameter referencing Azure.ResourceManager.CommonTypes.ApiVersionParameter. | -| [`@azure-tools/typespec-azure-resource-manager/use-operation-decorator`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-operation-decorator) | Validate ARM Resource operations use the correct decorator for the HTTP verb. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-path-segment-invalid-chars`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-path-segment-invalid-chars) | Arm resource name must contain only alphanumeric characters. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-provisioning-state) | Check for properly configured provisioningState property. | -| [`@azure-tools/typespec-azure-resource-manager/version-progression`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/version-progression) | Validate that ARM service versions all use unique dates and are declared in strictly increasing chronological order. | -| [`@azure-tools/typespec-azure-resource-manager/arm-custom-resource-no-key`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-custom-resource-no-key) | Validate that custom resource contains a key property. | -| [`@azure-tools/typespec-azure-resource-manager/arm-custom-resource-usage-discourage`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-custom-resource-usage-discourage) | Verify the usage of @customAzureResource decorator. | -| [`@azure-tools/typespec-azure-resource-manager/arm-feature-file-usage-discourage`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-feature-file-usage-discourage) | Verify the usage of @featureFiles decorator. | -| [`@azure-tools/typespec-azure-resource-manager/beyond-nesting-levels`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/beyond-nesting-levels) | Tracked Resources must use 3 or fewer levels of nesting. | -| [`@azure-tools/typespec-azure-resource-manager/use-interface`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-interface) | Validate ARM Resource operations are defined inside an interface declaration. | -| [`@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/no-resource-delete-operation) | Check for resources that must have a delete operation. | -| [`@azure-tools/typespec-azure-resource-manager/empty-updateable-properties`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/empty-updateable-properties) | Should have updateable properties. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-interface-requires-decorator) | Each resource interface must have an @armResourceOperations decorator. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-invalid-action-verb) | Actions must be HTTP Post or Get operations. | -| [`@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/improper-subscription-list-operation) | Tenant and Extension resources should not define a list by subscription operation. | -| [`@azure-tools/typespec-azure-resource-manager/lro-location-header`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/lro-location-header) | A 202 response should include a Location response header. | -| [`@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/missing-x-ms-identifiers) | Array properties should describe their identifying properties with x-ms-identifiers. Decorate the property with @OpenAPI.extension("x-ms-identifiers", #[id-prop]) where "id-prop" is a list of the names of identifying properties in the item type. | -| [`@azure-tools/typespec-azure-resource-manager/no-response-body`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/no-response-body) | Check that the body is empty for 202 and 204 responses, and not empty for other success (2xx) responses. | -| [`@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/missing-operations-endpoint) | Check for missing Operations interface. | -| [`@azure-tools/typespec-azure-resource-manager/patch-envelope`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/patch-envelope) | Patch envelope properties should match the resource properties. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-patch`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-patch) | Validate ARM PATCH operations. | -| [`@azure-tools/typespec-azure-resource-manager/resource-name`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/resource-name) | Check the resource name. | -| [`@azure-tools/typespec-azure-resource-manager/retry-after`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/retry-after) | Check if retry-after header appears in response body. | -| [`@azure-tools/typespec-azure-resource-manager/unsupported-type`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/unsupported-type) | Check for unsupported ARM types. | -| [`@azure-tools/typespec-azure-resource-manager/secret-prop`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/secret-prop) | RPC-v1-13: Check that property with names indicating sensitive information(e.g. contains auth, password, token, secret, etc.) are marked with @secret decorator. | -| [`@azure-tools/typespec-azure-resource-manager/no-empty-model`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/no-empty-model) | ARM Properties with type:object that don't reference a model definition are not allowed. ARM doesn't allow generic type definitions as this leads to bad customer experience. | -| [`@azure-tools/typespec-azure-resource-manager/no-reserved-resource-property`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/no-reserved-resource-property) | Reserved property names (for example 'billingData') must not be present in a resource's property bag. The property name is matched case-insensitively. | +| Name | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [`@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-child-resources`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-agent-base-type-child-resources) | Resources decorated with @azureBaseType for the Agent base type must have both a Conversation and a Response child resource. | +| [`@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-lifecycle-operations`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-agent-base-type-lifecycle-operations) | Conversation and Response child resources of an Agent must define create, read, update, and delete lifecycle operations. | +| [`@azure-tools/typespec-azure-resource-manager/use-relationship-required-properties`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-relationship-required-properties) | Resources decorated with @azureBaseType for the Relationship base type must be extension resources with the required Relationship schema. | +| [`@azure-tools/typespec-azure-resource-manager/arm-no-record`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-no-record) | Don't use Record types for ARM resources. | +| [`@azure-tools/typespec-azure-resource-manager/arm-no-path-casing-conflicts`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-no-path-casing-conflicts) | Operation paths must be unique when compared case-insensitively. | +| [`@azure-tools/typespec-azure-resource-manager/no-override-props`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/no-override-props) | Disallow redefining properties already defined in a base type. | +| [`@azure-tools/typespec-azure-resource-manager/arm-common-types-version`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-common-types-version) | Specify the ARM common-types version using @armCommonTypesVersion. | +| [`@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-delete-operation-response-codes) | Ensure delete operations have the appropriate status codes. | +| [`@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-put-operation-response-codes) | Ensure put operations have the appropriate status codes. | +| [`@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-post-operation-response-codes) | Ensure post operations have the appropriate status codes. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-action-no-segment`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-action-no-segment) | `@armResourceAction` should not be used with `@segment`. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-property`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-duplicate-property) | Warn about duplicate properties in resources. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-invalid-envelope-property) | Check for invalid resource envelope properties. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-version-format`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-invalid-version-format) | Check for valid versions. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-key-invalid-chars`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-key-invalid-chars) | Arm resource key must contain only alphanumeric characters. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-name-pattern`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-name-pattern) | The resource name parameter should be defined with a 'pattern' restriction. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-operation-response`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-operation-response) | [RPC 008]: PUT, GET, PATCH & LIST must return the same resource schema. | +| [`@azure-tools/typespec-azure-resource-manager/use-api-version`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-api-version) | Validate ARM Resource operations include the api-version parameter referencing Azure.ResourceManager.CommonTypes.ApiVersionParameter. | +| [`@azure-tools/typespec-azure-resource-manager/use-operation-decorator`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-operation-decorator) | Validate ARM Resource operations use the correct decorator for the HTTP verb. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-path-segment-invalid-chars`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-path-segment-invalid-chars) | Arm resource name must contain only alphanumeric characters. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-provisioning-state) | Check for properly configured provisioningState property. | +| [`@azure-tools/typespec-azure-resource-manager/version-progression`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/version-progression) | Validate that ARM service versions all use unique dates and are declared in strictly increasing chronological order. | +| [`@azure-tools/typespec-azure-resource-manager/arm-custom-resource-no-key`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-custom-resource-no-key) | Validate that custom resource contains a key property. | +| [`@azure-tools/typespec-azure-resource-manager/arm-custom-resource-usage-discourage`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-custom-resource-usage-discourage) | Verify the usage of @customAzureResource decorator. | +| [`@azure-tools/typespec-azure-resource-manager/arm-feature-file-usage-discourage`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-feature-file-usage-discourage) | Verify the usage of @featureFiles decorator. | +| [`@azure-tools/typespec-azure-resource-manager/beyond-nesting-levels`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/beyond-nesting-levels) | Tracked Resources must use 3 or fewer levels of nesting. | +| [`@azure-tools/typespec-azure-resource-manager/use-interface`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-interface) | Validate ARM Resource operations are defined inside an interface declaration. | +| [`@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/no-resource-delete-operation) | Check for resources that must have a delete operation. | +| [`@azure-tools/typespec-azure-resource-manager/empty-updateable-properties`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/empty-updateable-properties) | Should have updateable properties. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-interface-requires-decorator) | Each resource interface must have an @armResourceOperations decorator. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-invalid-action-verb) | Actions must be HTTP Post or Get operations. | +| [`@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/improper-subscription-list-operation) | Tenant and Extension resources should not define a list by subscription operation. | +| [`@azure-tools/typespec-azure-resource-manager/lro-location-header`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/lro-location-header) | A 202 response should include a Location response header. | +| [`@azure-tools/typespec-azure-resource-manager/latest-version-of-common-types-must-be-used`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/latest-version-of-common-types-must-be-used) | ARM services must use the latest available ARM common-types version. | +| [`@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/missing-x-ms-identifiers) | Array properties should describe their identifying properties with x-ms-identifiers. Decorate the property with @OpenAPI.extension("x-ms-identifiers", #[id-prop]) where "id-prop" is a list of the names of identifying properties in the item type. | +| [`@azure-tools/typespec-azure-resource-manager/no-response-body`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/no-response-body) | Check that the body is empty for 202 and 204 responses, and not empty for other success (2xx) responses. | +| [`@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/missing-operations-endpoint) | Check for missing Operations interface. | +| [`@azure-tools/typespec-azure-resource-manager/patch-envelope`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/patch-envelope) | Patch envelope properties should match the resource properties. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-patch`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-patch) | Validate ARM PATCH operations. | +| [`@azure-tools/typespec-azure-resource-manager/resource-name`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/resource-name) | Check the resource name. | +| [`@azure-tools/typespec-azure-resource-manager/retry-after`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/retry-after) | Check if retry-after header appears in response body. | +| [`@azure-tools/typespec-azure-resource-manager/unsupported-type`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/unsupported-type) | Check for unsupported ARM types. | +| [`@azure-tools/typespec-azure-resource-manager/secret-prop`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/secret-prop) | RPC-v1-13: Check that property with names indicating sensitive information(e.g. contains auth, password, token, secret, etc.) are marked with @secret decorator. | +| [`@azure-tools/typespec-azure-resource-manager/no-empty-model`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/no-empty-model) | ARM Properties with type:object that don't reference a model definition are not allowed. ARM doesn't allow generic type definitions as this leads to bad customer experience. | +| [`@azure-tools/typespec-azure-resource-manager/no-reserved-resource-property`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/no-reserved-resource-property) | Reserved property names (for example 'billingData') must not be present in a resource's property bag. The property name is matched case-insensitively. | ## Decorators diff --git a/packages/typespec-azure-resource-manager/src/linter.ts b/packages/typespec-azure-resource-manager/src/linter.ts index 671fdbea61..296e991d9f 100644 --- a/packages/typespec-azure-resource-manager/src/linter.ts +++ b/packages/typespec-azure-resource-manager/src/linter.ts @@ -25,6 +25,7 @@ import { armResourceProvisioningStateRule } from "./rules/arm-resource-provision import { beyondNestingRule } from "./rules/beyond-nesting-levels.js"; import { envelopePropertiesRules } from "./rules/envelope-properties.js"; import { improperSubscriptionListOperationRule } from "./rules/improper-subscription-list-operation.js"; +import { latestVersionOfCommonTypesMustBeUsedRule } from "./rules/latest-version-of-common-types-must-be-used.js"; import { lroLocationHeaderRule } from "./rules/lro-location-header.js"; import { missingXmsIdentifiersRule } from "./rules/missing-x-ms-identifiers.js"; import { noEmptyModel } from "./rules/no-empty-model.js"; @@ -78,6 +79,7 @@ const rules = [ armResourceInvalidActionVerbRule, improperSubscriptionListOperationRule, lroLocationHeaderRule, + latestVersionOfCommonTypesMustBeUsedRule, missingXmsIdentifiersRule, noResponseBodyRule, operationsInterfaceMissingRule, diff --git a/packages/typespec-azure-resource-manager/src/rules/latest-version-of-common-types-must-be-used.md b/packages/typespec-azure-resource-manager/src/rules/latest-version-of-common-types-must-be-used.md new file mode 100644 index 0000000000..3484bdc977 --- /dev/null +++ b/packages/typespec-azure-resource-manager/src/rules/latest-version-of-common-types-must-be-used.md @@ -0,0 +1,108 @@ +ARM services should use the latest ARM common-types version available in +`Azure.ResourceManager.CommonTypes.Versions`. This keeps generated Swagger and +SDKs aligned with the current ARM common schemas. + +The rule checks the effective `@armCommonTypesVersion` on each ARM service or +service version. When the selected version is current, it also checks common +types reachable from HTTP operation parameters and payloads so older legacy +symbols are not emitted through an otherwise current API version. + +## Impact + +- **Area:** API, SDK + +Older ARM common-types versions can emit stale shared schemas or parameters into +Swagger even when newer definitions are available. + +## Incorrect + +```tsp +@armProviderNamespace +@service(#{ title: "Contoso" }) +@versioned(Versions) +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) +namespace Microsoft.Contoso; + +enum Versions { + @useDependency(Azure.ResourceManager.CommonTypes.Versions.v3) + v2024_01_01: "2024-01-01", +} +``` + +## Correct + +```tsp +@armProviderNamespace +@service(#{ title: "Contoso" }) +@versioned(Versions) +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) +namespace Microsoft.Contoso; + +enum Versions { + @useDependency(Azure.ResourceManager.CommonTypes.Versions.v6) + v2024_01_01: "2024-01-01", +} +``` + +## Incorrect + +This service selects the latest common-types version but still uses a legacy +common type that resolves to an older common-types file. + +```tsp +@armProviderNamespace +@service(#{ title: "Contoso" }) +@versioned(Versions) +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) +namespace Microsoft.Contoso; + +enum Versions { + @useDependency(Azure.ResourceManager.CommonTypes.Versions.v6) + v2024_01_01: "2024-01-01", +} + +@route("/identity") +@get +op getIdentity(): Azure.ResourceManager.Legacy.ManagedServiceIdentityV4; +``` + +## Correct + +Use a common type supported by the selected latest common-types version, or +remove the legacy reference when the API shape no longer needs it. + +```tsp +@armProviderNamespace +@service(#{ title: "Contoso" }) +@versioned(Versions) +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) +namespace Microsoft.Contoso; + +enum Versions { + @useDependency(Azure.ResourceManager.CommonTypes.Versions.v6) + v2024_01_01: "2024-01-01", +} + +model Widget is TrackedResource { + ...ManagedServiceIdentityProperty; + + @key("widgetName") + @segment("widgets") + @path + name: string; +} + +model WidgetProperties { + description?: string; +} + +@route("/identity") +@get +op getIdentity(): Widget; +``` + +## Suppression + +Suppress only when an API must intentionally emit an older ARM common-types +schema for compatibility and the service team has accepted the SDK and Swagger +impact. diff --git a/packages/typespec-azure-resource-manager/src/rules/latest-version-of-common-types-must-be-used.ts b/packages/typespec-azure-resource-manager/src/rules/latest-version-of-common-types-must-be-used.ts new file mode 100644 index 0000000000..4022759a01 --- /dev/null +++ b/packages/typespec-azure-resource-manager/src/rules/latest-version-of-common-types-must-be-used.ts @@ -0,0 +1,425 @@ +import { + compilerAssert, + createRule, + fileRef, + getLifecycleVisibilityEnum, + getService, + getVisibilityForClass, + isArrayModelType, + listServices, + paramMessage, + walkPropertiesInherited, + type Enum, + type EnumMember, + type Model, + type ModelProperty, + type Namespace, + type Operation, + type Program, + type Service, + type Type, + type Union, +} from "@typespec/compiler"; +import { unsafe_mutateSubgraphWithNamespace } from "@typespec/compiler/experimental"; +import { + Visibility, + createMetadataInfo, + getHttpService, + resolveRequestVisibility, + type HttpOperation, +} from "@typespec/http"; +import { getVersioningMutators } from "@typespec/versioning"; +import { + getArmCommonTypeOpenAPIRef, + getArmCommonTypesVersion, + getArmCommonTypesVersions, + isArmCommonType, +} from "../common-types.js"; +import { getArmProviderNamespace } from "../namespace.js"; + +export const latestVersionOfCommonTypesMustBeUsedRule = createRule({ + name: "latest-version-of-common-types-must-be-used", + docs: fileRef.fromPackageRoot("src/rules/latest-version-of-common-types-must-be-used.md"), + description: "ARM services must use the latest available ARM common-types version.", + severity: "warning", + url: "https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/latest-version-of-common-types-must-be-used", + messages: { + default: paramMessage`Use the latest ARM common-types version '${"latestVersion"}' instead of '${"currentVersion"}'.`, + reference: paramMessage`This API version already selects the latest ARM common-types version '${"latestVersion"}', but the common-type ${"referenceKind"} '${"referenceName"}' resolves to '${"fileName"}' version '${"currentVersion"}'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${"latestVersion"}'.`, + }, + create(context) { + return { + root: (program) => { + const latestVersion = getLatestArmCommonTypesVersion(program); + if (latestVersion === undefined) { + return; + } + + for (const service of listServices(program)) { + if (!getArmProviderNamespace(program, service.type)) { + continue; + } + + const compilerService = getService(program, service.type); + if (compilerService === undefined) { + continue; + } + + const versioning = getVersioningMutators(program, service.type); + if (versioning?.kind === "versioned") { + for (const snapshot of versioning.snapshots) { + const currentVersion = + getArmCommonTypesVersion(program, snapshot.version.enumMember) ?? + getArmCommonTypesVersion(program, service.type); + if ( + reportIfOutdated( + context, + snapshot.version.enumMember, + currentVersion, + latestVersion, + ) || + currentVersion !== latestVersion + ) { + continue; + } + + const projected = unsafe_mutateSubgraphWithNamespace( + program, + [snapshot.mutator], + service.type, + ); + compilerAssert( + projected.type.kind === "Namespace", + "A versioned service must project to a namespace.", + ); + const projectedService = getService(program, projected.type) ?? { + type: projected.type, + }; + const [httpService] = getHttpService(program, projected.type); + reportOutdatedUsages( + context, + collectCommonTypeUsages(program, httpService.operations), + projectedService, + snapshot.version.value, + latestVersion, + ); + } + continue; + } + + let analyzedService = service.type; + if (versioning?.kind === "transient") { + const projected = unsafe_mutateSubgraphWithNamespace( + program, + [versioning.mutator], + service.type, + ); + compilerAssert( + projected.type.kind === "Namespace", + "A transiently versioned service must project to a namespace.", + ); + analyzedService = projected.type; + } + + const currentVersion = getArmCommonTypesVersion(program, service.type); + if ( + !reportIfOutdated(context, service.type, currentVersion, latestVersion) && + currentVersion === latestVersion + ) { + const [httpService] = getHttpService(program, analyzedService); + reportOutdatedUsages( + context, + collectCommonTypeUsages(program, httpService.operations), + getService(program, analyzedService) ?? compilerService, + undefined, + latestVersion, + ); + } + } + }, + }; + }, +}); + +function getLatestArmCommonTypesVersion(program: Program): string | undefined { + const allVersions = getArmCommonTypesVersions(program)?.allVersions; + if (allVersions === undefined || allVersions.length === 0) { + return undefined; + } + + return allVersions.reduce((latest, version) => + getVersionNumber(version.name) > getVersionNumber(latest.name) ? version : latest, + ).name; +} + +function getVersionNumber(version: string): number { + const match = /^v(\d+)$/i.exec(version); + return match ? Number(match[1]) : Number.NEGATIVE_INFINITY; +} + +function reportIfOutdated( + context: Parameters[0], + target: Namespace | EnumMember, + currentVersion: string | undefined, + latestVersion: string, +): boolean { + if (currentVersion === undefined || currentVersion === latestVersion) { + return false; + } + + context.reportDiagnostic({ + target, + format: { + currentVersion, + latestVersion, + fileName: "common-types", + referenceKind: "selection", + referenceName: "common-types", + }, + }); + return true; +} + +interface CommonTypeUsage { + target: ModelProperty | Operation; + type: Model | ModelProperty | Enum | Union; +} + +interface PayloadContext { + visibility: Visibility; + inExplicitBody: boolean; +} + +function collectCommonTypeUsages( + program: Program, + operations: readonly HttpOperation[], +): CommonTypeUsage[] { + const usages: CommonTypeUsage[] = []; + const seenTypes = new Map>>(); + const seenUsages = new Map>(); + const metadataInfo = createMetadataInfo(program, { + canonicalVisibility: Visibility.Read, + canShareProperty: (property) => canSharePropertyUsingReadonlyOrXmsMutability(program, property), + }); + + const addUsage = ( + type: Model | ModelProperty | Enum | Union, + target: ModelProperty | Operation, + ) => { + if (!isArmCommonType(type)) { + return; + } + + let targetTypes = seenUsages.get(target); + if (targetTypes === undefined) { + targetTypes = new Set(); + seenUsages.set(target, targetTypes); + } + + if (!targetTypes.has(type)) { + targetTypes.add(type); + usages.push({ target, type }); + } + }; + + const visitType = ( + type: Type, + target: ModelProperty | Operation, + payloadContext: PayloadContext, + ) => { + let targetTypes = seenTypes.get(target); + if (targetTypes === undefined) { + targetTypes = new Map(); + seenTypes.set(target, targetTypes); + } + + let typeContexts = targetTypes.get(type); + if (typeContexts === undefined) { + typeContexts = new Set(); + targetTypes.set(type, typeContexts); + } + + const contextIdentity = `${payloadContext.visibility}:${payloadContext.inExplicitBody}`; + if (typeContexts.has(contextIdentity)) { + return; + } + typeContexts.add(contextIdentity); + + switch (type.kind) { + case "Model": + addUsage(type, target); + if (type.indexer) { + visitType(type.indexer.value, target, { + ...payloadContext, + visibility: isArrayModelType(type) + ? payloadContext.visibility | Visibility.Item + : payloadContext.visibility, + }); + } + for (const property of walkPropertiesInherited(type)) { + if ( + !metadataInfo.isPayloadProperty( + property, + payloadContext.visibility, + payloadContext.inExplicitBody, + ) + ) { + continue; + } + + addPropertyUsages(property, target, payloadContext); + } + break; + case "ModelProperty": + addPropertyUsages(type, target, payloadContext); + break; + case "Enum": + case "Union": + addUsage(type, target); + if (type.kind === "Union") { + for (const variant of type.variants.values()) { + visitType(variant.type, target, payloadContext); + } + } + break; + case "Tuple": + for (const value of type.values) { + visitType(value, target, { + ...payloadContext, + visibility: payloadContext.visibility | Visibility.Item, + }); + } + break; + } + }; + + function addPropertyUsages( + property: ModelProperty, + target: ModelProperty | Operation, + payloadContext: PayloadContext, + ) { + for ( + let current: ModelProperty | undefined = property; + current !== undefined; + current = current.sourceProperty + ) { + addUsage(current, target); + visitType(current.type, target, payloadContext); + } + } + + for (const httpOperation of operations) { + const requestContext = { + visibility: resolveRequestVisibility(program, httpOperation.operation, httpOperation.verb), + inExplicitBody: false, + }; + for (const parameter of httpOperation.parameters.properties) { + addPropertyUsages(parameter.property, httpOperation.operation, requestContext); + } + if (httpOperation.parameters.body) { + const body = httpOperation.parameters.body; + visitType(body.type, httpOperation.operation, { + visibility: requestContext.visibility, + inExplicitBody: + body.bodyKind === "single" && body.isExplicit && body.containsMetadataAnnotations, + }); + } + for (const response of httpOperation.responses) { + for (const responseContent of response.responses) { + if (responseContent.body) { + const body = responseContent.body; + visitType(body.type, httpOperation.operation, { + visibility: Visibility.Read, + inExplicitBody: + body.bodyKind === "single" && body.isExplicit && body.containsMetadataAnnotations, + }); + } + } + } + } + + return usages; +} + +function canSharePropertyUsingReadonlyOrXmsMutability( + program: Program, + property: ModelProperty, +): boolean { + const sharedVisibilities = new Set(["Read", "Create", "Update"]); + const lifecycle = getLifecycleVisibilityEnum(program); + const visibilities = getVisibilityForClass(program, property, lifecycle); + if (visibilities.size !== lifecycle.members.size) { + for (const visibility of visibilities) { + if (!sharedVisibilities.has(visibility.name)) { + return false; + } + } + } + + return visibilities.size !== 0; +} + +function reportOutdatedUsages( + context: Parameters[0], + usages: CommonTypeUsage[], + service: Service, + apiVersion: string | undefined, + latestVersion: string, +): void { + const reported = new Map>(); + + for (const usage of usages) { + const reference = getArmCommonTypeOpenAPIRef(context.program, usage.type, { + service, + version: apiVersion, + }); + const parsedReference = parseCommonTypesReference(reference); + if (parsedReference === undefined || parsedReference.version === latestVersion) { + continue; + } + + const identity = `${parsedReference.fileName}\0${parsedReference.version}\0${parsedReference.referenceKind}\0${parsedReference.referenceName}`; + let targetReferences = reported.get(usage.target); + if (targetReferences === undefined) { + targetReferences = new Set(); + reported.set(usage.target, targetReferences); + } + if (targetReferences.has(identity)) { + continue; + } + targetReferences.add(identity); + + context.reportDiagnostic({ + messageId: "reference", + target: usage.target, + format: { + currentVersion: parsedReference.version, + latestVersion, + fileName: parsedReference.fileName, + referenceKind: parsedReference.referenceKind, + referenceName: parsedReference.referenceName, + }, + }); + } +} + +function parseCommonTypesReference(reference: string | undefined): + | { + version: string; + fileName: string; + referenceKind: string; + referenceName: string; + } + | undefined { + const match = reference?.match( + /(?:resource-management\/|\{arm-types-dir\}\/)(v\d+)\/([^/#]+\.json)#\/([^/]+)\/([^/]+)$/i, + ); + return match + ? { + version: match[1].toLowerCase(), + fileName: match[2].toLowerCase(), + referenceKind: match[3].replace(/s$/i, "").toLowerCase(), + referenceName: decodeURIComponent(match[4]), + } + : undefined; +} diff --git a/packages/typespec-azure-resource-manager/test/rules/latest-version-of-common-types-must-be-used.test.ts b/packages/typespec-azure-resource-manager/test/rules/latest-version-of-common-types-must-be-used.test.ts new file mode 100644 index 0000000000..3dbe7b3630 --- /dev/null +++ b/packages/typespec-azure-resource-manager/test/rules/latest-version-of-common-types-must-be-used.test.ts @@ -0,0 +1,292 @@ +import { Tester } from "#test/tester.js"; +import { + type LinterRuleTester, + type TesterInstance, + createLinterRuleTester, +} from "@typespec/compiler/testing"; +import { beforeEach, it } from "vitest"; + +import { latestVersionOfCommonTypesMustBeUsedRule } from "../../src/rules/latest-version-of-common-types-must-be-used.js"; + +let runner: TesterInstance; +let tester: LinterRuleTester; + +beforeEach(async () => { + runner = await Tester.createInstance(); + tester = createLinterRuleTester( + runner, + latestVersionOfCommonTypesMustBeUsedRule, + "@azure-tools/typespec-azure-resource-manager", + ); +}); + +const latestVersion = "v6"; + +const serviceHeader = ( + namespaceCommonTypesVersion: string, + versionMemberCommonTypesVersion = namespaceCommonTypesVersion, + extraVersions = "", +) => ` + @armProviderNamespace + @service(#{ title: "Test Service" }) + @versioned(Versions) + @armCommonTypesVersion(CommonTypes.Versions.${namespaceCommonTypesVersion}) + namespace Microsoft.TestService; + + enum Versions { + @useDependency(Azure.ResourceManager.CommonTypes.Versions.${versionMemberCommonTypesVersion}) + v2024_01_01: "2024-01-01", + ${extraVersions} + } +`; + +const widgetResource = ` + model Widget is TrackedResource { + @key("widgetName") + @segment("widgets") + @doc("The name of the widget") + @path + @pattern("^[a-zA-Z0-9_-]+$") + name: string; + } + + @doc("Widget resource properties.") + model WidgetProperties { + @doc("Description") + description?: string; + + @doc("Resource provisioning state") + @visibility(Lifecycle.Read) + provisioningState?: ResourceProvisioningState; + } + + interface Operations extends Azure.ResourceManager.Operations {} + + @armResourceOperations + interface Widgets { + get is ArmResourceRead; + createOrUpdate is ArmResourceCreateOrReplaceAsync; + update is ArmResourcePatchAsync; + delete is ArmResourceDeleteWithoutOkAsync; + listByResourceGroup is ArmResourceListByParent; + } +`; + +it("emits diagnostic when a versioned ARM service selects an older namespace common-types version", async () => { + await tester.expect(`${serviceHeader("v3")} ${widgetResource}`).toEmitDiagnostics({ + code: "@azure-tools/typespec-azure-resource-manager/latest-version-of-common-types-must-be-used", + message: `Use the latest ARM common-types version '${latestVersion}' instead of 'v3'.`, + }); +}); + +it("does not emit when a versioned ARM service selects the latest namespace common-types version", async () => { + await tester.expect(`${serviceHeader(latestVersion)} ${widgetResource}`).toBeValid(); +}); + +it("emits diagnostic when a version enum member overrides the namespace back to an older common-types version", async () => { + await tester + .expect( + ` + ${serviceHeader(latestVersion, "v3")} + + @@armCommonTypesVersion(Versions.v2024_01_01, Azure.ResourceManager.CommonTypes.Versions.v3); + + ${widgetResource} + `, + ) + .toEmitDiagnostics({ + code: "@azure-tools/typespec-azure-resource-manager/latest-version-of-common-types-must-be-used", + message: `Use the latest ARM common-types version '${latestVersion}' instead of 'v3'.`, + }); +}); + +it("does not emit when a version enum member overrides an older namespace to the latest common-types version", async () => { + await tester + .expect( + ` + ${serviceHeader("v3", latestVersion)} + + @@armCommonTypesVersion( + Versions.v2024_01_01, + Azure.ResourceManager.CommonTypes.Versions.${latestVersion} + ); + + ${widgetResource} + `, + ) + .toBeValid(); +}); + +it("emits diagnostic when a latest-version service uses a legacy common parameter", async () => { + await tester + .expect( + ` + ${serviceHeader(latestVersion)} + + @route("/subscriptions/{subscriptionId}/providers/Microsoft.TestService") + interface Operations { + @get + @route("/locations/{location}/widgets") + listByLocation( + ...SubscriptionIdParameter, + ...LocationParameter, + ): { + @body body: WidgetListResult; + }; + } + + model WidgetListResult { + value: Widget[]; + } + + model Widget { + name: string; + } + `, + ) + .toEmitDiagnostics({ + code: "@azure-tools/typespec-azure-resource-manager/latest-version-of-common-types-must-be-used", + message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type parameter 'LocationParameter' resolves to 'types.json' version 'v5'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, + }); +}); + +it("emits diagnostic when a latest-version service uses a legacy common model", async () => { + await tester + .expect( + ` + ${serviceHeader(latestVersion)} + + model Widget is TrackedResource { + ...Azure.ResourceManager.Legacy.ManagedServiceIdentityV4Property; + + @key("widgetName") + @segment("widgets") + @doc("The name of the widget") + @path + @pattern("^[a-zA-Z0-9_-]+$") + name: string; + } + + @doc("Widget resource properties.") + model WidgetProperties { + @doc("Widget description.") + description?: string; + } + + interface Operations extends Azure.ResourceManager.Operations {} + + @armResourceOperations + interface Widgets { + get is ArmResourceRead; + createOrUpdate is ArmResourceCreateOrReplaceAsync; + } + `, + ) + .toEmitDiagnostics([ + { + code: "@azure-tools/typespec-azure-resource-manager/latest-version-of-common-types-must-be-used", + message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, + }, + { + code: "@azure-tools/typespec-azure-resource-manager/latest-version-of-common-types-must-be-used", + message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, + }, + ]); +}); + +it("reports a versioned legacy property only for the projected API version that contains it", async () => { + await tester + .expect( + ` + ${serviceHeader( + latestVersion, + latestVersion, + ` + @useDependency(Azure.ResourceManager.CommonTypes.Versions.${latestVersion}) + v2025_01_01: "2025-01-01", + `, + )} + + model IdentityResult { + @added(Versions.v2025_01_01) + identity?: Azure.ResourceManager.Legacy.ManagedServiceIdentityV4; + } + + @route("/identity") + @get + op getIdentity(): IdentityResult; + `, + ) + .toEmitDiagnostics({ + code: "@azure-tools/typespec-azure-resource-manager/latest-version-of-common-types-must-be-used", + message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, + }); +}); + +it("reports each operation that emits the same legacy common type reference", async () => { + await tester + .expect( + ` + ${serviceHeader(latestVersion)} + + @route("/first") + @get + op getFirst(): Azure.ResourceManager.Legacy.ManagedServiceIdentityV4; + + @route("/second") + @get + op getSecond(): Azure.ResourceManager.Legacy.ManagedServiceIdentityV4; + `, + ) + .toEmitDiagnostics([ + { + code: "@azure-tools/typespec-azure-resource-manager/latest-version-of-common-types-must-be-used", + message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, + }, + { + code: "@azure-tools/typespec-azure-resource-manager/latest-version-of-common-types-must-be-used", + message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, + }, + ]); +}); + +it("does not report legacy common types excluded by request or response payload visibility", async () => { + await tester + .expect( + ` + ${serviceHeader(latestVersion)} + + model UpdateRequest { + @visibility(Lifecycle.Read) + readOnlyIdentity?: Azure.ResourceManager.Legacy.ManagedServiceIdentityV4; + + records?: Record; + description?: string; + } + + model RecordValue { + @header + legacyHeader?: Azure.ResourceManager.Legacy.ManagedServiceIdentityV4; + + description?: string; + } + + model ReadResponse { + @visibility(Lifecycle.Delete) + deleteOnlyIdentity?: Azure.ResourceManager.Legacy.ManagedServiceIdentityV4; + + description?: string; + } + + @route("/widgets/{widgetName}") + interface Widgets { + @patch + update(@path widgetName: string, @bodyRoot body: UpdateRequest): void; + + @get + read(@path widgetName: string): ReadResponse; + } + `, + ) + .toBeValid(); +}); diff --git a/packages/typespec-azure-rulesets/src/rulesets/resource-manager.ts b/packages/typespec-azure-rulesets/src/rulesets/resource-manager.ts index 1167301d2f..1c042075ee 100644 --- a/packages/typespec-azure-rulesets/src/rulesets/resource-manager.ts +++ b/packages/typespec-azure-rulesets/src/rulesets/resource-manager.ts @@ -62,6 +62,7 @@ export default { "@azure-tools/typespec-azure-resource-manager/no-override-props": true, "@azure-tools/typespec-azure-resource-manager/no-empty-model": true, "@azure-tools/typespec-azure-resource-manager/arm-common-types-version": true, + "@azure-tools/typespec-azure-resource-manager/latest-version-of-common-types-must-be-used": true, "@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-child-resources": true, "@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-lifecycle-operations": true, "@azure-tools/typespec-azure-resource-manager/use-relationship-required-properties": true, diff --git a/website/src/content/docs/docs/libraries/azure-resource-manager/reference/linter.md b/website/src/content/docs/docs/libraries/azure-resource-manager/reference/linter.md index 8c63e5f5c0..bea88291a0 100644 --- a/website/src/content/docs/docs/libraries/azure-resource-manager/reference/linter.md +++ b/website/src/content/docs/docs/libraries/azure-resource-manager/reference/linter.md @@ -20,49 +20,50 @@ Available ruleSets: ## Rules -| Name | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [`@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-child-resources`](../rules/arm-agent-base-type-child-resources.md) | Resources decorated with @azureBaseType for the Agent base type must have both a Conversation and a Response child resource. | -| [`@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-lifecycle-operations`](../rules/arm-agent-base-type-lifecycle-operations.md) | Conversation and Response child resources of an Agent must define create, read, update, and delete lifecycle operations. | -| [`@azure-tools/typespec-azure-resource-manager/use-relationship-required-properties`](../rules/use-relationship-required-properties.md) | Resources decorated with @azureBaseType for the Relationship base type must be extension resources with the required Relationship schema. | -| [`@azure-tools/typespec-azure-resource-manager/arm-no-record`](../rules/arm-no-record.md) | Don't use Record types for ARM resources. | -| [`@azure-tools/typespec-azure-resource-manager/arm-no-path-casing-conflicts`](../rules/arm-no-path-casing-conflicts.md) | Operation paths must be unique when compared case-insensitively. | -| [`@azure-tools/typespec-azure-resource-manager/no-override-props`](../rules/no-override-props.md) | Disallow redefining properties already defined in a base type. | -| [`@azure-tools/typespec-azure-resource-manager/arm-common-types-version`](../rules/arm-common-types-version.md) | Specify the ARM common-types version using @armCommonTypesVersion. | -| [`@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes`](../rules/arm-delete-operation-response-codes.md) | Ensure delete operations have the appropriate status codes. | -| [`@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes`](../rules/arm-put-operation-response-codes.md) | Ensure put operations have the appropriate status codes. | -| [`@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes`](../rules/arm-post-operation-response-codes.md) | Ensure post operations have the appropriate status codes. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-action-no-segment`](../rules/arm-resource-action-no-segment.md) | `@armResourceAction` should not be used with `@segment`. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-property`](../rules/arm-resource-duplicate-property.md) | Warn about duplicate properties in resources. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property`](../rules/arm-resource-invalid-envelope-property.md) | Check for invalid resource envelope properties. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-version-format`](../rules/arm-resource-invalid-version-format.md) | Check for valid versions. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-key-invalid-chars`](../rules/arm-resource-key-invalid-chars.md) | Arm resource key must contain only alphanumeric characters. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-name-pattern`](../rules/arm-resource-name-pattern.md) | The resource name parameter should be defined with a 'pattern' restriction. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-operation-response`](../rules/arm-resource-operation-response.md) | [RPC 008]: PUT, GET, PATCH & LIST must return the same resource schema. | -| [`@azure-tools/typespec-azure-resource-manager/use-api-version`](../rules/use-api-version.md) | Validate ARM Resource operations include the api-version parameter referencing Azure.ResourceManager.CommonTypes.ApiVersionParameter. | -| [`@azure-tools/typespec-azure-resource-manager/use-operation-decorator`](../rules/use-operation-decorator.md) | Validate ARM Resource operations use the correct decorator for the HTTP verb. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-path-segment-invalid-chars`](../rules/arm-resource-path-segment-invalid-chars.md) | Arm resource name must contain only alphanumeric characters. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state`](../rules/arm-resource-provisioning-state.md) | Check for properly configured provisioningState property. | -| [`@azure-tools/typespec-azure-resource-manager/version-progression`](../rules/version-progression.md) | Validate that ARM service versions all use unique dates and are declared in strictly increasing chronological order. | -| [`@azure-tools/typespec-azure-resource-manager/arm-custom-resource-no-key`](../rules/arm-custom-resource-no-key.md) | Validate that custom resource contains a key property. | -| [`@azure-tools/typespec-azure-resource-manager/arm-custom-resource-usage-discourage`](../rules/arm-custom-resource-usage-discourage.md) | Verify the usage of @customAzureResource decorator. | -| [`@azure-tools/typespec-azure-resource-manager/arm-feature-file-usage-discourage`](../rules/arm-feature-file-usage-discourage.md) | Verify the usage of @featureFiles decorator. | -| [`@azure-tools/typespec-azure-resource-manager/beyond-nesting-levels`](../rules/beyond-nesting-levels.md) | Tracked Resources must use 3 or fewer levels of nesting. | -| [`@azure-tools/typespec-azure-resource-manager/use-interface`](../rules/use-interface.md) | Validate ARM Resource operations are defined inside an interface declaration. | -| [`@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation`](../rules/no-resource-delete-operation.md) | Check for resources that must have a delete operation. | -| [`@azure-tools/typespec-azure-resource-manager/empty-updateable-properties`](../rules/empty-updateable-properties.md) | Should have updateable properties. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator`](../rules/arm-resource-interface-requires-decorator.md) | Each resource interface must have an @armResourceOperations decorator. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb`](../rules/arm-resource-invalid-action-verb.md) | Actions must be HTTP Post or Get operations. | -| [`@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation`](../rules/improper-subscription-list-operation.md) | Tenant and Extension resources should not define a list by subscription operation. | -| [`@azure-tools/typespec-azure-resource-manager/lro-location-header`](../rules/lro-location-header.md) | A 202 response should include a Location response header. | -| [`@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers`](../rules/missing-x-ms-identifiers.md) | Array properties should describe their identifying properties with x-ms-identifiers. Decorate the property with @OpenAPI.extension("x-ms-identifiers", #[id-prop]) where "id-prop" is a list of the names of identifying properties in the item type. | -| [`@azure-tools/typespec-azure-resource-manager/no-response-body`](../rules/no-response-body.md) | Check that the body is empty for 202 and 204 responses, and not empty for other success (2xx) responses. | -| [`@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint`](../rules/missing-operations-endpoint.md) | Check for missing Operations interface. | -| [`@azure-tools/typespec-azure-resource-manager/patch-envelope`](../rules/patch-envelope.md) | Patch envelope properties should match the resource properties. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-patch`](../rules/arm-resource-patch.md) | Validate ARM PATCH operations. | -| [`@azure-tools/typespec-azure-resource-manager/resource-name`](../rules/resource-name.md) | Check the resource name. | -| [`@azure-tools/typespec-azure-resource-manager/retry-after`](../rules/retry-after.md) | Check if retry-after header appears in response body. | -| [`@azure-tools/typespec-azure-resource-manager/unsupported-type`](../rules/unsupported-type.md) | Check for unsupported ARM types. | -| [`@azure-tools/typespec-azure-resource-manager/secret-prop`](../rules/secret-prop.md) | RPC-v1-13: Check that property with names indicating sensitive information(e.g. contains auth, password, token, secret, etc.) are marked with @secret decorator. | -| [`@azure-tools/typespec-azure-resource-manager/no-empty-model`](../rules/no-empty-model.md) | ARM Properties with type:object that don't reference a model definition are not allowed. ARM doesn't allow generic type definitions as this leads to bad customer experience. | -| [`@azure-tools/typespec-azure-resource-manager/no-reserved-resource-property`](../rules/no-reserved-resource-property.md) | Reserved property names (for example 'billingData') must not be present in a resource's property bag. The property name is matched case-insensitively. | +| Name | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [`@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-child-resources`](../rules/arm-agent-base-type-child-resources.md) | Resources decorated with @azureBaseType for the Agent base type must have both a Conversation and a Response child resource. | +| [`@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-lifecycle-operations`](../rules/arm-agent-base-type-lifecycle-operations.md) | Conversation and Response child resources of an Agent must define create, read, update, and delete lifecycle operations. | +| [`@azure-tools/typespec-azure-resource-manager/use-relationship-required-properties`](../rules/use-relationship-required-properties.md) | Resources decorated with @azureBaseType for the Relationship base type must be extension resources with the required Relationship schema. | +| [`@azure-tools/typespec-azure-resource-manager/arm-no-record`](../rules/arm-no-record.md) | Don't use Record types for ARM resources. | +| [`@azure-tools/typespec-azure-resource-manager/arm-no-path-casing-conflicts`](../rules/arm-no-path-casing-conflicts.md) | Operation paths must be unique when compared case-insensitively. | +| [`@azure-tools/typespec-azure-resource-manager/no-override-props`](../rules/no-override-props.md) | Disallow redefining properties already defined in a base type. | +| [`@azure-tools/typespec-azure-resource-manager/arm-common-types-version`](../rules/arm-common-types-version.md) | Specify the ARM common-types version using @armCommonTypesVersion. | +| [`@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes`](../rules/arm-delete-operation-response-codes.md) | Ensure delete operations have the appropriate status codes. | +| [`@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes`](../rules/arm-put-operation-response-codes.md) | Ensure put operations have the appropriate status codes. | +| [`@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes`](../rules/arm-post-operation-response-codes.md) | Ensure post operations have the appropriate status codes. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-action-no-segment`](../rules/arm-resource-action-no-segment.md) | `@armResourceAction` should not be used with `@segment`. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-property`](../rules/arm-resource-duplicate-property.md) | Warn about duplicate properties in resources. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property`](../rules/arm-resource-invalid-envelope-property.md) | Check for invalid resource envelope properties. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-version-format`](../rules/arm-resource-invalid-version-format.md) | Check for valid versions. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-key-invalid-chars`](../rules/arm-resource-key-invalid-chars.md) | Arm resource key must contain only alphanumeric characters. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-name-pattern`](../rules/arm-resource-name-pattern.md) | The resource name parameter should be defined with a 'pattern' restriction. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-operation-response`](../rules/arm-resource-operation-response.md) | [RPC 008]: PUT, GET, PATCH & LIST must return the same resource schema. | +| [`@azure-tools/typespec-azure-resource-manager/use-api-version`](../rules/use-api-version.md) | Validate ARM Resource operations include the api-version parameter referencing Azure.ResourceManager.CommonTypes.ApiVersionParameter. | +| [`@azure-tools/typespec-azure-resource-manager/use-operation-decorator`](../rules/use-operation-decorator.md) | Validate ARM Resource operations use the correct decorator for the HTTP verb. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-path-segment-invalid-chars`](../rules/arm-resource-path-segment-invalid-chars.md) | Arm resource name must contain only alphanumeric characters. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state`](../rules/arm-resource-provisioning-state.md) | Check for properly configured provisioningState property. | +| [`@azure-tools/typespec-azure-resource-manager/version-progression`](../rules/version-progression.md) | Validate that ARM service versions all use unique dates and are declared in strictly increasing chronological order. | +| [`@azure-tools/typespec-azure-resource-manager/arm-custom-resource-no-key`](../rules/arm-custom-resource-no-key.md) | Validate that custom resource contains a key property. | +| [`@azure-tools/typespec-azure-resource-manager/arm-custom-resource-usage-discourage`](../rules/arm-custom-resource-usage-discourage.md) | Verify the usage of @customAzureResource decorator. | +| [`@azure-tools/typespec-azure-resource-manager/arm-feature-file-usage-discourage`](../rules/arm-feature-file-usage-discourage.md) | Verify the usage of @featureFiles decorator. | +| [`@azure-tools/typespec-azure-resource-manager/beyond-nesting-levels`](../rules/beyond-nesting-levels.md) | Tracked Resources must use 3 or fewer levels of nesting. | +| [`@azure-tools/typespec-azure-resource-manager/use-interface`](../rules/use-interface.md) | Validate ARM Resource operations are defined inside an interface declaration. | +| [`@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation`](../rules/no-resource-delete-operation.md) | Check for resources that must have a delete operation. | +| [`@azure-tools/typespec-azure-resource-manager/empty-updateable-properties`](../rules/empty-updateable-properties.md) | Should have updateable properties. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator`](../rules/arm-resource-interface-requires-decorator.md) | Each resource interface must have an @armResourceOperations decorator. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb`](../rules/arm-resource-invalid-action-verb.md) | Actions must be HTTP Post or Get operations. | +| [`@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation`](../rules/improper-subscription-list-operation.md) | Tenant and Extension resources should not define a list by subscription operation. | +| [`@azure-tools/typespec-azure-resource-manager/lro-location-header`](../rules/lro-location-header.md) | A 202 response should include a Location response header. | +| [`@azure-tools/typespec-azure-resource-manager/latest-version-of-common-types-must-be-used`](../rules/latest-version-of-common-types-must-be-used.md) | ARM services must use the latest available ARM common-types version. | +| [`@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers`](../rules/missing-x-ms-identifiers.md) | Array properties should describe their identifying properties with x-ms-identifiers. Decorate the property with @OpenAPI.extension("x-ms-identifiers", #[id-prop]) where "id-prop" is a list of the names of identifying properties in the item type. | +| [`@azure-tools/typespec-azure-resource-manager/no-response-body`](../rules/no-response-body.md) | Check that the body is empty for 202 and 204 responses, and not empty for other success (2xx) responses. | +| [`@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint`](../rules/missing-operations-endpoint.md) | Check for missing Operations interface. | +| [`@azure-tools/typespec-azure-resource-manager/patch-envelope`](../rules/patch-envelope.md) | Patch envelope properties should match the resource properties. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-patch`](../rules/arm-resource-patch.md) | Validate ARM PATCH operations. | +| [`@azure-tools/typespec-azure-resource-manager/resource-name`](../rules/resource-name.md) | Check the resource name. | +| [`@azure-tools/typespec-azure-resource-manager/retry-after`](../rules/retry-after.md) | Check if retry-after header appears in response body. | +| [`@azure-tools/typespec-azure-resource-manager/unsupported-type`](../rules/unsupported-type.md) | Check for unsupported ARM types. | +| [`@azure-tools/typespec-azure-resource-manager/secret-prop`](../rules/secret-prop.md) | RPC-v1-13: Check that property with names indicating sensitive information(e.g. contains auth, password, token, secret, etc.) are marked with @secret decorator. | +| [`@azure-tools/typespec-azure-resource-manager/no-empty-model`](../rules/no-empty-model.md) | ARM Properties with type:object that don't reference a model definition are not allowed. ARM doesn't allow generic type definitions as this leads to bad customer experience. | +| [`@azure-tools/typespec-azure-resource-manager/no-reserved-resource-property`](../rules/no-reserved-resource-property.md) | Reserved property names (for example 'billingData') must not be present in a resource's property bag. The property name is matched case-insensitively. | From 440a51db101acdb7099a9e443c2dd02d6c5925b8 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Thu, 20 Aug 2026 15:54:01 +0800 Subject: [PATCH 02/22] Disable latest common types rule by default Keep the promoted ARM rule available while avoiding immediate failures in existing samples and azure-rest-api-specs projects that still select older common-types versions. --- .../typespec-azure-rulesets/src/rulesets/resource-manager.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/typespec-azure-rulesets/src/rulesets/resource-manager.ts b/packages/typespec-azure-rulesets/src/rulesets/resource-manager.ts index 1c042075ee..f86b3a4fa8 100644 --- a/packages/typespec-azure-rulesets/src/rulesets/resource-manager.ts +++ b/packages/typespec-azure-rulesets/src/rulesets/resource-manager.ts @@ -62,7 +62,8 @@ export default { "@azure-tools/typespec-azure-resource-manager/no-override-props": true, "@azure-tools/typespec-azure-resource-manager/no-empty-model": true, "@azure-tools/typespec-azure-resource-manager/arm-common-types-version": true, - "@azure-tools/typespec-azure-resource-manager/latest-version-of-common-types-must-be-used": true, + // Disabled for staged rollout: existing Azure specs and samples still use older ARM common-types versions. + "@azure-tools/typespec-azure-resource-manager/latest-version-of-common-types-must-be-used": false, "@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-child-resources": true, "@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-lifecycle-operations": true, "@azure-tools/typespec-azure-resource-manager/use-relationship-required-properties": true, From 841b6f38510de1fa1e7c8811d570f79a946a4efe Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Fri, 21 Aug 2026 10:46:06 +0800 Subject: [PATCH 03/22] Address common types rule review Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8ed00e6d-dd0a-40f7-8871-ee32f0f371fb --- ...ypes-must-be-used.md => use-latest-version-of-common-types.md} | 0 ...ypes-must-be-used.ts => use-latest-version-of-common-types.ts} | 0 ...be-used.test.ts => use-latest-version-of-common-types.test.ts} | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename packages/typespec-azure-resource-manager/src/rules/{latest-version-of-common-types-must-be-used.md => use-latest-version-of-common-types.md} (100%) rename packages/typespec-azure-resource-manager/src/rules/{latest-version-of-common-types-must-be-used.ts => use-latest-version-of-common-types.ts} (100%) rename packages/typespec-azure-resource-manager/test/rules/{latest-version-of-common-types-must-be-used.test.ts => use-latest-version-of-common-types.test.ts} (100%) diff --git a/packages/typespec-azure-resource-manager/src/rules/latest-version-of-common-types-must-be-used.md b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md similarity index 100% rename from packages/typespec-azure-resource-manager/src/rules/latest-version-of-common-types-must-be-used.md rename to packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md diff --git a/packages/typespec-azure-resource-manager/src/rules/latest-version-of-common-types-must-be-used.ts b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts similarity index 100% rename from packages/typespec-azure-resource-manager/src/rules/latest-version-of-common-types-must-be-used.ts rename to packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts diff --git a/packages/typespec-azure-resource-manager/test/rules/latest-version-of-common-types-must-be-used.test.ts b/packages/typespec-azure-resource-manager/test/rules/use-latest-version-of-common-types.test.ts similarity index 100% rename from packages/typespec-azure-resource-manager/test/rules/latest-version-of-common-types-must-be-used.test.ts rename to packages/typespec-azure-resource-manager/test/rules/use-latest-version-of-common-types.test.ts From d8b8176280e5f441b4e5f78e7218ee782c326c29 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Fri, 21 Aug 2026 10:46:36 +0800 Subject: [PATCH 04/22] Apply TypeSpec rule naming conventions Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8ed00e6d-dd0a-40f7-8871-ee32f0f371fb --- .../typespec-azure-resource-manager/README.md | 2 +- .../src/linter.ts | 4 ++-- .../use-latest-version-of-common-types.md | 23 +++++++++++++++---- .../use-latest-version-of-common-types.ts | 12 +++++----- ...use-latest-version-of-common-types.test.ts | 20 ++++++++-------- .../src/rulesets/resource-manager.ts | 2 +- .../reference/linter.md | 2 +- 7 files changed, 39 insertions(+), 26 deletions(-) diff --git a/packages/typespec-azure-resource-manager/README.md b/packages/typespec-azure-resource-manager/README.md index a21cc26b46..dc3836b620 100644 --- a/packages/typespec-azure-resource-manager/README.md +++ b/packages/typespec-azure-resource-manager/README.md @@ -61,7 +61,7 @@ Available ruleSets: | [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-invalid-action-verb) | Actions must be HTTP Post or Get operations. | | [`@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/improper-subscription-list-operation) | Tenant and Extension resources should not define a list by subscription operation. | | [`@azure-tools/typespec-azure-resource-manager/lro-location-header`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/lro-location-header) | A 202 response should include a Location response header. | -| [`@azure-tools/typespec-azure-resource-manager/latest-version-of-common-types-must-be-used`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/latest-version-of-common-types-must-be-used) | ARM services must use the latest available ARM common-types version. | +| [`@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-latest-version-of-common-types) | ARM services must use the latest available ARM common-types version. | | [`@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/missing-x-ms-identifiers) | Array properties should describe their identifying properties with x-ms-identifiers. Decorate the property with @OpenAPI.extension("x-ms-identifiers", #[id-prop]) where "id-prop" is a list of the names of identifying properties in the item type. | | [`@azure-tools/typespec-azure-resource-manager/no-response-body`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/no-response-body) | Check that the body is empty for 202 and 204 responses, and not empty for other success (2xx) responses. | | [`@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/missing-operations-endpoint) | Check for missing Operations interface. | diff --git a/packages/typespec-azure-resource-manager/src/linter.ts b/packages/typespec-azure-resource-manager/src/linter.ts index 296e991d9f..2ec8d236c1 100644 --- a/packages/typespec-azure-resource-manager/src/linter.ts +++ b/packages/typespec-azure-resource-manager/src/linter.ts @@ -25,7 +25,6 @@ import { armResourceProvisioningStateRule } from "./rules/arm-resource-provision import { beyondNestingRule } from "./rules/beyond-nesting-levels.js"; import { envelopePropertiesRules } from "./rules/envelope-properties.js"; import { improperSubscriptionListOperationRule } from "./rules/improper-subscription-list-operation.js"; -import { latestVersionOfCommonTypesMustBeUsedRule } from "./rules/latest-version-of-common-types-must-be-used.js"; import { lroLocationHeaderRule } from "./rules/lro-location-header.js"; import { missingXmsIdentifiersRule } from "./rules/missing-x-ms-identifiers.js"; import { noEmptyModel } from "./rules/no-empty-model.js"; @@ -41,6 +40,7 @@ import { secretProprule } from "./rules/secret-prop.js"; import { unsupportedTypeRule } from "./rules/unsupported-type.js"; import { useApiVersionRule } from "./rules/use-api-version.js"; import { useInterfaceRule } from "./rules/use-interface.js"; +import { useLatestVersionOfCommonTypesRule } from "./rules/use-latest-version-of-common-types.js"; import { useOperationDecoratorRule } from "./rules/use-operation-decorator.js"; import { useRelationshipRequiredPropertiesRule } from "./rules/use-relationship-required-properties.js"; import { versionProgressionRule } from "./rules/version-progression.js"; @@ -79,7 +79,7 @@ const rules = [ armResourceInvalidActionVerbRule, improperSubscriptionListOperationRule, lroLocationHeaderRule, - latestVersionOfCommonTypesMustBeUsedRule, + useLatestVersionOfCommonTypesRule, missingXmsIdentifiersRule, noResponseBodyRule, operationsInterfaceMissingRule, diff --git a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md index 3484bdc977..a0f66448f1 100644 --- a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md +++ b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md @@ -1,6 +1,14 @@ +--- +title: "use-latest-version-of-common-types" +--- + +```text title="Full name" +@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types +``` + ARM services should use the latest ARM common-types version available in -`Azure.ResourceManager.CommonTypes.Versions`. This keeps generated Swagger and -SDKs aligned with the current ARM common schemas. +`Azure.ResourceManager.CommonTypes.Versions`. This keeps TypeSpec services, +generated SDKs, and Azure tooling aligned with the current ARM common schemas. The rule checks the effective `@armCommonTypesVersion` on each ARM service or service version. When the selected version is current, it also checks common @@ -11,8 +19,8 @@ symbols are not emitted through an otherwise current API version. - **Area:** API, SDK -Older ARM common-types versions can emit stale shared schemas or parameters into -Swagger even when newer definitions are available. +Older ARM common-types versions can expose stale shared schemas or parameters in +generated API surfaces and SDKs even when newer definitions are available. ## Incorrect @@ -101,8 +109,13 @@ model WidgetProperties { op getIdentity(): Widget; ``` +## LintDiff Equivalent + +This rule corresponds to the LintDiff rule +[LatestVersionOfCommonTypesMustBeUsed](https://github.com/Azure/azure-openapi-validator/blob/main/docs/latest-version-of-common-types-must-be-used.md). + ## Suppression Suppress only when an API must intentionally emit an older ARM common-types -schema for compatibility and the service team has accepted the SDK and Swagger +schema for compatibility and the service team has accepted the API and SDK impact. diff --git a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts index 4022759a01..e6615f6d29 100644 --- a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts +++ b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts @@ -37,12 +37,12 @@ import { } from "../common-types.js"; import { getArmProviderNamespace } from "../namespace.js"; -export const latestVersionOfCommonTypesMustBeUsedRule = createRule({ - name: "latest-version-of-common-types-must-be-used", - docs: fileRef.fromPackageRoot("src/rules/latest-version-of-common-types-must-be-used.md"), +export const useLatestVersionOfCommonTypesRule = createRule({ + name: "use-latest-version-of-common-types", + docs: fileRef.fromPackageRoot("src/rules/use-latest-version-of-common-types.md"), description: "ARM services must use the latest available ARM common-types version.", severity: "warning", - url: "https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/latest-version-of-common-types-must-be-used", + url: "https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-latest-version-of-common-types", messages: { default: paramMessage`Use the latest ARM common-types version '${"latestVersion"}' instead of '${"currentVersion"}'.`, reference: paramMessage`This API version already selects the latest ARM common-types version '${"latestVersion"}', but the common-type ${"referenceKind"} '${"referenceName"}' resolves to '${"fileName"}' version '${"currentVersion"}'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${"latestVersion"}'.`, @@ -158,7 +158,7 @@ function getVersionNumber(version: string): number { } function reportIfOutdated( - context: Parameters[0], + context: Parameters[0], target: Namespace | EnumMember, currentVersion: string | undefined, latestVersion: string, @@ -360,7 +360,7 @@ function canSharePropertyUsingReadonlyOrXmsMutability( } function reportOutdatedUsages( - context: Parameters[0], + context: Parameters[0], usages: CommonTypeUsage[], service: Service, apiVersion: string | undefined, diff --git a/packages/typespec-azure-resource-manager/test/rules/use-latest-version-of-common-types.test.ts b/packages/typespec-azure-resource-manager/test/rules/use-latest-version-of-common-types.test.ts index 3dbe7b3630..02c0dd6d19 100644 --- a/packages/typespec-azure-resource-manager/test/rules/use-latest-version-of-common-types.test.ts +++ b/packages/typespec-azure-resource-manager/test/rules/use-latest-version-of-common-types.test.ts @@ -6,7 +6,7 @@ import { } from "@typespec/compiler/testing"; import { beforeEach, it } from "vitest"; -import { latestVersionOfCommonTypesMustBeUsedRule } from "../../src/rules/latest-version-of-common-types-must-be-used.js"; +import { useLatestVersionOfCommonTypesRule } from "../../src/rules/use-latest-version-of-common-types.js"; let runner: TesterInstance; let tester: LinterRuleTester; @@ -15,7 +15,7 @@ beforeEach(async () => { runner = await Tester.createInstance(); tester = createLinterRuleTester( runner, - latestVersionOfCommonTypesMustBeUsedRule, + useLatestVersionOfCommonTypesRule, "@azure-tools/typespec-azure-resource-manager", ); }); @@ -74,7 +74,7 @@ const widgetResource = ` it("emits diagnostic when a versioned ARM service selects an older namespace common-types version", async () => { await tester.expect(`${serviceHeader("v3")} ${widgetResource}`).toEmitDiagnostics({ - code: "@azure-tools/typespec-azure-resource-manager/latest-version-of-common-types-must-be-used", + code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", message: `Use the latest ARM common-types version '${latestVersion}' instead of 'v3'.`, }); }); @@ -95,7 +95,7 @@ it("emits diagnostic when a version enum member overrides the namespace back to `, ) .toEmitDiagnostics({ - code: "@azure-tools/typespec-azure-resource-manager/latest-version-of-common-types-must-be-used", + code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", message: `Use the latest ARM common-types version '${latestVersion}' instead of 'v3'.`, }); }); @@ -145,7 +145,7 @@ it("emits diagnostic when a latest-version service uses a legacy common paramete `, ) .toEmitDiagnostics({ - code: "@azure-tools/typespec-azure-resource-manager/latest-version-of-common-types-must-be-used", + code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type parameter 'LocationParameter' resolves to 'types.json' version 'v5'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, }); }); @@ -184,11 +184,11 @@ it("emits diagnostic when a latest-version service uses a legacy common model", ) .toEmitDiagnostics([ { - code: "@azure-tools/typespec-azure-resource-manager/latest-version-of-common-types-must-be-used", + code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, }, { - code: "@azure-tools/typespec-azure-resource-manager/latest-version-of-common-types-must-be-used", + code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, }, ]); @@ -218,7 +218,7 @@ it("reports a versioned legacy property only for the projected API version that `, ) .toEmitDiagnostics({ - code: "@azure-tools/typespec-azure-resource-manager/latest-version-of-common-types-must-be-used", + code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, }); }); @@ -240,11 +240,11 @@ it("reports each operation that emits the same legacy common type reference", as ) .toEmitDiagnostics([ { - code: "@azure-tools/typespec-azure-resource-manager/latest-version-of-common-types-must-be-used", + code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, }, { - code: "@azure-tools/typespec-azure-resource-manager/latest-version-of-common-types-must-be-used", + code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, }, ]); diff --git a/packages/typespec-azure-rulesets/src/rulesets/resource-manager.ts b/packages/typespec-azure-rulesets/src/rulesets/resource-manager.ts index f86b3a4fa8..5802cfbed7 100644 --- a/packages/typespec-azure-rulesets/src/rulesets/resource-manager.ts +++ b/packages/typespec-azure-rulesets/src/rulesets/resource-manager.ts @@ -63,7 +63,7 @@ export default { "@azure-tools/typespec-azure-resource-manager/no-empty-model": true, "@azure-tools/typespec-azure-resource-manager/arm-common-types-version": true, // Disabled for staged rollout: existing Azure specs and samples still use older ARM common-types versions. - "@azure-tools/typespec-azure-resource-manager/latest-version-of-common-types-must-be-used": false, + "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types": false, "@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-child-resources": true, "@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-lifecycle-operations": true, "@azure-tools/typespec-azure-resource-manager/use-relationship-required-properties": true, diff --git a/website/src/content/docs/docs/libraries/azure-resource-manager/reference/linter.md b/website/src/content/docs/docs/libraries/azure-resource-manager/reference/linter.md index bea88291a0..468c36d9d3 100644 --- a/website/src/content/docs/docs/libraries/azure-resource-manager/reference/linter.md +++ b/website/src/content/docs/docs/libraries/azure-resource-manager/reference/linter.md @@ -55,7 +55,7 @@ Available ruleSets: | [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb`](../rules/arm-resource-invalid-action-verb.md) | Actions must be HTTP Post or Get operations. | | [`@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation`](../rules/improper-subscription-list-operation.md) | Tenant and Extension resources should not define a list by subscription operation. | | [`@azure-tools/typespec-azure-resource-manager/lro-location-header`](../rules/lro-location-header.md) | A 202 response should include a Location response header. | -| [`@azure-tools/typespec-azure-resource-manager/latest-version-of-common-types-must-be-used`](../rules/latest-version-of-common-types-must-be-used.md) | ARM services must use the latest available ARM common-types version. | +| [`@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types`](../rules/use-latest-version-of-common-types.md) | ARM services must use the latest available ARM common-types version. | | [`@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers`](../rules/missing-x-ms-identifiers.md) | Array properties should describe their identifying properties with x-ms-identifiers. Decorate the property with @OpenAPI.extension("x-ms-identifiers", #[id-prop]) where "id-prop" is a list of the names of identifying properties in the item type. | | [`@azure-tools/typespec-azure-resource-manager/no-response-body`](../rules/no-response-body.md) | Check that the body is empty for 202 and 204 responses, and not empty for other success (2xx) responses. | | [`@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint`](../rules/missing-operations-endpoint.md) | Check for missing Operations interface. | From 09df69b54a2a533b2c5d9d66762247ae8c2a9f35 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Fri, 21 Aug 2026 13:22:25 +0800 Subject: [PATCH 05/22] Update generated linter docs Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8ed00e6d-dd0a-40f7-8871-ee32f0f371fb --- .../typespec-azure-resource-manager/README.md | 94 +++++++++---------- .../reference/linter.md | 94 +++++++++---------- 2 files changed, 94 insertions(+), 94 deletions(-) diff --git a/packages/typespec-azure-resource-manager/README.md b/packages/typespec-azure-resource-manager/README.md index dc3836b620..e0ea788e27 100644 --- a/packages/typespec-azure-resource-manager/README.md +++ b/packages/typespec-azure-resource-manager/README.md @@ -26,53 +26,53 @@ Available ruleSets: ## Rules -| Name | Description | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [`@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-child-resources`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-agent-base-type-child-resources) | Resources decorated with @azureBaseType for the Agent base type must have both a Conversation and a Response child resource. | -| [`@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-lifecycle-operations`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-agent-base-type-lifecycle-operations) | Conversation and Response child resources of an Agent must define create, read, update, and delete lifecycle operations. | -| [`@azure-tools/typespec-azure-resource-manager/use-relationship-required-properties`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-relationship-required-properties) | Resources decorated with @azureBaseType for the Relationship base type must be extension resources with the required Relationship schema. | -| [`@azure-tools/typespec-azure-resource-manager/arm-no-record`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-no-record) | Don't use Record types for ARM resources. | -| [`@azure-tools/typespec-azure-resource-manager/arm-no-path-casing-conflicts`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-no-path-casing-conflicts) | Operation paths must be unique when compared case-insensitively. | -| [`@azure-tools/typespec-azure-resource-manager/no-override-props`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/no-override-props) | Disallow redefining properties already defined in a base type. | -| [`@azure-tools/typespec-azure-resource-manager/arm-common-types-version`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-common-types-version) | Specify the ARM common-types version using @armCommonTypesVersion. | -| [`@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-delete-operation-response-codes) | Ensure delete operations have the appropriate status codes. | -| [`@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-put-operation-response-codes) | Ensure put operations have the appropriate status codes. | -| [`@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-post-operation-response-codes) | Ensure post operations have the appropriate status codes. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-action-no-segment`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-action-no-segment) | `@armResourceAction` should not be used with `@segment`. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-property`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-duplicate-property) | Warn about duplicate properties in resources. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-invalid-envelope-property) | Check for invalid resource envelope properties. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-version-format`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-invalid-version-format) | Check for valid versions. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-key-invalid-chars`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-key-invalid-chars) | Arm resource key must contain only alphanumeric characters. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-name-pattern`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-name-pattern) | The resource name parameter should be defined with a 'pattern' restriction. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-operation-response`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-operation-response) | [RPC 008]: PUT, GET, PATCH & LIST must return the same resource schema. | -| [`@azure-tools/typespec-azure-resource-manager/use-api-version`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-api-version) | Validate ARM Resource operations include the api-version parameter referencing Azure.ResourceManager.CommonTypes.ApiVersionParameter. | -| [`@azure-tools/typespec-azure-resource-manager/use-operation-decorator`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-operation-decorator) | Validate ARM Resource operations use the correct decorator for the HTTP verb. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-path-segment-invalid-chars`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-path-segment-invalid-chars) | Arm resource name must contain only alphanumeric characters. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-provisioning-state) | Check for properly configured provisioningState property. | -| [`@azure-tools/typespec-azure-resource-manager/version-progression`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/version-progression) | Validate that ARM service versions all use unique dates and are declared in strictly increasing chronological order. | -| [`@azure-tools/typespec-azure-resource-manager/arm-custom-resource-no-key`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-custom-resource-no-key) | Validate that custom resource contains a key property. | -| [`@azure-tools/typespec-azure-resource-manager/arm-custom-resource-usage-discourage`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-custom-resource-usage-discourage) | Verify the usage of @customAzureResource decorator. | -| [`@azure-tools/typespec-azure-resource-manager/arm-feature-file-usage-discourage`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-feature-file-usage-discourage) | Verify the usage of @featureFiles decorator. | -| [`@azure-tools/typespec-azure-resource-manager/beyond-nesting-levels`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/beyond-nesting-levels) | Tracked Resources must use 3 or fewer levels of nesting. | -| [`@azure-tools/typespec-azure-resource-manager/use-interface`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-interface) | Validate ARM Resource operations are defined inside an interface declaration. | -| [`@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/no-resource-delete-operation) | Check for resources that must have a delete operation. | -| [`@azure-tools/typespec-azure-resource-manager/empty-updateable-properties`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/empty-updateable-properties) | Should have updateable properties. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-interface-requires-decorator) | Each resource interface must have an @armResourceOperations decorator. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-invalid-action-verb) | Actions must be HTTP Post or Get operations. | -| [`@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/improper-subscription-list-operation) | Tenant and Extension resources should not define a list by subscription operation. | -| [`@azure-tools/typespec-azure-resource-manager/lro-location-header`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/lro-location-header) | A 202 response should include a Location response header. | -| [`@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-latest-version-of-common-types) | ARM services must use the latest available ARM common-types version. | -| [`@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/missing-x-ms-identifiers) | Array properties should describe their identifying properties with x-ms-identifiers. Decorate the property with @OpenAPI.extension("x-ms-identifiers", #[id-prop]) where "id-prop" is a list of the names of identifying properties in the item type. | -| [`@azure-tools/typespec-azure-resource-manager/no-response-body`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/no-response-body) | Check that the body is empty for 202 and 204 responses, and not empty for other success (2xx) responses. | -| [`@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/missing-operations-endpoint) | Check for missing Operations interface. | -| [`@azure-tools/typespec-azure-resource-manager/patch-envelope`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/patch-envelope) | Patch envelope properties should match the resource properties. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-patch`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-patch) | Validate ARM PATCH operations. | -| [`@azure-tools/typespec-azure-resource-manager/resource-name`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/resource-name) | Check the resource name. | -| [`@azure-tools/typespec-azure-resource-manager/retry-after`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/retry-after) | Check if retry-after header appears in response body. | -| [`@azure-tools/typespec-azure-resource-manager/unsupported-type`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/unsupported-type) | Check for unsupported ARM types. | -| [`@azure-tools/typespec-azure-resource-manager/secret-prop`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/secret-prop) | RPC-v1-13: Check that property with names indicating sensitive information(e.g. contains auth, password, token, secret, etc.) are marked with @secret decorator. | -| [`@azure-tools/typespec-azure-resource-manager/no-empty-model`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/no-empty-model) | ARM Properties with type:object that don't reference a model definition are not allowed. ARM doesn't allow generic type definitions as this leads to bad customer experience. | -| [`@azure-tools/typespec-azure-resource-manager/no-reserved-resource-property`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/no-reserved-resource-property) | Reserved property names (for example 'billingData') must not be present in a resource's property bag. The property name is matched case-insensitively. | +| Name | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [`@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-child-resources`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-agent-base-type-child-resources) | Resources decorated with @azureBaseType for the Agent base type must have both a Conversation and a Response child resource. | +| [`@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-lifecycle-operations`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-agent-base-type-lifecycle-operations) | Conversation and Response child resources of an Agent must define create, read, update, and delete lifecycle operations. | +| [`@azure-tools/typespec-azure-resource-manager/use-relationship-required-properties`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-relationship-required-properties) | Resources decorated with @azureBaseType for the Relationship base type must be extension resources with the required Relationship schema. | +| [`@azure-tools/typespec-azure-resource-manager/arm-no-record`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-no-record) | Don't use Record types for ARM resources. | +| [`@azure-tools/typespec-azure-resource-manager/arm-no-path-casing-conflicts`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-no-path-casing-conflicts) | Operation paths must be unique when compared case-insensitively. | +| [`@azure-tools/typespec-azure-resource-manager/no-override-props`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/no-override-props) | Disallow redefining properties already defined in a base type. | +| [`@azure-tools/typespec-azure-resource-manager/arm-common-types-version`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-common-types-version) | Specify the ARM common-types version using @armCommonTypesVersion. | +| [`@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-delete-operation-response-codes) | Ensure delete operations have the appropriate status codes. | +| [`@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-put-operation-response-codes) | Ensure put operations have the appropriate status codes. | +| [`@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-post-operation-response-codes) | Ensure post operations have the appropriate status codes. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-action-no-segment`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-action-no-segment) | `@armResourceAction` should not be used with `@segment`. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-property`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-duplicate-property) | Warn about duplicate properties in resources. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-invalid-envelope-property) | Check for invalid resource envelope properties. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-version-format`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-invalid-version-format) | Check for valid versions. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-key-invalid-chars`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-key-invalid-chars) | Arm resource key must contain only alphanumeric characters. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-name-pattern`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-name-pattern) | The resource name parameter should be defined with a 'pattern' restriction. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-operation-response`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-operation-response) | [RPC 008]: PUT, GET, PATCH & LIST must return the same resource schema. | +| [`@azure-tools/typespec-azure-resource-manager/use-api-version`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-api-version) | Validate ARM Resource operations include the api-version parameter referencing Azure.ResourceManager.CommonTypes.ApiVersionParameter. | +| [`@azure-tools/typespec-azure-resource-manager/use-operation-decorator`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-operation-decorator) | Validate ARM Resource operations use the correct decorator for the HTTP verb. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-path-segment-invalid-chars`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-path-segment-invalid-chars) | Arm resource name must contain only alphanumeric characters. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-provisioning-state) | Check for properly configured provisioningState property. | +| [`@azure-tools/typespec-azure-resource-manager/version-progression`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/version-progression) | Validate that ARM service versions all use unique dates and are declared in strictly increasing chronological order. | +| [`@azure-tools/typespec-azure-resource-manager/arm-custom-resource-no-key`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-custom-resource-no-key) | Validate that custom resource contains a key property. | +| [`@azure-tools/typespec-azure-resource-manager/arm-custom-resource-usage-discourage`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-custom-resource-usage-discourage) | Verify the usage of @customAzureResource decorator. | +| [`@azure-tools/typespec-azure-resource-manager/arm-feature-file-usage-discourage`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-feature-file-usage-discourage) | Verify the usage of @featureFiles decorator. | +| [`@azure-tools/typespec-azure-resource-manager/beyond-nesting-levels`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/beyond-nesting-levels) | Tracked Resources must use 3 or fewer levels of nesting. | +| [`@azure-tools/typespec-azure-resource-manager/use-interface`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-interface) | Validate ARM Resource operations are defined inside an interface declaration. | +| [`@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/no-resource-delete-operation) | Check for resources that must have a delete operation. | +| [`@azure-tools/typespec-azure-resource-manager/empty-updateable-properties`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/empty-updateable-properties) | Should have updateable properties. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-interface-requires-decorator) | Each resource interface must have an @armResourceOperations decorator. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-invalid-action-verb) | Actions must be HTTP Post or Get operations. | +| [`@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/improper-subscription-list-operation) | Tenant and Extension resources should not define a list by subscription operation. | +| [`@azure-tools/typespec-azure-resource-manager/lro-location-header`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/lro-location-header) | A 202 response should include a Location response header. | +| [`@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-latest-version-of-common-types) | ARM services must use the latest available ARM common-types version. | +| [`@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/missing-x-ms-identifiers) | Array properties should describe their identifying properties with x-ms-identifiers. Decorate the property with @OpenAPI.extension("x-ms-identifiers", #[id-prop]) where "id-prop" is a list of the names of identifying properties in the item type. | +| [`@azure-tools/typespec-azure-resource-manager/no-response-body`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/no-response-body) | Check that the body is empty for 202 and 204 responses, and not empty for other success (2xx) responses. | +| [`@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/missing-operations-endpoint) | Check for missing Operations interface. | +| [`@azure-tools/typespec-azure-resource-manager/patch-envelope`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/patch-envelope) | Patch envelope properties should match the resource properties. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-patch`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-patch) | Validate ARM PATCH operations. | +| [`@azure-tools/typespec-azure-resource-manager/resource-name`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/resource-name) | Check the resource name. | +| [`@azure-tools/typespec-azure-resource-manager/retry-after`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/retry-after) | Check if retry-after header appears in response body. | +| [`@azure-tools/typespec-azure-resource-manager/unsupported-type`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/unsupported-type) | Check for unsupported ARM types. | +| [`@azure-tools/typespec-azure-resource-manager/secret-prop`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/secret-prop) | RPC-v1-13: Check that property with names indicating sensitive information(e.g. contains auth, password, token, secret, etc.) are marked with @secret decorator. | +| [`@azure-tools/typespec-azure-resource-manager/no-empty-model`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/no-empty-model) | ARM Properties with type:object that don't reference a model definition are not allowed. ARM doesn't allow generic type definitions as this leads to bad customer experience. | +| [`@azure-tools/typespec-azure-resource-manager/no-reserved-resource-property`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/no-reserved-resource-property) | Reserved property names (for example 'billingData') must not be present in a resource's property bag. The property name is matched case-insensitively. | ## Decorators diff --git a/website/src/content/docs/docs/libraries/azure-resource-manager/reference/linter.md b/website/src/content/docs/docs/libraries/azure-resource-manager/reference/linter.md index 468c36d9d3..694156d11b 100644 --- a/website/src/content/docs/docs/libraries/azure-resource-manager/reference/linter.md +++ b/website/src/content/docs/docs/libraries/azure-resource-manager/reference/linter.md @@ -20,50 +20,50 @@ Available ruleSets: ## Rules -| Name | Description | -| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [`@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-child-resources`](../rules/arm-agent-base-type-child-resources.md) | Resources decorated with @azureBaseType for the Agent base type must have both a Conversation and a Response child resource. | -| [`@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-lifecycle-operations`](../rules/arm-agent-base-type-lifecycle-operations.md) | Conversation and Response child resources of an Agent must define create, read, update, and delete lifecycle operations. | -| [`@azure-tools/typespec-azure-resource-manager/use-relationship-required-properties`](../rules/use-relationship-required-properties.md) | Resources decorated with @azureBaseType for the Relationship base type must be extension resources with the required Relationship schema. | -| [`@azure-tools/typespec-azure-resource-manager/arm-no-record`](../rules/arm-no-record.md) | Don't use Record types for ARM resources. | -| [`@azure-tools/typespec-azure-resource-manager/arm-no-path-casing-conflicts`](../rules/arm-no-path-casing-conflicts.md) | Operation paths must be unique when compared case-insensitively. | -| [`@azure-tools/typespec-azure-resource-manager/no-override-props`](../rules/no-override-props.md) | Disallow redefining properties already defined in a base type. | -| [`@azure-tools/typespec-azure-resource-manager/arm-common-types-version`](../rules/arm-common-types-version.md) | Specify the ARM common-types version using @armCommonTypesVersion. | -| [`@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes`](../rules/arm-delete-operation-response-codes.md) | Ensure delete operations have the appropriate status codes. | -| [`@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes`](../rules/arm-put-operation-response-codes.md) | Ensure put operations have the appropriate status codes. | -| [`@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes`](../rules/arm-post-operation-response-codes.md) | Ensure post operations have the appropriate status codes. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-action-no-segment`](../rules/arm-resource-action-no-segment.md) | `@armResourceAction` should not be used with `@segment`. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-property`](../rules/arm-resource-duplicate-property.md) | Warn about duplicate properties in resources. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property`](../rules/arm-resource-invalid-envelope-property.md) | Check for invalid resource envelope properties. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-version-format`](../rules/arm-resource-invalid-version-format.md) | Check for valid versions. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-key-invalid-chars`](../rules/arm-resource-key-invalid-chars.md) | Arm resource key must contain only alphanumeric characters. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-name-pattern`](../rules/arm-resource-name-pattern.md) | The resource name parameter should be defined with a 'pattern' restriction. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-operation-response`](../rules/arm-resource-operation-response.md) | [RPC 008]: PUT, GET, PATCH & LIST must return the same resource schema. | -| [`@azure-tools/typespec-azure-resource-manager/use-api-version`](../rules/use-api-version.md) | Validate ARM Resource operations include the api-version parameter referencing Azure.ResourceManager.CommonTypes.ApiVersionParameter. | -| [`@azure-tools/typespec-azure-resource-manager/use-operation-decorator`](../rules/use-operation-decorator.md) | Validate ARM Resource operations use the correct decorator for the HTTP verb. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-path-segment-invalid-chars`](../rules/arm-resource-path-segment-invalid-chars.md) | Arm resource name must contain only alphanumeric characters. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state`](../rules/arm-resource-provisioning-state.md) | Check for properly configured provisioningState property. | -| [`@azure-tools/typespec-azure-resource-manager/version-progression`](../rules/version-progression.md) | Validate that ARM service versions all use unique dates and are declared in strictly increasing chronological order. | -| [`@azure-tools/typespec-azure-resource-manager/arm-custom-resource-no-key`](../rules/arm-custom-resource-no-key.md) | Validate that custom resource contains a key property. | -| [`@azure-tools/typespec-azure-resource-manager/arm-custom-resource-usage-discourage`](../rules/arm-custom-resource-usage-discourage.md) | Verify the usage of @customAzureResource decorator. | -| [`@azure-tools/typespec-azure-resource-manager/arm-feature-file-usage-discourage`](../rules/arm-feature-file-usage-discourage.md) | Verify the usage of @featureFiles decorator. | -| [`@azure-tools/typespec-azure-resource-manager/beyond-nesting-levels`](../rules/beyond-nesting-levels.md) | Tracked Resources must use 3 or fewer levels of nesting. | -| [`@azure-tools/typespec-azure-resource-manager/use-interface`](../rules/use-interface.md) | Validate ARM Resource operations are defined inside an interface declaration. | -| [`@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation`](../rules/no-resource-delete-operation.md) | Check for resources that must have a delete operation. | -| [`@azure-tools/typespec-azure-resource-manager/empty-updateable-properties`](../rules/empty-updateable-properties.md) | Should have updateable properties. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator`](../rules/arm-resource-interface-requires-decorator.md) | Each resource interface must have an @armResourceOperations decorator. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb`](../rules/arm-resource-invalid-action-verb.md) | Actions must be HTTP Post or Get operations. | -| [`@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation`](../rules/improper-subscription-list-operation.md) | Tenant and Extension resources should not define a list by subscription operation. | -| [`@azure-tools/typespec-azure-resource-manager/lro-location-header`](../rules/lro-location-header.md) | A 202 response should include a Location response header. | -| [`@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types`](../rules/use-latest-version-of-common-types.md) | ARM services must use the latest available ARM common-types version. | -| [`@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers`](../rules/missing-x-ms-identifiers.md) | Array properties should describe their identifying properties with x-ms-identifiers. Decorate the property with @OpenAPI.extension("x-ms-identifiers", #[id-prop]) where "id-prop" is a list of the names of identifying properties in the item type. | -| [`@azure-tools/typespec-azure-resource-manager/no-response-body`](../rules/no-response-body.md) | Check that the body is empty for 202 and 204 responses, and not empty for other success (2xx) responses. | -| [`@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint`](../rules/missing-operations-endpoint.md) | Check for missing Operations interface. | -| [`@azure-tools/typespec-azure-resource-manager/patch-envelope`](../rules/patch-envelope.md) | Patch envelope properties should match the resource properties. | -| [`@azure-tools/typespec-azure-resource-manager/arm-resource-patch`](../rules/arm-resource-patch.md) | Validate ARM PATCH operations. | -| [`@azure-tools/typespec-azure-resource-manager/resource-name`](../rules/resource-name.md) | Check the resource name. | -| [`@azure-tools/typespec-azure-resource-manager/retry-after`](../rules/retry-after.md) | Check if retry-after header appears in response body. | -| [`@azure-tools/typespec-azure-resource-manager/unsupported-type`](../rules/unsupported-type.md) | Check for unsupported ARM types. | -| [`@azure-tools/typespec-azure-resource-manager/secret-prop`](../rules/secret-prop.md) | RPC-v1-13: Check that property with names indicating sensitive information(e.g. contains auth, password, token, secret, etc.) are marked with @secret decorator. | -| [`@azure-tools/typespec-azure-resource-manager/no-empty-model`](../rules/no-empty-model.md) | ARM Properties with type:object that don't reference a model definition are not allowed. ARM doesn't allow generic type definitions as this leads to bad customer experience. | -| [`@azure-tools/typespec-azure-resource-manager/no-reserved-resource-property`](../rules/no-reserved-resource-property.md) | Reserved property names (for example 'billingData') must not be present in a resource's property bag. The property name is matched case-insensitively. | +| Name | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [`@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-child-resources`](../rules/arm-agent-base-type-child-resources.md) | Resources decorated with @azureBaseType for the Agent base type must have both a Conversation and a Response child resource. | +| [`@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-lifecycle-operations`](../rules/arm-agent-base-type-lifecycle-operations.md) | Conversation and Response child resources of an Agent must define create, read, update, and delete lifecycle operations. | +| [`@azure-tools/typespec-azure-resource-manager/use-relationship-required-properties`](../rules/use-relationship-required-properties.md) | Resources decorated with @azureBaseType for the Relationship base type must be extension resources with the required Relationship schema. | +| [`@azure-tools/typespec-azure-resource-manager/arm-no-record`](../rules/arm-no-record.md) | Don't use Record types for ARM resources. | +| [`@azure-tools/typespec-azure-resource-manager/arm-no-path-casing-conflicts`](../rules/arm-no-path-casing-conflicts.md) | Operation paths must be unique when compared case-insensitively. | +| [`@azure-tools/typespec-azure-resource-manager/no-override-props`](../rules/no-override-props.md) | Disallow redefining properties already defined in a base type. | +| [`@azure-tools/typespec-azure-resource-manager/arm-common-types-version`](../rules/arm-common-types-version.md) | Specify the ARM common-types version using @armCommonTypesVersion. | +| [`@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes`](../rules/arm-delete-operation-response-codes.md) | Ensure delete operations have the appropriate status codes. | +| [`@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes`](../rules/arm-put-operation-response-codes.md) | Ensure put operations have the appropriate status codes. | +| [`@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes`](../rules/arm-post-operation-response-codes.md) | Ensure post operations have the appropriate status codes. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-action-no-segment`](../rules/arm-resource-action-no-segment.md) | `@armResourceAction` should not be used with `@segment`. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-property`](../rules/arm-resource-duplicate-property.md) | Warn about duplicate properties in resources. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property`](../rules/arm-resource-invalid-envelope-property.md) | Check for invalid resource envelope properties. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-version-format`](../rules/arm-resource-invalid-version-format.md) | Check for valid versions. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-key-invalid-chars`](../rules/arm-resource-key-invalid-chars.md) | Arm resource key must contain only alphanumeric characters. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-name-pattern`](../rules/arm-resource-name-pattern.md) | The resource name parameter should be defined with a 'pattern' restriction. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-operation-response`](../rules/arm-resource-operation-response.md) | [RPC 008]: PUT, GET, PATCH & LIST must return the same resource schema. | +| [`@azure-tools/typespec-azure-resource-manager/use-api-version`](../rules/use-api-version.md) | Validate ARM Resource operations include the api-version parameter referencing Azure.ResourceManager.CommonTypes.ApiVersionParameter. | +| [`@azure-tools/typespec-azure-resource-manager/use-operation-decorator`](../rules/use-operation-decorator.md) | Validate ARM Resource operations use the correct decorator for the HTTP verb. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-path-segment-invalid-chars`](../rules/arm-resource-path-segment-invalid-chars.md) | Arm resource name must contain only alphanumeric characters. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state`](../rules/arm-resource-provisioning-state.md) | Check for properly configured provisioningState property. | +| [`@azure-tools/typespec-azure-resource-manager/version-progression`](../rules/version-progression.md) | Validate that ARM service versions all use unique dates and are declared in strictly increasing chronological order. | +| [`@azure-tools/typespec-azure-resource-manager/arm-custom-resource-no-key`](../rules/arm-custom-resource-no-key.md) | Validate that custom resource contains a key property. | +| [`@azure-tools/typespec-azure-resource-manager/arm-custom-resource-usage-discourage`](../rules/arm-custom-resource-usage-discourage.md) | Verify the usage of @customAzureResource decorator. | +| [`@azure-tools/typespec-azure-resource-manager/arm-feature-file-usage-discourage`](../rules/arm-feature-file-usage-discourage.md) | Verify the usage of @featureFiles decorator. | +| [`@azure-tools/typespec-azure-resource-manager/beyond-nesting-levels`](../rules/beyond-nesting-levels.md) | Tracked Resources must use 3 or fewer levels of nesting. | +| [`@azure-tools/typespec-azure-resource-manager/use-interface`](../rules/use-interface.md) | Validate ARM Resource operations are defined inside an interface declaration. | +| [`@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation`](../rules/no-resource-delete-operation.md) | Check for resources that must have a delete operation. | +| [`@azure-tools/typespec-azure-resource-manager/empty-updateable-properties`](../rules/empty-updateable-properties.md) | Should have updateable properties. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator`](../rules/arm-resource-interface-requires-decorator.md) | Each resource interface must have an @armResourceOperations decorator. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb`](../rules/arm-resource-invalid-action-verb.md) | Actions must be HTTP Post or Get operations. | +| [`@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation`](../rules/improper-subscription-list-operation.md) | Tenant and Extension resources should not define a list by subscription operation. | +| [`@azure-tools/typespec-azure-resource-manager/lro-location-header`](../rules/lro-location-header.md) | A 202 response should include a Location response header. | +| [`@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types`](../rules/use-latest-version-of-common-types.md) | ARM services must use the latest available ARM common-types version. | +| [`@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers`](../rules/missing-x-ms-identifiers.md) | Array properties should describe their identifying properties with x-ms-identifiers. Decorate the property with @OpenAPI.extension("x-ms-identifiers", #[id-prop]) where "id-prop" is a list of the names of identifying properties in the item type. | +| [`@azure-tools/typespec-azure-resource-manager/no-response-body`](../rules/no-response-body.md) | Check that the body is empty for 202 and 204 responses, and not empty for other success (2xx) responses. | +| [`@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint`](../rules/missing-operations-endpoint.md) | Check for missing Operations interface. | +| [`@azure-tools/typespec-azure-resource-manager/patch-envelope`](../rules/patch-envelope.md) | Patch envelope properties should match the resource properties. | +| [`@azure-tools/typespec-azure-resource-manager/arm-resource-patch`](../rules/arm-resource-patch.md) | Validate ARM PATCH operations. | +| [`@azure-tools/typespec-azure-resource-manager/resource-name`](../rules/resource-name.md) | Check the resource name. | +| [`@azure-tools/typespec-azure-resource-manager/retry-after`](../rules/retry-after.md) | Check if retry-after header appears in response body. | +| [`@azure-tools/typespec-azure-resource-manager/unsupported-type`](../rules/unsupported-type.md) | Check for unsupported ARM types. | +| [`@azure-tools/typespec-azure-resource-manager/secret-prop`](../rules/secret-prop.md) | RPC-v1-13: Check that property with names indicating sensitive information(e.g. contains auth, password, token, secret, etc.) are marked with @secret decorator. | +| [`@azure-tools/typespec-azure-resource-manager/no-empty-model`](../rules/no-empty-model.md) | ARM Properties with type:object that don't reference a model definition are not allowed. ARM doesn't allow generic type definitions as this leads to bad customer experience. | +| [`@azure-tools/typespec-azure-resource-manager/no-reserved-resource-property`](../rules/no-reserved-resource-property.md) | Reserved property names (for example 'billingData') must not be present in a resource's property bag. The property name is matched case-insensitively. | From 5abd4bffc33f3fc66a90013b8009230c1bfc9bad Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Tue, 25 Aug 2026 15:30:57 +0800 Subject: [PATCH 06/22] Address common types rule review feedback Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9f3bdb44-9302-42a3-9b45-ea02a4e8f0a6 --- .../use-latest-version-of-common-types.md | 23 +++---- .../use-latest-version-of-common-types.ts | 60 ++++++++++--------- 2 files changed, 40 insertions(+), 43 deletions(-) diff --git a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md index a0f66448f1..24904868af 100644 --- a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md +++ b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md @@ -52,6 +52,10 @@ enum Versions { } ``` +As of August 2026, `v6` was the latest ARM common-types version. +Newer versions may exist; check `Azure.ResourceManager.CommonTypes.Versions` +for the latest version before updating a service. + ## Incorrect This service selects the latest common-types version but still uses a legacy @@ -76,8 +80,8 @@ op getIdentity(): Azure.ResourceManager.Legacy.ManagedServiceIdentityV4; ## Correct -Use a common type supported by the selected latest common-types version, or -remove the legacy reference when the API shape no longer needs it. +Use the equivalent common type supported by the selected latest common-types +version, or remove the legacy reference when the API shape no longer needs it. ```tsp @armProviderNamespace @@ -91,22 +95,9 @@ enum Versions { v2024_01_01: "2024-01-01", } -model Widget is TrackedResource { - ...ManagedServiceIdentityProperty; - - @key("widgetName") - @segment("widgets") - @path - name: string; -} - -model WidgetProperties { - description?: string; -} - @route("/identity") @get -op getIdentity(): Widget; +op getIdentity(): Azure.ResourceManager.CommonTypes.ManagedServiceIdentity; ``` ## LintDiff Equivalent diff --git a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts index e6615f6d29..02c58ff074 100644 --- a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts +++ b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts @@ -50,7 +50,7 @@ export const useLatestVersionOfCommonTypesRule = createRule({ create(context) { return { root: (program) => { - const latestVersion = getLatestArmCommonTypesVersion(program); + const latestVersion = tryGetLatestArmCommonTypesVersion(program); if (latestVersion === undefined) { return; } @@ -71,15 +71,16 @@ export const useLatestVersionOfCommonTypesRule = createRule({ const currentVersion = getArmCommonTypesVersion(program, snapshot.version.enumMember) ?? getArmCommonTypesVersion(program, service.type); - if ( - reportIfOutdated( + if (isOutdated(currentVersion, latestVersion)) { + reportOutdatedSelection( context, snapshot.version.enumMember, currentVersion, latestVersion, - ) || - currentVersion !== latestVersion - ) { + ); + continue; + } + if (currentVersion === undefined) { continue; } @@ -122,26 +123,29 @@ export const useLatestVersionOfCommonTypesRule = createRule({ } const currentVersion = getArmCommonTypesVersion(program, service.type); - if ( - !reportIfOutdated(context, service.type, currentVersion, latestVersion) && - currentVersion === latestVersion - ) { - const [httpService] = getHttpService(program, analyzedService); - reportOutdatedUsages( - context, - collectCommonTypeUsages(program, httpService.operations), - getService(program, analyzedService) ?? compilerService, - undefined, - latestVersion, - ); + if (isOutdated(currentVersion, latestVersion)) { + reportOutdatedSelection(context, service.type, currentVersion, latestVersion); + continue; + } + if (currentVersion === undefined) { + continue; } + + const [httpService] = getHttpService(program, analyzedService); + reportOutdatedUsages( + context, + collectCommonTypeUsages(program, httpService.operations), + getService(program, analyzedService) ?? compilerService, + undefined, + latestVersion, + ); } }, }; }, }); -function getLatestArmCommonTypesVersion(program: Program): string | undefined { +function tryGetLatestArmCommonTypesVersion(program: Program): string | undefined { const allVersions = getArmCommonTypesVersions(program)?.allVersions; if (allVersions === undefined || allVersions.length === 0) { return undefined; @@ -157,16 +161,19 @@ function getVersionNumber(version: string): number { return match ? Number(match[1]) : Number.NEGATIVE_INFINITY; } -function reportIfOutdated( - context: Parameters[0], - target: Namespace | EnumMember, +function isOutdated( currentVersion: string | undefined, latestVersion: string, -): boolean { - if (currentVersion === undefined || currentVersion === latestVersion) { - return false; - } +): currentVersion is string { + return currentVersion !== undefined && currentVersion !== latestVersion; +} +function reportOutdatedSelection( + context: Parameters[0], + target: Namespace | EnumMember, + currentVersion: string, + latestVersion: string, +): void { context.reportDiagnostic({ target, format: { @@ -177,7 +184,6 @@ function reportIfOutdated( referenceName: "common-types", }, }); - return true; } interface CommonTypeUsage { From f15a77bfad818f8af6f388233e4d003417301ed4 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Mon, 31 Aug 2026 12:58:42 +0800 Subject: [PATCH 07/22] Avoid global mutation in common types rule Replace per-version whole-program projection with dependency-aware version metadata traversal and cover availability and historical type changes. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: bb0b0075-253e-4e28-a073-fc5fd64708b1 --- .../use-latest-version-of-common-types.ts | 232 +++++++++++++----- ...use-latest-version-of-common-types.test.ts | 164 +++++++++++++ 2 files changed, 340 insertions(+), 56 deletions(-) diff --git a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts index 02c58ff074..26406f8659 100644 --- a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts +++ b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts @@ -1,5 +1,4 @@ import { - compilerAssert, createRule, fileRef, getLifecycleVisibilityEnum, @@ -20,7 +19,6 @@ import { type Type, type Union, } from "@typespec/compiler"; -import { unsafe_mutateSubgraphWithNamespace } from "@typespec/compiler/experimental"; import { Visibility, createMetadataInfo, @@ -28,7 +26,15 @@ import { resolveRequestVisibility, type HttpOperation, } from "@typespec/http"; -import { getVersioningMutators } from "@typespec/versioning"; +import { + getAddedOnVersions, + getRemovedOnVersions, + getReturnTypeChangedFrom, + getTypeChangedFrom, + getVersions, + resolveVersions, + type Version, +} from "@typespec/versioning"; import { getArmCommonTypeOpenAPIRef, getArmCommonTypesVersion, @@ -65,62 +71,38 @@ export const useLatestVersionOfCommonTypesRule = createRule({ continue; } - const versioning = getVersioningMutators(program, service.type); - if (versioning?.kind === "versioned") { - for (const snapshot of versioning.snapshots) { + const versionResolutions = resolveVersions(program, service.type); + if (versionResolutions.some((resolution) => resolution.rootVersion !== undefined)) { + const [httpService] = getHttpService(program, service.type); + for (const resolution of versionResolutions) { + const version = resolution.rootVersion; + if (version === undefined) { + continue; + } const currentVersion = - getArmCommonTypesVersion(program, snapshot.version.enumMember) ?? + getArmCommonTypesVersion(program, version.enumMember) ?? getArmCommonTypesVersion(program, service.type); if (isOutdated(currentVersion, latestVersion)) { - reportOutdatedSelection( - context, - snapshot.version.enumMember, - currentVersion, - latestVersion, - ); + reportOutdatedSelection(context, version.enumMember, currentVersion, latestVersion); continue; } if (currentVersion === undefined) { continue; } - const projected = unsafe_mutateSubgraphWithNamespace( - program, - [snapshot.mutator], - service.type, - ); - compilerAssert( - projected.type.kind === "Namespace", - "A versioned service must project to a namespace.", - ); - const projectedService = getService(program, projected.type) ?? { - type: projected.type, - }; - const [httpService] = getHttpService(program, projected.type); reportOutdatedUsages( context, - collectCommonTypeUsages(program, httpService.operations), - projectedService, - snapshot.version.value, + collectCommonTypeUsages(program, httpService.operations, resolution.versions), + compilerService, + version.value, latestVersion, ); } continue; } - let analyzedService = service.type; - if (versioning?.kind === "transient") { - const projected = unsafe_mutateSubgraphWithNamespace( - program, - [versioning.mutator], - service.type, - ); - compilerAssert( - projected.type.kind === "Namespace", - "A transiently versioned service must project to a namespace.", - ); - analyzedService = projected.type; - } + const [httpService] = getHttpService(program, service.type); + const versionContext = versionResolutions[0]?.versions; const currentVersion = getArmCommonTypesVersion(program, service.type); if (isOutdated(currentVersion, latestVersion)) { @@ -131,11 +113,10 @@ export const useLatestVersionOfCommonTypesRule = createRule({ continue; } - const [httpService] = getHttpService(program, analyzedService); reportOutdatedUsages( context, - collectCommonTypeUsages(program, httpService.operations), - getService(program, analyzedService) ?? compilerService, + collectCommonTypeUsages(program, httpService.operations, versionContext), + compilerService, undefined, latestVersion, ); @@ -199,6 +180,7 @@ interface PayloadContext { function collectCommonTypeUsages( program: Program, operations: readonly HttpOperation[], + versions?: Map, ): CommonTypeUsage[] { const usages: CommonTypeUsage[] = []; const seenTypes = new Map>>(); @@ -233,6 +215,10 @@ function collectCommonTypeUsages( target: ModelProperty | Operation, payloadContext: PayloadContext, ) => { + if (!isAvailableAtVersion(program, type, versions)) { + return; + } + let targetTypes = seenTypes.get(target); if (targetTypes === undefined) { targetTypes = new Map(); @@ -284,7 +270,9 @@ function collectCommonTypeUsages( addUsage(type, target); if (type.kind === "Union") { for (const variant of type.variants.values()) { - visitType(variant.type, target, payloadContext); + if (isAvailableAtVersion(program, variant, versions)) { + visitType(variant.type, target, payloadContext); + } } } break; @@ -309,12 +297,19 @@ function collectCommonTypeUsages( current !== undefined; current = current.sourceProperty ) { + if (!isAvailableAtVersion(program, current, versions)) { + continue; + } addUsage(current, target); - visitType(current.type, target, payloadContext); + visitType(getTypeAtVersion(program, current, versions), target, payloadContext); } } for (const httpOperation of operations) { + if (!isAvailableAtVersion(program, httpOperation.operation, versions)) { + continue; + } + const requestContext = { visibility: resolveRequestVisibility(program, httpOperation.operation, httpOperation.verb), inExplicitBody: false, @@ -330,15 +325,24 @@ function collectCommonTypeUsages( body.bodyKind === "single" && body.isExplicit && body.containsMetadataAnnotations, }); } - for (const response of httpOperation.responses) { - for (const responseContent of response.responses) { - if (responseContent.body) { - const body = responseContent.body; - visitType(body.type, httpOperation.operation, { - visibility: Visibility.Read, - inExplicitBody: - body.bodyKind === "single" && body.isExplicit && body.containsMetadataAnnotations, - }); + + const returnType = getReturnTypeAtVersion(program, httpOperation.operation, versions); + if (returnType !== httpOperation.operation.returnType) { + visitType(returnType, httpOperation.operation, { + visibility: Visibility.Read, + inExplicitBody: false, + }); + } else { + for (const response of httpOperation.responses) { + for (const responseContent of response.responses) { + if (responseContent.body) { + const body = responseContent.body; + visitType(body.type, httpOperation.operation, { + visibility: Visibility.Read, + inExplicitBody: + body.bodyKind === "single" && body.isExplicit && body.containsMetadataAnnotations, + }); + } } } } @@ -347,6 +351,122 @@ function collectCommonTypeUsages( return usages; } +function isAvailableAtVersion( + program: Program, + type: Type, + versions: Map | undefined, +): boolean { + if (versions === undefined) { + return true; + } + + for (let current: Type | undefined = type; current !== undefined; current = getParent(current)) { + const version = getVersionForType(program, current, versions); + if (version === undefined) { + continue; + } + + const changes = [ + ...(getAddedOnVersions(program, current) ?? []).map((changedAt) => ({ + changedAt, + available: true, + })), + ...(getRemovedOnVersions(program, current) ?? []).map((changedAt) => ({ + changedAt, + available: false, + })), + ].sort((left, right) => left.changedAt.index - right.changedAt.index); + if (changes.length > 0) { + let available = !changes[0].available; + for (const change of changes) { + if (change.changedAt.index > version.index) { + break; + } + available = change.available; + } + return available; + } + } + return true; +} + +function getParent(type: Type): Type | undefined { + switch (type.kind) { + case "ModelProperty": + return type.model; + case "Operation": + return type.interface ?? type.namespace; + case "EnumMember": + return type.enum; + case "UnionVariant": + return type.union; + case "Interface": + case "Model": + case "Enum": + case "Union": + case "Scalar": + case "Namespace": + return type.namespace; + default: + return undefined; + } +} + +function getTypeAtVersion( + program: Program, + property: ModelProperty, + versions: Map | undefined, +): Type { + const version = versions && getVersionForType(program, property, versions); + if (version === undefined) { + return property.type; + } + + for (const [changedAtVersion, oldType] of getTypeChangedFrom(program, property) ?? []) { + if (version.index < changedAtVersion.index) { + return oldType; + } + } + return property.type; +} + +function getReturnTypeAtVersion( + program: Program, + operation: Operation, + versions: Map | undefined, +): Type { + const version = versions && getVersionForType(program, operation, versions); + if (version === undefined) { + return operation.returnType; + } + + for (const [changedAtVersion, oldType] of getReturnTypeChangedFrom(program, operation) ?? []) { + if (version.index < changedAtVersion.index) { + return oldType; + } + } + return operation.returnType; +} + +function getVersionForType( + program: Program, + type: Type, + versions: Map, +): Version | undefined { + const [versionedNamespace] = getVersions(program, type); + for ( + let namespace = versionedNamespace; + namespace !== undefined; + namespace = namespace.namespace + ) { + const version = versions.get(namespace); + if (version !== undefined) { + return version; + } + } + return undefined; +} + function canSharePropertyUsingReadonlyOrXmsMutability( program: Program, property: ModelProperty, diff --git a/packages/typespec-azure-resource-manager/test/rules/use-latest-version-of-common-types.test.ts b/packages/typespec-azure-resource-manager/test/rules/use-latest-version-of-common-types.test.ts index 02c0dd6d19..77836ebf8a 100644 --- a/packages/typespec-azure-resource-manager/test/rules/use-latest-version-of-common-types.test.ts +++ b/packages/typespec-azure-resource-manager/test/rules/use-latest-version-of-common-types.test.ts @@ -83,6 +83,20 @@ it("does not emit when a versioned ARM service selects the latest namespace comm await tester.expect(`${serviceHeader(latestVersion)} ${widgetResource}`).toBeValid(); }); +it("evaluates dependency type changes using the selected common-types version", async () => { + await tester + .expect( + ` + ${serviceHeader(latestVersion)} + + @route("/resource") + @get + op getResource(): Azure.ResourceManager.CommonTypes.ResourceModelWithAllowedPropertySet; + `, + ) + .toBeValid(); +}); + it("emits diagnostic when a version enum member overrides the namespace back to an older common-types version", async () => { await tester .expect( @@ -223,6 +237,156 @@ it("reports a versioned legacy property only for the projected API version that }); }); +it("applies the service version to types in child namespaces", async () => { + await tester + .expect( + ` + ${serviceHeader( + latestVersion, + latestVersion, + ` + @useDependency(Azure.ResourceManager.CommonTypes.Versions.${latestVersion}) + v2025_01_01: "2025-01-01", + `, + )} + + namespace Microsoft.TestService.Child { + model IdentityResult { + @added(Versions.v2025_01_01) + identity?: Azure.ResourceManager.Legacy.ManagedServiceIdentityV4; + } + + @route("/identity") + @get + op getIdentity(): IdentityResult; + } + `, + ) + .toEmitDiagnostics({ + code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", + message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, + }); +}); + +it("reports a removed legacy property only for the API version that contains it", async () => { + await tester + .expect( + ` + ${serviceHeader( + latestVersion, + latestVersion, + ` + @useDependency(Azure.ResourceManager.CommonTypes.Versions.${latestVersion}) + v2025_01_01: "2025-01-01", + `, + )} + + model IdentityResult { + @removed(Versions.v2025_01_01) + identity?: Azure.ResourceManager.Legacy.ManagedServiceIdentityV4; + } + + @route("/identity") + @get + op getIdentity(): IdentityResult; + `, + ) + .toEmitDiagnostics({ + code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", + message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, + }); +}); + +it("reports a legacy property type only before it changes", async () => { + await tester + .expect( + ` + ${serviceHeader( + latestVersion, + latestVersion, + ` + @useDependency(Azure.ResourceManager.CommonTypes.Versions.${latestVersion}) + v2025_01_01: "2025-01-01", + `, + )} + + model IdentityResult { + @typeChangedFrom( + Versions.v2025_01_01, + Azure.ResourceManager.Legacy.ManagedServiceIdentityV4 + ) + identity?: string; + } + + @route("/identity") + @get + op getIdentity(): IdentityResult; + `, + ) + .toEmitDiagnostics({ + code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", + message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, + }); +}); + +it("reports a legacy return type only before it changes", async () => { + await tester + .expect( + ` + ${serviceHeader( + latestVersion, + latestVersion, + ` + @useDependency(Azure.ResourceManager.CommonTypes.Versions.${latestVersion}) + v2025_01_01: "2025-01-01", + `, + )} + + @route("/identity") + @get + @returnTypeChangedFrom( + Versions.v2025_01_01, + Azure.ResourceManager.Legacy.ManagedServiceIdentityV4 + ) + op getIdentity(): string; + `, + ) + .toEmitDiagnostics({ + code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", + message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, + }); +}); + +it("follows an explicit response body in a historical return type", async () => { + await tester + .expect( + ` + ${serviceHeader( + latestVersion, + latestVersion, + ` + @useDependency(Azure.ResourceManager.CommonTypes.Versions.${latestVersion}) + v2025_01_01: "2025-01-01", + `, + )} + + model LegacyResponse { + @statusCode statusCode: 200; + @body body: Azure.ResourceManager.Legacy.ManagedServiceIdentityV4; + } + + @route("/identity") + @get + @returnTypeChangedFrom(Versions.v2025_01_01, LegacyResponse) + op getIdentity(): string; + `, + ) + .toEmitDiagnostics({ + code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", + message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, + }); +}); + it("reports each operation that emits the same legacy common type reference", async () => { await tester .expect( From 9661c68459fd0a14645414cd45f8802b5b32d170 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Mon, 31 Aug 2026 15:09:32 +0800 Subject: [PATCH 08/22] Update resource-manager.ts --- .../typespec-azure-rulesets/src/rulesets/resource-manager.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/typespec-azure-rulesets/src/rulesets/resource-manager.ts b/packages/typespec-azure-rulesets/src/rulesets/resource-manager.ts index 5802cfbed7..94dd6144a7 100644 --- a/packages/typespec-azure-rulesets/src/rulesets/resource-manager.ts +++ b/packages/typespec-azure-rulesets/src/rulesets/resource-manager.ts @@ -62,7 +62,6 @@ export default { "@azure-tools/typespec-azure-resource-manager/no-override-props": true, "@azure-tools/typespec-azure-resource-manager/no-empty-model": true, "@azure-tools/typespec-azure-resource-manager/arm-common-types-version": true, - // Disabled for staged rollout: existing Azure specs and samples still use older ARM common-types versions. "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types": false, "@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-child-resources": true, "@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-lifecycle-operations": true, From ea6fd2e131f8b4e50073e070b1c9528074e5ce12 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Mon, 31 Aug 2026 15:10:50 +0800 Subject: [PATCH 09/22] Update use-latest-version-of-common-types.md --- .../src/rules/use-latest-version-of-common-types.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md index 24904868af..dfdfa6da34 100644 --- a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md +++ b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md @@ -2,10 +2,6 @@ title: "use-latest-version-of-common-types" --- -```text title="Full name" -@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types -``` - ARM services should use the latest ARM common-types version available in `Azure.ResourceManager.CommonTypes.Versions`. This keeps TypeSpec services, generated SDKs, and Azure tooling aligned with the current ARM common schemas. From 2e4edd80082dba9b304b1c7babf9b02ecefa10ad Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Mon, 31 Aug 2026 15:17:50 +0800 Subject: [PATCH 10/22] Revise title for common types version rule Update the title to reflect the latest version usage. --- .../src/rules/use-latest-version-of-common-types.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md index dfdfa6da34..d72eb4aee5 100644 --- a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md +++ b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md @@ -1,7 +1,3 @@ ---- -title: "use-latest-version-of-common-types" ---- - ARM services should use the latest ARM common-types version available in `Azure.ResourceManager.CommonTypes.Versions`. This keeps TypeSpec services, generated SDKs, and Azure tooling aligned with the current ARM common schemas. From 2ad561120ec121d520dd138949d776b97f0f299a Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Tue, 8 Sep 2026 10:09:41 +0800 Subject: [PATCH 11/22] Fix promotion changelog classification Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- ...mote-latest-version-common-types-2026-08-20-14-00-00.md | 3 +-- .../register-use-latest-version-of-common-types-ruleset.md | 7 +++++++ 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 .chronus/changes/register-use-latest-version-of-common-types-ruleset.md diff --git a/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md b/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md index 39d11b95d2..66e6c0a790 100644 --- a/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md +++ b/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md @@ -2,7 +2,6 @@ changeKind: feature packages: - "@azure-tools/typespec-azure-resource-manager" - - "@azure-tools/typespec-azure-rulesets" --- -Add an ARM lint rule that warns when services select or emit older ARM common-types versions instead of the latest available common-types version. +Add the `use-latest-version-of-common-types` ARM lint rule that warns when services select or emit older ARM common-types versions instead of the latest available common-types version. diff --git a/.chronus/changes/register-use-latest-version-of-common-types-ruleset.md b/.chronus/changes/register-use-latest-version-of-common-types-ruleset.md new file mode 100644 index 0000000000..563c196ebf --- /dev/null +++ b/.chronus/changes/register-use-latest-version-of-common-types-ruleset.md @@ -0,0 +1,7 @@ +--- +changeKind: internal +packages: + - "@azure-tools/typespec-azure-rulesets" +--- + +Register the ARM `use-latest-version-of-common-types` lint rule as disabled in the resource manager ruleset. From 3e13a32fa0a982b80f0569ddc9e13b32993e129d Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Mon, 14 Sep 2026 17:04:23 +0800 Subject: [PATCH 12/22] Use native ARM common type records in latest-version rule Remove the OpenAPI reference parsing round trip while preserving resolution diagnostics and per-target reporting. Cover nested reference paths, native names, and incompatible records. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: f0af92c5-fa9d-4992-bb89-31bab99d244b --- ...ersion-common-types-2026-08-20-14-00-00.md | 2 + .../use-latest-version-of-common-types.md | 2 + .../use-latest-version-of-common-types.ts | 41 +++-------- ...use-latest-version-of-common-types.test.ts | 71 ++++++++++++++++++- 4 files changed, 85 insertions(+), 31 deletions(-) diff --git a/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md b/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md index 66e6c0a790..bc99bdc21b 100644 --- a/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md +++ b/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md @@ -5,3 +5,5 @@ packages: --- Add the `use-latest-version-of-common-types` ARM lint rule that warns when services select or emit older ARM common-types versions instead of the latest available common-types version. + +Resolve common-type versions from native TypeSpec metadata independently of OpenAPI reference path formatting. diff --git a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md index d72eb4aee5..bc968543f5 100644 --- a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md +++ b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md @@ -6,6 +6,8 @@ The rule checks the effective `@armCommonTypesVersion` on each ARM service or service version. When the selected version is current, it also checks common types reachable from HTTP operation parameters and payloads so older legacy symbols are not emitted through an otherwise current API version. +These checks use resolved ARM common-type metadata, including its version and +reference file, rather than parsing generated OpenAPI reference paths. ## Impact diff --git a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts index 26406f8659..ba3f6be74d 100644 --- a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts +++ b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts @@ -36,7 +36,7 @@ import { type Version, } from "@typespec/versioning"; import { - getArmCommonTypeOpenAPIRef, + findArmCommonTypeRecord, getArmCommonTypesVersion, getArmCommonTypesVersions, isArmCommonType, @@ -495,16 +495,18 @@ function reportOutdatedUsages( const reported = new Map>(); for (const usage of usages) { - const reference = getArmCommonTypeOpenAPIRef(context.program, usage.type, { + const [record, diagnostics] = findArmCommonTypeRecord(context.program, usage.type, { service, version: apiVersion, }); - const parsedReference = parseCommonTypesReference(reference); - if (parsedReference === undefined || parsedReference.version === latestVersion) { + context.program.reportDiagnostics(diagnostics); + if (record === undefined || record.version === latestVersion) { continue; } - const identity = `${parsedReference.fileName}\0${parsedReference.version}\0${parsedReference.referenceKind}\0${parsedReference.referenceName}`; + const fileName = record.referenceFile ?? record.basePath; + const referenceKind = record.kind === "definitions" ? "definition" : "parameter"; + const identity = `${fileName}\0${record.version}\0${record.kind}\0${record.name}`; let targetReferences = reported.get(usage.target); if (targetReferences === undefined) { targetReferences = new Set(); @@ -519,33 +521,12 @@ function reportOutdatedUsages( messageId: "reference", target: usage.target, format: { - currentVersion: parsedReference.version, + currentVersion: record.version, latestVersion, - fileName: parsedReference.fileName, - referenceKind: parsedReference.referenceKind, - referenceName: parsedReference.referenceName, + fileName, + referenceKind, + referenceName: record.name, }, }); } } - -function parseCommonTypesReference(reference: string | undefined): - | { - version: string; - fileName: string; - referenceKind: string; - referenceName: string; - } - | undefined { - const match = reference?.match( - /(?:resource-management\/|\{arm-types-dir\}\/)(v\d+)\/([^/#]+\.json)#\/([^/]+)\/([^/]+)$/i, - ); - return match - ? { - version: match[1].toLowerCase(), - fileName: match[2].toLowerCase(), - referenceKind: match[3].replace(/s$/i, "").toLowerCase(), - referenceName: decodeURIComponent(match[4]), - } - : undefined; -} diff --git a/packages/typespec-azure-resource-manager/test/rules/use-latest-version-of-common-types.test.ts b/packages/typespec-azure-resource-manager/test/rules/use-latest-version-of-common-types.test.ts index 77836ebf8a..437b3bab79 100644 --- a/packages/typespec-azure-resource-manager/test/rules/use-latest-version-of-common-types.test.ts +++ b/packages/typespec-azure-resource-manager/test/rules/use-latest-version-of-common-types.test.ts @@ -1,10 +1,12 @@ import { Tester } from "#test/tester.js"; +import { navigateProgram } from "@typespec/compiler"; import { type LinterRuleTester, type TesterInstance, createLinterRuleTester, + expectDiagnostics, } from "@typespec/compiler/testing"; -import { beforeEach, it } from "vitest"; +import { beforeEach, expect, it, vi } from "vitest"; import { useLatestVersionOfCommonTypesRule } from "../../src/rules/use-latest-version-of-common-types.js"; @@ -75,6 +77,7 @@ const widgetResource = ` it("emits diagnostic when a versioned ARM service selects an older namespace common-types version", async () => { await tester.expect(`${serviceHeader("v3")} ${widgetResource}`).toEmitDiagnostics({ code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", + target: "v2024_01_01", message: `Use the latest ARM common-types version '${latestVersion}' instead of 'v3'.`, }); }); @@ -199,10 +202,12 @@ it("emits diagnostic when a latest-version service uses a legacy common model", .toEmitDiagnostics([ { code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", + target: "get", message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, }, { code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", + target: "createOrUpdate", message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, }, ]); @@ -405,15 +410,79 @@ it("reports each operation that emits the same legacy common type reference", as .toEmitDiagnostics([ { code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", + target: "getFirst", message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, }, { code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", + target: "getSecond", message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, }, ]); }); +it.each(["Legacy.json", "nested/Legacy.json"])( + "checks resolved metadata independently of reference layout for %s", + async (referenceFile) => { + await tester + .expect( + ` + ${serviceHeader(latestVersion)} + + @Azure.ResourceManager.CommonTypes.Private.armCommonDefinition( + "Legacy%Identity", CommonTypes.Versions.v4, "${referenceFile}" + ) + model LegacyIdentity { + id: string; + } + + model Result { + identity: LegacyIdentity; + } + + @route("/identity") + @get + op getIdentity(): Result; + `, + ) + .toEmitDiagnostics({ + code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", + target: "identity", + message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'Legacy%Identity' resolves to '${referenceFile}' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, + }); + }, +); + +it("reports common-type resolution failures instead of silently skipping them", async () => { + const { program } = await runner.compile(` + ${serviceHeader(latestVersion)} + + @Azure.ResourceManager.CommonTypes.Private.armCommonDefinition( + "FutureIdentity", "v999", "identity.json" + ) + model FutureIdentity { + id: string; + } + + @route("/identity") + @get + op getIdentity(): FutureIdentity; + `); + const reportDiagnostic = vi.fn(); + navigateProgram( + program, + useLatestVersionOfCommonTypesRule.create({ program, options: {}, reportDiagnostic }), + ); + + expectDiagnostics(program.diagnostics, { + code: "@azure-tools/typespec-azure-resource-manager/arm-common-types-incompatible-version", + target: "FutureIdentity", + message: + "No ARM common-types version for this type satisfies the expected version v6. This type only supports the following version(s): v999", + }); + expect(reportDiagnostic).not.toHaveBeenCalled(); +}); + it("does not report legacy common types excluded by request or response payload visibility", async () => { await tester .expect( From da46ae1fb423730d09dbf7b278992ecce0d8ba06 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Mon, 14 Sep 2026 17:34:13 +0800 Subject: [PATCH 13/22] Add common types rule to ARM inventory Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: f0af92c5-fa9d-4992-bb89-31bab99d244b --- website/src/content/docs/docs/howtos/ARM/arm-rules.md | 1 + 1 file changed, 1 insertion(+) diff --git a/website/src/content/docs/docs/howtos/ARM/arm-rules.md b/website/src/content/docs/docs/howtos/ARM/arm-rules.md index d3209ab6c2..3aa03b5c9b 100644 --- a/website/src/content/docs/docs/howtos/ARM/arm-rules.md +++ b/website/src/content/docs/docs/howtos/ARM/arm-rules.md @@ -134,6 +134,7 @@ The tables below provide guidance to rule authors and ARM reviewers on how to ev | [`unsupported-type`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/unsupported-type/) | — | **SDK.** The data type cannot be modeled in SDKs. | | [`use-api-version`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-api-version/) | [`ApiVersionParameterRequired`](https://github.com/Azure/azure-openapi-validator/blob/main/docs/api-version-parameter-required.md) | **API, SDK.** An operation without the standard API version parameter cannot evolve safely and is difficult for SDKs to represent consistently. | | [`use-interface`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-interface/) | — | **API, SDK, Emitters.** Resource operations outside interfaces can break ARM resource-operation modeling and downstream tooling assumptions. | +| [`use-latest-version-of-common-types`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-latest-version-of-common-types/) | [`LatestVersionOfCommonTypesMustBeUsed`](https://github.com/Azure/azure-openapi-validator/blob/main/docs/latest-version-of-common-types-must-be-used.md) | **API, SDK.** Older common-types versions can expose stale shared schemas or parameters in generated API surfaces and SDKs. | | [`use-operation-decorator`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-operation-decorator/) | — | **API, SDK, Emitters.** Missing or mismatched decorators prevent resource operations from being associated with the correct resource, which can break SDK generation and resource-aware tooling. | | [`version-progression`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/version-progression/) | — | **API, SDK, Tooling.** Out-of-order versions make specs unmaintainable, and versions with matching dates cause SDK problems. | From 7c1764c3ce19e088b3c4f1f5f05eb79e32696054 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Fri, 18 Sep 2026 13:25:48 +0800 Subject: [PATCH 14/22] Report common type resolution failures through linter context Keep failures at project usage targets under the rule code so suppression and library filtering apply. Preserve legacy usage coverage and document why version selection alone is insufficient. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: f0af92c5-fa9d-4992-bb89-31bab99d244b --- ...ersion-common-types-2026-08-20-14-00-00.md | 2 + .../use-latest-version-of-common-types.md | 7 ++ .../use-latest-version-of-common-types.ts | 13 ++-- ...use-latest-version-of-common-types.test.ts | 70 ++++++++++++++----- 4 files changed, 71 insertions(+), 21 deletions(-) diff --git a/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md b/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md index bc99bdc21b..346ba4f59e 100644 --- a/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md +++ b/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md @@ -7,3 +7,5 @@ packages: Add the `use-latest-version-of-common-types` ARM lint rule that warns when services select or emit older ARM common-types versions instead of the latest available common-types version. Resolve common-type versions from native TypeSpec metadata independently of OpenAPI reference path formatting. + +Report common-type resolution failures at user usages through the linter so rule suppression and project-location filtering apply. diff --git a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md index bc968543f5..9b3bb0db92 100644 --- a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md +++ b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md @@ -8,6 +8,13 @@ types reachable from HTTP operation parameters and payloads so older legacy symbols are not emitted through an otherwise current API version. These checks use resolved ARM common-type metadata, including its version and reference file, rather than parsing generated OpenAPI reference paths. +Selecting the latest version is not sufficient on its own: a legacy symbol can +still resolve to an older supported common-type record. The rule therefore +checks usages as well as the selected version. + +If a common type cannot be resolved, the rule reports the resolution failure at +the usage in the user project under this rule's diagnostic code. This diagnostic +can be suppressed in the same way as other diagnostics from this rule. ## Impact diff --git a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts index ba3f6be74d..9326f0114f 100644 --- a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts +++ b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts @@ -50,6 +50,7 @@ export const useLatestVersionOfCommonTypesRule = createRule({ severity: "warning", url: "https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-latest-version-of-common-types", messages: { + resolution: paramMessage`Unable to resolve the ARM common type used here. ${"details"}`, default: paramMessage`Use the latest ARM common-types version '${"latestVersion"}' instead of '${"currentVersion"}'.`, reference: paramMessage`This API version already selects the latest ARM common-types version '${"latestVersion"}', but the common-type ${"referenceKind"} '${"referenceName"}' resolves to '${"fileName"}' version '${"currentVersion"}'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${"latestVersion"}'.`, }, @@ -156,13 +157,11 @@ function reportOutdatedSelection( latestVersion: string, ): void { context.reportDiagnostic({ + messageId: "default", target, format: { currentVersion, latestVersion, - fileName: "common-types", - referenceKind: "selection", - referenceName: "common-types", }, }); } @@ -499,7 +498,13 @@ function reportOutdatedUsages( service, version: apiVersion, }); - context.program.reportDiagnostics(diagnostics); + for (const diagnostic of diagnostics) { + context.reportDiagnostic({ + messageId: "resolution", + target: usage.target, + format: { details: diagnostic.message }, + }); + } if (record === undefined || record.version === latestVersion) { continue; } diff --git a/packages/typespec-azure-resource-manager/test/rules/use-latest-version-of-common-types.test.ts b/packages/typespec-azure-resource-manager/test/rules/use-latest-version-of-common-types.test.ts index 437b3bab79..43760075dc 100644 --- a/packages/typespec-azure-resource-manager/test/rules/use-latest-version-of-common-types.test.ts +++ b/packages/typespec-azure-resource-manager/test/rules/use-latest-version-of-common-types.test.ts @@ -1,12 +1,11 @@ import { Tester } from "#test/tester.js"; -import { navigateProgram } from "@typespec/compiler"; import { type LinterRuleTester, type TesterInstance, createLinterRuleTester, expectDiagnostics, } from "@typespec/compiler/testing"; -import { beforeEach, expect, it, vi } from "vitest"; +import { beforeEach, it } from "vitest"; import { useLatestVersionOfCommonTypesRule } from "../../src/rules/use-latest-version-of-common-types.js"; @@ -453,8 +452,7 @@ it.each(["Legacy.json", "nested/Legacy.json"])( }, ); -it("reports common-type resolution failures instead of silently skipping them", async () => { - const { program } = await runner.compile(` +const unresolvedCommonTypeUsage = (suppress = false) => ` ${serviceHeader(latestVersion)} @Azure.ResourceManager.CommonTypes.Private.armCommonDefinition( @@ -466,21 +464,59 @@ it("reports common-type resolution failures instead of silently skipping them", @route("/identity") @get + ${suppress ? '#suppress "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types" "Intentional unresolved common type for this test."' : ""} op getIdentity(): FutureIdentity; - `); - const reportDiagnostic = vi.fn(); - navigateProgram( - program, - useLatestVersionOfCommonTypesRule.create({ program, options: {}, reportDiagnostic }), - ); + `; - expectDiagnostics(program.diagnostics, { - code: "@azure-tools/typespec-azure-resource-manager/arm-common-types-incompatible-version", - target: "FutureIdentity", - message: - "No ARM common-types version for this type satisfies the expected version v6. This type only supports the following version(s): v999", - }); - expect(reportDiagnostic).not.toHaveBeenCalled(); +const resolutionDiagnostic = { + code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", + target: "getIdentity", + message: + "Unable to resolve the ARM common type used here. No ARM common-types version for this type satisfies the expected version v6. This type only supports the following version(s): v999", +}; + +it("reports common-type resolution failures instead of silently skipping them", async () => { + await tester.expect(unresolvedCommonTypeUsage()).toEmitDiagnostics(resolutionDiagnostic); +}); + +it.each([false, true])( + "respects rule suppression for resolution failures: %s", + async (suppress) => { + const diagnostics = await runner.diagnose(unresolvedCommonTypeUsage(suppress), { + compilerOptions: { + linterRuleSet: { enable: { [resolutionDiagnostic.code]: true } }, + }, + }); + expectDiagnostics(diagnostics, suppress ? [] : [resolutionDiagnostic]); + }, +); + +it("does not report resolution failures for operations declared in libraries", async () => { + const libraryRunner = await Tester.import("test-common-type-service").createInstance(); + const libraryTester = createLinterRuleTester( + libraryRunner, + useLatestVersionOfCommonTypesRule, + "@azure-tools/typespec-azure-resource-manager", + ); + await libraryTester + .expect({ + "main.tsp": "", + "node_modules/test-common-type-service/package.json": JSON.stringify({ + name: "test-common-type-service", + version: "1.0.0", + tspMain: "main.tsp", + }), + "node_modules/test-common-type-service/main.tsp": ` + import "@azure-tools/typespec-azure-resource-manager"; + import "@typespec/http"; + import "@typespec/versioning"; + using Azure.ResourceManager; + using TypeSpec.Http; + using TypeSpec.Versioning; + ${unresolvedCommonTypeUsage()} + `, + }) + .toBeValid(); }); it("does not report legacy common types excluded by request or response payload visibility", async () => { From 1722f99264f78dea42a5f084ca936a7b77161b47 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Sun, 20 Sep 2026 13:31:38 +0800 Subject: [PATCH 15/22] Consolidate latest common-types guidance into existing ARM rule Preserve missing-version diagnostics, check effective selections only, and remove legacy usage traversal. Document the enabled-ruleset behavior change and update standard ARM examples. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: f0af92c5-fa9d-4992-bb89-31bab99d244b --- ...ersion-common-types-2026-08-20-14-00-00.md | 6 +- ...-latest-version-of-common-types-ruleset.md | 7 - .../typespec-azure-resource-manager/README.md | 3 +- .../src/linter.ts | 2 - .../src/rules/arm-common-types-version.md | 83 ++- .../src/rules/arm-common-types-version.ts | 53 +- .../use-latest-version-of-common-types.md | 113 ---- .../use-latest-version-of-common-types.ts | 537 ----------------- .../rules/arm-common-types-version.test.ts | 287 ++++++++- ...use-latest-version-of-common-types.test.ts | 561 ------------------ .../src/rulesets/resource-manager.ts | 1 - .../test/validate-rules-defined.test.ts | 15 + .../content/docs/docs/howtos/ARM/arm-rules.md | 3 +- .../howtos/ARM/rpc-guidelines-coverage.md | 2 +- .../reference/linter.md | 3 +- 15 files changed, 414 insertions(+), 1262 deletions(-) delete mode 100644 .chronus/changes/register-use-latest-version-of-common-types-ruleset.md delete mode 100644 packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md delete mode 100644 packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts delete mode 100644 packages/typespec-azure-resource-manager/test/rules/use-latest-version-of-common-types.test.ts diff --git a/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md b/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md index 346ba4f59e..7e9b40b2c3 100644 --- a/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md +++ b/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md @@ -4,8 +4,8 @@ packages: - "@azure-tools/typespec-azure-resource-manager" --- -Add the `use-latest-version-of-common-types` ARM lint rule that warns when services select or emit older ARM common-types versions instead of the latest available common-types version. +Extend `arm-common-types-version` to warn when an ARM service or API version selects an older common-types version, while preserving the existing warning for missing explicit version configuration. -Resolve common-type versions from native TypeSpec metadata independently of OpenAPI reference path formatting. +Latest-version warnings are now active wherever this existing rule is enabled, including the resource-manager ruleset. Update `@armCommonTypesVersion` to the latest version in `Azure.ResourceManager.CommonTypes.Versions`, or suppress `@azure-tools/typespec-azure-resource-manager/arm-common-types-version` when an older version is required for compatibility. -Report common-type resolution failures at user usages through the linter so rule suppression and project-location filtering apply. +The rule checks effective version selections only; it does not inspect legacy type usages or emitted OpenAPI references. diff --git a/.chronus/changes/register-use-latest-version-of-common-types-ruleset.md b/.chronus/changes/register-use-latest-version-of-common-types-ruleset.md deleted file mode 100644 index 563c196ebf..0000000000 --- a/.chronus/changes/register-use-latest-version-of-common-types-ruleset.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: internal -packages: - - "@azure-tools/typespec-azure-rulesets" ---- - -Register the ARM `use-latest-version-of-common-types` lint rule as disabled in the resource manager ruleset. diff --git a/packages/typespec-azure-resource-manager/README.md b/packages/typespec-azure-resource-manager/README.md index a6f7f8c75c..233d38a646 100644 --- a/packages/typespec-azure-resource-manager/README.md +++ b/packages/typespec-azure-resource-manager/README.md @@ -34,7 +34,7 @@ Available ruleSets: | [`@azure-tools/typespec-azure-resource-manager/arm-no-record`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-no-record) | Don't use Record types for ARM resources. | | [`@azure-tools/typespec-azure-resource-manager/arm-no-path-casing-conflicts`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-no-path-casing-conflicts) | Operation paths must be unique when compared case-insensitively. | | [`@azure-tools/typespec-azure-resource-manager/no-override-props`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/no-override-props) | Disallow redefining properties already defined in a base type. | -| [`@azure-tools/typespec-azure-resource-manager/arm-common-types-version`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-common-types-version) | Specify the ARM common-types version using @armCommonTypesVersion. | +| [`@azure-tools/typespec-azure-resource-manager/arm-common-types-version`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-common-types-version) | Specify the latest ARM common-types version using @armCommonTypesVersion. | | [`@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-delete-operation-response-codes) | Ensure delete operations have the appropriate status codes. | | [`@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-put-operation-response-codes) | Ensure put operations have the appropriate status codes. | | [`@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-post-operation-response-codes) | Ensure post operations have the appropriate status codes. | @@ -65,7 +65,6 @@ Available ruleSets: | [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-invalid-action-verb) | Actions must be HTTP Post or Get operations. | | [`@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/improper-subscription-list-operation) | Tenant and Extension resources should not define a list by subscription operation. | | [`@azure-tools/typespec-azure-resource-manager/lro-location-header`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/lro-location-header) | A 202 response should include a Location response header. | -| [`@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-latest-version-of-common-types) | ARM services must use the latest available ARM common-types version. | | [`@azure-tools/typespec-azure-resource-manager/list-operation-missing-pageable`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/list-operation-missing-pageable) | ARM GET operations on list paths must define TypeSpec paging metadata. | | [`@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/missing-x-ms-identifiers) | Array properties should describe their identifying properties with x-ms-identifiers. Decorate the property with @OpenAPI.extension("x-ms-identifiers", #[id-prop]) where "id-prop" is a list of the names of identifying properties in the item type. | | [`@azure-tools/typespec-azure-resource-manager/no-response-body`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/no-response-body) | Check that the body is empty for 202 and 204 responses, and not empty for other success (2xx) responses. | diff --git a/packages/typespec-azure-resource-manager/src/linter.ts b/packages/typespec-azure-resource-manager/src/linter.ts index 220ed5cca7..4333e5357a 100644 --- a/packages/typespec-azure-resource-manager/src/linter.ts +++ b/packages/typespec-azure-resource-manager/src/linter.ts @@ -48,7 +48,6 @@ import { unsupportedTypeRule } from "./rules/unsupported-type.js"; import { useApiVersionRule } from "./rules/use-api-version.js"; import { useApplicationJsonContentTypeRule } from "./rules/use-application-json-content-type.js"; import { useInterfaceRule } from "./rules/use-interface.js"; -import { useLatestVersionOfCommonTypesRule } from "./rules/use-latest-version-of-common-types.js"; import { useModelRequestBodyRule } from "./rules/use-model-request-body.js"; import { useOperationDecoratorRule } from "./rules/use-operation-decorator.js"; import { useRelationshipRequiredPropertiesRule } from "./rules/use-relationship-required-properties.js"; @@ -92,7 +91,6 @@ const rules = [ armResourceInvalidActionVerbRule, improperSubscriptionListOperationRule, lroLocationHeaderRule, - useLatestVersionOfCommonTypesRule, listOperationMissingPageableRule, missingXmsIdentifiersRule, noResponseBodyRule, diff --git a/packages/typespec-azure-resource-manager/src/rules/arm-common-types-version.md b/packages/typespec-azure-resource-manager/src/rules/arm-common-types-version.md index 27515d61e2..acdc407607 100644 --- a/packages/typespec-azure-resource-manager/src/rules/arm-common-types-version.md +++ b/packages/typespec-azure-resource-manager/src/rules/arm-common-types-version.md @@ -1,10 +1,20 @@ -If the same common types version is used across all service versions, this decorator should be applied either on the service namespace or on each version enum member. If the common types version is updated in later versions, the decorator should appear on each version enum member. +ARM services should explicitly select the latest version in +`Azure.ResourceManager.CommonTypes.Versions` using `@armCommonTypesVersion`. +Apply the decorator to the service namespace when all API versions use the same +common-types version. A decorator on an API version enum member overrides the +namespace selection for that API version. + +The rule warns when explicit version configuration is missing or when an +effective selection is older than the latest available version. It checks +version selections, not individual legacy type usages. ## Impact - **Area:** API, SDK -Indicates common-types are not being used, which normally surfaces as other violations too. +Missing or outdated common-types selections can leave an API and its generated +SDKs using older shared schemas and parameters. Latest-version warnings are +enabled wherever this rule is enabled, including the resource-manager ruleset. ## ❌ Incorrect @@ -13,33 +23,80 @@ Indicates common-types are not being used, which normally surfaces as other viol namespace Microsoft.Contoso; ``` -## ✅ Correct - -Apply `@armCommonTypesVersion` on the namespace: +An explicit older selection also produces a warning: ```tsp @armProviderNamespace -@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) namespace Microsoft.Contoso; ``` -## ✅ Correct (per version) +## ✅ Correct -Apply `@armCommonTypesVersion` on each version enum member: +Select the latest version on the namespace and use standard ARM resource +operation templates: ```tsp +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/http"; +import "@typespec/rest"; +import "@typespec/versioning"; + +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; + @armProviderNamespace +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) +@versioned(Versions) namespace Microsoft.Contoso; enum Versions { - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v4) - v1, + v2026_08_01: "2026-08-01", +} + +model Widget is TrackedResource { + ...ResourceNameParameter; +} - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) - v2, +model WidgetProperties { + /** The resource provisioning state. */ + @visibility(Lifecycle.Read) + provisioningState?: ResourceProvisioningState; +} + +interface Operations extends Azure.ResourceManager.Operations {} + +@armResourceOperations +interface Widgets { + get is ArmResourceRead; } ``` +Alternatively, apply `@armCommonTypesVersion` to every API version enum member +instead of the namespace. Every effective selection must use the latest version +to satisfy this rule. + +As of August 2026, `v6` was the latest ARM common-types version. +Newer versions may exist; check `Azure.ResourceManager.CommonTypes.Versions` +before updating a service. + +## LintDiff Equivalent + +This rule covers the version-selection guidance of +[`LatestVersionOfCommonTypesMustBeUsed`](https://github.com/Azure/azure-openapi-validator/blob/main/docs/latest-version-of-common-types-must-be-used.md). +Unlike the OpenAPI rule, it does not inspect emitted common-type references. + ## Suppression -Suppress only if no common-types are ever used and that is valid; otherwise associate a common-types version with each version in the Versions enum. +Prefer updating `@armCommonTypesVersion` to the latest version. Suppress only +when an older version is required for compatibility and the API and SDK impact +has been accepted, or when no common-types are used and omitting the selection +is intentional. + +Place `#suppress "@azure-tools/typespec-azure-resource-manager/arm-common-types-version" "Compatibility justification"` +above the service namespace for missing configuration or an unversioned +selection, or above the affected API version enum member for a versioned +selection. Suppressing the rule also suppresses its missing-configuration check +within that scope. diff --git a/packages/typespec-azure-resource-manager/src/rules/arm-common-types-version.ts b/packages/typespec-azure-resource-manager/src/rules/arm-common-types-version.ts index 3abb4cdd68..b5b9b73765 100644 --- a/packages/typespec-azure-resource-manager/src/rules/arm-common-types-version.ts +++ b/packages/typespec-azure-resource-manager/src/rules/arm-common-types-version.ts @@ -1,32 +1,40 @@ -import { type Program, type SemanticNodeListener, createRule, fileRef } from "@typespec/compiler"; -import { getAllHttpServices } from "@typespec/http"; +import { + type Program, + type SemanticNodeListener, + createRule, + fileRef, + listServices, + paramMessage, +} from "@typespec/compiler"; import { getVersion } from "@typespec/versioning"; +import { getArmCommonTypesVersion, getArmCommonTypesVersions } from "../common-types.js"; import { getArmProviderNamespace } from "../namespace.js"; /** - * The @armCommonTypesVersion decorator should be used to set the ARM - * common-types version used by the service. + * The @armCommonTypesVersion decorator should select the latest ARM common-types version. */ export const armCommonTypesVersionRule = createRule({ name: "arm-common-types-version", docs: fileRef.fromPackageRoot("src/rules/arm-common-types-version.md"), severity: "warning", - description: "Specify the ARM common-types version using @armCommonTypesVersion.", + description: "Specify the latest ARM common-types version using @armCommonTypesVersion.", url: "https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-common-types-version", messages: { default: "Specify the ARM common-types version using the @armCommonTypesVersion decorator on the service namespace or on each version of the service version enum.", + outdated: paramMessage`Use the latest ARM common-types version '${"latestVersion"}' instead of '${"currentVersion"}'.`, }, create(context): SemanticNodeListener { return { root: (program: Program) => { - const [services, _] = getAllHttpServices(program); - for (const service of services) { - if (!getArmProviderNamespace(program, service.namespace)) { + // The common-types registry stores versions newest first. + const latestVersion = getArmCommonTypesVersions(program)?.allVersions[0]?.name; + for (const { type: namespace } of listServices(program)) { + if (!getArmProviderNamespace(program, namespace)) { continue; } - const versionMap = getVersion(program, service.namespace); + const versionMap = getVersion(program, namespace); // If the namespace is versioned and not all versions have the // common-types version and if the service namespace doesn't have a // common-types version, raise a diagnostic. @@ -42,13 +50,32 @@ export const armCommonTypesVersionRule = createRule({ ), ) ) && - !service.namespace.decorators.find( - (x) => x.definition?.name === "@armCommonTypesVersion", - ) + !namespace.decorators.find((x) => x.definition?.name === "@armCommonTypesVersion") ) { context.reportDiagnostic({ - target: service.namespace, + messageId: "default", + target: namespace, }); + continue; + } + + if (latestVersion === undefined) { + continue; + } + + const namespaceVersion = getArmCommonTypesVersion(program, namespace); + const targets = versionMap + ? versionMap.getVersions().map((version) => version.enumMember) + : [namespace]; + for (const target of targets) { + const currentVersion = getArmCommonTypesVersion(program, target) ?? namespaceVersion; + if (currentVersion !== undefined && currentVersion !== latestVersion) { + context.reportDiagnostic({ + messageId: "outdated", + target, + format: { latestVersion, currentVersion }, + }); + } } } }, diff --git a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md deleted file mode 100644 index 9b3bb0db92..0000000000 --- a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.md +++ /dev/null @@ -1,113 +0,0 @@ -ARM services should use the latest ARM common-types version available in -`Azure.ResourceManager.CommonTypes.Versions`. This keeps TypeSpec services, -generated SDKs, and Azure tooling aligned with the current ARM common schemas. - -The rule checks the effective `@armCommonTypesVersion` on each ARM service or -service version. When the selected version is current, it also checks common -types reachable from HTTP operation parameters and payloads so older legacy -symbols are not emitted through an otherwise current API version. -These checks use resolved ARM common-type metadata, including its version and -reference file, rather than parsing generated OpenAPI reference paths. -Selecting the latest version is not sufficient on its own: a legacy symbol can -still resolve to an older supported common-type record. The rule therefore -checks usages as well as the selected version. - -If a common type cannot be resolved, the rule reports the resolution failure at -the usage in the user project under this rule's diagnostic code. This diagnostic -can be suppressed in the same way as other diagnostics from this rule. - -## Impact - -- **Area:** API, SDK - -Older ARM common-types versions can expose stale shared schemas or parameters in -generated API surfaces and SDKs even when newer definitions are available. - -## Incorrect - -```tsp -@armProviderNamespace -@service(#{ title: "Contoso" }) -@versioned(Versions) -@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) -namespace Microsoft.Contoso; - -enum Versions { - @useDependency(Azure.ResourceManager.CommonTypes.Versions.v3) - v2024_01_01: "2024-01-01", -} -``` - -## Correct - -```tsp -@armProviderNamespace -@service(#{ title: "Contoso" }) -@versioned(Versions) -@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) -namespace Microsoft.Contoso; - -enum Versions { - @useDependency(Azure.ResourceManager.CommonTypes.Versions.v6) - v2024_01_01: "2024-01-01", -} -``` - -As of August 2026, `v6` was the latest ARM common-types version. -Newer versions may exist; check `Azure.ResourceManager.CommonTypes.Versions` -for the latest version before updating a service. - -## Incorrect - -This service selects the latest common-types version but still uses a legacy -common type that resolves to an older common-types file. - -```tsp -@armProviderNamespace -@service(#{ title: "Contoso" }) -@versioned(Versions) -@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) -namespace Microsoft.Contoso; - -enum Versions { - @useDependency(Azure.ResourceManager.CommonTypes.Versions.v6) - v2024_01_01: "2024-01-01", -} - -@route("/identity") -@get -op getIdentity(): Azure.ResourceManager.Legacy.ManagedServiceIdentityV4; -``` - -## Correct - -Use the equivalent common type supported by the selected latest common-types -version, or remove the legacy reference when the API shape no longer needs it. - -```tsp -@armProviderNamespace -@service(#{ title: "Contoso" }) -@versioned(Versions) -@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) -namespace Microsoft.Contoso; - -enum Versions { - @useDependency(Azure.ResourceManager.CommonTypes.Versions.v6) - v2024_01_01: "2024-01-01", -} - -@route("/identity") -@get -op getIdentity(): Azure.ResourceManager.CommonTypes.ManagedServiceIdentity; -``` - -## LintDiff Equivalent - -This rule corresponds to the LintDiff rule -[LatestVersionOfCommonTypesMustBeUsed](https://github.com/Azure/azure-openapi-validator/blob/main/docs/latest-version-of-common-types-must-be-used.md). - -## Suppression - -Suppress only when an API must intentionally emit an older ARM common-types -schema for compatibility and the service team has accepted the API and SDK -impact. diff --git a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts b/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts deleted file mode 100644 index 9326f0114f..0000000000 --- a/packages/typespec-azure-resource-manager/src/rules/use-latest-version-of-common-types.ts +++ /dev/null @@ -1,537 +0,0 @@ -import { - createRule, - fileRef, - getLifecycleVisibilityEnum, - getService, - getVisibilityForClass, - isArrayModelType, - listServices, - paramMessage, - walkPropertiesInherited, - type Enum, - type EnumMember, - type Model, - type ModelProperty, - type Namespace, - type Operation, - type Program, - type Service, - type Type, - type Union, -} from "@typespec/compiler"; -import { - Visibility, - createMetadataInfo, - getHttpService, - resolveRequestVisibility, - type HttpOperation, -} from "@typespec/http"; -import { - getAddedOnVersions, - getRemovedOnVersions, - getReturnTypeChangedFrom, - getTypeChangedFrom, - getVersions, - resolveVersions, - type Version, -} from "@typespec/versioning"; -import { - findArmCommonTypeRecord, - getArmCommonTypesVersion, - getArmCommonTypesVersions, - isArmCommonType, -} from "../common-types.js"; -import { getArmProviderNamespace } from "../namespace.js"; - -export const useLatestVersionOfCommonTypesRule = createRule({ - name: "use-latest-version-of-common-types", - docs: fileRef.fromPackageRoot("src/rules/use-latest-version-of-common-types.md"), - description: "ARM services must use the latest available ARM common-types version.", - severity: "warning", - url: "https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-latest-version-of-common-types", - messages: { - resolution: paramMessage`Unable to resolve the ARM common type used here. ${"details"}`, - default: paramMessage`Use the latest ARM common-types version '${"latestVersion"}' instead of '${"currentVersion"}'.`, - reference: paramMessage`This API version already selects the latest ARM common-types version '${"latestVersion"}', but the common-type ${"referenceKind"} '${"referenceName"}' resolves to '${"fileName"}' version '${"currentVersion"}'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${"latestVersion"}'.`, - }, - create(context) { - return { - root: (program) => { - const latestVersion = tryGetLatestArmCommonTypesVersion(program); - if (latestVersion === undefined) { - return; - } - - for (const service of listServices(program)) { - if (!getArmProviderNamespace(program, service.type)) { - continue; - } - - const compilerService = getService(program, service.type); - if (compilerService === undefined) { - continue; - } - - const versionResolutions = resolveVersions(program, service.type); - if (versionResolutions.some((resolution) => resolution.rootVersion !== undefined)) { - const [httpService] = getHttpService(program, service.type); - for (const resolution of versionResolutions) { - const version = resolution.rootVersion; - if (version === undefined) { - continue; - } - const currentVersion = - getArmCommonTypesVersion(program, version.enumMember) ?? - getArmCommonTypesVersion(program, service.type); - if (isOutdated(currentVersion, latestVersion)) { - reportOutdatedSelection(context, version.enumMember, currentVersion, latestVersion); - continue; - } - if (currentVersion === undefined) { - continue; - } - - reportOutdatedUsages( - context, - collectCommonTypeUsages(program, httpService.operations, resolution.versions), - compilerService, - version.value, - latestVersion, - ); - } - continue; - } - - const [httpService] = getHttpService(program, service.type); - const versionContext = versionResolutions[0]?.versions; - - const currentVersion = getArmCommonTypesVersion(program, service.type); - if (isOutdated(currentVersion, latestVersion)) { - reportOutdatedSelection(context, service.type, currentVersion, latestVersion); - continue; - } - if (currentVersion === undefined) { - continue; - } - - reportOutdatedUsages( - context, - collectCommonTypeUsages(program, httpService.operations, versionContext), - compilerService, - undefined, - latestVersion, - ); - } - }, - }; - }, -}); - -function tryGetLatestArmCommonTypesVersion(program: Program): string | undefined { - const allVersions = getArmCommonTypesVersions(program)?.allVersions; - if (allVersions === undefined || allVersions.length === 0) { - return undefined; - } - - return allVersions.reduce((latest, version) => - getVersionNumber(version.name) > getVersionNumber(latest.name) ? version : latest, - ).name; -} - -function getVersionNumber(version: string): number { - const match = /^v(\d+)$/i.exec(version); - return match ? Number(match[1]) : Number.NEGATIVE_INFINITY; -} - -function isOutdated( - currentVersion: string | undefined, - latestVersion: string, -): currentVersion is string { - return currentVersion !== undefined && currentVersion !== latestVersion; -} - -function reportOutdatedSelection( - context: Parameters[0], - target: Namespace | EnumMember, - currentVersion: string, - latestVersion: string, -): void { - context.reportDiagnostic({ - messageId: "default", - target, - format: { - currentVersion, - latestVersion, - }, - }); -} - -interface CommonTypeUsage { - target: ModelProperty | Operation; - type: Model | ModelProperty | Enum | Union; -} - -interface PayloadContext { - visibility: Visibility; - inExplicitBody: boolean; -} - -function collectCommonTypeUsages( - program: Program, - operations: readonly HttpOperation[], - versions?: Map, -): CommonTypeUsage[] { - const usages: CommonTypeUsage[] = []; - const seenTypes = new Map>>(); - const seenUsages = new Map>(); - const metadataInfo = createMetadataInfo(program, { - canonicalVisibility: Visibility.Read, - canShareProperty: (property) => canSharePropertyUsingReadonlyOrXmsMutability(program, property), - }); - - const addUsage = ( - type: Model | ModelProperty | Enum | Union, - target: ModelProperty | Operation, - ) => { - if (!isArmCommonType(type)) { - return; - } - - let targetTypes = seenUsages.get(target); - if (targetTypes === undefined) { - targetTypes = new Set(); - seenUsages.set(target, targetTypes); - } - - if (!targetTypes.has(type)) { - targetTypes.add(type); - usages.push({ target, type }); - } - }; - - const visitType = ( - type: Type, - target: ModelProperty | Operation, - payloadContext: PayloadContext, - ) => { - if (!isAvailableAtVersion(program, type, versions)) { - return; - } - - let targetTypes = seenTypes.get(target); - if (targetTypes === undefined) { - targetTypes = new Map(); - seenTypes.set(target, targetTypes); - } - - let typeContexts = targetTypes.get(type); - if (typeContexts === undefined) { - typeContexts = new Set(); - targetTypes.set(type, typeContexts); - } - - const contextIdentity = `${payloadContext.visibility}:${payloadContext.inExplicitBody}`; - if (typeContexts.has(contextIdentity)) { - return; - } - typeContexts.add(contextIdentity); - - switch (type.kind) { - case "Model": - addUsage(type, target); - if (type.indexer) { - visitType(type.indexer.value, target, { - ...payloadContext, - visibility: isArrayModelType(type) - ? payloadContext.visibility | Visibility.Item - : payloadContext.visibility, - }); - } - for (const property of walkPropertiesInherited(type)) { - if ( - !metadataInfo.isPayloadProperty( - property, - payloadContext.visibility, - payloadContext.inExplicitBody, - ) - ) { - continue; - } - - addPropertyUsages(property, target, payloadContext); - } - break; - case "ModelProperty": - addPropertyUsages(type, target, payloadContext); - break; - case "Enum": - case "Union": - addUsage(type, target); - if (type.kind === "Union") { - for (const variant of type.variants.values()) { - if (isAvailableAtVersion(program, variant, versions)) { - visitType(variant.type, target, payloadContext); - } - } - } - break; - case "Tuple": - for (const value of type.values) { - visitType(value, target, { - ...payloadContext, - visibility: payloadContext.visibility | Visibility.Item, - }); - } - break; - } - }; - - function addPropertyUsages( - property: ModelProperty, - target: ModelProperty | Operation, - payloadContext: PayloadContext, - ) { - for ( - let current: ModelProperty | undefined = property; - current !== undefined; - current = current.sourceProperty - ) { - if (!isAvailableAtVersion(program, current, versions)) { - continue; - } - addUsage(current, target); - visitType(getTypeAtVersion(program, current, versions), target, payloadContext); - } - } - - for (const httpOperation of operations) { - if (!isAvailableAtVersion(program, httpOperation.operation, versions)) { - continue; - } - - const requestContext = { - visibility: resolveRequestVisibility(program, httpOperation.operation, httpOperation.verb), - inExplicitBody: false, - }; - for (const parameter of httpOperation.parameters.properties) { - addPropertyUsages(parameter.property, httpOperation.operation, requestContext); - } - if (httpOperation.parameters.body) { - const body = httpOperation.parameters.body; - visitType(body.type, httpOperation.operation, { - visibility: requestContext.visibility, - inExplicitBody: - body.bodyKind === "single" && body.isExplicit && body.containsMetadataAnnotations, - }); - } - - const returnType = getReturnTypeAtVersion(program, httpOperation.operation, versions); - if (returnType !== httpOperation.operation.returnType) { - visitType(returnType, httpOperation.operation, { - visibility: Visibility.Read, - inExplicitBody: false, - }); - } else { - for (const response of httpOperation.responses) { - for (const responseContent of response.responses) { - if (responseContent.body) { - const body = responseContent.body; - visitType(body.type, httpOperation.operation, { - visibility: Visibility.Read, - inExplicitBody: - body.bodyKind === "single" && body.isExplicit && body.containsMetadataAnnotations, - }); - } - } - } - } - } - - return usages; -} - -function isAvailableAtVersion( - program: Program, - type: Type, - versions: Map | undefined, -): boolean { - if (versions === undefined) { - return true; - } - - for (let current: Type | undefined = type; current !== undefined; current = getParent(current)) { - const version = getVersionForType(program, current, versions); - if (version === undefined) { - continue; - } - - const changes = [ - ...(getAddedOnVersions(program, current) ?? []).map((changedAt) => ({ - changedAt, - available: true, - })), - ...(getRemovedOnVersions(program, current) ?? []).map((changedAt) => ({ - changedAt, - available: false, - })), - ].sort((left, right) => left.changedAt.index - right.changedAt.index); - if (changes.length > 0) { - let available = !changes[0].available; - for (const change of changes) { - if (change.changedAt.index > version.index) { - break; - } - available = change.available; - } - return available; - } - } - return true; -} - -function getParent(type: Type): Type | undefined { - switch (type.kind) { - case "ModelProperty": - return type.model; - case "Operation": - return type.interface ?? type.namespace; - case "EnumMember": - return type.enum; - case "UnionVariant": - return type.union; - case "Interface": - case "Model": - case "Enum": - case "Union": - case "Scalar": - case "Namespace": - return type.namespace; - default: - return undefined; - } -} - -function getTypeAtVersion( - program: Program, - property: ModelProperty, - versions: Map | undefined, -): Type { - const version = versions && getVersionForType(program, property, versions); - if (version === undefined) { - return property.type; - } - - for (const [changedAtVersion, oldType] of getTypeChangedFrom(program, property) ?? []) { - if (version.index < changedAtVersion.index) { - return oldType; - } - } - return property.type; -} - -function getReturnTypeAtVersion( - program: Program, - operation: Operation, - versions: Map | undefined, -): Type { - const version = versions && getVersionForType(program, operation, versions); - if (version === undefined) { - return operation.returnType; - } - - for (const [changedAtVersion, oldType] of getReturnTypeChangedFrom(program, operation) ?? []) { - if (version.index < changedAtVersion.index) { - return oldType; - } - } - return operation.returnType; -} - -function getVersionForType( - program: Program, - type: Type, - versions: Map, -): Version | undefined { - const [versionedNamespace] = getVersions(program, type); - for ( - let namespace = versionedNamespace; - namespace !== undefined; - namespace = namespace.namespace - ) { - const version = versions.get(namespace); - if (version !== undefined) { - return version; - } - } - return undefined; -} - -function canSharePropertyUsingReadonlyOrXmsMutability( - program: Program, - property: ModelProperty, -): boolean { - const sharedVisibilities = new Set(["Read", "Create", "Update"]); - const lifecycle = getLifecycleVisibilityEnum(program); - const visibilities = getVisibilityForClass(program, property, lifecycle); - if (visibilities.size !== lifecycle.members.size) { - for (const visibility of visibilities) { - if (!sharedVisibilities.has(visibility.name)) { - return false; - } - } - } - - return visibilities.size !== 0; -} - -function reportOutdatedUsages( - context: Parameters[0], - usages: CommonTypeUsage[], - service: Service, - apiVersion: string | undefined, - latestVersion: string, -): void { - const reported = new Map>(); - - for (const usage of usages) { - const [record, diagnostics] = findArmCommonTypeRecord(context.program, usage.type, { - service, - version: apiVersion, - }); - for (const diagnostic of diagnostics) { - context.reportDiagnostic({ - messageId: "resolution", - target: usage.target, - format: { details: diagnostic.message }, - }); - } - if (record === undefined || record.version === latestVersion) { - continue; - } - - const fileName = record.referenceFile ?? record.basePath; - const referenceKind = record.kind === "definitions" ? "definition" : "parameter"; - const identity = `${fileName}\0${record.version}\0${record.kind}\0${record.name}`; - let targetReferences = reported.get(usage.target); - if (targetReferences === undefined) { - targetReferences = new Set(); - reported.set(usage.target, targetReferences); - } - if (targetReferences.has(identity)) { - continue; - } - targetReferences.add(identity); - - context.reportDiagnostic({ - messageId: "reference", - target: usage.target, - format: { - currentVersion: record.version, - latestVersion, - fileName, - referenceKind, - referenceName: record.name, - }, - }); - } -} diff --git a/packages/typespec-azure-resource-manager/test/rules/arm-common-types-version.test.ts b/packages/typespec-azure-resource-manager/test/rules/arm-common-types-version.test.ts index 2c50856509..efd8b9a95c 100644 --- a/packages/typespec-azure-resource-manager/test/rules/arm-common-types-version.test.ts +++ b/packages/typespec-azure-resource-manager/test/rules/arm-common-types-version.test.ts @@ -3,6 +3,7 @@ import { type LinterRuleTester, type TesterInstance, createLinterRuleTester, + expectDiagnostics, } from "@typespec/compiler/testing"; import { beforeEach, it } from "vitest"; @@ -11,6 +12,16 @@ import { armCommonTypesVersionRule } from "../../src/rules/arm-common-types-vers let runner: TesterInstance; let tester: LinterRuleTester; +const ruleCode = "@azure-tools/typespec-azure-resource-manager/arm-common-types-version"; +const latestVersion = "v6"; +const missingVersionMessage = + "Specify the ARM common-types version using the @armCommonTypesVersion decorator on the service namespace or on each version of the service version enum."; +const outdatedVersionDiagnostic = (target: string, currentVersion = "v3") => ({ + code: ruleCode, + target, + message: `Use the latest ARM common-types version '${latestVersion}' instead of '${currentVersion}'.`, +}); + beforeEach(async () => { runner = await Tester.createInstance(); tester = createLinterRuleTester( @@ -38,7 +49,9 @@ it("emits diagnostic when a version in the enum is missing a common type version `, ) .toEmitDiagnostics({ - code: "@azure-tools/typespec-azure-resource-manager/arm-common-types-version", + code: ruleCode, + target: "Service", + message: missingVersionMessage, }); }); @@ -52,7 +65,9 @@ it("emits diagnostic when unversioned service namespace is missing a common type `, ) .toEmitDiagnostics({ - code: "@azure-tools/typespec-azure-resource-manager/arm-common-types-version", + code: ruleCode, + target: "Service", + message: missingVersionMessage, }); }); @@ -63,7 +78,7 @@ it("does not emit when the service namespace has a common type version without v @service(#{ title: "Test" }) @versioned(Service.Versions) @armProviderNamespace("Contoso.Service") - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v4) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) namespace Service; enum Versions { @@ -85,13 +100,275 @@ it("does not emit when the service version enum has a common type version on all namespace Service; enum Versions { - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v4) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) v1; - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) v2; } `, ) .toBeValid(); }); + +it("does not emit when an unversioned service selects the latest version", async () => { + await tester + .expect( + ` + @armProviderNamespace + @armCommonTypesVersion(CommonTypes.Versions.v6) + namespace Service; + `, + ) + .toBeValid(); +}); + +it("uses the latest version from the common-types registry", async () => { + await tester + .expect({ + "main.tsp": ` + @armProviderNamespace + @armCommonTypesVersion(CommonTypes.Versions.v6) + namespace Service {} + `, + "node_modules/@azure-tools/typespec-azure-resource-manager/lib/common-types/versions.tsp": ` + import "./commontypes.private.decorators.tsp"; + using Versioning; + + @versioned(Versions) + namespace Azure.ResourceManager.CommonTypes; + + @Azure.ResourceManager.CommonTypes.Private.armCommonTypesVersions + enum Versions { + v3, v4, v5, v6, v7, + } + `, + }) + .toEmitDiagnostics({ + code: ruleCode, + target: "Service", + message: "Use the latest ARM common-types version 'v7' instead of 'v6'.", + }); +}); + +it.each(["v3", "v4", "v5"])( + "reports an older unversioned namespace selection: %s", + async (version) => { + await tester + .expect( + ` + @armProviderNamespace + @armCommonTypesVersion(CommonTypes.Versions.${version}) + namespace Service; + `, + ) + .toEmitDiagnostics(outdatedVersionDiagnostic("Service", version)); + }, +); + +it("reports an older namespace selection for each API version", async () => { + await tester + .expect( + ` + @armProviderNamespace + @armCommonTypesVersion(CommonTypes.Versions.v3) + @versioned(Versions) + namespace Service; + + enum Versions { + v1, + v2, + } + `, + ) + .toEmitDiagnostics([outdatedVersionDiagnostic("v1"), outdatedVersionDiagnostic("v2")]); +}); + +it("reports an older enum-member override of a latest namespace selection", async () => { + await tester + .expect( + ` + @armProviderNamespace + @armCommonTypesVersion(CommonTypes.Versions.v6) + @versioned(Versions) + namespace Service; + + enum Versions { + @armCommonTypesVersion(CommonTypes.Versions.v3) + v1, + v2, + } + `, + ) + .toEmitDiagnostics(outdatedVersionDiagnostic("v1")); +}); + +it("accepts a latest enum-member override of an older namespace selection", async () => { + await tester + .expect( + ` + @armProviderNamespace + @armCommonTypesVersion(CommonTypes.Versions.v3) + @versioned(Versions) + namespace Service; + + enum Versions { + @armCommonTypesVersion(CommonTypes.Versions.v6) + v1, + } + `, + ) + .toBeValid(); +}); + +it("checks explicit per-version selections without a namespace selection", async () => { + await tester + .expect( + ` + @armProviderNamespace + @versioned(Versions) + namespace Service; + + enum Versions { + @armCommonTypesVersion(CommonTypes.Versions.v3) + v1, + @armCommonTypesVersion(CommonTypes.Versions.v6) + v2, + } + `, + ) + .toEmitDiagnostics(outdatedVersionDiagnostic("v1")); +}); + +it("supports string version selections", async () => { + await tester + .expect( + ` + @armProviderNamespace + @armCommonTypesVersion("v3") + namespace Service; + `, + ) + .toEmitDiagnostics(outdatedVersionDiagnostic("Service")); +}); + +it("checks each ARM service independently", async () => { + await tester + .expect( + ` + @armProviderNamespace + @armCommonTypesVersion(CommonTypes.Versions.v3) + namespace Older {} + + @armProviderNamespace + @armCommonTypesVersion(CommonTypes.Versions.v6) + namespace Current {} + `, + ) + .toEmitDiagnostics(outdatedVersionDiagnostic("Older")); +}); + +it("does not check non-ARM services or Azure library namespaces", async () => { + await tester + .expect( + ` + @service + @armCommonTypesVersion(CommonTypes.Versions.v3) + namespace DataPlane {} + + namespace Azure.Core { + model TestModel {} + } + + @armLibraryNamespace + namespace Azure.ResourceManager.TestLibrary {} + `, + ) + .toBeValid(); +}); + +it("checks only the selected version, not legacy common-type usages", async () => { + await tester + .expect( + ` + @armProviderNamespace + @armCommonTypesVersion(CommonTypes.Versions.v6) + namespace Service; + + model Widget is TrackedResource { + ...ResourceNameParameter; + ...Legacy.ManagedServiceIdentityV4Property; + } + + model WidgetProperties {} + + @armResourceOperations + interface Widgets { + get is ArmResourceRead; + } + `, + ) + .toBeValid(); +}); + +it.each(["missing", "outdated"] as const)( + "respects namespace suppression for %s version diagnostics", + async (selection) => { + const diagnostics = await runner.diagnose( + ` + @armProviderNamespace + ${selection === "outdated" ? '@armCommonTypesVersion("v3")' : ""} + #suppress "${ruleCode}" "Intentional compatibility." + namespace Service; + `, + { compilerOptions: { linterRuleSet: { enable: { [ruleCode]: true } } } }, + ); + expectDiagnostics(diagnostics, []); + }, +); + +it("suppresses only the selected API version", async () => { + const diagnostics = await runner.diagnose( + ` + @armProviderNamespace + @armCommonTypesVersion(CommonTypes.Versions.v3) + @versioned(Versions) + namespace Service; + + enum Versions { + #suppress "${ruleCode}" "Intentional compatibility." + v1, + v2, + } + `, + { compilerOptions: { linterRuleSet: { enable: { [ruleCode]: true } } } }, + ); + expectDiagnostics(diagnostics, [outdatedVersionDiagnostic("v2")]); +}); + +it("does not report older selections in imported library services", async () => { + const libraryRunner = await Tester.import("test-common-type-service").createInstance(); + const libraryTester = createLinterRuleTester( + libraryRunner, + armCommonTypesVersionRule, + "@azure-tools/typespec-azure-resource-manager", + ); + await libraryTester + .expect({ + "main.tsp": "", + "node_modules/test-common-type-service/package.json": JSON.stringify({ + name: "test-common-type-service", + version: "1.0.0", + tspMain: "main.tsp", + }), + "node_modules/test-common-type-service/main.tsp": ` + import "@azure-tools/typespec-azure-resource-manager"; + using Azure.ResourceManager; + + @armProviderNamespace + @armCommonTypesVersion(CommonTypes.Versions.v3) + namespace Service; + `, + }) + .toBeValid(); +}); diff --git a/packages/typespec-azure-resource-manager/test/rules/use-latest-version-of-common-types.test.ts b/packages/typespec-azure-resource-manager/test/rules/use-latest-version-of-common-types.test.ts deleted file mode 100644 index 43760075dc..0000000000 --- a/packages/typespec-azure-resource-manager/test/rules/use-latest-version-of-common-types.test.ts +++ /dev/null @@ -1,561 +0,0 @@ -import { Tester } from "#test/tester.js"; -import { - type LinterRuleTester, - type TesterInstance, - createLinterRuleTester, - expectDiagnostics, -} from "@typespec/compiler/testing"; -import { beforeEach, it } from "vitest"; - -import { useLatestVersionOfCommonTypesRule } from "../../src/rules/use-latest-version-of-common-types.js"; - -let runner: TesterInstance; -let tester: LinterRuleTester; - -beforeEach(async () => { - runner = await Tester.createInstance(); - tester = createLinterRuleTester( - runner, - useLatestVersionOfCommonTypesRule, - "@azure-tools/typespec-azure-resource-manager", - ); -}); - -const latestVersion = "v6"; - -const serviceHeader = ( - namespaceCommonTypesVersion: string, - versionMemberCommonTypesVersion = namespaceCommonTypesVersion, - extraVersions = "", -) => ` - @armProviderNamespace - @service(#{ title: "Test Service" }) - @versioned(Versions) - @armCommonTypesVersion(CommonTypes.Versions.${namespaceCommonTypesVersion}) - namespace Microsoft.TestService; - - enum Versions { - @useDependency(Azure.ResourceManager.CommonTypes.Versions.${versionMemberCommonTypesVersion}) - v2024_01_01: "2024-01-01", - ${extraVersions} - } -`; - -const widgetResource = ` - model Widget is TrackedResource { - @key("widgetName") - @segment("widgets") - @doc("The name of the widget") - @path - @pattern("^[a-zA-Z0-9_-]+$") - name: string; - } - - @doc("Widget resource properties.") - model WidgetProperties { - @doc("Description") - description?: string; - - @doc("Resource provisioning state") - @visibility(Lifecycle.Read) - provisioningState?: ResourceProvisioningState; - } - - interface Operations extends Azure.ResourceManager.Operations {} - - @armResourceOperations - interface Widgets { - get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrReplaceAsync; - update is ArmResourcePatchAsync; - delete is ArmResourceDeleteWithoutOkAsync; - listByResourceGroup is ArmResourceListByParent; - } -`; - -it("emits diagnostic when a versioned ARM service selects an older namespace common-types version", async () => { - await tester.expect(`${serviceHeader("v3")} ${widgetResource}`).toEmitDiagnostics({ - code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", - target: "v2024_01_01", - message: `Use the latest ARM common-types version '${latestVersion}' instead of 'v3'.`, - }); -}); - -it("does not emit when a versioned ARM service selects the latest namespace common-types version", async () => { - await tester.expect(`${serviceHeader(latestVersion)} ${widgetResource}`).toBeValid(); -}); - -it("evaluates dependency type changes using the selected common-types version", async () => { - await tester - .expect( - ` - ${serviceHeader(latestVersion)} - - @route("/resource") - @get - op getResource(): Azure.ResourceManager.CommonTypes.ResourceModelWithAllowedPropertySet; - `, - ) - .toBeValid(); -}); - -it("emits diagnostic when a version enum member overrides the namespace back to an older common-types version", async () => { - await tester - .expect( - ` - ${serviceHeader(latestVersion, "v3")} - - @@armCommonTypesVersion(Versions.v2024_01_01, Azure.ResourceManager.CommonTypes.Versions.v3); - - ${widgetResource} - `, - ) - .toEmitDiagnostics({ - code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", - message: `Use the latest ARM common-types version '${latestVersion}' instead of 'v3'.`, - }); -}); - -it("does not emit when a version enum member overrides an older namespace to the latest common-types version", async () => { - await tester - .expect( - ` - ${serviceHeader("v3", latestVersion)} - - @@armCommonTypesVersion( - Versions.v2024_01_01, - Azure.ResourceManager.CommonTypes.Versions.${latestVersion} - ); - - ${widgetResource} - `, - ) - .toBeValid(); -}); - -it("emits diagnostic when a latest-version service uses a legacy common parameter", async () => { - await tester - .expect( - ` - ${serviceHeader(latestVersion)} - - @route("/subscriptions/{subscriptionId}/providers/Microsoft.TestService") - interface Operations { - @get - @route("/locations/{location}/widgets") - listByLocation( - ...SubscriptionIdParameter, - ...LocationParameter, - ): { - @body body: WidgetListResult; - }; - } - - model WidgetListResult { - value: Widget[]; - } - - model Widget { - name: string; - } - `, - ) - .toEmitDiagnostics({ - code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", - message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type parameter 'LocationParameter' resolves to 'types.json' version 'v5'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, - }); -}); - -it("emits diagnostic when a latest-version service uses a legacy common model", async () => { - await tester - .expect( - ` - ${serviceHeader(latestVersion)} - - model Widget is TrackedResource { - ...Azure.ResourceManager.Legacy.ManagedServiceIdentityV4Property; - - @key("widgetName") - @segment("widgets") - @doc("The name of the widget") - @path - @pattern("^[a-zA-Z0-9_-]+$") - name: string; - } - - @doc("Widget resource properties.") - model WidgetProperties { - @doc("Widget description.") - description?: string; - } - - interface Operations extends Azure.ResourceManager.Operations {} - - @armResourceOperations - interface Widgets { - get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrReplaceAsync; - } - `, - ) - .toEmitDiagnostics([ - { - code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", - target: "get", - message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, - }, - { - code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", - target: "createOrUpdate", - message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, - }, - ]); -}); - -it("reports a versioned legacy property only for the projected API version that contains it", async () => { - await tester - .expect( - ` - ${serviceHeader( - latestVersion, - latestVersion, - ` - @useDependency(Azure.ResourceManager.CommonTypes.Versions.${latestVersion}) - v2025_01_01: "2025-01-01", - `, - )} - - model IdentityResult { - @added(Versions.v2025_01_01) - identity?: Azure.ResourceManager.Legacy.ManagedServiceIdentityV4; - } - - @route("/identity") - @get - op getIdentity(): IdentityResult; - `, - ) - .toEmitDiagnostics({ - code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", - message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, - }); -}); - -it("applies the service version to types in child namespaces", async () => { - await tester - .expect( - ` - ${serviceHeader( - latestVersion, - latestVersion, - ` - @useDependency(Azure.ResourceManager.CommonTypes.Versions.${latestVersion}) - v2025_01_01: "2025-01-01", - `, - )} - - namespace Microsoft.TestService.Child { - model IdentityResult { - @added(Versions.v2025_01_01) - identity?: Azure.ResourceManager.Legacy.ManagedServiceIdentityV4; - } - - @route("/identity") - @get - op getIdentity(): IdentityResult; - } - `, - ) - .toEmitDiagnostics({ - code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", - message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, - }); -}); - -it("reports a removed legacy property only for the API version that contains it", async () => { - await tester - .expect( - ` - ${serviceHeader( - latestVersion, - latestVersion, - ` - @useDependency(Azure.ResourceManager.CommonTypes.Versions.${latestVersion}) - v2025_01_01: "2025-01-01", - `, - )} - - model IdentityResult { - @removed(Versions.v2025_01_01) - identity?: Azure.ResourceManager.Legacy.ManagedServiceIdentityV4; - } - - @route("/identity") - @get - op getIdentity(): IdentityResult; - `, - ) - .toEmitDiagnostics({ - code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", - message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, - }); -}); - -it("reports a legacy property type only before it changes", async () => { - await tester - .expect( - ` - ${serviceHeader( - latestVersion, - latestVersion, - ` - @useDependency(Azure.ResourceManager.CommonTypes.Versions.${latestVersion}) - v2025_01_01: "2025-01-01", - `, - )} - - model IdentityResult { - @typeChangedFrom( - Versions.v2025_01_01, - Azure.ResourceManager.Legacy.ManagedServiceIdentityV4 - ) - identity?: string; - } - - @route("/identity") - @get - op getIdentity(): IdentityResult; - `, - ) - .toEmitDiagnostics({ - code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", - message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, - }); -}); - -it("reports a legacy return type only before it changes", async () => { - await tester - .expect( - ` - ${serviceHeader( - latestVersion, - latestVersion, - ` - @useDependency(Azure.ResourceManager.CommonTypes.Versions.${latestVersion}) - v2025_01_01: "2025-01-01", - `, - )} - - @route("/identity") - @get - @returnTypeChangedFrom( - Versions.v2025_01_01, - Azure.ResourceManager.Legacy.ManagedServiceIdentityV4 - ) - op getIdentity(): string; - `, - ) - .toEmitDiagnostics({ - code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", - message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, - }); -}); - -it("follows an explicit response body in a historical return type", async () => { - await tester - .expect( - ` - ${serviceHeader( - latestVersion, - latestVersion, - ` - @useDependency(Azure.ResourceManager.CommonTypes.Versions.${latestVersion}) - v2025_01_01: "2025-01-01", - `, - )} - - model LegacyResponse { - @statusCode statusCode: 200; - @body body: Azure.ResourceManager.Legacy.ManagedServiceIdentityV4; - } - - @route("/identity") - @get - @returnTypeChangedFrom(Versions.v2025_01_01, LegacyResponse) - op getIdentity(): string; - `, - ) - .toEmitDiagnostics({ - code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", - message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, - }); -}); - -it("reports each operation that emits the same legacy common type reference", async () => { - await tester - .expect( - ` - ${serviceHeader(latestVersion)} - - @route("/first") - @get - op getFirst(): Azure.ResourceManager.Legacy.ManagedServiceIdentityV4; - - @route("/second") - @get - op getSecond(): Azure.ResourceManager.Legacy.ManagedServiceIdentityV4; - `, - ) - .toEmitDiagnostics([ - { - code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", - target: "getFirst", - message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, - }, - { - code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", - target: "getSecond", - message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'ManagedServiceIdentity' resolves to 'managedidentity.json' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, - }, - ]); -}); - -it.each(["Legacy.json", "nested/Legacy.json"])( - "checks resolved metadata independently of reference layout for %s", - async (referenceFile) => { - await tester - .expect( - ` - ${serviceHeader(latestVersion)} - - @Azure.ResourceManager.CommonTypes.Private.armCommonDefinition( - "Legacy%Identity", CommonTypes.Versions.v4, "${referenceFile}" - ) - model LegacyIdentity { - id: string; - } - - model Result { - identity: LegacyIdentity; - } - - @route("/identity") - @get - op getIdentity(): Result; - `, - ) - .toEmitDiagnostics({ - code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", - target: "identity", - message: `This API version already selects the latest ARM common-types version '${latestVersion}', but the common-type definition 'Legacy%Identity' resolves to '${referenceFile}' version 'v4'. Replace the TypeSpec usage that produces this legacy reference with a common type supported in '${latestVersion}'.`, - }); - }, -); - -const unresolvedCommonTypeUsage = (suppress = false) => ` - ${serviceHeader(latestVersion)} - - @Azure.ResourceManager.CommonTypes.Private.armCommonDefinition( - "FutureIdentity", "v999", "identity.json" - ) - model FutureIdentity { - id: string; - } - - @route("/identity") - @get - ${suppress ? '#suppress "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types" "Intentional unresolved common type for this test."' : ""} - op getIdentity(): FutureIdentity; - `; - -const resolutionDiagnostic = { - code: "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types", - target: "getIdentity", - message: - "Unable to resolve the ARM common type used here. No ARM common-types version for this type satisfies the expected version v6. This type only supports the following version(s): v999", -}; - -it("reports common-type resolution failures instead of silently skipping them", async () => { - await tester.expect(unresolvedCommonTypeUsage()).toEmitDiagnostics(resolutionDiagnostic); -}); - -it.each([false, true])( - "respects rule suppression for resolution failures: %s", - async (suppress) => { - const diagnostics = await runner.diagnose(unresolvedCommonTypeUsage(suppress), { - compilerOptions: { - linterRuleSet: { enable: { [resolutionDiagnostic.code]: true } }, - }, - }); - expectDiagnostics(diagnostics, suppress ? [] : [resolutionDiagnostic]); - }, -); - -it("does not report resolution failures for operations declared in libraries", async () => { - const libraryRunner = await Tester.import("test-common-type-service").createInstance(); - const libraryTester = createLinterRuleTester( - libraryRunner, - useLatestVersionOfCommonTypesRule, - "@azure-tools/typespec-azure-resource-manager", - ); - await libraryTester - .expect({ - "main.tsp": "", - "node_modules/test-common-type-service/package.json": JSON.stringify({ - name: "test-common-type-service", - version: "1.0.0", - tspMain: "main.tsp", - }), - "node_modules/test-common-type-service/main.tsp": ` - import "@azure-tools/typespec-azure-resource-manager"; - import "@typespec/http"; - import "@typespec/versioning"; - using Azure.ResourceManager; - using TypeSpec.Http; - using TypeSpec.Versioning; - ${unresolvedCommonTypeUsage()} - `, - }) - .toBeValid(); -}); - -it("does not report legacy common types excluded by request or response payload visibility", async () => { - await tester - .expect( - ` - ${serviceHeader(latestVersion)} - - model UpdateRequest { - @visibility(Lifecycle.Read) - readOnlyIdentity?: Azure.ResourceManager.Legacy.ManagedServiceIdentityV4; - - records?: Record; - description?: string; - } - - model RecordValue { - @header - legacyHeader?: Azure.ResourceManager.Legacy.ManagedServiceIdentityV4; - - description?: string; - } - - model ReadResponse { - @visibility(Lifecycle.Delete) - deleteOnlyIdentity?: Azure.ResourceManager.Legacy.ManagedServiceIdentityV4; - - description?: string; - } - - @route("/widgets/{widgetName}") - interface Widgets { - @patch - update(@path widgetName: string, @bodyRoot body: UpdateRequest): void; - - @get - read(@path widgetName: string): ReadResponse; - } - `, - ) - .toBeValid(); -}); diff --git a/packages/typespec-azure-rulesets/src/rulesets/resource-manager.ts b/packages/typespec-azure-rulesets/src/rulesets/resource-manager.ts index 044e84389c..b04bddedb8 100644 --- a/packages/typespec-azure-rulesets/src/rulesets/resource-manager.ts +++ b/packages/typespec-azure-rulesets/src/rulesets/resource-manager.ts @@ -61,7 +61,6 @@ export default { "@azure-tools/typespec-azure-resource-manager/no-override-props": true, "@azure-tools/typespec-azure-resource-manager/no-empty-model": true, "@azure-tools/typespec-azure-resource-manager/arm-common-types-version": true, - "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types": false, "@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-child-resources": true, "@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-lifecycle-operations": true, "@azure-tools/typespec-azure-resource-manager/use-relationship-required-properties": true, diff --git a/packages/typespec-azure-rulesets/test/validate-rules-defined.test.ts b/packages/typespec-azure-rulesets/test/validate-rules-defined.test.ts index ab829cd683..25bf83fc35 100644 --- a/packages/typespec-azure-rulesets/test/validate-rules-defined.test.ts +++ b/packages/typespec-azure-rulesets/test/validate-rules-defined.test.ts @@ -72,4 +72,19 @@ describe("expect all rules to be defined", () => { ok(!$linter.ruleSets?.[rulesetName].enable?.[ruleName]); } }); + + it("enables consolidated ARM common-types version guidance", () => { + const ruleset = $linter.ruleSets?.["resource-manager"]; + ok(ruleset); + ok(ruleset.enable?.["@azure-tools/typespec-azure-resource-manager/arm-common-types-version"]); + const removedRule = + "@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types"; + strictEqual(ruleset.enable?.[removedRule], undefined); + strictEqual(ruleset.disable?.[removedRule], undefined); + ok( + !ResourceManagerLinter.rules.some( + (rule) => rule.name === "use-latest-version-of-common-types", + ), + ); + }); }); diff --git a/website/src/content/docs/docs/howtos/ARM/arm-rules.md b/website/src/content/docs/docs/howtos/ARM/arm-rules.md index d4bf0831a8..a35e3be744 100644 --- a/website/src/content/docs/docs/howtos/ARM/arm-rules.md +++ b/website/src/content/docs/docs/howtos/ARM/arm-rules.md @@ -98,7 +98,7 @@ The tables below provide guidance to rule authors and ARM reviewers on how to ev | Rule | LintDiff | Impact | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| [`arm-common-types-version`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-common-types-version/) | — | **API, SDK.** Indicates that common-types are not used, though this should produce other violations. | +| [`arm-common-types-version`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-common-types-version/) | [`LatestVersionOfCommonTypesMustBeUsed`](https://github.com/Azure/azure-openapi-validator/blob/main/docs/latest-version-of-common-types-must-be-used.md) (effective version selection only) | **API, SDK.** Missing or outdated common-types selections can expose stale shared schemas or parameters in generated APIs and SDKs. | | [`arm-custom-resource-no-key`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-custom-resource-no-key/) | — | **API, SDK.** Mainly a correctness issue; the name property should use `@key`. | | [`arm-custom-resource-usage-discourage`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-custom-resource-usage-discourage/) | — | **API.** The resource does not use ARM common-types. | | [`arm-delete-operation-response-codes`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-delete-operation-response-codes/) | [`DeleteResponseCodes`](https://github.com/Azure/azure-openapi-validator/blob/main/docs/delete-response-codes.md) | **API.** RPC violation. | @@ -135,7 +135,6 @@ The tables below provide guidance to rule authors and ARM reviewers on how to ev | [`use-api-version`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-api-version/) | [`ApiVersionParameterRequired`](https://github.com/Azure/azure-openapi-validator/blob/main/docs/api-version-parameter-required.md) | **API, SDK.** An operation without the standard API version parameter cannot evolve safely and is difficult for SDKs to represent consistently. | | [`use-create-for-put`](https://azure.github.io/typespec-azure/docs/libraries/typespec-client-generator-core/rules/use-create-for-put/) | [PutInOperationName (R1006)](https://github.com/Azure/azure-rest-api-specs/blob/main/documentation/openapi-authoring-automated-guidelines.md#r1006) | **SDK.** TCGC checks the common SDK method name, including unscoped `@clientName` overrides; renaming a shipped method may break SDK compatibility. | | [`use-interface`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-interface/) | — | **API, SDK, Emitters.** Resource operations outside interfaces can break ARM resource-operation modeling and downstream tooling assumptions. | -| [`use-latest-version-of-common-types`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-latest-version-of-common-types/) | [`LatestVersionOfCommonTypesMustBeUsed`](https://github.com/Azure/azure-openapi-validator/blob/main/docs/latest-version-of-common-types-must-be-used.md) | **API, SDK.** Older common-types versions can expose stale shared schemas or parameters in generated API surfaces and SDKs. | | [`use-model-request-body`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-model-request-body/) | [`ParametersSchemaAsTypeObject`](https://github.com/Azure/azure-openapi-validator/blob/main/docs/parameters-schema-as-type-object.md) | **API, SDK.** Non-model, array, and record request bodies cannot evolve with additional properties without a breaking change. | | [`use-operation-decorator`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/use-operation-decorator/) | — | **API, SDK, Emitters.** Missing or mismatched decorators prevent resource operations from being associated with the correct resource, which can break SDK generation and resource-aware tooling. | | [`version-progression`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/version-progression/) | — | **API, SDK, Tooling.** Out-of-order versions make specs unmaintainable, and versions with matching dates cause SDK problems. | diff --git a/website/src/content/docs/docs/howtos/ARM/rpc-guidelines-coverage.md b/website/src/content/docs/docs/howtos/ARM/rpc-guidelines-coverage.md index 93794e8446..2451fbb225 100644 --- a/website/src/content/docs/docs/howtos/ARM/rpc-guidelines-coverage.md +++ b/website/src/content/docs/docs/howtos/ARM/rpc-guidelines-coverage.md @@ -182,7 +182,7 @@ The following TypeSpec linting rules enforce ARM conventions that are not explic | TypeSpec Rule | Description | | ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -| `arm/arm-common-types-version` | Requires specifying the ARM common-types version using `@armCommonTypesVersion`. | +| `arm/arm-common-types-version` | Requires explicitly selecting the latest ARM common-types version using `@armCommonTypesVersion`. | | [`arm/arm-no-record`](/docs/libraries/azure-resource-manager/rules/arm-no-record) | Prevents use of `Record` types for ARM resources, which produce `additionalProperties` in OpenAPI. | | `arm/arm-resource-duplicate-property` | Warns about duplicate properties in resource definitions. | | `arm/arm-resource-interface-requires-decorator` | Requires `@armResourceOperations` decorator on resource interfaces. | diff --git a/website/src/content/docs/docs/libraries/azure-resource-manager/reference/linter.md b/website/src/content/docs/docs/libraries/azure-resource-manager/reference/linter.md index be98f3edc5..c637aba322 100644 --- a/website/src/content/docs/docs/libraries/azure-resource-manager/reference/linter.md +++ b/website/src/content/docs/docs/libraries/azure-resource-manager/reference/linter.md @@ -28,7 +28,7 @@ Available ruleSets: | [`@azure-tools/typespec-azure-resource-manager/arm-no-record`](../rules/arm-no-record.md) | Don't use Record types for ARM resources. | | [`@azure-tools/typespec-azure-resource-manager/arm-no-path-casing-conflicts`](../rules/arm-no-path-casing-conflicts.md) | Operation paths must be unique when compared case-insensitively. | | [`@azure-tools/typespec-azure-resource-manager/no-override-props`](../rules/no-override-props.md) | Disallow redefining properties already defined in a base type. | -| [`@azure-tools/typespec-azure-resource-manager/arm-common-types-version`](../rules/arm-common-types-version.md) | Specify the ARM common-types version using @armCommonTypesVersion. | +| [`@azure-tools/typespec-azure-resource-manager/arm-common-types-version`](../rules/arm-common-types-version.md) | Specify the latest ARM common-types version using @armCommonTypesVersion. | | [`@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes`](../rules/arm-delete-operation-response-codes.md) | Ensure delete operations have the appropriate status codes. | | [`@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes`](../rules/arm-put-operation-response-codes.md) | Ensure put operations have the appropriate status codes. | | [`@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes`](../rules/arm-post-operation-response-codes.md) | Ensure post operations have the appropriate status codes. | @@ -59,7 +59,6 @@ Available ruleSets: | [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb`](../rules/arm-resource-invalid-action-verb.md) | Actions must be HTTP Post or Get operations. | | [`@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation`](../rules/improper-subscription-list-operation.md) | Tenant and Extension resources should not define a list by subscription operation. | | [`@azure-tools/typespec-azure-resource-manager/lro-location-header`](../rules/lro-location-header.md) | A 202 response should include a Location response header. | -| [`@azure-tools/typespec-azure-resource-manager/use-latest-version-of-common-types`](../rules/use-latest-version-of-common-types.md) | ARM services must use the latest available ARM common-types version. | | [`@azure-tools/typespec-azure-resource-manager/list-operation-missing-pageable`](../rules/list-operation-missing-pageable.md) | ARM GET operations on list paths must define TypeSpec paging metadata. | | [`@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers`](../rules/missing-x-ms-identifiers.md) | Array properties should describe their identifying properties with x-ms-identifiers. Decorate the property with @OpenAPI.extension("x-ms-identifiers", #[id-prop]) where "id-prop" is a list of the names of identifying properties in the item type. | | [`@azure-tools/typespec-azure-resource-manager/no-response-body`](../rules/no-response-body.md) | Check that the body is empty for 202 and 204 responses, and not empty for other success (2xx) responses. | From db29d80c1cb576b30c00ae7da944361d1c9a8272 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Sun, 20 Sep 2026 14:45:09 +0800 Subject: [PATCH 16/22] Fix ARM sample CI for latest common-types guidance Move current samples to v6 and regenerate reference snapshots. Preserve grandfathered and version-compatibility schemas with explicit scoped suppressions. Keep the consolidated lint rule enabled. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: f0af92c5-fa9d-4992-bb89-31bab99d244b --- ...ersion-common-types-2026-08-20-14-00-00.md | 2 + .../resource-manager/arm-library/main.tsp | 2 +- .../legacy/legacy-operations/main.tsp | 1 + .../legacy/managed-identity/main.tsp | 1 + .../legacy/non-standard-properties/main.tsp | 1 + .../resource-manager/legacy/nsp/main.tsp | 1 + .../legacy/optional-body/main.tsp | 1 + .../legacy/polymorphic-resource/main.tsp | 1 + .../legacy/private-endpoints/main.tsp | 1 + .../legacy/private-links/main.tsp | 1 + .../legacy/rename-operations/main.tsp | 1 + .../legacy/static-routes/main.tsp | 1 + .../operations/nobody-action/main.tsp | 2 +- .../operations/operation-provider/main.tsp | 2 +- .../operations/operation-status/main.tsp | 2 +- .../billing-data/main.tsp | 2 +- .../common-properties/main.tsp | 2 +- .../encryption/main.tsp | 2 +- .../managed-identity/main.tsp | 2 +- .../private-links/main.tsp | 2 + .../resource-types/agent/main.tsp | 2 +- .../resource-types/extension/main.tsp | 2 +- .../resource-types/location/main.tsp | 2 +- .../resource-types/nsp/main.tsp | 2 +- .../resource-types/private-endpoints/main.tsp | 2 +- .../resource-types/private-links/main.tsp | 2 +- .../resource-types/proxy/main.tsp | 2 +- .../resource-types/relationship/main.tsp | 2 +- .../resource-types/singleton/main.tsp | 2 +- .../specific-extension/main.tsp | 2 +- .../resource-types/tenant/main.tsp | 2 +- .../resource-types/tracked/main.tsp | 2 +- .../resource-types/virtual-resource/main.tsp | 2 +- .../2021-09-21-preview/openapi.json | 240 ++++++------- .../2021-10-01-preview/openapi.json | 102 +++--- .../2022-11-01-preview/openapi.json | 84 ++--- .../2022-11-01-preview/openapi.json | 38 +- .../2023-03-01-preview/openapi.json | 54 +-- .../2023-03-01-preview/openapi.json | 60 ++-- .../2023-03-01-preview/openapi.json | 54 +-- .../2023-03-01-preview/openapi.json | 56 +-- .../typespec-autorest/2026-04-01/openapi.json | 270 +++++++-------- .../2021-10-01-preview/openapi.json | 32 +- .../2021-10-01-preview/openapi.json | 78 ++--- .../2025-11-19-preview/openapi.json | 150 ++++---- .../2021-10-01-preview/openapi.json | 234 ++++++------- .../2021-10-01-preview/openapi.json | 150 ++++---- .../2021-10-01-preview/openapi.json | 112 +++--- .../typespec-autorest/2024-06-01/openapi.json | 28 +- .../2021-10-01-preview/openapi.json | 56 +-- .../2021-10-01-preview/openapi.json | 324 +++++++++--------- .../2021-10-01-preview/openapi.json | 36 +- .../2021-10-01-preview/openapi.json | 70 ++-- .../2021-10-01-preview/openapi.json | 64 ++-- 54 files changed, 1181 insertions(+), 1167 deletions(-) diff --git a/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md b/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md index 7e9b40b2c3..7a38524006 100644 --- a/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md +++ b/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md @@ -9,3 +9,5 @@ Extend `arm-common-types-version` to warn when an ARM service or API version sel Latest-version warnings are now active wherever this existing rule is enabled, including the resource-manager ruleset. Update `@armCommonTypesVersion` to the latest version in `Azure.ResourceManager.CommonTypes.Versions`, or suppress `@azure-tools/typespec-azure-resource-manager/arm-common-types-version` when an older version is required for compatibility. The rule checks effective version selections only; it does not inspect legacy type usages or emitted OpenAPI references. + +Update current ARM samples to common-types v6. Legacy and version-compatibility samples retain their older selections with explicit, scoped suppressions. diff --git a/packages/samples/specs/resource-manager/arm-library/main.tsp b/packages/samples/specs/resource-manager/arm-library/main.tsp index c53b420ca5..20bdb2acd7 100644 --- a/packages/samples/specs/resource-manager/arm-library/main.tsp +++ b/packages/samples/specs/resource-manager/arm-library/main.tsp @@ -18,7 +18,7 @@ namespace Microsoft.LibraryTest; /** ARM Library API versions */ enum Versions { /** 2021-09-21-preview version */ - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) @Azure.Core.previewVersion `2021-09-21-preview`, } diff --git a/packages/samples/specs/resource-manager/legacy/legacy-operations/main.tsp b/packages/samples/specs/resource-manager/legacy/legacy-operations/main.tsp index d172397b7e..7a79ab6427 100644 --- a/packages/samples/specs/resource-manager/legacy/legacy-operations/main.tsp +++ b/packages/samples/specs/resource-manager/legacy/legacy-operations/main.tsp @@ -19,6 +19,7 @@ namespace Microsoft.ContosoProviderHub; /** Contoso API versions */ enum Versions { /** 2021-10-01-preview version */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-common-types-version" "Preserve older common-types schemas for this grandfathered API sample." @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) @Azure.Core.previewVersion `2021-10-01-preview`, diff --git a/packages/samples/specs/resource-manager/legacy/managed-identity/main.tsp b/packages/samples/specs/resource-manager/legacy/managed-identity/main.tsp index 2ae50c5e15..d828f8fca1 100644 --- a/packages/samples/specs/resource-manager/legacy/managed-identity/main.tsp +++ b/packages/samples/specs/resource-manager/legacy/managed-identity/main.tsp @@ -19,6 +19,7 @@ namespace Microsoft.UpdateTests; /** UpdateTests API versions */ enum Versions { /** 2023-03-01-preview version */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-common-types-version" "This sample intentionally mixes v3 common types with the legacy v4 managed identity." @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) @previewVersion `2023-03-01-preview`, diff --git a/packages/samples/specs/resource-manager/legacy/non-standard-properties/main.tsp b/packages/samples/specs/resource-manager/legacy/non-standard-properties/main.tsp index 10e15b9e42..adb4db0a00 100644 --- a/packages/samples/specs/resource-manager/legacy/non-standard-properties/main.tsp +++ b/packages/samples/specs/resource-manager/legacy/non-standard-properties/main.tsp @@ -16,6 +16,7 @@ namespace Microsoft.ContosoProviderHub; /** Contoso API versions */ enum Versions { /** 2021-10-01-preview version */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-common-types-version" "Preserve older common-types schemas for this grandfathered API sample." @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) @Azure.Core.previewVersion `2021-10-01-preview`, diff --git a/packages/samples/specs/resource-manager/legacy/nsp/main.tsp b/packages/samples/specs/resource-manager/legacy/nsp/main.tsp index 6648c0a745..f74f262469 100644 --- a/packages/samples/specs/resource-manager/legacy/nsp/main.tsp +++ b/packages/samples/specs/resource-manager/legacy/nsp/main.tsp @@ -17,6 +17,7 @@ namespace Microsoft.ContosoProviderHub; /** Contoso API versions */ enum Versions { /** 2025-11-19-preview version */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-common-types-version" "Preserve older common-types schemas for this grandfathered API sample." @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) @previewVersion `2025-11-19-preview`, diff --git a/packages/samples/specs/resource-manager/legacy/optional-body/main.tsp b/packages/samples/specs/resource-manager/legacy/optional-body/main.tsp index cecd27f2d7..4607efd76b 100644 --- a/packages/samples/specs/resource-manager/legacy/optional-body/main.tsp +++ b/packages/samples/specs/resource-manager/legacy/optional-body/main.tsp @@ -13,6 +13,7 @@ namespace Microsoft.OptionalBody; interface Operations extends Azure.ResourceManager.Operations {} enum Versions { + #suppress "@azure-tools/typespec-azure-resource-manager/arm-common-types-version" "Preserve older common-types schemas for this grandfathered API sample." @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) @Azure.Core.previewVersion `2025-01-01-preview`, diff --git a/packages/samples/specs/resource-manager/legacy/polymorphic-resource/main.tsp b/packages/samples/specs/resource-manager/legacy/polymorphic-resource/main.tsp index efa4128fa9..a5a0cbe313 100644 --- a/packages/samples/specs/resource-manager/legacy/polymorphic-resource/main.tsp +++ b/packages/samples/specs/resource-manager/legacy/polymorphic-resource/main.tsp @@ -19,6 +19,7 @@ namespace Microsoft.ContosoProviderHub; /** Contoso API versions */ enum Versions { /** 2021-10-01-preview version */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-common-types-version" "Preserve older common-types schemas for this grandfathered API sample." @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) @Azure.Core.previewVersion `2025-10-01-preview`, diff --git a/packages/samples/specs/resource-manager/legacy/private-endpoints/main.tsp b/packages/samples/specs/resource-manager/legacy/private-endpoints/main.tsp index c5ce7a69f1..a7fd411267 100644 --- a/packages/samples/specs/resource-manager/legacy/private-endpoints/main.tsp +++ b/packages/samples/specs/resource-manager/legacy/private-endpoints/main.tsp @@ -17,6 +17,7 @@ namespace Microsoft.ContosoProviderHub; /** Contoso API versions */ enum Versions { /** 2021-10-01-preview version */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-common-types-version" "Preserve older common-types schemas for this grandfathered API sample." @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) @previewVersion `2021-10-01-preview`, diff --git a/packages/samples/specs/resource-manager/legacy/private-links/main.tsp b/packages/samples/specs/resource-manager/legacy/private-links/main.tsp index d03174417a..c2ab38b5be 100644 --- a/packages/samples/specs/resource-manager/legacy/private-links/main.tsp +++ b/packages/samples/specs/resource-manager/legacy/private-links/main.tsp @@ -17,6 +17,7 @@ namespace Microsoft.ContosoProviderHub; /** Contoso API versions */ enum Versions { /** 2021-10-01-preview version */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-common-types-version" "Preserve older common-types schemas for this grandfathered API sample." @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) @previewVersion `2021-10-01-preview`, diff --git a/packages/samples/specs/resource-manager/legacy/rename-operations/main.tsp b/packages/samples/specs/resource-manager/legacy/rename-operations/main.tsp index 98c0d272ba..b38e71acc5 100644 --- a/packages/samples/specs/resource-manager/legacy/rename-operations/main.tsp +++ b/packages/samples/specs/resource-manager/legacy/rename-operations/main.tsp @@ -12,6 +12,7 @@ namespace Microsoft.RenamedOperations; interface Operations extends Azure.ResourceManager.Operations {} enum Versions { + #suppress "@azure-tools/typespec-azure-resource-manager/arm-common-types-version" "Preserve older common-types schemas for this grandfathered API sample." @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) @Azure.Core.previewVersion `2025-01-01-preview`, diff --git a/packages/samples/specs/resource-manager/legacy/static-routes/main.tsp b/packages/samples/specs/resource-manager/legacy/static-routes/main.tsp index 1ee47938c4..cfdda2b849 100644 --- a/packages/samples/specs/resource-manager/legacy/static-routes/main.tsp +++ b/packages/samples/specs/resource-manager/legacy/static-routes/main.tsp @@ -20,6 +20,7 @@ namespace Microsoft.ContosoProviderHub; interface Operations extends Azure.ResourceManager.Operations {} enum Versions { + #suppress "@azure-tools/typespec-azure-resource-manager/arm-common-types-version" "Preserve older common-types schemas for this grandfathered API sample." @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) @previewVersion `2025-06-01-preview`, diff --git a/packages/samples/specs/resource-manager/operations/nobody-action/main.tsp b/packages/samples/specs/resource-manager/operations/nobody-action/main.tsp index 4aaf04a0d7..dc3b0995dd 100644 --- a/packages/samples/specs/resource-manager/operations/nobody-action/main.tsp +++ b/packages/samples/specs/resource-manager/operations/nobody-action/main.tsp @@ -18,7 +18,7 @@ namespace Microsoft.ContosoProviderHub; /** Contoso API versions */ enum Versions { /** 2021-10-01-preview version */ - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) @previewVersion `2021-10-01-preview`, } diff --git a/packages/samples/specs/resource-manager/operations/operation-provider/main.tsp b/packages/samples/specs/resource-manager/operations/operation-provider/main.tsp index c03ed44bc3..77e4918c35 100644 --- a/packages/samples/specs/resource-manager/operations/operation-provider/main.tsp +++ b/packages/samples/specs/resource-manager/operations/operation-provider/main.tsp @@ -16,7 +16,7 @@ using Azure.Core; namespace Microsoft.OperationStatusSample; enum Versions { - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) @previewVersion `2022-11-01-preview`, } diff --git a/packages/samples/specs/resource-manager/operations/operation-status/main.tsp b/packages/samples/specs/resource-manager/operations/operation-status/main.tsp index 3d2e3ef968..f35ad6c611 100644 --- a/packages/samples/specs/resource-manager/operations/operation-status/main.tsp +++ b/packages/samples/specs/resource-manager/operations/operation-status/main.tsp @@ -15,7 +15,7 @@ using Azure.ResourceManager; namespace Microsoft.OperationStatusSample; enum Versions { - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) @Azure.Core.previewVersion `2022-11-01-preview`, } diff --git a/packages/samples/specs/resource-manager/resource-common-properties/billing-data/main.tsp b/packages/samples/specs/resource-manager/resource-common-properties/billing-data/main.tsp index 0ed30fe7aa..29ebbcd6cb 100644 --- a/packages/samples/specs/resource-manager/resource-common-properties/billing-data/main.tsp +++ b/packages/samples/specs/resource-manager/resource-common-properties/billing-data/main.tsp @@ -19,7 +19,7 @@ namespace Microsoft.BillingDataExample; /** UpdateTests API versions */ enum Versions { /** 2023-03-01-preview version */ - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) `2023-03-01-preview`, } diff --git a/packages/samples/specs/resource-manager/resource-common-properties/common-properties/main.tsp b/packages/samples/specs/resource-manager/resource-common-properties/common-properties/main.tsp index 86db581f81..6c7de46287 100644 --- a/packages/samples/specs/resource-manager/resource-common-properties/common-properties/main.tsp +++ b/packages/samples/specs/resource-manager/resource-common-properties/common-properties/main.tsp @@ -19,7 +19,7 @@ namespace Microsoft.UpdateTests; /** UpdateTests API versions */ enum Versions { /** 2023-03-01-preview version */ - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) @previewVersion `2023-03-01-preview`, } diff --git a/packages/samples/specs/resource-manager/resource-common-properties/encryption/main.tsp b/packages/samples/specs/resource-manager/resource-common-properties/encryption/main.tsp index b7d43f01d7..2ddf12b9f1 100644 --- a/packages/samples/specs/resource-manager/resource-common-properties/encryption/main.tsp +++ b/packages/samples/specs/resource-manager/resource-common-properties/encryption/main.tsp @@ -19,7 +19,7 @@ namespace Microsoft.UpdateTests; /** UpdateTests API versions */ enum Versions { /** 2023-03-01-preview version */ - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) @previewVersion `2023-03-01-preview`, } diff --git a/packages/samples/specs/resource-manager/resource-common-properties/managed-identity/main.tsp b/packages/samples/specs/resource-manager/resource-common-properties/managed-identity/main.tsp index 53555d1d16..1ca3f1958c 100644 --- a/packages/samples/specs/resource-manager/resource-common-properties/managed-identity/main.tsp +++ b/packages/samples/specs/resource-manager/resource-common-properties/managed-identity/main.tsp @@ -19,7 +19,7 @@ namespace Microsoft.UpdateTests; /** UpdateTests API versions */ enum Versions { /** 2023-03-01-preview version */ - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) @previewVersion `2023-03-01-preview`, } diff --git a/packages/samples/specs/resource-manager/resource-common-properties/private-links/main.tsp b/packages/samples/specs/resource-manager/resource-common-properties/private-links/main.tsp index 0e42edc211..a1466683d3 100644 --- a/packages/samples/specs/resource-manager/resource-common-properties/private-links/main.tsp +++ b/packages/samples/specs/resource-manager/resource-common-properties/private-links/main.tsp @@ -16,10 +16,12 @@ namespace Microsoft.PrivateLinkTest; @doc("The PrivateLinkTest service versions.") enum Versions { + #suppress "@azure-tools/typespec-azure-resource-manager/arm-common-types-version" "This sample demonstrates private-link schema compatibility across older common-types versions." @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v4) @doc("The 2023-08-01 version.") `2023-08-01`, + #suppress "@azure-tools/typespec-azure-resource-manager/arm-common-types-version" "This sample demonstrates private-link schema compatibility across older common-types versions." @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) @doc("The 2023-11-01-preview version.") @Azure.Core.previewVersion diff --git a/packages/samples/specs/resource-manager/resource-types/agent/main.tsp b/packages/samples/specs/resource-manager/resource-types/agent/main.tsp index c1f21c5d32..63c55d5088 100644 --- a/packages/samples/specs/resource-manager/resource-types/agent/main.tsp +++ b/packages/samples/specs/resource-manager/resource-types/agent/main.tsp @@ -20,7 +20,7 @@ namespace Microsoft.ContosoAgent; /** Contoso Agent API versions */ enum Versions { /** 2026-04-01 version */ - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) `2026-04-01`, } diff --git a/packages/samples/specs/resource-manager/resource-types/extension/main.tsp b/packages/samples/specs/resource-manager/resource-types/extension/main.tsp index ce84f09fe9..e0d2c40f65 100644 --- a/packages/samples/specs/resource-manager/resource-types/extension/main.tsp +++ b/packages/samples/specs/resource-manager/resource-types/extension/main.tsp @@ -18,7 +18,7 @@ namespace Microsoft.ContosoProviderHub; /** Contoso API versions */ enum Versions { /** 2021-10-01-preview version */ - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) @previewVersion `2021-10-01-preview`, } diff --git a/packages/samples/specs/resource-manager/resource-types/location/main.tsp b/packages/samples/specs/resource-manager/resource-types/location/main.tsp index 93b6dee6aa..56c3a18fbf 100644 --- a/packages/samples/specs/resource-manager/resource-types/location/main.tsp +++ b/packages/samples/specs/resource-manager/resource-types/location/main.tsp @@ -18,7 +18,7 @@ namespace Microsoft.ContosoProviderHub; /** Contoso API versions */ enum Versions { /** 2021-10-01-preview version */ - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) @previewVersion `2021-10-01-preview`, } diff --git a/packages/samples/specs/resource-manager/resource-types/nsp/main.tsp b/packages/samples/specs/resource-manager/resource-types/nsp/main.tsp index 44de563eb7..f49d70624d 100644 --- a/packages/samples/specs/resource-manager/resource-types/nsp/main.tsp +++ b/packages/samples/specs/resource-manager/resource-types/nsp/main.tsp @@ -17,7 +17,7 @@ namespace Microsoft.ContosoProviderHub; /** Contoso API versions */ enum Versions { /** 2021-10-01-preview version */ - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) @previewVersion `2025-11-19-preview`, } diff --git a/packages/samples/specs/resource-manager/resource-types/private-endpoints/main.tsp b/packages/samples/specs/resource-manager/resource-types/private-endpoints/main.tsp index 9043064def..4d5f694021 100644 --- a/packages/samples/specs/resource-manager/resource-types/private-endpoints/main.tsp +++ b/packages/samples/specs/resource-manager/resource-types/private-endpoints/main.tsp @@ -17,7 +17,7 @@ namespace Microsoft.ContosoProviderHub; /** Contoso API versions */ enum Versions { /** 2021-10-01-preview version */ - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) @previewVersion `2021-10-01-preview`, } diff --git a/packages/samples/specs/resource-manager/resource-types/private-links/main.tsp b/packages/samples/specs/resource-manager/resource-types/private-links/main.tsp index 0b1e4c5a36..418f5b6c9d 100644 --- a/packages/samples/specs/resource-manager/resource-types/private-links/main.tsp +++ b/packages/samples/specs/resource-manager/resource-types/private-links/main.tsp @@ -17,7 +17,7 @@ namespace Microsoft.ContosoProviderHub; /** Contoso API versions */ enum Versions { /** 2021-10-01-preview version */ - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) @previewVersion `2021-10-01-preview`, } diff --git a/packages/samples/specs/resource-manager/resource-types/proxy/main.tsp b/packages/samples/specs/resource-manager/resource-types/proxy/main.tsp index 776704a77e..b7aeef943f 100644 --- a/packages/samples/specs/resource-manager/resource-types/proxy/main.tsp +++ b/packages/samples/specs/resource-manager/resource-types/proxy/main.tsp @@ -18,7 +18,7 @@ namespace Microsoft.ContosoProviderHub; /** Contoso API versions */ enum Versions { /** 2021-10-01-preview version */ - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) @previewVersion `2021-10-01-preview`, } diff --git a/packages/samples/specs/resource-manager/resource-types/relationship/main.tsp b/packages/samples/specs/resource-manager/resource-types/relationship/main.tsp index 416ca31fc9..8a9db2bf9d 100644 --- a/packages/samples/specs/resource-manager/resource-types/relationship/main.tsp +++ b/packages/samples/specs/resource-manager/resource-types/relationship/main.tsp @@ -18,7 +18,7 @@ namespace Microsoft.ContosoRelationships; /** Contoso Relationships API versions */ enum Versions { /** 2024-06-01 version */ - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) `2024-06-01`, } diff --git a/packages/samples/specs/resource-manager/resource-types/singleton/main.tsp b/packages/samples/specs/resource-manager/resource-types/singleton/main.tsp index d9c0075cf8..72f10f309f 100644 --- a/packages/samples/specs/resource-manager/resource-types/singleton/main.tsp +++ b/packages/samples/specs/resource-manager/resource-types/singleton/main.tsp @@ -18,7 +18,7 @@ namespace Microsoft.ContosoProviderHub; /** Contoso API versions */ enum Versions { /** 2021-10-01-preview version */ - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) @previewVersion `2021-10-01-preview`, } diff --git a/packages/samples/specs/resource-manager/resource-types/specific-extension/main.tsp b/packages/samples/specs/resource-manager/resource-types/specific-extension/main.tsp index 18802a8706..e44120564e 100644 --- a/packages/samples/specs/resource-manager/resource-types/specific-extension/main.tsp +++ b/packages/samples/specs/resource-manager/resource-types/specific-extension/main.tsp @@ -18,7 +18,7 @@ namespace Microsoft.ContosoProviderHub; /** Contoso API versions */ enum Versions { /** 2021-10-01-preview version */ - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) @previewVersion `2021-10-01-preview`, } diff --git a/packages/samples/specs/resource-manager/resource-types/tenant/main.tsp b/packages/samples/specs/resource-manager/resource-types/tenant/main.tsp index 4cc71afab5..2584aec82d 100644 --- a/packages/samples/specs/resource-manager/resource-types/tenant/main.tsp +++ b/packages/samples/specs/resource-manager/resource-types/tenant/main.tsp @@ -18,7 +18,7 @@ namespace Microsoft.ContosoProviderHub; /** Contoso API versions */ enum Versions { /** 2021-10-01-preview version */ - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) @previewVersion `2021-10-01-preview`, } diff --git a/packages/samples/specs/resource-manager/resource-types/tracked/main.tsp b/packages/samples/specs/resource-manager/resource-types/tracked/main.tsp index 86d49f0bba..4c8f5e58f9 100644 --- a/packages/samples/specs/resource-manager/resource-types/tracked/main.tsp +++ b/packages/samples/specs/resource-manager/resource-types/tracked/main.tsp @@ -18,7 +18,7 @@ namespace Microsoft.ContosoProviderHub; /** Contoso API versions */ enum Versions { /** 2021-10-01-preview version */ - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) @previewVersion `2021-10-01-preview`, } diff --git a/packages/samples/specs/resource-manager/resource-types/virtual-resource/main.tsp b/packages/samples/specs/resource-manager/resource-types/virtual-resource/main.tsp index 99a21865d2..c7febcc725 100644 --- a/packages/samples/specs/resource-manager/resource-types/virtual-resource/main.tsp +++ b/packages/samples/specs/resource-manager/resource-types/virtual-resource/main.tsp @@ -24,7 +24,7 @@ namespace Microsoft.ContosoProviderHub; /** Contoso API versions */ enum Versions { /** 2021-10-01-preview version */ - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) @previewVersion `2021-10-01-preview`, } diff --git a/packages/samples/test/output/azure/resource-manager/arm-library/@azure-tools/typespec-autorest/2021-09-21-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/arm-library/@azure-tools/typespec-autorest/2021-09-21-preview/openapi.json index 4899943453..126f7aa3fe 100644 --- a/packages/samples/test/output/azure/resource-manager/arm-library/@azure-tools/typespec-autorest/2021-09-21-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/arm-library/@azure-tools/typespec-autorest/2021-09-21-preview/openapi.json @@ -70,7 +70,7 @@ "description": "List TestExtensionResource resources by parent", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" @@ -86,7 +86,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -104,7 +104,7 @@ "description": "Get a TestExtensionResource", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" @@ -128,7 +128,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -141,7 +141,7 @@ "description": "Create a TestExtensionResource", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" @@ -191,7 +191,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -208,7 +208,7 @@ "description": "Update a TestExtensionResource", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" @@ -241,7 +241,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -254,7 +254,7 @@ "description": "Delete a TestExtensionResource", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" @@ -292,7 +292,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -311,20 +311,20 @@ "description": "List the operations for the provider", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -342,7 +342,7 @@ "description": "List TestTenantResource resources by tenant", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -355,7 +355,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -373,7 +373,7 @@ "description": "Get a TestTenantResource", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "tenantResourceName", @@ -394,7 +394,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -407,7 +407,7 @@ "description": "Create a TestTenantResource", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "tenantResourceName", @@ -454,7 +454,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -471,7 +471,7 @@ "description": "Update a TestTenantResource", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "tenantResourceName", @@ -501,7 +501,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -514,7 +514,7 @@ "description": "Delete a TestTenantResource", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "tenantResourceName", @@ -549,7 +549,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -568,10 +568,10 @@ "description": "List AllPropertiesResource resources by subscription ID", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -584,7 +584,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -602,10 +602,10 @@ "description": "List TestTrackedResource2 resources by subscription ID", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -618,7 +618,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -636,10 +636,10 @@ "description": "List TestTrackedResource resources by subscription ID", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -652,7 +652,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -670,13 +670,13 @@ "description": "List AllPropertiesResource resources by resource group", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { @@ -689,7 +689,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -707,13 +707,13 @@ "description": "Get a AllPropertiesResource", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "allPropertiesName", @@ -734,7 +734,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -747,13 +747,13 @@ "description": "Create a AllPropertiesResource", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "allPropertiesName", @@ -800,7 +800,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -817,13 +817,13 @@ "description": "Update a AllPropertiesResource", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "allPropertiesName", @@ -853,7 +853,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -866,13 +866,13 @@ "description": "Delete a AllPropertiesResource", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "allPropertiesName", @@ -904,7 +904,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -923,13 +923,13 @@ "description": "List TestTrackedResource2 resources by resource group", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { @@ -942,7 +942,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -960,13 +960,13 @@ "description": "Get a TestTrackedResource2", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "trackedResourceName", @@ -987,7 +987,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -1000,13 +1000,13 @@ "description": "Create a TestTrackedResource2", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "trackedResourceName", @@ -1042,7 +1042,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -1055,13 +1055,13 @@ "description": "Update a TestTrackedResource2", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "trackedResourceName", @@ -1091,7 +1091,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -1104,13 +1104,13 @@ "description": "Delete a TestTrackedResource2", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "trackedResourceName", @@ -1131,7 +1131,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -1146,13 +1146,13 @@ "description": "List TestTrackedResource resources by resource group", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { @@ -1165,7 +1165,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1183,13 +1183,13 @@ "description": "Get a TestTrackedResource", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "trackedResourceName", @@ -1210,7 +1210,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -1223,13 +1223,13 @@ "description": "Create a TestTrackedResource", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "trackedResourceName", @@ -1276,7 +1276,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1293,13 +1293,13 @@ "description": "Update a TestTrackedResource", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "trackedResourceName", @@ -1329,7 +1329,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -1342,13 +1342,13 @@ "description": "Delete a TestTrackedResource", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "trackedResourceName", @@ -1383,7 +1383,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1402,13 +1402,13 @@ "description": "List TestTrackedChild resources by TestTrackedResource", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "trackedResourceName", @@ -1429,7 +1429,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1447,13 +1447,13 @@ "description": "Get a TestTrackedChild", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "trackedResourceName", @@ -1482,7 +1482,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -1495,13 +1495,13 @@ "description": "Create a TestTrackedChild", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "trackedResourceName", @@ -1556,7 +1556,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1573,13 +1573,13 @@ "description": "Delete a TestTrackedChild", "parameters": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "trackedResourceName", @@ -1622,7 +1622,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1687,21 +1687,21 @@ ] }, "plan": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/Plan", + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/Plan", "description": "Details of the resource plan." }, "sku": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/Sku", + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/Sku", "description": "The SKU (Stock Keeping Unit) assigned to this resource." }, "identity": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/managedidentity.json#/definitions/ManagedServiceIdentity", + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/managedidentity.json#/definitions/ManagedServiceIdentity", "description": "The managed service identities assigned to this resource." } }, "allOf": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/TrackedResource" } ] }, @@ -1735,15 +1735,15 @@ "description": "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource." }, "plan": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/Plan", + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/Plan", "description": "Details of the resource plan." }, "sku": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/Sku", + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/Sku", "description": "The SKU (Stock Keeping Unit) assigned to this resource." }, "identity": { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/managedidentity.json#/definitions/ManagedServiceIdentity", + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/managedidentity.json#/definitions/ManagedServiceIdentity", "description": "The managed service identities assigned to this resource." }, "tags": { @@ -1817,7 +1817,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ProxyResource" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ProxyResource" } ] }, @@ -1848,7 +1848,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ProxyResource" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ProxyResource" } ] }, @@ -1863,7 +1863,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ProxyResource" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ProxyResource" } ] }, @@ -1898,7 +1898,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/TrackedResource" } ] }, @@ -1947,7 +1947,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/TrackedResource" } ] }, diff --git a/packages/samples/test/output/azure/resource-manager/operations/nobody-action/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/operations/nobody-action/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json index a94d065069..d17639cf0a 100644 --- a/packages/samples/test/output/azure/resource-manager/operations/nobody-action/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/operations/nobody-action/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json @@ -56,20 +56,20 @@ "description": "List the operations for the provider", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -87,10 +87,10 @@ "description": "List Employee resources by subscription ID", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -103,7 +103,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -121,13 +121,13 @@ "description": "List Employee resources by resource group", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { @@ -140,7 +140,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -158,13 +158,13 @@ "description": "Get a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -185,7 +185,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -198,13 +198,13 @@ "description": "Create a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -251,7 +251,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -268,13 +268,13 @@ "description": "Update a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -304,7 +304,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -317,13 +317,13 @@ "description": "Delete a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -344,7 +344,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -357,13 +357,13 @@ "description": "A sample HEAD operation to check resource existence", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -384,7 +384,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -399,13 +399,13 @@ "description": "Sample async action using only 202 response", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -434,7 +434,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -453,13 +453,13 @@ "description": "Sample async action with no request body", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -491,7 +491,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -510,13 +510,13 @@ "description": "Sample async action with no request body and response", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -545,7 +545,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -564,13 +564,13 @@ "description": "Sample sync action with no request body and response", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -588,7 +588,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -603,13 +603,13 @@ "description": "Sample sync action with no request body", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -627,7 +627,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -646,7 +646,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/TrackedResource" } ] }, diff --git a/packages/samples/test/output/azure/resource-manager/operations/operation-provider/@azure-tools/typespec-autorest/2022-11-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/operations/operation-provider/@azure-tools/typespec-autorest/2022-11-01-preview/openapi.json index 9426cd7c03..455a31fb9a 100644 --- a/packages/samples/test/output/azure/resource-manager/operations/operation-provider/@azure-tools/typespec-autorest/2022-11-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/operations/operation-provider/@azure-tools/typespec-autorest/2022-11-01-preview/openapi.json @@ -55,7 +55,7 @@ "description": "Operation to generate an extension resource based POST action", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" @@ -85,7 +85,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -107,7 +107,7 @@ "description": "Operation to generate an extension resource based POST action", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "scope", @@ -142,7 +142,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -164,7 +164,7 @@ "description": "Sample operation to generate an extension resource based GET action", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" @@ -180,7 +180,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -198,7 +198,7 @@ "description": "Sample operation to generate an extension resource based GET action", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "scope", @@ -219,7 +219,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -237,7 +237,7 @@ "description": "Operation to get virtual machines for tenant (/providers/Microsoft.ContosoProviderHub/getVmSizesTenant)", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -250,7 +250,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -268,7 +268,7 @@ "description": "Operation to get throttled requests sharing action for tenant (/providers/Microsoft.ContosoProviderHub/logAnalytics/apiAccess/getThrottledRequests)", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -281,7 +281,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -299,20 +299,20 @@ "description": "List the operations for the provider", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -330,10 +330,10 @@ "description": "Operation to get virtual machines for subscription (/subscriptions/{subscriptionId}/providers/Microsoft.ContosoProviderHub/getVmSizes)", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -346,7 +346,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -364,10 +364,10 @@ "description": "Operation to get virtual machines for subscription for specific location (/subscriptions/{subscriptionId}/providers/Microsoft.ContosoProviderHub/locations/{location}/getVmSizesLocation)", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/LocationParameter" @@ -383,7 +383,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -401,10 +401,10 @@ "description": "Operation to post virtual machines for subscription for specific location (/subscriptions/{subscriptionId}/providers/Microsoft.ContosoProviderHub/locations/{location}/postVmSizesLocation)", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/LocationParameter" @@ -434,7 +434,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -456,10 +456,10 @@ "description": "Operation to get throttled requests sharing action (/subscriptions/{subscriptionId}/providers/Microsoft.ContosoProviderHub/logAnalytics/apiAccess/getThrottledRequests)", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -472,7 +472,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -490,10 +490,10 @@ "description": "AN array of operation results", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -523,7 +523,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -542,10 +542,10 @@ "description": "Operation to post virtual machines for subscription (/subscriptions/{subscriptionId}/providers/Microsoft.ContosoProviderHub/postVmSizes)", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -572,7 +572,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -594,10 +594,10 @@ "description": "Operation to post virtual machines for subscription with ARM combined header (/subscriptions/{subscriptionId}/providers/Microsoft.ContosoProviderHub/postVmSizesArmCombined)", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -632,7 +632,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -651,10 +651,10 @@ "description": "Operation to post virtual machines for subscription with retry after header (/subscriptions/{subscriptionId}/providers/Microsoft.ContosoProviderHub/postVmSizesRetry)", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -685,7 +685,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -704,10 +704,10 @@ "description": "An unknown response", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -732,7 +732,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, diff --git a/packages/samples/test/output/azure/resource-manager/operations/operation-status/@azure-tools/typespec-autorest/2022-11-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/operations/operation-status/@azure-tools/typespec-autorest/2022-11-01-preview/openapi.json index 287cf59546..eb8572894f 100644 --- a/packages/samples/test/output/azure/resource-manager/operations/operation-status/@azure-tools/typespec-autorest/2022-11-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/operations/operation-status/@azure-tools/typespec-autorest/2022-11-01-preview/openapi.json @@ -55,10 +55,10 @@ "description": "Tenant+Location scope: GET /providers/{ns}/locations/{loc}/operationStatuses/{operationId}", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/LocationParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/LocationParameter" }, { "name": "operationId", @@ -107,7 +107,7 @@ "readOnly": true }, "error": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorDetail", + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorDetail", "description": "Errors that occurred if the operation ended with Canceled or Failed status", "readOnly": true } @@ -121,7 +121,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -136,7 +136,7 @@ "description": "Tenant scope: GET /providers/{ns}/operationStatuses/{operationId}", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "operationId", @@ -185,7 +185,7 @@ "readOnly": true }, "error": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorDetail", + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorDetail", "description": "Errors that occurred if the operation ended with Canceled or Failed status", "readOnly": true } @@ -199,7 +199,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -214,20 +214,20 @@ "description": "List the operations for the provider", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -245,13 +245,13 @@ "description": "Subscription+Location scope: GET /subscriptions/{sub}/providers/{ns}/locations/{loc}/operationStatuses/{operationId}", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/LocationParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/LocationParameter" }, { "name": "operationId", @@ -300,7 +300,7 @@ "readOnly": true }, "error": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorDetail", + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorDetail", "description": "Errors that occurred if the operation ended with Canceled or Failed status", "readOnly": true } @@ -314,7 +314,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -329,10 +329,10 @@ "description": "Subscription scope: GET /subscriptions/{sub}/providers/{ns}/operationStatuses/{operationId}", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { "name": "operationId", @@ -381,7 +381,7 @@ "readOnly": true }, "error": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorDetail", + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorDetail", "description": "Errors that occurred if the operation ended with Canceled or Failed status", "readOnly": true } @@ -395,7 +395,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } diff --git a/packages/samples/test/output/azure/resource-manager/resource-common-properties/billing-data/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-common-properties/billing-data/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json index 42e31a69ee..1894b88691 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-common-properties/billing-data/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-common-properties/billing-data/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json @@ -56,20 +56,20 @@ "description": "List the operations for the provider", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -87,10 +87,10 @@ "description": "List Widget resources by subscription ID", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -103,7 +103,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -121,13 +121,13 @@ "description": "List Widget resources by resource group", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { @@ -140,7 +140,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -158,13 +158,13 @@ "description": "Get a Widget", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "widgetName", @@ -185,7 +185,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -198,13 +198,13 @@ "description": "Create a Widget", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "widgetName", @@ -251,7 +251,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -268,13 +268,13 @@ "description": "Update a Widget", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "widgetName", @@ -304,7 +304,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -317,13 +317,13 @@ "description": "Delete a Widget", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "widgetName", @@ -355,7 +355,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -681,7 +681,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/TrackedResource" } ] }, diff --git a/packages/samples/test/output/azure/resource-manager/resource-common-properties/common-properties/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-common-properties/common-properties/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json index 668d68affd..33df06bf97 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-common-properties/common-properties/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-common-properties/common-properties/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json @@ -56,20 +56,20 @@ "description": "List the operations for the provider", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -87,10 +87,10 @@ "description": "List Widget resources by subscription ID", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -103,7 +103,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -121,13 +121,13 @@ "description": "List Widget resources by resource group", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { @@ -140,7 +140,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -158,13 +158,13 @@ "description": "Get a Widget", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "widgetName", @@ -185,7 +185,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -198,13 +198,13 @@ "description": "Create a Widget", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "widgetName", @@ -251,7 +251,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -268,13 +268,13 @@ "description": "Update a Widget", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "widgetName", @@ -304,7 +304,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -317,13 +317,13 @@ "description": "Delete a Widget", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "widgetName", @@ -355,7 +355,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -466,7 +466,7 @@ "description": "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource." }, "identity": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/managedidentity.json#/definitions/ManagedServiceIdentity", + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/managedidentity.json#/definitions/ManagedServiceIdentity", "description": "The managed service identities assigned to this resource." }, "kind": { @@ -479,17 +479,17 @@ ] }, "plan": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/Plan", + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/Plan", "description": "Details of the resource plan." }, "sku": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/Sku", + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/Sku", "description": "The SKU (Stock Keeping Unit) assigned to this resource." } }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/TrackedResource" } ] }, diff --git a/packages/samples/test/output/azure/resource-manager/resource-common-properties/encryption/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-common-properties/encryption/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json index 4f03696c84..e52c900e59 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-common-properties/encryption/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-common-properties/encryption/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json @@ -56,20 +56,20 @@ "description": "List the operations for the provider", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -87,10 +87,10 @@ "description": "List Widget resources by subscription ID", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -103,7 +103,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -121,13 +121,13 @@ "description": "List Widget resources by resource group", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { @@ -140,7 +140,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -158,13 +158,13 @@ "description": "Get a Widget", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "widgetName", @@ -185,7 +185,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -198,13 +198,13 @@ "description": "Create a Widget", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "widgetName", @@ -251,7 +251,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -268,13 +268,13 @@ "description": "Update a Widget", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "widgetName", @@ -304,7 +304,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -317,13 +317,13 @@ "description": "Delete a Widget", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "widgetName", @@ -355,7 +355,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -519,7 +519,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/TrackedResource" } ] }, diff --git a/packages/samples/test/output/azure/resource-manager/resource-common-properties/managed-identity/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-common-properties/managed-identity/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json index 149c598c12..92240d2b44 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-common-properties/managed-identity/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-common-properties/managed-identity/@azure-tools/typespec-autorest/2023-03-01-preview/openapi.json @@ -56,20 +56,20 @@ "description": "List the operations for the provider", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -87,10 +87,10 @@ "description": "List Widget resources by subscription ID", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -103,7 +103,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -121,13 +121,13 @@ "description": "List Widget resources by resource group", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { @@ -140,7 +140,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -158,13 +158,13 @@ "description": "Get a Widget", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "widgetName", @@ -185,7 +185,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -198,13 +198,13 @@ "description": "Create a Widget", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "widgetName", @@ -251,7 +251,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -268,13 +268,13 @@ "description": "Update a Widget", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "widgetName", @@ -304,7 +304,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -317,13 +317,13 @@ "description": "Delete a Widget", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "widgetName", @@ -355,7 +355,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -407,13 +407,13 @@ "description": "The resource-specific properties for this resource." }, "identity": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/managedidentity.json#/definitions/ManagedServiceIdentity", + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/managedidentity.json#/definitions/ManagedServiceIdentity", "description": "The managed service identities assigned to this resource." } }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/TrackedResource" } ] }, diff --git a/packages/samples/test/output/azure/resource-manager/resource-types/agent/@azure-tools/typespec-autorest/2026-04-01/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-types/agent/@azure-tools/typespec-autorest/2026-04-01/openapi.json index 58ccafa3f4..577d9ecfa8 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-types/agent/@azure-tools/typespec-autorest/2026-04-01/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-types/agent/@azure-tools/typespec-autorest/2026-04-01/openapi.json @@ -71,20 +71,20 @@ "description": "List the operations for the provider", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -102,10 +102,10 @@ "description": "List ContosoApplianceAgent resources by subscription ID", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -118,7 +118,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -136,10 +136,10 @@ "description": "List ContosoPlatformAgent resources by subscription ID", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -152,7 +152,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -170,13 +170,13 @@ "description": "List ContosoApplianceAgent resources by resource group", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { @@ -189,7 +189,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -207,13 +207,13 @@ "description": "Get a ContosoApplianceAgent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoApplianceAgentName", @@ -234,7 +234,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -247,13 +247,13 @@ "description": "Create a ContosoApplianceAgent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoApplianceAgentName", @@ -300,7 +300,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -317,13 +317,13 @@ "description": "Update a ContosoApplianceAgent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoApplianceAgentName", @@ -353,7 +353,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -366,13 +366,13 @@ "description": "Delete a ContosoApplianceAgent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoApplianceAgentName", @@ -404,7 +404,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -423,13 +423,13 @@ "description": "List ApplianceConversation resources by ContosoApplianceAgent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoApplianceAgentName", @@ -450,7 +450,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -468,13 +468,13 @@ "description": "Get a ApplianceConversation", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoApplianceAgentName", @@ -503,7 +503,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -516,13 +516,13 @@ "description": "Create a ApplianceConversation", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoApplianceAgentName", @@ -577,7 +577,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -594,13 +594,13 @@ "description": "Update a ApplianceConversation", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoApplianceAgentName", @@ -638,7 +638,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -651,13 +651,13 @@ "description": "Delete a ApplianceConversation", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoApplianceAgentName", @@ -697,7 +697,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -716,13 +716,13 @@ "description": "List ApplianceResponse resources by ContosoApplianceAgent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoApplianceAgentName", @@ -743,7 +743,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -761,13 +761,13 @@ "description": "Get a ApplianceResponse", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoApplianceAgentName", @@ -796,7 +796,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -809,13 +809,13 @@ "description": "Create a ApplianceResponse", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoApplianceAgentName", @@ -870,7 +870,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -887,13 +887,13 @@ "description": "Update a ApplianceResponse", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoApplianceAgentName", @@ -931,7 +931,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -944,13 +944,13 @@ "description": "Delete a ApplianceResponse", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoApplianceAgentName", @@ -990,7 +990,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1009,13 +1009,13 @@ "description": "List ContosoPlatformAgent resources by resource group", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { @@ -1028,7 +1028,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1046,13 +1046,13 @@ "description": "Get a ContosoPlatformAgent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoPlatformAgentName", @@ -1073,7 +1073,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -1086,13 +1086,13 @@ "description": "Create a ContosoPlatformAgent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoPlatformAgentName", @@ -1139,7 +1139,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1156,13 +1156,13 @@ "description": "Update a ContosoPlatformAgent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoPlatformAgentName", @@ -1192,7 +1192,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -1205,13 +1205,13 @@ "description": "Delete a ContosoPlatformAgent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoPlatformAgentName", @@ -1243,7 +1243,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1262,13 +1262,13 @@ "description": "List PlatformConversation resources by ContosoPlatformAgent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoPlatformAgentName", @@ -1289,7 +1289,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1307,13 +1307,13 @@ "description": "Get a PlatformConversation", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoPlatformAgentName", @@ -1342,7 +1342,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -1355,13 +1355,13 @@ "description": "Create a PlatformConversation", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoPlatformAgentName", @@ -1416,7 +1416,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1433,13 +1433,13 @@ "description": "Update a PlatformConversation", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoPlatformAgentName", @@ -1477,7 +1477,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -1490,13 +1490,13 @@ "description": "Delete a PlatformConversation", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoPlatformAgentName", @@ -1536,7 +1536,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1555,13 +1555,13 @@ "description": "List PlatformResponse resources by ContosoPlatformAgent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoPlatformAgentName", @@ -1582,7 +1582,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1600,13 +1600,13 @@ "description": "Get a PlatformResponse", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoPlatformAgentName", @@ -1635,7 +1635,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -1648,13 +1648,13 @@ "description": "Create a PlatformResponse", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoPlatformAgentName", @@ -1709,7 +1709,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1726,13 +1726,13 @@ "description": "Update a PlatformResponse", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoPlatformAgentName", @@ -1770,7 +1770,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -1783,13 +1783,13 @@ "description": "Delete a PlatformResponse", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "contosoPlatformAgentName", @@ -1829,7 +1829,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1852,7 +1852,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ProxyResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ProxyResource" } ] }, @@ -1912,7 +1912,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ProxyResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ProxyResource" } ] }, @@ -2258,7 +2258,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/TrackedResource" } ] }, @@ -2403,7 +2403,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/TrackedResource" } ] }, @@ -2556,7 +2556,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ProxyResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ProxyResource" } ] }, @@ -2616,7 +2616,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ProxyResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ProxyResource" } ] }, diff --git a/packages/samples/test/output/azure/resource-manager/resource-types/extension/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-types/extension/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json index 7b9507c417..8236900d86 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-types/extension/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-types/extension/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json @@ -56,7 +56,7 @@ "description": "List RoleAssignment resources by parent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" @@ -81,7 +81,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -99,7 +99,7 @@ "description": "Get a RoleAssignment", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" @@ -123,7 +123,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -136,7 +136,7 @@ "description": "Create a RoleAssignment", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" @@ -186,7 +186,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -203,7 +203,7 @@ "description": "Update a RoleAssignment", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" @@ -236,7 +236,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -249,7 +249,7 @@ "description": "Delete a RoleAssignment", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" @@ -273,7 +273,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -286,7 +286,7 @@ "description": "A sample HEAD operation to check resource existence", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" @@ -310,7 +310,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -325,20 +325,20 @@ "description": "List the operations for the provider", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -415,7 +415,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ProxyResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ProxyResource" } ] }, diff --git a/packages/samples/test/output/azure/resource-manager/resource-types/location/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-types/location/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json index 6a286200ce..c3245b8e72 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-types/location/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-types/location/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json @@ -56,20 +56,20 @@ "description": "List the operations for the provider", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -87,16 +87,16 @@ "description": "List Employee resources by Location", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/LocationParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/LocationParameter" } ], "responses": { @@ -109,7 +109,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -127,16 +127,16 @@ "description": "Get a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/LocationParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/LocationParameter" }, { "name": "employeeName", @@ -157,7 +157,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -170,16 +170,16 @@ "description": "Create a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/LocationParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/LocationParameter" }, { "name": "employeeName", @@ -226,7 +226,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -243,16 +243,16 @@ "description": "Update a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/LocationParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/LocationParameter" }, { "name": "employeeName", @@ -282,7 +282,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -295,16 +295,16 @@ "description": "Delete a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/LocationParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/LocationParameter" }, { "name": "employeeName", @@ -325,7 +325,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -338,16 +338,16 @@ "description": "A sample HEAD operation to check resource existence", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/LocationParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/LocationParameter" }, { "name": "employeeName", @@ -368,7 +368,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -383,16 +383,16 @@ "description": "A sample resource action that move employee to different location", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/LocationParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/LocationParameter" }, { "name": "employeeName", @@ -422,7 +422,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -441,7 +441,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/TrackedResource" } ] }, diff --git a/packages/samples/test/output/azure/resource-manager/resource-types/nsp/@azure-tools/typespec-autorest/2025-11-19-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-types/nsp/@azure-tools/typespec-autorest/2025-11-19-preview/openapi.json index b26eb6487e..9fe1ec9ec5 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-types/nsp/@azure-tools/typespec-autorest/2025-11-19-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-types/nsp/@azure-tools/typespec-autorest/2025-11-19-preview/openapi.json @@ -59,20 +59,20 @@ "description": "List the operations for the provider", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -90,10 +90,10 @@ "description": "List Employee resources by subscription ID", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -106,7 +106,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -124,13 +124,13 @@ "description": "List Employee resources by resource group", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { @@ -143,7 +143,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -161,13 +161,13 @@ "description": "Get a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -188,7 +188,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -201,13 +201,13 @@ "description": "Create a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -254,7 +254,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -271,13 +271,13 @@ "description": "Update a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -307,7 +307,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -320,13 +320,13 @@ "description": "Delete a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -347,7 +347,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -360,13 +360,13 @@ "description": "A sample HEAD operation to check resource existence", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -387,7 +387,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -402,13 +402,13 @@ "description": "List Dependent resources by Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -429,7 +429,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -447,13 +447,13 @@ "description": "Get a Dependent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -482,7 +482,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -495,13 +495,13 @@ "description": "Create a Dependent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -556,7 +556,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -573,13 +573,13 @@ "description": "Update a Dependent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -617,7 +617,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -630,13 +630,13 @@ "description": "Delete a Dependent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -665,7 +665,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -680,13 +680,13 @@ "description": "List Dependent NetworkSecurityPerimeterConfigurations", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -715,7 +715,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -733,13 +733,13 @@ "description": "Get a Dependent NetworkSecurityPerimeterConfiguration", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -771,13 +771,13 @@ "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/networksecurityperimeter.json#/definitions/NetworkSecurityPerimeterConfiguration" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/networksecurityperimeter.json#/definitions/NetworkSecurityPerimeterConfiguration" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -792,13 +792,13 @@ "description": "A sample resource action that move employee to different location", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -828,7 +828,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -843,13 +843,13 @@ "description": "List the Network Security Perimeters for this employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -870,7 +870,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -888,13 +888,13 @@ "description": "Get a Network Security Perimeter Configuration for this employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -918,13 +918,13 @@ "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/networksecurityperimeter.json#/definitions/NetworkSecurityPerimeterConfiguration" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/networksecurityperimeter.json#/definitions/NetworkSecurityPerimeterConfiguration" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -943,7 +943,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ProxyResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ProxyResource" } ] }, @@ -1028,7 +1028,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/TrackedResource" } ] }, @@ -1154,7 +1154,7 @@ "type": "array", "description": "The NetworkSecurityPerimeterConfiguration items on this page", "items": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/networksecurityperimeter.json#/definitions/NetworkSecurityPerimeterConfiguration" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/networksecurityperimeter.json#/definitions/NetworkSecurityPerimeterConfiguration" } }, "nextLink": { diff --git a/packages/samples/test/output/azure/resource-manager/resource-types/private-endpoints/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-types/private-endpoints/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json index e03acd5225..26a56d5a65 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-types/private-endpoints/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-types/private-endpoints/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json @@ -59,20 +59,20 @@ "description": "List the operations for the provider", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -90,10 +90,10 @@ "description": "List Employee resources by subscription ID", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -106,7 +106,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -124,13 +124,13 @@ "description": "List Employee resources by resource group", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { @@ -143,7 +143,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -161,13 +161,13 @@ "description": "Get a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -188,7 +188,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -201,13 +201,13 @@ "description": "Create a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -254,7 +254,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -271,13 +271,13 @@ "description": "Update a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -307,7 +307,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -320,13 +320,13 @@ "description": "Delete a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -347,7 +347,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -360,13 +360,13 @@ "description": "A sample HEAD operation to check resource existence", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -387,7 +387,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -402,13 +402,13 @@ "description": "List Dependent resources by Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -429,7 +429,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -447,13 +447,13 @@ "description": "Get a Dependent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -482,7 +482,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -495,13 +495,13 @@ "description": "Create a Dependent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -556,7 +556,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -573,13 +573,13 @@ "description": "Update a Dependent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -617,7 +617,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -630,13 +630,13 @@ "description": "Delete a Dependent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -665,7 +665,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -680,13 +680,13 @@ "description": "List Dependent PrivateEndpointConnections", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -715,7 +715,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -733,13 +733,13 @@ "description": "Get a Dependent PrivateEndpointConnection", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -758,20 +758,20 @@ "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/parameters/PrivateEndpointConnectionName" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/privatelinks.json#/parameters/PrivateEndpointConnectionName" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/definitions/PrivateEndpointConnection" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/privatelinks.json#/definitions/PrivateEndpointConnection" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -784,13 +784,13 @@ "description": "Create a Dependent PrivateEndpointConnection", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -809,7 +809,7 @@ "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/parameters/PrivateEndpointConnectionName" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/privatelinks.json#/parameters/PrivateEndpointConnectionName" }, { "name": "resource", @@ -817,7 +817,7 @@ "description": "Resource create parameters.", "required": true, "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/definitions/PrivateEndpointConnection" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/privatelinks.json#/definitions/PrivateEndpointConnection" } } ], @@ -825,13 +825,13 @@ "200": { "description": "Resource 'PrivateEndpointConnection' update operation succeeded", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/definitions/PrivateEndpointConnection" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/privatelinks.json#/definitions/PrivateEndpointConnection" } }, "201": { "description": "Resource 'PrivateEndpointConnection' create operation succeeded", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/definitions/PrivateEndpointConnection" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/privatelinks.json#/definitions/PrivateEndpointConnection" }, "headers": { "Azure-AsyncOperation": { @@ -848,7 +848,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -865,13 +865,13 @@ "description": "Update a Dependent PrivateEndpointConnection", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -890,7 +890,7 @@ "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/parameters/PrivateEndpointConnectionName" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/privatelinks.json#/parameters/PrivateEndpointConnectionName" }, { "name": "properties", @@ -906,7 +906,7 @@ "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/definitions/PrivateEndpointConnection" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/privatelinks.json#/definitions/PrivateEndpointConnection" } }, "202": { @@ -926,7 +926,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -943,13 +943,13 @@ "description": "Delete a Dependent PrivateEndpointConnection", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -968,7 +968,7 @@ "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/parameters/PrivateEndpointConnectionName" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/privatelinks.json#/parameters/PrivateEndpointConnectionName" } ], "responses": { @@ -992,7 +992,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1011,13 +1011,13 @@ "description": "A sample resource action that move employee to different location", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -1047,7 +1047,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -1062,13 +1062,13 @@ "description": "List Employee PrivateEndpointConnections", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -1089,7 +1089,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1107,13 +1107,13 @@ "description": "Get a Employee PrivateEndpointConnection", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -1124,20 +1124,20 @@ "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/parameters/PrivateEndpointConnectionName" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/privatelinks.json#/parameters/PrivateEndpointConnectionName" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/definitions/PrivateEndpointConnection" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/privatelinks.json#/definitions/PrivateEndpointConnection" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -1150,13 +1150,13 @@ "description": "Create a Employee PrivateEndpointConnection", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -1167,7 +1167,7 @@ "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/parameters/PrivateEndpointConnectionName" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/privatelinks.json#/parameters/PrivateEndpointConnectionName" }, { "name": "resource", @@ -1175,7 +1175,7 @@ "description": "Resource create parameters.", "required": true, "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/definitions/PrivateEndpointConnection" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/privatelinks.json#/definitions/PrivateEndpointConnection" } } ], @@ -1183,13 +1183,13 @@ "200": { "description": "Resource 'PrivateEndpointConnection' update operation succeeded", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/definitions/PrivateEndpointConnection" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/privatelinks.json#/definitions/PrivateEndpointConnection" } }, "201": { "description": "Resource 'PrivateEndpointConnection' create operation succeeded", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/definitions/PrivateEndpointConnection" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/privatelinks.json#/definitions/PrivateEndpointConnection" }, "headers": { "Azure-AsyncOperation": { @@ -1206,7 +1206,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1223,13 +1223,13 @@ "description": "Update a Employee PrivateEndpointConnection", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -1240,7 +1240,7 @@ "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/parameters/PrivateEndpointConnectionName" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/privatelinks.json#/parameters/PrivateEndpointConnectionName" }, { "name": "properties", @@ -1256,7 +1256,7 @@ "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/definitions/PrivateEndpointConnection" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/privatelinks.json#/definitions/PrivateEndpointConnection" } }, "202": { @@ -1276,7 +1276,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1293,13 +1293,13 @@ "description": "Delete a Employee PrivateEndpointConnection", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -1310,7 +1310,7 @@ "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/parameters/PrivateEndpointConnectionName" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/privatelinks.json#/parameters/PrivateEndpointConnectionName" } ], "responses": { @@ -1334,7 +1334,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1355,11 +1355,11 @@ "description": "The private endpoint connection properties", "properties": { "privateEndpoint": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/definitions/PrivateEndpoint", + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/privatelinks.json#/definitions/PrivateEndpoint", "description": "The private endpoint resource." }, "privateLinkServiceConnectionState": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/definitions/PrivateLinkServiceConnectionState", + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/privatelinks.json#/definitions/PrivateLinkServiceConnectionState", "description": "A collection of information about the state of the connection between service consumer and provider." } } @@ -1377,7 +1377,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ProxyResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ProxyResource" } ] }, @@ -1462,7 +1462,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/TrackedResource" } ] }, @@ -1588,7 +1588,7 @@ "type": "array", "description": "The PrivateEndpointConnection items on this page", "items": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/definitions/PrivateEndpointConnection" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/privatelinks.json#/definitions/PrivateEndpointConnection" } }, "nextLink": { diff --git a/packages/samples/test/output/azure/resource-manager/resource-types/private-links/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-types/private-links/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json index 2e6cf9b5c8..a86985d86f 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-types/private-links/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-types/private-links/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json @@ -59,20 +59,20 @@ "description": "List the operations for the provider", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -90,10 +90,10 @@ "description": "List Employee resources by subscription ID", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -106,7 +106,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -124,13 +124,13 @@ "description": "List Employee resources by resource group", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { @@ -143,7 +143,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -161,13 +161,13 @@ "description": "Get a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -188,7 +188,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -201,13 +201,13 @@ "description": "Create a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -254,7 +254,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -271,13 +271,13 @@ "description": "Update a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -307,7 +307,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -320,13 +320,13 @@ "description": "Delete a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -347,7 +347,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -360,13 +360,13 @@ "description": "A sample HEAD operation to check resource existence", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -387,7 +387,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -402,13 +402,13 @@ "description": "List Dependent resources by Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -429,7 +429,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -447,13 +447,13 @@ "description": "Get a Dependent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -482,7 +482,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -495,13 +495,13 @@ "description": "Create a Dependent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -556,7 +556,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -573,13 +573,13 @@ "description": "Update a Dependent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -617,7 +617,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -630,13 +630,13 @@ "description": "Delete a Dependent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -665,7 +665,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -680,13 +680,13 @@ "description": "List Dependent PrivateLinks", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -715,7 +715,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -733,13 +733,13 @@ "description": "Get a Dependent PrivateLink", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -769,13 +769,13 @@ "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/definitions/PrivateLinkResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/privatelinks.json#/definitions/PrivateLinkResource" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -790,13 +790,13 @@ "description": "A sample resource action that move employee to different location", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -826,7 +826,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -841,13 +841,13 @@ "description": "List Employee PrivateLinks", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -868,7 +868,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -886,13 +886,13 @@ "description": "Get a Employee PrivateLink", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -914,13 +914,13 @@ "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/definitions/PrivateLinkResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/privatelinks.json#/definitions/PrivateLinkResource" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -939,7 +939,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ProxyResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ProxyResource" } ] }, @@ -1024,7 +1024,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/TrackedResource" } ] }, @@ -1150,7 +1150,7 @@ "type": "array", "description": "The MyPrivateLinkResource items on this page", "items": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/privatelinks.json#/definitions/PrivateLinkResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/privatelinks.json#/definitions/PrivateLinkResource" } }, "nextLink": { diff --git a/packages/samples/test/output/azure/resource-manager/resource-types/proxy/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-types/proxy/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json index 661ae02943..8b2e808748 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-types/proxy/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-types/proxy/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json @@ -59,20 +59,20 @@ "description": "List the operations for the provider", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -90,10 +90,10 @@ "description": "List Employee resources by subscription ID", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -106,7 +106,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -124,13 +124,13 @@ "description": "List Employee resources by resource group", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { @@ -143,7 +143,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -161,13 +161,13 @@ "description": "Get a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -188,7 +188,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -201,13 +201,13 @@ "description": "Create a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -254,7 +254,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -271,13 +271,13 @@ "description": "Update a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -307,7 +307,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -320,13 +320,13 @@ "description": "Delete a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -347,7 +347,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -360,13 +360,13 @@ "description": "A sample HEAD operation to check resource existence", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -387,7 +387,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -402,13 +402,13 @@ "description": "List Dependent resources by Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -429,7 +429,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -447,13 +447,13 @@ "description": "Get a Dependent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -482,7 +482,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -495,13 +495,13 @@ "description": "Create a Dependent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -556,7 +556,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -573,13 +573,13 @@ "description": "Update a Dependent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -617,7 +617,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -630,13 +630,13 @@ "description": "Delete a Dependent", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -665,7 +665,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -680,13 +680,13 @@ "description": "A sample resource action that move employee to different location", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -716,7 +716,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -735,7 +735,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ProxyResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ProxyResource" } ] }, @@ -820,7 +820,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/TrackedResource" } ] }, diff --git a/packages/samples/test/output/azure/resource-manager/resource-types/relationship/@azure-tools/typespec-autorest/2024-06-01/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-types/relationship/@azure-tools/typespec-autorest/2024-06-01/openapi.json index 78bdb9f7af..1ac7810f00 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-types/relationship/@azure-tools/typespec-autorest/2024-06-01/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-types/relationship/@azure-tools/typespec-autorest/2024-06-01/openapi.json @@ -56,7 +56,7 @@ "description": "List DependencyOf resources by scope", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "scope", @@ -77,7 +77,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -95,7 +95,7 @@ "description": "Get a DependencyOf", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "scope", @@ -124,7 +124,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -137,7 +137,7 @@ "description": "Create a DependencyOf", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "scope", @@ -192,7 +192,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -209,7 +209,7 @@ "description": "Update a DependencyOf", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "scope", @@ -261,7 +261,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -278,7 +278,7 @@ "description": "Delete a DependencyOf", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "scope", @@ -318,7 +318,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -337,20 +337,20 @@ "description": "List the operations for the provider", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -414,7 +414,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ProxyResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ProxyResource" } ] }, diff --git a/packages/samples/test/output/azure/resource-manager/resource-types/singleton/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-types/singleton/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json index 9874547c95..3d8e7d0bd5 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-types/singleton/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-types/singleton/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json @@ -56,20 +56,20 @@ "description": "List the operations for the provider", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -87,13 +87,13 @@ "description": "List Employee resources by resource group", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { @@ -106,7 +106,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -124,13 +124,13 @@ "description": "Get a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { @@ -143,7 +143,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -156,13 +156,13 @@ "description": "Create a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "resource", @@ -201,7 +201,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -218,13 +218,13 @@ "description": "Update a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "properties", @@ -246,7 +246,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -259,13 +259,13 @@ "description": "A sample HEAD operation to check resource existence", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { @@ -278,7 +278,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -293,13 +293,13 @@ "description": "A sample resource action that move employee to different location", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "body", @@ -321,7 +321,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -340,7 +340,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/TrackedResource" } ] }, diff --git a/packages/samples/test/output/azure/resource-manager/resource-types/specific-extension/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-types/specific-extension/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json index 0cfafa0f3f..8ed3b6c31c 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-types/specific-extension/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-types/specific-extension/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json @@ -80,7 +80,7 @@ "description": "List Employee resources by scope", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "scope", @@ -101,7 +101,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -119,7 +119,7 @@ "description": "Get a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "scope", @@ -148,7 +148,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -161,7 +161,7 @@ "description": "Create a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "scope", @@ -216,7 +216,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -233,7 +233,7 @@ "description": "Update a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "scope", @@ -271,7 +271,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -284,7 +284,7 @@ "description": "Delete a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "scope", @@ -324,7 +324,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -343,7 +343,7 @@ "description": "A synchronous resource action.", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "scope", @@ -381,7 +381,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -396,7 +396,7 @@ "description": "List Employee resources by scope", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -409,7 +409,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -427,7 +427,7 @@ "description": "Get a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "employeeName", @@ -448,7 +448,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -461,7 +461,7 @@ "description": "Create a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "employeeName", @@ -508,7 +508,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -525,7 +525,7 @@ "description": "Update a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "employeeName", @@ -555,7 +555,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -568,7 +568,7 @@ "description": "Delete a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "employeeName", @@ -600,7 +600,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -619,7 +619,7 @@ "description": "A synchronous resource action.", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "employeeName", @@ -649,7 +649,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -664,20 +664,20 @@ "description": "List the operations for the provider", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -695,7 +695,7 @@ "description": "List Employee resources by scope", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "managementGroupName", @@ -716,7 +716,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -734,7 +734,7 @@ "description": "Get a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "managementGroupName", @@ -763,7 +763,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -776,7 +776,7 @@ "description": "Create a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "managementGroupName", @@ -831,7 +831,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -848,7 +848,7 @@ "description": "Update a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "managementGroupName", @@ -886,7 +886,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -899,7 +899,7 @@ "description": "Delete a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "managementGroupName", @@ -939,7 +939,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -958,7 +958,7 @@ "description": "A synchronous resource action.", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "managementGroupName", @@ -996,7 +996,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -1011,7 +1011,7 @@ "description": "List Employee resources by scope", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "serviceGroupName", @@ -1032,7 +1032,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1050,7 +1050,7 @@ "description": "Get a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "serviceGroupName", @@ -1079,7 +1079,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -1092,7 +1092,7 @@ "description": "Create a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "serviceGroupName", @@ -1147,7 +1147,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1164,7 +1164,7 @@ "description": "Update a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "serviceGroupName", @@ -1202,7 +1202,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -1215,7 +1215,7 @@ "description": "Delete a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "serviceGroupName", @@ -1255,7 +1255,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1274,7 +1274,7 @@ "description": "A synchronous resource action.", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "serviceGroupName", @@ -1312,7 +1312,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -1327,10 +1327,10 @@ "description": "List Employee resources by scope", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -1343,7 +1343,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1361,10 +1361,10 @@ "description": "Get a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { "name": "employeeName", @@ -1385,7 +1385,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -1398,10 +1398,10 @@ "description": "Create a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { "name": "employeeName", @@ -1448,7 +1448,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1465,10 +1465,10 @@ "description": "Update a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { "name": "employeeName", @@ -1498,7 +1498,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -1511,10 +1511,10 @@ "description": "Delete a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { "name": "employeeName", @@ -1546,7 +1546,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1565,10 +1565,10 @@ "description": "A synchronous resource action.", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { "name": "employeeName", @@ -1598,7 +1598,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -1613,13 +1613,13 @@ "description": "List a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "providerNamespace", @@ -1667,7 +1667,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1685,13 +1685,13 @@ "description": "Get a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "providerNamespace", @@ -1747,7 +1747,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -1760,13 +1760,13 @@ "description": "Create a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "providerNamespace", @@ -1848,7 +1848,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -1865,13 +1865,13 @@ "description": "Update a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "providerNamespace", @@ -1936,7 +1936,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -1949,13 +1949,13 @@ "description": "Delete a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "providerNamespace", @@ -2022,7 +2022,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -2041,13 +2041,13 @@ "description": "List Employee resources by scope", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "scaleSetName", @@ -2076,7 +2076,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -2094,13 +2094,13 @@ "description": "Get a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "scaleSetName", @@ -2137,7 +2137,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -2150,13 +2150,13 @@ "description": "Create a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "scaleSetName", @@ -2219,7 +2219,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -2236,13 +2236,13 @@ "description": "Update a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "scaleSetName", @@ -2288,7 +2288,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -2301,13 +2301,13 @@ "description": "Delete a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "scaleSetName", @@ -2355,7 +2355,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -2374,13 +2374,13 @@ "description": "A synchronous resource action.", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "scaleSetName", @@ -2426,7 +2426,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -2441,13 +2441,13 @@ "description": "List Employee resources by scope", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "vmName", @@ -2468,7 +2468,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -2486,13 +2486,13 @@ "description": "Get a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "vmName", @@ -2521,7 +2521,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -2534,13 +2534,13 @@ "description": "Create a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "vmName", @@ -2595,7 +2595,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -2612,13 +2612,13 @@ "description": "Update a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "vmName", @@ -2656,7 +2656,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -2669,13 +2669,13 @@ "description": "Delete a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "vmName", @@ -2715,7 +2715,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -2734,13 +2734,13 @@ "description": "A synchronous resource action.", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "vmName", @@ -2778,7 +2778,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -2793,13 +2793,13 @@ "description": "List Employee resources by scope", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { @@ -2812,7 +2812,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -2830,13 +2830,13 @@ "description": "Get a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -2857,7 +2857,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -2870,13 +2870,13 @@ "description": "Create a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -2923,7 +2923,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -2940,13 +2940,13 @@ "description": "Update a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -2976,7 +2976,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -2989,13 +2989,13 @@ "description": "Delete a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -3027,7 +3027,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -3046,13 +3046,13 @@ "description": "A synchronous resource action.", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -3082,7 +3082,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -3101,7 +3101,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ProxyResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ProxyResource" } ] }, diff --git a/packages/samples/test/output/azure/resource-manager/resource-types/tenant/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-types/tenant/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json index 616f755560..196c99c3af 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-types/tenant/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-types/tenant/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json @@ -56,7 +56,7 @@ "description": "List Employee resources by tenant", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -69,7 +69,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -87,7 +87,7 @@ "description": "Get a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "employeeName", @@ -108,7 +108,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -121,7 +121,7 @@ "description": "Create a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "employeeName", @@ -168,7 +168,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -185,7 +185,7 @@ "description": "Update a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "employeeName", @@ -215,7 +215,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -228,7 +228,7 @@ "description": "Delete a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "employeeName", @@ -249,7 +249,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -262,7 +262,7 @@ "description": "A sample HEAD operation to check resource existence", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "employeeName", @@ -283,7 +283,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -298,7 +298,7 @@ "description": "A sample resource action that move employee to different location", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { "name": "employeeName", @@ -328,7 +328,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -343,20 +343,20 @@ "description": "List the operations for the provider", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -378,7 +378,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/TrackedResource" } ] }, diff --git a/packages/samples/test/output/azure/resource-manager/resource-types/tracked/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-types/tracked/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json index 1e69246461..b80c4cc388 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-types/tracked/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-types/tracked/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json @@ -56,20 +56,20 @@ "description": "List the operations for the provider", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -87,10 +87,10 @@ "description": "List Employee resources by subscription ID", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -103,7 +103,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -121,13 +121,13 @@ "description": "List Employee resources by resource group", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { @@ -140,7 +140,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -158,13 +158,13 @@ "description": "Get a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -185,7 +185,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -198,13 +198,13 @@ "description": "Create a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -251,7 +251,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -268,13 +268,13 @@ "description": "Update a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -304,7 +304,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -317,13 +317,13 @@ "description": "Delete a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -344,7 +344,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -357,13 +357,13 @@ "description": "A sample HEAD operation to check resource existence", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -384,7 +384,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -399,13 +399,13 @@ "description": "A sample resource action that move employee to different location", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "employeeName", @@ -443,7 +443,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -466,7 +466,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/TrackedResource" } ] }, diff --git a/packages/samples/test/output/azure/resource-manager/resource-types/virtual-resource/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json b/packages/samples/test/output/azure/resource-manager/resource-types/virtual-resource/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json index 44b97118dc..878df8afab 100644 --- a/packages/samples/test/output/azure/resource-manager/resource-types/virtual-resource/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json +++ b/packages/samples/test/output/azure/resource-manager/resource-types/virtual-resource/@azure-tools/typespec-autorest/2021-10-01-preview/openapi.json @@ -56,20 +56,20 @@ "description": "List the operations for the provider", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -87,13 +87,13 @@ "description": "List Employee resources by Group", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "divisionId", @@ -122,7 +122,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -140,13 +140,13 @@ "description": "Get a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "divisionId", @@ -183,7 +183,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -196,13 +196,13 @@ "description": "Create a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "divisionId", @@ -265,7 +265,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } }, @@ -282,13 +282,13 @@ "description": "Update a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "divisionId", @@ -334,7 +334,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -347,13 +347,13 @@ "description": "Delete a Employee", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "divisionId", @@ -390,7 +390,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -403,13 +403,13 @@ "description": "A sample HEAD operation to check resource existence", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "divisionId", @@ -446,7 +446,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -461,13 +461,13 @@ "description": "A sample resource action that move employee to different location", "parameters": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "divisionId", @@ -513,7 +513,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/ErrorResponse" } } } @@ -546,7 +546,7 @@ }, "allOf": [ { - "$ref": "../../../../../../../../../specs/resource-manager/common-types/v5/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../../../../specs/resource-manager/common-types/v6/types.json#/definitions/TrackedResource" } ] }, From f4fc394f62b8dc64407dc31530439284b111fa4c Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Sun, 20 Sep 2026 15:31:32 +0800 Subject: [PATCH 17/22] Add v6 common-type fixtures for ARM sample references Copy canonical v6 schemas into the sample reference directory and validate local OpenAPI files and JSON pointers transitively in sample tests. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: f0af92c5-fa9d-4992-bb89-31bab99d244b --- ...ersion-common-types-2026-08-20-14-00-00.md | 2 + .../common-types/v6/customermanagedkeys.json | 68 ++ .../common-types/v6/managedidentity.json | 110 +++ .../v6/managedidentitywithdelegation.json | 54 ++ .../common-types/v6/mobo.json | 38 + .../v6/networksecurityperimeter.json | 433 +++++++++++ .../common-types/v6/privatelinks.json | 202 ++++++ .../common-types/v6/types.json | 681 ++++++++++++++++++ packages/samples/test/references.test.ts | 65 ++ 9 files changed, 1653 insertions(+) create mode 100644 packages/samples/specs/resource-manager/common-types/v6/customermanagedkeys.json create mode 100644 packages/samples/specs/resource-manager/common-types/v6/managedidentity.json create mode 100644 packages/samples/specs/resource-manager/common-types/v6/managedidentitywithdelegation.json create mode 100644 packages/samples/specs/resource-manager/common-types/v6/mobo.json create mode 100644 packages/samples/specs/resource-manager/common-types/v6/networksecurityperimeter.json create mode 100644 packages/samples/specs/resource-manager/common-types/v6/privatelinks.json create mode 100644 packages/samples/specs/resource-manager/common-types/v6/types.json create mode 100644 packages/samples/test/references.test.ts diff --git a/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md b/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md index 7a38524006..5e6e7a633e 100644 --- a/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md +++ b/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md @@ -11,3 +11,5 @@ Latest-version warnings are now active wherever this existing rule is enabled, i The rule checks effective version selections only; it does not inspect legacy type usages or emitted OpenAPI references. Update current ARM samples to common-types v6. Legacy and version-compatibility samples retain their older selections with explicit, scoped suppressions. + +Include the v6 common-types fixtures referenced by the samples and validate local OpenAPI references so missing files or definitions fail the sample tests. diff --git a/packages/samples/specs/resource-manager/common-types/v6/customermanagedkeys.json b/packages/samples/specs/resource-manager/common-types/v6/customermanagedkeys.json new file mode 100644 index 0000000000..10355db485 --- /dev/null +++ b/packages/samples/specs/resource-manager/common-types/v6/customermanagedkeys.json @@ -0,0 +1,68 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "6.0" + }, + "paths": {}, + "definitions": { + "encryption": { + "type": "object", + "description": "All encryption configuration for a resource.", + "properties": { + "infrastructureEncryption": { + "type": "string", + "description": "(Optional) Discouraged to include in resource definition. Only needed where it is possible to disable platform (AKA infrastructure) encryption. Azure SQL TDE is an example of this. Values are enabled and disabled.", + "enum": [ + "enabled", + "disabled" + ], + "x-ms-enum": { + "name": "InfrastructureEncryption", + "modelAsString": true + } + }, + "customerManagedKeyEncryption": { + "type": "object", + "description": "All Customer-managed key encryption properties for the resource.", + "properties": { + "keyEncryptionKeyIdentity": { + "type": "object", + "description": "All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault.", + "properties": { + "identityType": { + "type": "string", + "description": "The type of identity to use. Values can be systemAssignedIdentity, userAssignedIdentity, or delegatedResourceIdentity.", + "enum": [ + "systemAssignedIdentity", + "userAssignedIdentity", + "delegatedResourceIdentity" + ] + }, + "userAssignedIdentityResourceId": { + "type": "string", + "format": "arm-id", + "description": "User assigned identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity." + }, + "federatedClientId": { + "type": "string", + "format": "uuid", + "description": "application client identity to use for accessing key encryption key Url in a different tenant. Ex: f83c6b1b-4d34-47e4-bb34-9d83df58b540" + }, + "delegatedIdentityClientId": { + "type": "string", + "format": "uuid", + "description": "delegated identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity and userAssignedIdentity - internal use only." + } + } + }, + "keyEncryptionKeyUrl": { + "type": "string", + "description": "key encryption key Url, versioned or unversioned. Ex: https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or https://contosovault.vault.azure.net/keys/contosokek." + } + } + } + } + } + } +} diff --git a/packages/samples/specs/resource-manager/common-types/v6/managedidentity.json b/packages/samples/specs/resource-manager/common-types/v6/managedidentity.json new file mode 100644 index 0000000000..299473be2f --- /dev/null +++ b/packages/samples/specs/resource-manager/common-types/v6/managedidentity.json @@ -0,0 +1,110 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "6.0" + }, + "paths": {}, + "definitions": { + "ManagedServiceIdentity": { + "type": "object", + "description": "Managed service identity (system assigned and/or user assigned identities)", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/ManagedServiceIdentityType" + }, + "userAssignedIdentities": { + "type": "object", + "description": "The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.", + "additionalProperties": { + "$ref": "#/definitions/UserAssignedIdentity", + "x-nullable": true + } + } + }, + "required": [ + "type" + ] + }, + "ManagedServiceIdentityType": { + "type": "string", + "description": "Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).", + "enum": [ + "None", + "SystemAssigned", + "UserAssigned", + "SystemAssigned,UserAssigned" + ], + "x-ms-enum": { + "name": "ManagedServiceIdentityType", + "modelAsString": true + } + }, + "SystemAssignedServiceIdentity": { + "type": "object", + "description": "Managed service identity (either system assigned, or none)", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/SystemAssignedServiceIdentityType" + } + }, + "required": [ + "type" + ] + }, + "SystemAssignedServiceIdentityType": { + "type": "string", + "description": "Type of managed service identity (either system assigned, or none).", + "enum": [ + "None", + "SystemAssigned" + ], + "x-ms-enum": { + "name": "SystemAssignedServiceIdentityType", + "modelAsString": true + } + }, + "UserAssignedIdentity": { + "type": "object", + "description": "User assigned identity properties", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The principal ID of the assigned identity.", + "readOnly": true + }, + "clientId": { + "type": "string", + "format": "uuid", + "description": "The client ID of the assigned identity.", + "readOnly": true + } + } + } + } +} diff --git a/packages/samples/specs/resource-manager/common-types/v6/managedidentitywithdelegation.json b/packages/samples/specs/resource-manager/common-types/v6/managedidentitywithdelegation.json new file mode 100644 index 0000000000..7341c7ffbc --- /dev/null +++ b/packages/samples/specs/resource-manager/common-types/v6/managedidentitywithdelegation.json @@ -0,0 +1,54 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "6.0" + }, + "paths": {}, + "definitions": { + "DelegatedResource": { + "type": "object", + "description": "Delegated resource properties - internal use only.", + "properties": { + "resourceId": { + "type": "string", + "description": "The ARM resource id of the delegated resource - internal use only." + }, + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The tenant id of the delegated resource - internal use only." + }, + "referralResource": { + "type": "string", + "description": "The delegation id of the referral delegation (optional) - internal use only." + }, + "location": { + "type": "string", + "description": "The source resource location - internal use only." + } + } + }, + "DelegatedResources": { + "type": "object", + "description": "The set of delegated resources. The delegated resources dictionary keys will be source resource internal ids - internal use only.", + "additionalProperties": { + "$ref": "#/definitions/DelegatedResource" + } + }, + "ManagedServiceIdentityWithDelegation": { + "type": "object", + "description": "Managed service identity (system assigned and/or user assigned identities and/or delegated identities) - internal use only.", + "properties": { + "delegatedResources": { + "$ref": "#/definitions/DelegatedResources" + } + }, + "allOf": [ + { + "$ref": "managedidentity.json#/definitions/ManagedServiceIdentity" + } + ] + } + } +} diff --git a/packages/samples/specs/resource-manager/common-types/v6/mobo.json b/packages/samples/specs/resource-manager/common-types/v6/mobo.json new file mode 100644 index 0000000000..f8646a4edc --- /dev/null +++ b/packages/samples/specs/resource-manager/common-types/v6/mobo.json @@ -0,0 +1,38 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "6.0" + }, + "paths": {}, + "definitions": { + "ManagedOnBehalfOfConfiguration": { + "type": "object", + "description": "Managed-On-Behalf-Of configuration properties. This configuration exists for the resources where a resource provider manages those resources on behalf of the resource owner.", + "properties": { + "moboBrokerResources": { + "type": "array", + "description": "Managed-On-Behalf-Of broker resources", + "items": { + "$ref": "#/definitions/MoboBrokerResource" + }, + "x-ms-identifiers": [ + "id" + ] + } + }, + "readOnly": true + }, + "MoboBrokerResource": { + "type": "object", + "description": "Managed-On-Behalf-Of broker resource. This resource is created by the Resource Provider to manage some resources on behalf of the user.", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "description": "Resource identifier of a Managed-On-Behalf-Of broker resource" + } + } + } + } +} diff --git a/packages/samples/specs/resource-manager/common-types/v6/networksecurityperimeter.json b/packages/samples/specs/resource-manager/common-types/v6/networksecurityperimeter.json new file mode 100644 index 0000000000..5ef4076fa1 --- /dev/null +++ b/packages/samples/specs/resource-manager/common-types/v6/networksecurityperimeter.json @@ -0,0 +1,433 @@ +{ + "swagger": "2.0", + "info": { + "title": "Network security perimeter common type definitions", + "version": "6.0", + "description": "Common types for network security perimeters based on a shared API specification. These common, versioned type definitions are intended for resource providers (RPs, except Network RP) to use, and reuse, for defining their own API versions that share a set of type definitions that is consistent across providers.", + "contact": {} + }, + "schemes": [ + "https" + ], + "host": "management.azure.com", + "paths": {}, + "definitions": { + "AccessRule": { + "type": "object", + "description": "Access rule in a network security perimeter configuration profile", + "properties": { + "name": { + "type": "string", + "description": "Name of the access rule" + }, + "properties": { + "$ref": "#/definitions/AccessRuleProperties" + } + } + }, + "AccessRuleDirection": { + "type": "string", + "description": "Direction of Access Rule", + "enum": [ + "Inbound", + "Outbound" + ], + "x-ms-enum": { + "name": "AccessRuleDirection", + "modelAsString": true, + "values": [ + { + "value": "Inbound", + "description": "Applies to inbound network traffic to the secured resources." + }, + { + "value": "Outbound", + "description": "Applies to outbound network traffic from the secured resources" + } + ] + } + }, + "AccessRuleProperties": { + "type": "object", + "description": "Properties of Access Rule", + "properties": { + "direction": { + "$ref": "#/definitions/AccessRuleDirection" + }, + "addressPrefixes": { + "type": "array", + "description": "Address prefixes in the CIDR format for inbound rules", + "items": { + "type": "string", + "description": "An IP address prefix (CIDR) for inbound rules" + } + }, + "subscriptions": { + "type": "array", + "description": "Subscriptions for inbound rules", + "items": { + "type": "object", + "description": "Subscription identifiers", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "description": "The fully qualified Azure resource ID of the subscription e.g. ('/subscriptions/00000000-0000-0000-0000-000000000000') " + } + } + } + }, + "networkSecurityPerimeters": { + "type": "array", + "description": "Network security perimeters for inbound rules", + "items": { + "$ref": "#/definitions/NetworkSecurityPerimeter" + } + }, + "fullyQualifiedDomainNames": { + "type": "array", + "description": "Fully qualified domain names (FQDN) for outbound rules", + "items": { + "type": "string", + "description": "A fully qualified domain name (FQDN)" + } + }, + "emailAddresses": { + "type": "array", + "description": "Email addresses for outbound rules", + "items": { + "type": "string", + "description": "An email address" + } + }, + "phoneNumbers": { + "type": "array", + "description": "Phone numbers for outbound rules", + "items": { + "type": "string", + "description": "A phone number" + } + } + } + }, + "NetworkSecurityPerimeter": { + "type": "object", + "description": "Information about a network security perimeter (NSP)", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "description": "Fully qualified Azure resource ID of the NSP resource", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "resourceType": "Microsoft.Network/networkSecurityPerimeters" + } + ] + } + }, + "perimeterGuid": { + "type": "string", + "format": "uuid", + "description": "Universal unique ID (UUID) of the network security perimeter" + }, + "location": { + "type": "string", + "description": "Location of the network security perimeter", + "x-ms-mutability": [ + "create", + "read" + ] + } + } + }, + "NetworkSecurityPerimeterConfiguration": { + "type": "object", + "description": "Network security perimeter (NSP) configuration resource", + "properties": { + "properties": { + "$ref": "#/definitions/NetworkSecurityPerimeterConfigurationProperties" + } + }, + "allOf": [ + { + "$ref": "./types.json#/definitions/ProxyResource" + } + ] + }, + "NetworkSecurityPerimeterConfigurationListResult": { + "type": "object", + "description": "Result of a list NSP (network security perimeter) configurations request.", + "properties": { + "value": { + "type": "array", + "description": "Array of network security perimeter results.", + "items": { + "$ref": "#/definitions/NetworkSecurityPerimeterConfiguration" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link used to get the next page of results." + } + } + }, + "NetworkSecurityPerimeterConfigurationProperties": { + "type": "object", + "description": "Network security configuration properties.", + "properties": { + "provisioningState": { + "$ref": "#/definitions/NetworkSecurityPerimeterConfigurationProvisioningState", + "readOnly": true + }, + "provisioningIssues": { + "type": "array", + "description": "List of provisioning issues, if any", + "items": { + "$ref": "#/definitions/ProvisioningIssue" + }, + "readOnly": true, + "x-ms-identifiers": [] + }, + "networkSecurityPerimeter": { + "$ref": "#/definitions/NetworkSecurityPerimeter" + }, + "resourceAssociation": { + "$ref": "#/definitions/ResourceAssociation" + }, + "profile": { + "$ref": "#/definitions/NetworkSecurityProfile" + } + } + }, + "NetworkSecurityPerimeterConfigurationProvisioningState": { + "type": "string", + "description": "Provisioning state of a network security perimeter configuration that is being created or updated.", + "enum": [ + "Succeeded", + "Creating", + "Updating", + "Deleting", + "Accepted", + "Failed", + "Canceled" + ], + "x-ms-enum": { + "name": "NetworkSecurityPerimeterConfigurationProvisioningState", + "modelAsString": true + }, + "readOnly": true + }, + "NetworkSecurityProfile": { + "type": "object", + "description": "Network security perimeter configuration profile", + "properties": { + "name": { + "type": "string", + "description": "Name of the profile" + }, + "accessRulesVersion": { + "type": "integer", + "format": "int32", + "description": "Current access rules version" + }, + "accessRules": { + "type": "array", + "description": "List of Access Rules", + "items": { + "$ref": "#/definitions/AccessRule" + }, + "x-ms-identifiers": [ + "name" + ] + }, + "diagnosticSettingsVersion": { + "type": "integer", + "format": "int32", + "description": "Current diagnostic settings version" + }, + "enabledLogCategories": { + "type": "array", + "description": "List of log categories that are enabled", + "items": { + "type": "string", + "description": "Log category" + } + } + } + }, + "ProvisioningIssue": { + "type": "object", + "description": "Describes a provisioning issue for a network security perimeter configuration", + "properties": { + "name": { + "type": "string", + "description": "Name of the issue", + "readOnly": true + }, + "properties": { + "$ref": "#/definitions/ProvisioningIssueProperties" + } + }, + "readOnly": true + }, + "ProvisioningIssueProperties": { + "type": "object", + "description": "Details of a provisioning issue for a network security perimeter (NSP) configuration. Resource providers should generate separate provisioning issue elements for each separate issue detected, and include a meaningful and distinctive description, as well as any appropriate suggestedResourceIds and suggestedAccessRules", + "properties": { + "issueType": { + "type": "string", + "description": "Type of issue", + "enum": [ + "Unknown", + "ConfigurationPropagationFailure", + "MissingPerimeterConfiguration", + "MissingIdentityConfiguration" + ], + "x-ms-enum": { + "name": "IssueType", + "modelAsString": true, + "values": [ + { + "value": "Unknown", + "description": "Unknown issue type" + }, + { + "value": "ConfigurationPropagationFailure", + "description": "An error occurred while applying the network security perimeter (NSP) configuration." + }, + { + "value": "MissingPerimeterConfiguration", + "description": "A network connectivity issue is happening on the resource which could be addressed either by adding new resources to the network security perimeter (NSP) or by modifying access rules." + }, + { + "value": "MissingIdentityConfiguration", + "description": "An managed identity hasn't been associated with the resource. The resource will still be able to validate inbound traffic from the network security perimeter (NSP) or matching inbound access rules, but it won't be able to perform outbound access as a member of the NSP." + } + ] + }, + "readOnly": true + }, + "severity": { + "type": "string", + "description": "Severity of the issue.", + "enum": [ + "Warning", + "Error" + ], + "x-ms-enum": { + "name": "Severity", + "modelAsString": true + }, + "readOnly": true + }, + "description": { + "type": "string", + "description": "Description of the issue", + "readOnly": true + }, + "suggestedResourceIds": { + "type": "array", + "description": "Fully qualified resource IDs of suggested resources that can be associated to the network security perimeter (NSP) to remediate the issue.", + "items": { + "type": "string", + "format": "arm-id", + "description": "Fully qualified resource ID of the suggested resource", + "readOnly": true + }, + "readOnly": true + }, + "suggestedAccessRules": { + "type": "array", + "description": "Access rules that can be added to the network security profile (NSP) to remediate the issue.", + "items": { + "$ref": "#/definitions/AccessRule" + }, + "readOnly": true, + "x-ms-identifiers": [] + } + }, + "readOnly": true + }, + "PublicNetworkAccess": { + "type": "string", + "description": "Allow, disallow, or let network security perimeter configuration control public network access to the protected resource. Value is optional but if passed in, it must be 'Enabled', 'Disabled' or 'SecuredByPerimeter'.", + "enum": [ + "Enabled", + "Disabled", + "SecuredByPerimeter" + ], + "x-ms-enum": { + "name": "PublicNetworkAccess", + "modelAsString": true, + "values": [ + { + "value": "Enabled", + "description": "Allows public network access to the resource" + }, + { + "value": "Disabled", + "description": "Disallows public network access to the resource" + }, + { + "value": "SecuredByPerimeter", + "description": "The network security perimeter configuration rules allow or disallow public network access to the resource. Requires an associated network security perimeter." + } + ] + } + }, + "ResourceAssociation": { + "type": "object", + "description": "Information about resource association", + "properties": { + "name": { + "type": "string", + "description": "Name of the resource association" + }, + "accessMode": { + "$ref": "#/definitions/ResourceAssociationAccessMode" + } + } + }, + "ResourceAssociationAccessMode": { + "type": "string", + "description": "Access mode of the resource association", + "enum": [ + "Enforced", + "Learning", + "Audit" + ], + "x-ms-enum": { + "name": "ResourceAssociationAccessMode", + "modelAsString": true, + "values": [ + { + "value": "Enforced", + "description": "Enforced access mode - traffic to the resource that failed access checks is blocked" + }, + { + "value": "Learning", + "description": "Learning access mode - traffic to the resource is enabled for analysis but not blocked" + }, + { + "value": "Audit", + "description": "Audit access mode - traffic to the resource that fails access checks is logged but not blocked" + } + ] + } + } + }, + "parameters": { + "NetworkSecurityPerimeterConfigurationNameParameter": { + "name": "networkSecurityPerimeterConfigurationName", + "in": "path", + "description": "The name for a network security perimeter configuration", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 512, + "x-ms-parameter-location": "method" + } + } +} diff --git a/packages/samples/specs/resource-manager/common-types/v6/privatelinks.json b/packages/samples/specs/resource-manager/common-types/v6/privatelinks.json new file mode 100644 index 0000000000..32e41b3ec3 --- /dev/null +++ b/packages/samples/specs/resource-manager/common-types/v6/privatelinks.json @@ -0,0 +1,202 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "6.0" + }, + "paths": {}, + "definitions": { + "PrivateEndpoint": { + "type": "object", + "description": "The private endpoint resource.", + "properties": { + "id": { + "type": "string", + "description": "The ARM identifier for private endpoint.", + "readOnly": true + } + } + }, + "PrivateEndpointConnection": { + "type": "object", + "description": "The private endpoint connection resource.", + "properties": { + "properties": { + "$ref": "#/definitions/PrivateEndpointConnectionProperties", + "description": "Resource properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../v5/types.json#/definitions/Resource" + } + ] + }, + "PrivateEndpointConnectionListResult": { + "type": "object", + "description": "List of private endpoint connections associated with the specified resource.", + "properties": { + "value": { + "type": "array", + "description": "Array of private endpoint connections.", + "items": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "URL to get the next set of operation list results (if there are any).", + "readOnly": true + } + } + }, + "PrivateEndpointConnectionProperties": { + "type": "object", + "description": "Properties of the private endpoint connection.", + "properties": { + "groupIds": { + "type": "array", + "description": "The group ids for the private endpoint resource.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "privateEndpoint": { + "$ref": "#/definitions/PrivateEndpoint", + "description": "The private endpoint resource." + }, + "privateLinkServiceConnectionState": { + "$ref": "#/definitions/PrivateLinkServiceConnectionState", + "description": "A collection of information about the state of the connection between service consumer and provider." + }, + "provisioningState": { + "$ref": "#/definitions/PrivateEndpointConnectionProvisioningState", + "description": "The provisioning state of the private endpoint connection resource." + } + }, + "required": [ + "privateLinkServiceConnectionState" + ] + }, + "PrivateEndpointConnectionProvisioningState": { + "type": "string", + "description": "The current provisioning state.", + "enum": [ + "Succeeded", + "Creating", + "Deleting", + "Failed" + ], + "x-ms-enum": { + "name": "PrivateEndpointConnectionProvisioningState", + "modelAsString": true + }, + "readOnly": true + }, + "PrivateEndpointServiceConnectionStatus": { + "type": "string", + "description": "The private endpoint connection status.", + "enum": [ + "Pending", + "Approved", + "Rejected" + ], + "x-ms-enum": { + "name": "PrivateEndpointServiceConnectionStatus", + "modelAsString": true + } + }, + "PrivateLinkResource": { + "type": "object", + "description": "A private link resource.", + "properties": { + "properties": { + "$ref": "#/definitions/PrivateLinkResourceProperties", + "description": "Resource properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../v5/types.json#/definitions/Resource" + } + ] + }, + "PrivateLinkResourceListResult": { + "type": "object", + "description": "A list of private link resources.", + "properties": { + "value": { + "type": "array", + "description": "Array of private link resources", + "items": { + "$ref": "#/definitions/PrivateLinkResource" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "URL to get the next set of operation list results (if there are any).", + "readOnly": true + } + } + }, + "PrivateLinkResourceProperties": { + "type": "object", + "description": "Properties of a private link resource.", + "properties": { + "groupId": { + "type": "string", + "description": "The private link resource group id.", + "readOnly": true + }, + "requiredMembers": { + "type": "array", + "description": "The private link resource required member names.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "requiredZoneNames": { + "type": "array", + "description": "The private link resource private link DNS zone name.", + "items": { + "type": "string" + } + } + } + }, + "PrivateLinkServiceConnectionState": { + "type": "object", + "description": "A collection of information about the state of the connection between service consumer and provider.", + "properties": { + "status": { + "$ref": "#/definitions/PrivateEndpointServiceConnectionStatus", + "description": "Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service." + }, + "description": { + "type": "string", + "description": "The reason for approval/rejection of the connection." + }, + "actionsRequired": { + "type": "string", + "description": "A message indicating if changes on the service provider require any updates on the consumer." + } + } + } + }, + "parameters": { + "PrivateEndpointConnectionName": { + "name": "privateEndpointConnectionName", + "in": "path", + "description": "The name of the private endpoint connection associated with the Azure resource.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + } +} diff --git a/packages/samples/specs/resource-manager/common-types/v6/types.json b/packages/samples/specs/resource-manager/common-types/v6/types.json new file mode 100644 index 0000000000..572d8e1891 --- /dev/null +++ b/packages/samples/specs/resource-manager/common-types/v6/types.json @@ -0,0 +1,681 @@ +{ + "swagger": "2.0", + "info": { + "title": "Common types", + "version": "6.0" + }, + "paths": {}, + "definitions": { + "AzureEntityResource": { + "type": "object", + "title": "Entity Resource", + "description": "The resource model definition for an Azure Resource Manager resource with an etag.", + "properties": { + "etag": { + "type": "string", + "description": "Resource Etag.", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "x-ms-client-name": "AzureEntityResource" + }, + "CheckNameAvailabilityRequest": { + "type": "object", + "description": "The check availability request body.", + "properties": { + "name": { + "type": "string", + "description": "The name of the resource for which availability needs to be checked." + }, + "type": { + "type": "string", + "description": "The resource type." + } + } + }, + "CheckNameAvailabilityResponse": { + "type": "object", + "description": "The check availability result.", + "properties": { + "nameAvailable": { + "type": "boolean", + "description": "Indicates if the resource name is available." + }, + "reason": { + "type": "string", + "description": "The reason why the given name is not available.", + "enum": [ + "Invalid", + "AlreadyExists" + ], + "x-ms-enum": { + "name": "CheckNameAvailabilityReason", + "modelAsString": true + } + }, + "message": { + "type": "string", + "description": "Detailed reason why the given name is available." + } + } + }, + "ErrorAdditionalInfo": { + "type": "object", + "description": "The resource management error additional info.", + "properties": { + "type": { + "type": "string", + "description": "The additional info type.", + "readOnly": true + }, + "info": { + "type": "object", + "description": "The additional info.", + "readOnly": true + } + } + }, + "ErrorDetail": { + "type": "object", + "description": "The error detail.", + "properties": { + "code": { + "type": "string", + "description": "The error code.", + "readOnly": true + }, + "message": { + "type": "string", + "description": "The error message.", + "readOnly": true + }, + "target": { + "type": "string", + "description": "The error target.", + "readOnly": true + }, + "details": { + "type": "array", + "description": "The error details.", + "items": { + "$ref": "#/definitions/ErrorDetail" + }, + "readOnly": true, + "x-ms-identifiers": [ + "message", + "target" + ] + }, + "additionalInfo": { + "type": "array", + "description": "The error additional info.", + "items": { + "$ref": "#/definitions/ErrorAdditionalInfo" + }, + "readOnly": true, + "x-ms-identifiers": [] + } + } + }, + "ErrorResponse": { + "type": "object", + "title": "Error response", + "description": "Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.).", + "properties": { + "error": { + "$ref": "#/definitions/ErrorDetail", + "description": "The error object." + } + } + }, + "KeyVaultProperties": { + "type": "object", + "properties": { + "keyIdentifier": { + "type": "string", + "description": "Key vault uri to access the encryption key." + }, + "identity": { + "type": "string", + "description": "The client ID of the identity which will be used to access key vault." + } + } + }, + "Operation": { + "type": "object", + "title": "REST API Operation", + "description": "Details of a REST API operation, returned from the Resource Provider Operations API", + "properties": { + "name": { + "type": "string", + "description": "The name of the operation, as per Resource-Based Access Control (RBAC). Examples: \"Microsoft.Compute/virtualMachines/write\", \"Microsoft.Compute/virtualMachines/capture/action\"", + "readOnly": true + }, + "isDataAction": { + "type": "boolean", + "description": "Whether the operation applies to data-plane. This is \"true\" for data-plane operations and \"false\" for ARM/control-plane operations.", + "readOnly": true + }, + "display": { + "type": "object", + "description": "Localized display information for this particular operation.", + "properties": { + "provider": { + "type": "string", + "description": "The localized friendly form of the resource provider name, e.g. \"Microsoft Monitoring Insights\" or \"Microsoft Compute\".", + "readOnly": true + }, + "resource": { + "type": "string", + "description": "The localized friendly name of the resource type related to this operation. E.g. \"Virtual Machines\" or \"Job Schedule Collections\".", + "readOnly": true + }, + "operation": { + "type": "string", + "description": "The concise, localized friendly name for the operation; suitable for dropdowns. E.g. \"Create or Update Virtual Machine\", \"Restart Virtual Machine\".", + "readOnly": true + }, + "description": { + "type": "string", + "description": "The short, localized friendly description of the operation; suitable for tool tips and detailed views.", + "readOnly": true + } + } + }, + "origin": { + "type": "string", + "description": "The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is \"user,system\"", + "enum": [ + "user", + "system", + "user,system" + ], + "x-ms-enum": { + "name": "Origin", + "modelAsString": true + }, + "readOnly": true + }, + "actionType": { + "type": "string", + "description": "Enum. Indicates the action type. \"Internal\" refers to actions that are for internal only APIs.", + "enum": [ + "Internal" + ], + "x-ms-enum": { + "name": "ActionType", + "modelAsString": true + }, + "readOnly": true + } + } + }, + "OperationListResult": { + "type": "object", + "description": "A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to get the next set of results.", + "properties": { + "value": { + "type": "array", + "description": "List of operations supported by the resource provider", + "items": { + "$ref": "#/definitions/Operation" + }, + "readOnly": true, + "x-ms-identifiers": [ + "name" + ] + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "URL to get the next set of operation list results (if there are any).", + "readOnly": true + } + } + }, + "OperationStatusResult": { + "type": "object", + "description": "The current status of an async operation.", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "description": "Fully qualified ID for the async operation." + }, + "resourceId": { + "type": "string", + "format": "arm-id", + "description": "Fully qualified ID of the resource against which the original async operation was started.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "Name of the async operation." + }, + "status": { + "type": "string", + "description": "Operation status." + }, + "percentComplete": { + "type": "number", + "description": "Percent of the operation that is complete.", + "minimum": 0, + "maximum": 100 + }, + "startTime": { + "type": "string", + "format": "date-time", + "description": "The start time of the operation." + }, + "endTime": { + "type": "string", + "format": "date-time", + "description": "The end time of the operation." + }, + "operations": { + "type": "array", + "description": "The operations list.", + "items": { + "$ref": "#/definitions/OperationStatusResult" + } + }, + "error": { + "$ref": "#/definitions/ErrorDetail", + "description": "If present, details of the operation error." + } + }, + "required": [ + "status" + ] + }, + "Plan": { + "type": "object", + "description": "Plan for the resource.", + "properties": { + "name": { + "type": "string", + "description": "A user defined name of the 3rd Party Artifact that is being procured." + }, + "publisher": { + "type": "string", + "description": "The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic" + }, + "product": { + "type": "string", + "description": "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. " + }, + "promotionCode": { + "type": "string", + "description": "A publisher provided promotion code as provisioned in Data Market for the said product/artifact." + }, + "version": { + "type": "string", + "description": "The version of the desired product/artifact." + } + }, + "required": [ + "name", + "publisher", + "product" + ] + }, + "ProxyResource": { + "type": "object", + "title": "Proxy Resource", + "description": "The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ] + }, + "Resource": { + "type": "object", + "title": "Resource", + "description": "Common fields that are returned in the response for all Azure Resource Manager resources", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "description": "Fully qualified resource ID for the resource. E.g. \"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}\"", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the resource", + "readOnly": true + }, + "type": { + "type": "string", + "description": "The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\"", + "readOnly": true + }, + "systemData": { + "$ref": "#/definitions/systemData", + "description": "Azure Resource Manager metadata containing createdBy and modifiedBy information.", + "readOnly": true + } + }, + "x-ms-azure-resource": true + }, + "ResourceModelWithAllowedPropertySet": { + "type": "object", + "description": "The resource model definition containing the full set of allowed properties for a resource. Except properties bag, there cannot be a top level property outside of this set.", + "properties": { + "managedBy": { + "type": "string", + "description": "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.", + "x-ms-mutability": [ + "read", + "create", + "update" + ] + }, + "kind": { + "type": "string", + "description": "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type. E.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.", + "pattern": "^[-\\w\\._,\\(\\)]+$", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "etag": { + "type": "string", + "description": "The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal etag convention. Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields. ", + "readOnly": true + }, + "identity": { + "$ref": "./managedidentity.json#/definitions/ManagedServiceIdentity" + }, + "sku": { + "$ref": "#/definitions/Sku" + }, + "plan": { + "$ref": "#/definitions/Plan" + } + }, + "allOf": [ + { + "$ref": "#/definitions/TrackedResource" + } + ], + "x-ms-azure-resource": true + }, + "Sku": { + "type": "object", + "description": "The resource model definition representing SKU", + "properties": { + "name": { + "type": "string", + "description": "The name of the SKU. E.g. P3. It is typically a letter+number code" + }, + "tier": { + "$ref": "#/definitions/SkuTier" + }, + "size": { + "type": "string", + "description": "The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. " + }, + "family": { + "type": "string", + "description": "If the service has different generations of hardware, for the same SKU, then that can be captured here." + }, + "capacity": { + "type": "integer", + "format": "int32", + "description": "If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted." + } + }, + "required": [ + "name" + ] + }, + "SkuTier": { + "type": "string", + "description": "This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.", + "enum": [ + "Free", + "Basic", + "Standard", + "Premium" + ], + "x-ms-enum": { + "name": "SkuTier", + "modelAsString": false + } + }, + "TrackedResource": { + "type": "object", + "title": "Tracked Resource", + "description": "The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'", + "properties": { + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + }, + "x-ms-mutability": [ + "read", + "create", + "update" + ] + }, + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "required": [ + "location" + ], + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ] + }, + "encryptionProperties": { + "type": "object", + "description": "Configuration of key for data encryption", + "properties": { + "status": { + "type": "string", + "description": "Indicates whether or not the encryption is enabled for container registry.", + "enum": [ + "enabled", + "disabled" + ], + "x-ms-enum": { + "name": "EncryptionStatus", + "modelAsString": true + } + }, + "keyVaultProperties": { + "$ref": "#/definitions/KeyVaultProperties", + "description": "Key vault properties." + } + } + }, + "locationData": { + "type": "object", + "description": "Metadata pertaining to the geographic location of the resource.", + "properties": { + "name": { + "type": "string", + "description": "A canonical name for the geographic or physical location.", + "maxLength": 256 + }, + "city": { + "type": "string", + "description": "The city or locality where the resource is located." + }, + "district": { + "type": "string", + "description": "The district, state, or province where the resource is located." + }, + "countryOrRegion": { + "type": "string", + "description": "The country or region where the resource is located" + } + }, + "required": [ + "name" + ] + }, + "systemData": { + "type": "object", + "description": "Metadata pertaining to creation and last modification of the resource.", + "properties": { + "createdBy": { + "type": "string", + "description": "The identity that created the resource." + }, + "createdByType": { + "type": "string", + "description": "The type of identity that created the resource.", + "enum": [ + "User", + "Application", + "ManagedIdentity", + "Key" + ], + "x-ms-enum": { + "name": "createdByType", + "modelAsString": true + } + }, + "createdAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp of resource creation (UTC)." + }, + "lastModifiedBy": { + "type": "string", + "description": "The identity that last modified the resource." + }, + "lastModifiedByType": { + "type": "string", + "description": "The type of identity that last modified the resource.", + "enum": [ + "User", + "Application", + "ManagedIdentity", + "Key" + ], + "x-ms-enum": { + "name": "createdByType", + "modelAsString": true + } + }, + "lastModifiedAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp of resource last modification (UTC)" + } + }, + "readOnly": true + } + }, + "parameters": { + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "The API version to use for this operation.", + "required": true, + "type": "string", + "minLength": 1 + }, + "If-Match": { + "name": "ifMatch", + "in": "header", + "description": "The If-Match header that makes a request conditional.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "If-None-Match": { + "name": "ifNoneMatch", + "in": "header", + "description": "The If-None-Match header that makes a request conditional.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "LocationParameter": { + "name": "location", + "in": "path", + "description": "The name of the Azure region.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method" + }, + "ManagementGroupNameParameter": { + "name": "managementGroupName", + "in": "path", + "description": "The name of the management group. The name is case insensitive.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 90, + "x-ms-parameter-location": "method" + }, + "OperationIdParameter": { + "name": "operationId", + "in": "path", + "description": "The ID of an ongoing async operation.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method" + }, + "ResourceGroupNameParameter": { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group. The name is case insensitive.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 90, + "x-ms-parameter-location": "method" + }, + "ScopeParameter": { + "name": "scope", + "in": "path", + "description": "The scope at which the operation is performed.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method", + "x-ms-skip-url-encoding": true + }, + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "description": "The ID of the target subscription. The value must be an UUID.", + "required": true, + "type": "string", + "format": "uuid" + }, + "TenantIdParameter": { + "name": "tenantId", + "in": "path", + "description": "The Azure tenant ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000)", + "required": true, + "type": "string", + "format": "uuid", + "x-ms-parameter-location": "method" + } + } +} diff --git a/packages/samples/test/references.test.ts b/packages/samples/test/references.test.ts new file mode 100644 index 0000000000..7f58e12806 --- /dev/null +++ b/packages/samples/test/references.test.ts @@ -0,0 +1,65 @@ +import { strict as assert } from "node:assert"; +import { readFile, readdir } from "node:fs/promises"; +import { resolve } from "node:path"; +import { fileURLToPath, pathToFileURL } from "node:url"; +import { it } from "vitest"; + +type JsonValue = null | boolean | number | string | JsonValue[] | { [key: string]: JsonValue }; + +it("resolves local references in ARM sample snapshots and their common types", async () => { + const documents = new Map(); + const visited = new Set(); + + async function loadDocument(path: string): Promise { + if (!documents.has(path)) { + documents.set(path, JSON.parse(await readFile(path, "utf8"))); + } + return documents.get(path)!; + } + + async function checkDocument(path: string): Promise { + if (visited.has(path)) return; + visited.add(path); + + const pending = [await loadDocument(path)]; + while (pending.length > 0) { + const value = pending.pop(); + if (value === null || typeof value !== "object") continue; + pending.push(...Object.values(value)); + if (!("$ref" in value) || typeof value.$ref !== "string") continue; + + const reference = new URL(value.$ref, pathToFileURL(path)); + if (reference.protocol !== "file:") continue; + + const targetPath = fileURLToPath(reference); + let target = await loadDocument(targetPath); + const fragment = decodeURIComponent(reference.hash.slice(1)); + if (fragment !== "") { + assert(fragment.startsWith("/"), `Unsupported JSON pointer ${value.$ref} in ${path}`); + for (const part of fragment.slice(1).split("/")) { + const key = part.replaceAll("~1", "/").replaceAll("~0", "~"); + assert( + target !== null && typeof target === "object" && Object.hasOwn(target, key), + `Unresolved reference ${value.$ref} in ${path}`, + ); + target = Reflect.get(target, key); + } + } + await checkDocument(targetPath); + } + } + + async function checkDirectory(path: string): Promise { + for (const entry of await readdir(path, { withFileTypes: true })) { + const entryPath = resolve(path, entry.name); + if (entry.isDirectory()) { + await checkDirectory(entryPath); + } else if (entry.name.endsWith(".json")) { + await checkDocument(entryPath); + } + } + } + + await checkDirectory(fileURLToPath(new URL("./output/azure/resource-manager/", import.meta.url))); + assert(visited.size > 0, "Expected ARM sample snapshots to validate"); +}); From cf74184be99292f83b717dda4cd9338cd177341f Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Thu, 24 Sep 2026 11:04:10 +0800 Subject: [PATCH 18/22] Keep common-types release note focused on native behavior Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: f0af92c5-fa9d-4992-bb89-31bab99d244b --- .../promote-latest-version-common-types-2026-08-20-14-00-00.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md b/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md index 5e6e7a633e..9103b89df9 100644 --- a/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md +++ b/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md @@ -8,7 +8,7 @@ Extend `arm-common-types-version` to warn when an ARM service or API version sel Latest-version warnings are now active wherever this existing rule is enabled, including the resource-manager ruleset. Update `@armCommonTypesVersion` to the latest version in `Azure.ResourceManager.CommonTypes.Versions`, or suppress `@azure-tools/typespec-azure-resource-manager/arm-common-types-version` when an older version is required for compatibility. -The rule checks effective version selections only; it does not inspect legacy type usages or emitted OpenAPI references. +The rule checks effective version selections only. Update current ARM samples to common-types v6. Legacy and version-compatibility samples retain their older selections with explicit, scoped suppressions. From e1dc441389ba9cad6b3a3e6739ec13d0b6fb2b66 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Mon, 28 Sep 2026 14:06:36 +0800 Subject: [PATCH 19/22] test(arm): focus lint coverage on rule-owned behavior Apply the test responsibility guidance from #5572; retain distinct predicate, target, and custom guard regressions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../rules/arm-common-types-version.test.ts | 72 +------------------ 1 file changed, 2 insertions(+), 70 deletions(-) diff --git a/packages/typespec-azure-resource-manager/test/rules/arm-common-types-version.test.ts b/packages/typespec-azure-resource-manager/test/rules/arm-common-types-version.test.ts index efd8b9a95c..b564d18368 100644 --- a/packages/typespec-azure-resource-manager/test/rules/arm-common-types-version.test.ts +++ b/packages/typespec-azure-resource-manager/test/rules/arm-common-types-version.test.ts @@ -1,15 +1,9 @@ import { Tester } from "#test/tester.js"; -import { - type LinterRuleTester, - type TesterInstance, - createLinterRuleTester, - expectDiagnostics, -} from "@typespec/compiler/testing"; +import { type LinterRuleTester, createLinterRuleTester } from "@typespec/compiler/testing"; import { beforeEach, it } from "vitest"; import { armCommonTypesVersionRule } from "../../src/rules/arm-common-types-version.js"; -let runner: TesterInstance; let tester: LinterRuleTester; const ruleCode = "@azure-tools/typespec-azure-resource-manager/arm-common-types-version"; @@ -23,7 +17,7 @@ const outdatedVersionDiagnostic = (target: string, currentVersion = "v3") => ({ }); beforeEach(async () => { - runner = await Tester.createInstance(); + const runner = await Tester.createInstance(); tester = createLinterRuleTester( runner, armCommonTypesVersionRule, @@ -310,65 +304,3 @@ it("checks only the selected version, not legacy common-type usages", async () = ) .toBeValid(); }); - -it.each(["missing", "outdated"] as const)( - "respects namespace suppression for %s version diagnostics", - async (selection) => { - const diagnostics = await runner.diagnose( - ` - @armProviderNamespace - ${selection === "outdated" ? '@armCommonTypesVersion("v3")' : ""} - #suppress "${ruleCode}" "Intentional compatibility." - namespace Service; - `, - { compilerOptions: { linterRuleSet: { enable: { [ruleCode]: true } } } }, - ); - expectDiagnostics(diagnostics, []); - }, -); - -it("suppresses only the selected API version", async () => { - const diagnostics = await runner.diagnose( - ` - @armProviderNamespace - @armCommonTypesVersion(CommonTypes.Versions.v3) - @versioned(Versions) - namespace Service; - - enum Versions { - #suppress "${ruleCode}" "Intentional compatibility." - v1, - v2, - } - `, - { compilerOptions: { linterRuleSet: { enable: { [ruleCode]: true } } } }, - ); - expectDiagnostics(diagnostics, [outdatedVersionDiagnostic("v2")]); -}); - -it("does not report older selections in imported library services", async () => { - const libraryRunner = await Tester.import("test-common-type-service").createInstance(); - const libraryTester = createLinterRuleTester( - libraryRunner, - armCommonTypesVersionRule, - "@azure-tools/typespec-azure-resource-manager", - ); - await libraryTester - .expect({ - "main.tsp": "", - "node_modules/test-common-type-service/package.json": JSON.stringify({ - name: "test-common-type-service", - version: "1.0.0", - tspMain: "main.tsp", - }), - "node_modules/test-common-type-service/main.tsp": ` - import "@azure-tools/typespec-azure-resource-manager"; - using Azure.ResourceManager; - - @armProviderNamespace - @armCommonTypesVersion(CommonTypes.Versions.v3) - namespace Service; - `, - }) - .toBeValid(); -}); From d22e03b7970fa6c92223ec53117695d2cf6a0915 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Mon, 19 Oct 2026 12:36:47 +0800 Subject: [PATCH 20/22] Remove private common-types fixture and restore merged compiler cohort Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- core | 2 +- .../rules/arm-common-types-version.test.ts | 28 ------------------- 2 files changed, 1 insertion(+), 29 deletions(-) diff --git a/core b/core index d5e0de5362..62f1d298ca 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit d5e0de5362fc5a977c548d3f046cea3ce2e3c82f +Subproject commit 62f1d298cac7ee3360ec0f6ba84f2bf1e299dba0 diff --git a/packages/typespec-azure-resource-manager/test/rules/arm-common-types-version.test.ts b/packages/typespec-azure-resource-manager/test/rules/arm-common-types-version.test.ts index b564d18368..03ba93f1aa 100644 --- a/packages/typespec-azure-resource-manager/test/rules/arm-common-types-version.test.ts +++ b/packages/typespec-azure-resource-manager/test/rules/arm-common-types-version.test.ts @@ -117,34 +117,6 @@ it("does not emit when an unversioned service selects the latest version", async .toBeValid(); }); -it("uses the latest version from the common-types registry", async () => { - await tester - .expect({ - "main.tsp": ` - @armProviderNamespace - @armCommonTypesVersion(CommonTypes.Versions.v6) - namespace Service {} - `, - "node_modules/@azure-tools/typespec-azure-resource-manager/lib/common-types/versions.tsp": ` - import "./commontypes.private.decorators.tsp"; - using Versioning; - - @versioned(Versions) - namespace Azure.ResourceManager.CommonTypes; - - @Azure.ResourceManager.CommonTypes.Private.armCommonTypesVersions - enum Versions { - v3, v4, v5, v6, v7, - } - `, - }) - .toEmitDiagnostics({ - code: ruleCode, - target: "Service", - message: "Use the latest ARM common-types version 'v7' instead of 'v6'.", - }); -}); - it.each(["v3", "v4", "v5"])( "reports an older unversioned namespace selection: %s", async (version) => { From 94ec559054989a016191e47f98de046a7b34b920 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Wed, 21 Oct 2026 12:11:16 +0800 Subject: [PATCH 21/22] docs(arm): focus common-types version selection guidance Separate the sample prerequisite from the ARM rule release note. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- ...ersion-common-types-2026-08-20-14-00-00.md | 4 --- .../src/rules/arm-common-types-version.md | 35 +------------------ 2 files changed, 1 insertion(+), 38 deletions(-) diff --git a/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md b/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md index 9103b89df9..d341f1fcda 100644 --- a/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md +++ b/.chronus/changes/promote-latest-version-common-types-2026-08-20-14-00-00.md @@ -9,7 +9,3 @@ Extend `arm-common-types-version` to warn when an ARM service or API version sel Latest-version warnings are now active wherever this existing rule is enabled, including the resource-manager ruleset. Update `@armCommonTypesVersion` to the latest version in `Azure.ResourceManager.CommonTypes.Versions`, or suppress `@azure-tools/typespec-azure-resource-manager/arm-common-types-version` when an older version is required for compatibility. The rule checks effective version selections only. - -Update current ARM samples to common-types v6. Legacy and version-compatibility samples retain their older selections with explicit, scoped suppressions. - -Include the v6 common-types fixtures referenced by the samples and validate local OpenAPI references so missing files or definitions fail the sample tests. diff --git a/packages/typespec-azure-resource-manager/src/rules/arm-common-types-version.md b/packages/typespec-azure-resource-manager/src/rules/arm-common-types-version.md index acdc407607..3d3f19361e 100644 --- a/packages/typespec-azure-resource-manager/src/rules/arm-common-types-version.md +++ b/packages/typespec-azure-resource-manager/src/rules/arm-common-types-version.md @@ -33,45 +33,12 @@ namespace Microsoft.Contoso; ## ✅ Correct -Select the latest version on the namespace and use standard ARM resource -operation templates: +Select the latest version on the service namespace: ```tsp -import "@azure-tools/typespec-azure-resource-manager"; -import "@typespec/http"; -import "@typespec/rest"; -import "@typespec/versioning"; - -using Azure.ResourceManager; -using TypeSpec.Http; -using TypeSpec.Rest; -using TypeSpec.Versioning; - @armProviderNamespace @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) -@versioned(Versions) namespace Microsoft.Contoso; - -enum Versions { - v2026_08_01: "2026-08-01", -} - -model Widget is TrackedResource { - ...ResourceNameParameter; -} - -model WidgetProperties { - /** The resource provisioning state. */ - @visibility(Lifecycle.Read) - provisioningState?: ResourceProvisioningState; -} - -interface Operations extends Azure.ResourceManager.Operations {} - -@armResourceOperations -interface Widgets { - get is ArmResourceRead; -} ``` Alternatively, apply `@armCommonTypesVersion` to every API version enum member From 6f682caa356d62581299eb74c7661c164fe10ccf Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Wed, 21 Oct 2026 16:54:00 +0800 Subject: [PATCH 22/22] test(azure-resource-manager): assert common-types diagnostic locations Replace ignored diagnostic target properties with native source markers and supported position checks without changing semantic coverage. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../rules/arm-common-types-version.test.ts | 55 +++++++++++-------- 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/packages/typespec-azure-resource-manager/test/rules/arm-common-types-version.test.ts b/packages/typespec-azure-resource-manager/test/rules/arm-common-types-version.test.ts index 03ba93f1aa..bacc291e65 100644 --- a/packages/typespec-azure-resource-manager/test/rules/arm-common-types-version.test.ts +++ b/packages/typespec-azure-resource-manager/test/rules/arm-common-types-version.test.ts @@ -1,5 +1,9 @@ import { Tester } from "#test/tester.js"; -import { type LinterRuleTester, createLinterRuleTester } from "@typespec/compiler/testing"; +import { + type DiagnosticMatch, + type LinterRuleTester, + createLinterRuleTester, +} from "@typespec/compiler/testing"; import { beforeEach, it } from "vitest"; import { armCommonTypesVersionRule } from "../../src/rules/arm-common-types-version.js"; @@ -10,9 +14,9 @@ const ruleCode = "@azure-tools/typespec-azure-resource-manager/arm-common-types- const latestVersion = "v6"; const missingVersionMessage = "Specify the ARM common-types version using the @armCommonTypesVersion decorator on the service namespace or on each version of the service version enum."; -const outdatedVersionDiagnostic = (target: string, currentVersion = "v3") => ({ +const outdatedVersionDiagnostic = (pos: number, currentVersion = "v3"): DiagnosticMatch => ({ code: ruleCode, - target, + pos, message: `Use the latest ARM common-types version '${latestVersion}' instead of '${currentVersion}'.`, }); @@ -29,7 +33,7 @@ it("emits diagnostic when a version in the enum is missing a common type version await tester .expect( ` - @service(#{ title: "Test" }) + /*target*/@service(#{ title: "Test" }) @versioned(Service.Versions) @armProviderNamespace("Contoso.Service") namespace Service; @@ -42,27 +46,27 @@ it("emits diagnostic when a version in the enum is missing a common type version } `, ) - .toEmitDiagnostics({ + .toEmitDiagnostics((x) => ({ code: ruleCode, - target: "Service", + pos: x.pos.target.pos, message: missingVersionMessage, - }); + })); }); it("emits diagnostic when unversioned service namespace is missing a common type version", async () => { await tester .expect( ` - @service(#{ title: "Test" }) + /*target*/@service(#{ title: "Test" }) @armProviderNamespace("Contoso.Service") namespace Service; `, ) - .toEmitDiagnostics({ + .toEmitDiagnostics((x) => ({ code: ruleCode, - target: "Service", + pos: x.pos.target.pos, message: missingVersionMessage, - }); + })); }); it("does not emit when the service namespace has a common type version without version on enum values", async () => { @@ -123,12 +127,12 @@ it.each(["v3", "v4", "v5"])( await tester .expect( ` - @armProviderNamespace + /*target*/@armProviderNamespace @armCommonTypesVersion(CommonTypes.Versions.${version}) namespace Service; `, ) - .toEmitDiagnostics(outdatedVersionDiagnostic("Service", version)); + .toEmitDiagnostics((x) => outdatedVersionDiagnostic(x.pos.target.pos, version)); }, ); @@ -142,12 +146,15 @@ it("reports an older namespace selection for each API version", async () => { namespace Service; enum Versions { - v1, - v2, + /*v1*/v1, + /*v2*/v2, } `, ) - .toEmitDiagnostics([outdatedVersionDiagnostic("v1"), outdatedVersionDiagnostic("v2")]); + .toEmitDiagnostics((x) => [ + outdatedVersionDiagnostic(x.pos.v1.pos), + outdatedVersionDiagnostic(x.pos.v2.pos), + ]); }); it("reports an older enum-member override of a latest namespace selection", async () => { @@ -160,13 +167,13 @@ it("reports an older enum-member override of a latest namespace selection", asyn namespace Service; enum Versions { - @armCommonTypesVersion(CommonTypes.Versions.v3) + /*target*/@armCommonTypesVersion(CommonTypes.Versions.v3) v1, v2, } `, ) - .toEmitDiagnostics(outdatedVersionDiagnostic("v1")); + .toEmitDiagnostics((x) => outdatedVersionDiagnostic(x.pos.target.pos)); }); it("accepts a latest enum-member override of an older namespace selection", async () => { @@ -196,33 +203,33 @@ it("checks explicit per-version selections without a namespace selection", async namespace Service; enum Versions { - @armCommonTypesVersion(CommonTypes.Versions.v3) + /*target*/@armCommonTypesVersion(CommonTypes.Versions.v3) v1, @armCommonTypesVersion(CommonTypes.Versions.v6) v2, } `, ) - .toEmitDiagnostics(outdatedVersionDiagnostic("v1")); + .toEmitDiagnostics((x) => outdatedVersionDiagnostic(x.pos.target.pos)); }); it("supports string version selections", async () => { await tester .expect( ` - @armProviderNamespace + /*target*/@armProviderNamespace @armCommonTypesVersion("v3") namespace Service; `, ) - .toEmitDiagnostics(outdatedVersionDiagnostic("Service")); + .toEmitDiagnostics((x) => outdatedVersionDiagnostic(x.pos.target.pos)); }); it("checks each ARM service independently", async () => { await tester .expect( ` - @armProviderNamespace + /*target*/@armProviderNamespace @armCommonTypesVersion(CommonTypes.Versions.v3) namespace Older {} @@ -231,7 +238,7 @@ it("checks each ARM service independently", async () => { namespace Current {} `, ) - .toEmitDiagnostics(outdatedVersionDiagnostic("Older")); + .toEmitDiagnostics((x) => outdatedVersionDiagnostic(x.pos.target.pos)); }); it("does not check non-ARM services or Azure library namespaces", async () => {